[Libav-user] Hardware accelerated video decoding

mr N mohamednmn28105 at gmail.com
Wed Mar 22 15:09:11 EET 2023


 There is no one-size-fits-all solution to your issue of high memory usage
during video decoding. The cause could be a combination of factors,
including hardware limitations, software optimizations, codec
configuration, and external factors. It is best to approach this issue
systematically, analyzing each potential cause and optimizing your code
accordingly.

On Wed, Mar 22, 2023 at 1:43 PM Edimar Rangel <edimar.rangel at gmail.com>
wrote:

> Hi
>
> I'm facing a high memory usage consumption on video decoding, seems to be
> some memory leak, but I did not manage to find it.
>
> Processor:11th Gen Intel(R) Core(TM) i5-11400H @ 2.70GHz   2.69 GHz, 6
> cores, 12 threads
> GPU: NVIDIA GeForce RTX 3050 Laptop GPU, 4gb GDDR6 6001.0 MHz
> OS:
>
> I've tried with CUDA, D3D11VA and DXVA2, until now DXVA2 presents the best
> results.
>
> These are the steps:
>
>
>    1. Initialize TAVHWDeviceType by av_hwdevice_find_type_by_name('dxva2')
>    2. Initialize PAVCodec by avcodec_find_decoder(), it's TAVCodecId
>    parameter can assume one of these values  [Mpeg4, H264, HEVC, MJPEG]
>    3. Initialize PAVCodecHWConfig by:
>    while True do
>    begin
>      vHWConfig := avcodec_get_hw_config(fCodec, vCount);
>
>      Inc(vCount);
>
>      if not Assigned(vHWConfig) then
>        Break;
>
>      if ((vHWConfig.methods and AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX)
>    <> 0) and (vHWConfig.device_type = vType) then
>        fHWPixelFormat := vHWConfig.pix_fmt;
>    end;
>    4. Use av_hwdevice_ctx_create to set
>    in PAVCodecContext.hw_device_ctx variable
>    5. When decoding I'm using avcodec_send_packet
>    and avcodec_receive_frame functions
>    6. Using av_hwframe_transfer_data to copy from GPU memory to CPU memory
>    7. Finally I'm using sws_getContext and sw_scale to convert the image
>    8. After decoding these variables are been cleaned:
>    av_frame_free(@vSWFrame);
>    av_buffer_unref(@vBuffer);
>    av_freep(@vBuffer);
>    av_packet_unref(@vPacket);
>    av_packet_free(@vPacket);
>
>
> I'm using Delphi 10.3 and FastMM4  doesn't report any memory leak, but all
> the RAM available it's being used.
>
> Is there any known issue that can be causing this?
> _______________________________________________
> Libav-user mailing list
> Libav-user at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/libav-user
>
> To unsubscribe, visit link above, or email
> libav-user-request at ffmpeg.org with subject "unsubscribe".
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://ffmpeg.org/pipermail/libav-user/attachments/20230322/2399baf3/attachment.htm>


More information about the Libav-user mailing list