【发布时间】:2019-03-11 11:40:29
【问题描述】:
我想测量 MF 处理我的视频样本需要多少时间。
我尝试使用采样时间作为唯一的采样标识符,发现管道会调整该值使其漂移(速度不快,每帧 0-1 100 纳秒滴答声,但即使偏离 1 也足以满足值作为唯一 ID 毫无价值)。
我尝试将自定义值放入属性中,在带有 nVidia 编码器的 Win10 上工作正常,在带有 MS 编码器的 Win7 上失败:输出帧不包含我的值,显然编码器从样本中删除了所有属性。尝试了 MFSampleExtension_DeviceTimestamp 内置属性,结果一样,管道中的值丢失了。
还有其他方法可以匹配输入样本和输出样本吗?手动计算的序列号太脆弱了 IMO,框架是多线程的。
【问题讨论】:
-
你尝试过 MFTrace 吗?
-
@mofo77 它也没有稳定的样本 ID。它记录 IMFSample 接口的地址。输入样本和输出样本是不同地址的不同对象。
标签: c++ windows performance-testing video-processing ms-media-foundation