On 05/03/2024 15:45, Sebastiaan Geus via Libav-user wrote:
Hi,
I am using d3d11va hardware acceleration for decoding video’s in Unity I use
the d3d11 pix_fmt to directly copy the output texture to unity.
This now works fine for h264 /h265 video’s but both vp9 and av1 video’s produce :
Static surface pool size exceeded. & get_buffer() failed on decode.
Here is a log that I save from my application lines with a @ prefix are from
the av_log_set_callback.
Query available decoder id.
Decoder does not exist.
Using d3d11va HWDecoder
config loading success.
USE_TCP=false
BUFF_VIDEO_MAX=18
BUFF_AUDIO_MAX=128
SEEK_ANY=false
@ Opening 'C:\FFmpeg\bin\Download\out9.webm' for reading
@ Setting default whitelist 'file,crypto,data'
@ Probing h263 score:25 size:2048
@ Probing matroska,webm score:100 size:2048
@ Format matroska,webm probed with size=2048 and score=100
@ st:0 removing common factor 1000000 from timebase
Opened file: (C:\FFmpeg\bin\Download\out9.webm).
@ Before avformat_find_stream_info() pos: 319 bytes read:32768 seeks:0
nb_streams:1
@ Format yuv420p chosen by get_format().
@ All info found
@ stream 0: start_time: 0 duration: NOPTS
@ format: start_time: 0 duration: 9.92 (estimate from stream) bitrate=144 kb/s
@ After avformat_find_stream_info() pos: 5130 bytes read:32768 seeks:0 frames:1
duration= 9920000.000000
decoding video using vp9
Using d3d11 as the HW pixel format
Using d3d11va as the HW Device Type
HW Decoder initializing!
@ Selecting d3d11va adapter 0
@ Using device 10de:1e07 (NVIDIA GeForce RTX 2080 Ti).
audio stream not found.
Initialization of decoders complete!
nativeIsVideoEnabled: true
nativeIsAudioEnabled: false
@ Format d3d11 chosen by get_format().
@ Format d3d11 requires hwaccel initialisation.
@ Decoder GUIDs reported as supported:
@ {86695f12-340e-4f04-9fd3-9253dd327460}@ 103@ 106@
@ {ee27417f-5e28-4e65-beea-1d26b508adc9}@ 103@ 106@
@ {6f3ec719-3735-42cc-8063-65cc3cb36616}@ 103@ 106@
@ {1b81bea4-a0c7-11d3-b984-00c04f2e73c5}@ 103@ 106@
@ {1b81bea3-a0c7-11d3-b984-00c04f2e73c5}@ 103@ 106@
@ {32fcfe3f-de46-4a49-861b-ac71110649d5}@ 103@ 106@
@ {d79be8da-0cf1-4c81-b82a-69a4e236f43d}@ 103@ 106@
@ {f9aaccbb-c2b6-4cfc-8779-5707b1760552}@ 103@ 106@
@ {1b81be68-a0c7-11d3-b984-00c04f2e73c5}@ 103@ 106@
@ {5b11d51b-2f4c-4452-bcc3-09f2a1160cc0}@ 103@ 106@
@ {107af0e0-ef1a-4d19-aba8-67a163073d13}@ 104@ 106@
@ {20bb8b0a-97aa-4571-8e99-64e60606c1a6}@ 104@ 106@
@ {15df9b21-06c4-47f1-841e-a67c97d7f312}@ 103@ 106@
@ {efd64d74-c9e8-41d7-a5e9-e9b0e39fa319}@ 103@ 106@
@ {ed418a9f-010d-4eda-9ae3-9a65358d8d2e}@ 103@ 106@
@ {9947ec6f-689b-11dc-a320-0019dbbc4184}@ 103@ 106@
@ {33fcfe41-de46-4a49-861b-ac71110649d5}@ 103@ 106@ 107@
@ {463707f8-a1d0-4585-876d-83aa6d60b89e}@ 103@ 106@
@ {a4c749ef-6ecf-48aa-8448-50a7a1165ff7}@ 104@ 106@
@ {dda19dc7-93b5-49f5-a9b3-2bda28a2ce6e}@ 104@ 106@
@ {6affd11e-1d96-42b1-a215-93a31f09a53d}@ 103@ 106@
@ {914c84a3-4078-4fa9-984c-e2f262cb5c9c}@ 103@ 106@
@ {8a1a1031-29bc-46d0-a007-e9b092ca6767}@ 103@ 106@
@ Static surface pool size exceeded.
@ get_buffer() failed
Sendpacket produced Cannot allocate memory
Av Error
@ Static surface pool size exceeded.
@ get_buffer() failed
Sendpacket produced Cannot allocate memory
Av Error
@ Static surface pool size exceeded.
Errors persist on using latest shared build or release 6.1
Can someone point me in a direction of how to fix this?
D3D11 decoding requires that output is an array texture with a size fixed in
advance. It sounds like you have not told the decoder that you are going to
hold on to multiple frames in the output, so it has made the array texture too
small.
You probably want to set AVCodecContext.extra_hw_frames to tell the decoder how
many frames you are going to hold on to.
Thanks,
- Mark
_______________________________________________
Libav-user mailing list
Libav-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/libav-user
To unsubscribe, visit link above, or email
libav-user-requ...@ffmpeg.org with subject "unsubscribe".