关于directshow 中mediaDet.GetBitmapBits的有关问题【请问】

关于directshow 中mediaDet.GetBitmapBits的问题【请教】
自己写了一个视频帧提取代码:
hr = mediaDet.GetBitmapBits(position, out bufferSize, IntPtr.Zero, width, height);
  if (hr == 0)
  {
  buffer = Marshal.AllocCoTaskMem(bufferSize);
  hr = mediaDet.GetBitmapBits(position, out bufferSize, buffer, width, height);

  BitmapInfoHeader bitmapHeader = (BitmapInfoHeader)Marshal.PtrToStructure(buffer, typeof(BitmapInfoHeader));
  IntPtr bitmapData;

  if (IntPtr.Size == 4)

执行的时候很不稳定有时候执行到“hr = mediaDet.GetBitmapBits(position, out bufferSize, buffer, width, height);”这句,程序就跳出了。不知道是怎么回事?希望知道的朋友能给我解析下。

------解决方案--------------------
mediaDet这个类不适合用来做快速截图,还是用SampleGrabber吧,这个支持双缓冲