IMFSourceReader::GetNativeMediaType 等同于 IMFMediaTypeHandler::GetMediaTypeByIndex 吗?
Is IMFSourceReader::GetNativeMediaType equivalent to IMFMediaTypeHandler::GetMediaTypeByIndex?
假设它们来自同一来源等是:
IMFMediaTypeHandler::GetMediaTypeByIndex(mediaTypeIndex, mediaType)
相当于:
IMFSourceReader::GetNativeMediaType(streamIndex, mediaTypeIndex, mediaType)
两种情况的mediaTypeIndex参数是否有对应关系?这对于使用具有以下属性集的 MFCreateSourceReaderFromMediaSource() 意味着什么:
attributes->SetUINT32(MF_READWRITE_DISABLE_CONVERTERS, TRUE);
我会说是的:
IMFMediaTypeHandler::GetMediaTypeByIndex
Retrieves a media type from the object's list of supported media types.
IMFSourceReader::GetNativeMediaType
but capture devices might offer several formats.
(我认为"list of supported media types" == "might offer several formats",在捕获的例子中)。
并且因为两者都实现了 GetCurrentMediaType。但我必须承认,这并不能保证。
对于MF_READWRITE_DISABLE_CONVERTERS,调用SetInput类型时会做一些转换,如果需要,如果为FALSE。所以从我的角度来看,与 GetMediaTypeByIndex/GetNativeMediaType 没有关系,而只与 GetCurrentMediaType 有关系。
这些方法可能是等价的,即使它们不一定是等价的。如果您在媒体源之上使用 Source Reader,则将媒体源的控制权委托给 reader 实例,一般来说,您不应该访问 IMFMediaTypeHandler
,因为 source reader 在假设它对事物具有独占控制权的情况下运行。
MF_READWRITE_DISABLE_CONVERTERS
不太可能对本机媒体类型的枚举产生影响,因为转换器跳入以将请求的媒体类型与一种本机媒体类型相匹配。
假设它们来自同一来源等是:
IMFMediaTypeHandler::GetMediaTypeByIndex(mediaTypeIndex, mediaType)
相当于:
IMFSourceReader::GetNativeMediaType(streamIndex, mediaTypeIndex, mediaType)
两种情况的mediaTypeIndex参数是否有对应关系?这对于使用具有以下属性集的 MFCreateSourceReaderFromMediaSource() 意味着什么:
attributes->SetUINT32(MF_READWRITE_DISABLE_CONVERTERS, TRUE);
我会说是的:
IMFMediaTypeHandler::GetMediaTypeByIndex
Retrieves a media type from the object's list of supported media types.
IMFSourceReader::GetNativeMediaType
but capture devices might offer several formats.
(我认为"list of supported media types" == "might offer several formats",在捕获的例子中)。
并且因为两者都实现了 GetCurrentMediaType。但我必须承认,这并不能保证。
对于MF_READWRITE_DISABLE_CONVERTERS,调用SetInput类型时会做一些转换,如果需要,如果为FALSE。所以从我的角度来看,与 GetMediaTypeByIndex/GetNativeMediaType 没有关系,而只与 GetCurrentMediaType 有关系。
这些方法可能是等价的,即使它们不一定是等价的。如果您在媒体源之上使用 Source Reader,则将媒体源的控制权委托给 reader 实例,一般来说,您不应该访问 IMFMediaTypeHandler
,因为 source reader 在假设它对事物具有独占控制权的情况下运行。
MF_READWRITE_DISABLE_CONVERTERS
不太可能对本机媒体类型的枚举产生影响,因为转换器跳入以将请求的媒体类型与一种本机媒体类型相匹配。