我想测量MF处理我的视频样本需要多少时间。
我尝试使用采样时间作为唯一的采样标识符,发现管道会调整该值,使其漂移(不是很快,每帧0-1 100纳秒刻度,但即使偏移量为1也足以满足要求)值作为唯一ID毫无价值。
我尝试将自定义值添加到属性中,使用nVidia编码器的Win10可以正常工作,使用MS编码器的Win7不能正常工作:输出帧不包含我的值,显然编码器从样本中删除了所有属性。尝试使用MFSampleExtension_DeviceTimestamp内置属性,结果相同,该值在管道中丢失。
还有其他将输入样本与输出样本匹配的方法吗?手动计算的序列号太脆弱了,IMO的框架是多线程的。
答案 0 :(得分:0)
您可以编写一个包装编码器MFT,该包装器在Win7中包装MS解码器,并将采样时间/附加属性记录在IMFTransform :: ProcessInput中的队列中,并在IMFTransform :: ProcessOutput中进行处理,然后根据采样时间,并将相关属性设置为输出采样,可以吗?