gpt4 book ai didi

c++ - 如何从 AM_MEDIA_TYPE 中获取 MEDIASUBTYPE 的名称,c++

转载 作者:太空宇宙 更新时间:2023-11-04 11:54:47 25 4
gpt4 key购买 nike

我正在使用 directshow 从我的网络摄像头抓取帧。在网络摄像头的配置过程中(当我设置分辨率、fps 等时)我可以从摄像头中获得多种选择。 (其中 47 个)。

目前我使用 for 循环遍历摄像头的所有可用设置,我只是在控制台中打印这些值。但是我没有很好的方法来打印 Media 子类型的值。

有没有什么好的方法可以打印媒体子类型的实际名称?

现在我这样测试:

if(mT->subtype == MEDIASUBTYPE_MJPG){
printf(" MEDIASUBTYPE_MJPG ");
} else {
printf(" ----- ");
}

(mT = AM_MEDIA_TYPE)这不是一个好方法。我想使用打印子类型实际名称的东西。

谢谢!

最佳答案

媒体子类型只是一个GUID 标识符,没有名字。如果不直接与您知道的值进行比较,就无法将其转换为用户友好的字符串。

这里只有一个异常(exception),它是从四字符代码 (FourCCs) 映射而来的标识符。在 FOURCCMap class 中的 MSDN 上查看有关这些的详细信息你可能想做类似的事情:

if(memcmp(&mT->subtype.Data2, &MEDIASUBTYPE_MJPG.Data2, sizeof (GUID) - offsetof(GUID, Data2)) == 0)
{
// NOTE: This is FourCC!
CHAR pszValue[5];
*((UINT32*) pszValue) = mT->subtype.Data1;
pszValue[4] = 0;
_tprintf(_T("Media Subtype is FourCC %hs\n"), pszValue);
} else
// ...

关于c++ - 如何从 AM_MEDIA_TYPE 中获取 MEDIASUBTYPE 的名称,c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16588475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com