据我所知,为了检查某个帧是否是关键帧,我必须检查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;
}这里我漏掉了什么?
发布于 2011-01-31 02:19:54
您的媒体类型是什么?如果采样器正在接收未压缩的视频帧,则每一帧都是同步点。
https://stackoverflow.com/questions/4781349
复制相似问题