如何测量管道延迟?
How to measure pipeline latency?
我想测量MF处理视频样本需要多少时间。
我尝试使用采样时间作为唯一的样本标识符,发现管道会调整该值,使其偏离(不快,每帧 0-1 100 纳秒的刻度,但即使是 off-by-1 也足以让该值作为唯一 ID 毫无价值(。
我尝试在属性中输入自定义值,在使用 nVidia 编码器的 Win10 上工作正常,在使用 MS 编码器的 Win7 上失败:输出帧不包含我的值,显然编码器从样本中删除了所有属性。尝试MFSampleExtension_DeviceTimestamp内置属性,结果相同,值在管道中丢失。
还有其他方法可以将输入样本与输出样本相匹配吗?手动计数的序列号太脆弱了 IMO,框架是多线程的。
你可以编写一个包装编码器MFT,在Win7中包装MS解码器,并将采样时间/附加属性记录到IMFTransform::P rocessInput中的队列中,并在IMFTransform::P rocessOutput中进行处理,并根据采样时间获取属性,并将相关属性设置为输出样本,可以吗?
相关文章:
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 如何仅为一个函数添加延迟
- IPC使用多个管道和分支进程来运行Python程序
- 以在Qt中的IF语句中设置时间延迟
- 如何创建函数管道,以便函数一个接一个地运行?
- Gstreamer 管道从命令 lne 到 c 代码
- 模板化类中静态成员的延迟初始化
- 在 Windows 8/10 技术中完全实时的屏幕捕获,没有延迟
- 外壳包装器句柄/执行交互式命令管道C++ UNIX
- 将自定义函数传递到基抽象类中以延迟执行
- 我希望改进或要求我目前的延迟/睡眠方法。C++
- 将旧管道转换为现代 openGL 时出现问题
- 如何在 c++ 中延迟?
- 如何使用管道在父级和子级之间来回传递文件
- 在没有管理员权限的情况下连接到同一网络中的命名管道
- 如何测量管道延迟?
- 我如何使用此程序管道多个命令?C++
- 获取毫秒延迟的错误值
- 先进先出:一个进程永远不会从管道读取
- C++ 我想将两个字符串写入管道,中间有一小段延迟