如何使avdec_h264使用自定义缓冲池来转储解码数据

时间:2014-11-13 09:41:00

标签: gstreamer

使用Gstreamer-1.0。我有一个显示缓冲池,我想要的是avdec_h264'解码器插件用于转储解码的原始数据。目前我正在做一个记忆'解码的原始缓冲区到显示缓冲区,这会降低帧速率。那么,我怎样才能制作出avdec_h264'直接使用显示缓冲区从应用程序转储解码数据并避免使用“memcpy”。

1 个答案:

答案 0 :(得分:0)

我不认为avdec_h264会支持直接转储到硬件内存缓冲区,如果这是您正在寻找的内容。上限是:

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-raw
                 format: { I420, YUY2, RGB, BGR, Y42B, Y444, YUV9, Y41B, GRAY8, RGB8P, I420, Y42B, Y444, UYVY, NV12, NV21, ARGB, RGBA, ABGR, BGRA, GRAY16_BE, GRAY16_LE, A420, RGB16, RGB15, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE }

您运行的硬件和操作系统是什么?您从哪个分辨率解码?您是否尝试将已解码的视频导入系统内存或显卡内存?如果你在Pi上运行,你可能想尝试他们的OMX库。如果它是英特尔PC,你可以试试vaapi。

我们在应用程序中多次使用已解码缓冲区的memcpy而没有性能问题,但我们在i7芯片上运行它...