0

据我所知,为了检查一个帧是否是关键帧,我必须检查 IMediaSample::IsSyncPoint() 方法,如果该帧是关键帧,则返回 0 (S_OK),否则返回 false其他情况。

但是 IsSyncPoint() 方法只是在抓取并传递给 ISampleGrabberCB::SampleCB() 回调方法的每一帧中返回 0。

我的回调包含的代码很简单:

  public int SampleCB ( double sampleTime, IMediaSample mediaSample )
  {
   Console.WriteLine ( "SampleCB Callback" );
   Console.WriteLine ( mediaSample.IsSyncPoint ( ) + " " );

   Marshal.ReleaseComObject ( mediaSample );
   return 0;
  }

我在这里想念什么?

4

1 回答 1

1

你的媒体类型是什么?如果样本采集器正在接收未压缩的视频帧,那么每一帧都是一个同步点。

于 2011-01-30T18:19:54.003 回答