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

时间:2022-12-25 08:44:20

Am using Gstreamer-1.0. I've a pool of display buffers which I want 'avdec_h264' decoder plugin to use to dump decoded raw data. Currently I'm doing a 'memcpy' of decoded raw buffers to the display buffers which is deteriorating the framerate. So, how can I make 'avdec_h264' use the display buffers directly to dump the decoded data from application and avoid the 'memcpy'.

我使用gstreamer - 1.0。我有一个显示缓冲池,我希望'avdec_h264'解码器插件用于转储解码的原始数据。目前,我正在对显示缓冲区进行“memcpy”解码原始缓冲区,这正在恶化framerate。因此,如何使'avdec_h264'使用显示缓冲区直接从应用程序中转储解码数据,并避免'memcpy'。

1 个解决方案

#1


0  

I don't think avdec_h264 will support dumping directly into a hardware memory buffer, if that's what you're seeking. The caps are:

我不认为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 }

What hardware and OS are you running on? What resolutions are you decoding from? Are you trying to get the decoded video into system memory or graphics card memory? If you're running on the Pi you might want to try their OMX libs. If it's an Intel PC you could try vaapi.

你在运行什么硬件和操作系统?你解码的分辨率是多少?您是否试图将解码后的视频放入系统内存或显卡内存中?如果你在Pi上运行,你可能想试试他们的OMX libs。如果是英特尔的个人电脑,你可以试试vaapi。

We use memcpy of decoded buffers all the time in our app many times without performance issue, but we run it on i7 chips...

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

#1


0  

I don't think avdec_h264 will support dumping directly into a hardware memory buffer, if that's what you're seeking. The caps are:

我不认为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 }

What hardware and OS are you running on? What resolutions are you decoding from? Are you trying to get the decoded video into system memory or graphics card memory? If you're running on the Pi you might want to try their OMX libs. If it's an Intel PC you could try vaapi.

你在运行什么硬件和操作系统?你解码的分辨率是多少?您是否试图将解码后的视频放入系统内存或显卡内存中?如果你在Pi上运行,你可能想试试他们的OMX libs。如果是英特尔的个人电脑,你可以试试vaapi。

We use memcpy of decoded buffers all the time in our app many times without performance issue, but we run it on i7 chips...

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