代码之家  ›  专栏  ›  技术社区  ›  Nick Udell

Marshal.PtrToStructure读取wmv文件时堆栈溢出

  •  0
  • Nick Udell  · 技术社区  · 16 年前

    我使用一个帧捕捉器类来捕捉和处理视频中的每一帧。该类可在以下位置找到: http://www.codeproject.com/KB/graphics/FrameGrabber.aspx

    videoInfo = (VideoInfoHeader)Marshal.PtrToStructure(mediaType.formatPtr, typeof(VideoInfoHeader));
    

    当我运行这个程序时,它会立即从调试环境中崩溃,可能是因为堆栈溢出。当逐步通过时,我可以看到formatPtr总是等于93,尽管我不知道该怎么做,因为我对编组相当陌生。

    我已经检查了视频在Windows Media Player中是否正常运行。

    这对于找到视频的尺寸和头的大小是非常重要的,在读取帧之前需要跳过头的大小。

    我正在运行Windows7x64。

    在这方面的任何帮助将不胜感激,我一定尝试了15个不同的帧抓取技术。

    1 回复  |  直到 16 年前
        1
  •  2
  •   Nick Martyshchenko    16 年前

    也许你的mediaType结构损坏了,你在调用前检查它包含什么吗?它在哪里?

    Tess Ferrandez's Blog