当我的 Windows 10 UWP .NET C# 应用程序的 MediaFrameReader.FrameMet 事件收到来自我的罗技 C920 USB 网络摄像头的图像帧时,解压缩(解码)发生在哪里?
相机中的帧是在 MediaFrameReader.FrameArrive事件之前解码的,还是当我调用发送者时解码的。TryAcquireLatestFrame()?
相机中的帧是在 MediaFrameReader.FrameArrive事件之前解码的,还是当我调用发送者时解码的。TryAcquireLatestFrame()?
对于此问题,您可以参考相机帧代码示例。从代码的角度来看。解压缩(解码)发生在FrameArrived
之前。
private void FrameReader_FrameArrived(MediaFrameReader sender, MediaFrameArrivedEventArgs args)
{
// TryAcquireLatestFrame will return the latest frame that has not yet been acquired.
// This can return null if there is no such frame, or if the reader is not in the
// "Started" state. The latter can occur if a FrameArrived event was in flight
// when the reader was stopped.
using (var frame = sender.TryAcquireLatestFrame())
{
if (frame != null)
{
var renderer = _frameRenderers[frame.SourceKind];
renderer.ProcessFrame(frame);
}
}
}
因为框架包含SoftwareBitmap
.这意味着原始数据已被解码,然后打包为帧实例。