#11500: AV1 frame extraction (screenshot) fails
-------------------------------------+-----------------------------------
             Reporter:  ffmpegScale  |                    Owner:  (none)
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:  swscale
              Version:  unspecified  |               Resolution:
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  1            |
-------------------------------------+-----------------------------------
Comment (by ffmpegScale):

 Sorry, was occupied with strange syntax in the issue tracker. I tried so
 many builds, it started with 7.0 and waited some time (I thought such a
 regression gets noticed fast).

 Also, I tried, different flavors in the repo (e.g. jellyfin - just to get
 more data). All work with v6 and had the same issue with v7+. Also waited
 for driver issues (I know - sw should be independent of hw)

 Different commands fail related to read/scale video, but this is fastest
 and easiest to reproduce and all have the same error message. I get them
 in software that relies on ffmpeg as well. (That got the testing started)

 {{{
 ffmpeg -v debug -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -i
 in.mkv -threads 0 -ss 8.280000 -frames:v 1 output.jpg
 ffmpeg version n7.1 Copyright (c) 2000-2024 the FFmpeg developers
   built with gcc 14.2.1 (GCC) 20250207
   configuration: --prefix=/usr --disable-debug --disable-static --disable-
 stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto
 --enable-fontconfig --enable-frei0r --enable-gmp --enable-gnutls --enable-
 gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray
 --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libdvdnav
 --enable-libdvdread --enable-libfreetype --enable-libfribidi --enable-
 libglslang --enable-libgsm --enable-libharfbuzz --enable-libiec61883
 --enable-libjack --enable-libjxl --enable-libmodplug --enable-libmp3lame
 --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg
 --enable-libopenmpt --enable-libopus --enable-libplacebo --enable-libpulse
 --enable-librav1e --enable-librsvg --enable-librubberband --enable-
 libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-
 libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-
 libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpl --enable-
 libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb
 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq
 --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-
 shared --enable-vapoursynth --enable-version3 --enable-vulkan
   libavutil      59. 39.100 / 59. 39.100
   libavcodec     61. 19.100 / 61. 19.100
   libavformat    61.  7.100 / 61.  7.100
   libavdevice    61.  3.100 / 61.  3.100
   libavfilter    10.  4.100 / 10.  4.100
   libswscale      8.  3.100 /  8.  3.100
   libswresample   5.  3.100 /  5.  3.100
   libpostproc    58.  3.100 / 58.  3.100
 Splitting the commandline.
 Reading option '-v' ... matched as option 'v' (set logging level) with
 argument 'debug'.
 Reading option '-hwaccel' ... matched as option 'hwaccel' (use HW
 accelerated decoding) with argument 'vaapi'.
 Reading option '-hwaccel_device' ... matched as option 'hwaccel_device'
 (select a device for HW acceleration) with argument '/dev/dri/renderD128'.
 Reading option '-i' ... matched as input url with argument 'in.mkv'.
 Reading option '-threads' ... matched as AVOption 'threads' with argument
 '0'.
 Reading option '-ss' ... matched as option 'ss' (start transcoding at
 specified time) with argument '8.280000'.
 Reading option '-frames:v' ... matched as option 'frames' (set the number
 of frames to output) with argument '1'.
 Reading option 'output.jpg' ... matched as output url.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option v (set logging level) with argument debug.
 Successfully parsed a group of options.
 Parsing a group of options: input url in.mkv.
 Applying option hwaccel (use HW accelerated decoding) with argument vaapi.
 Applying option hwaccel_device (select a device for HW acceleration) with
 argument /dev/dri/renderD128.
 Successfully parsed a group of options.
 Opening an input file: in.mkv.
 [AVFormatContext @ 0x5bebf7094880] Opening 'in.mkv' for reading
 [file @ 0x5bebf7094f40] Setting default whitelist 'file,crypto,data'
 [matroska,webm @ 0x5bebf7094880] Format matroska,webm probed with
 size=2048 and score=100
 st:0 removing common factor 1000000 from timebase
 [matroska,webm @ 0x5bebf7094880] Before avformat_find_stream_info() pos:
 524 bytes read:32768 seeks:0 nb_streams:1
 [libdav1d @ 0x5bebf7096780] libdav1d 1.5.1
 [libdav1d @ 0x5bebf7096780] Using 1 threads, 0 max_frame_delay
 [libdav1d @ 0x5bebf7096780] Frame 0:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [matroska,webm @ 0x5bebf7094880] All info found
 [matroska,webm @ 0x5bebf7094880] After avformat_find_stream_info() pos:
 607 bytes read:32768 seeks:0 frames:1
 Selecting decoder 'av1' because of requested hwaccel method vaapi
 Input #0, matroska,webm, from 'in.mkv':
   Metadata:
     ENCODER         : Lavf61.7.100
   Duration: 00:00:10.00, start: 0.000000, bitrate: 127 kb/s
   Stream #0:0, 1, 1/1000: Video: av1 (libdav1d) (Main), 1 reference frame,
 yuv420p10le(tv, ictcp/bt709/bt709), 320x180, 0/1, SAR 1:1 DAR 16:9, 24
 fps, 24 tbr, 1k tbn
       Metadata:
         DURATION        : 00:00:10.000000000
 Successfully opened the file.
 Parsing a group of options: output url output.jpg.
 Applying option ss (start transcoding at specified time) with argument
 8.280000.
 Applying option frames:v (set the number of frames to output) with
 argument 1.
 Successfully parsed a group of options.
 Opening an output file: output.jpg.
 [out#0/image2 @ 0x5bebf7098500] No explicit maps, mapping streams
 automatically...
 [vost#0:0/mjpeg @ 0x5bebf7098c40] Created video stream from input stream
 0:0
 [AVHWDeviceContext @ 0x5bebf70995c0] libva: VA-API version 1.22.0
 [AVHWDeviceContext @ 0x5bebf70995c0] libva: Trying to open
 /usr/lib/dri/iHD_drv_video.so
 [AVHWDeviceContext @ 0x5bebf70995c0] libva: Found init function
 __vaDriverInit_1_22
 [AVHWDeviceContext @ 0x5bebf70995c0] libva: va_openDriver() returns 0
 [AVHWDeviceContext @ 0x5bebf70995c0] Initialised VAAPI connection: version
 1.22
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x41524742 -> bgra.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x41424752 -> rgba.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x58524742 -> bgr0.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x58424752 -> rgb0.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x30335241 -> unknown.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x30334241 -> unknown.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x30335258 -> x2rgb10le.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x30334258 -> unknown.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x36314752 -> unknown.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x56555941 -> unknown.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x56555958 -> vuyx.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x30303859 -> gray.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x3231564e -> nv12.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x3132564e -> unknown.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x32595559 -> yuyv422.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x59565955 -> uyvy422.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x32315659 -> yuv420p.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x30323449 -> yuv420p.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x50313134 -> yuv411p.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x48323234 -> yuv422p.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x56323234 -> yuv440p.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x50343434 -> yuv444p.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x33434d49 -> unknown.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x30313050 -> p010le.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x32313050 -> p012le.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x36313050 -> unknown.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x30313259 -> y210le.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x32313259 -> y212le.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x36313259 -> unknown.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x30313459 -> xv30le.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x32313459 -> xv36le.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x36313459 -> unknown.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x50424752 -> unknown.
 [AVHWDeviceContext @ 0x5bebf70995c0] Format 0x50524742 -> unknown.
 [AVHWDeviceContext @ 0x5bebf70995c0] VAAPI driver: Intel iHD driver for
 Intel(R) Gen Graphics - 25.1.3 ().
 [AVHWDeviceContext @ 0x5bebf70995c0] Driver not found in known nonstandard
 list, using standard behaviour.
 Successfully opened the file.
 Stream mapping:
   Stream #0:0 -> #0:0 (av1 (native) -> mjpeg (native))
 [vost#0:0/mjpeg @ 0x5bebf7098c40] Starting thread...
 [vf#0:0 @ 0x5bebf70992c0] Starting thread...
 [vist#0:0/av1 @ 0x5bebf709a5c0] [dec:av1 @ 0x5bebf709bd00] Starting
 thread...
 [in#0/matroska,webm @ 0x5bebf70945c0] Starting thread...
 Press [q] to stop, [?] for help
 [libdav1d @ 0x5bebf7099f00] Frame 16:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [av1 @ 0x5bebf709c540] Frame 0:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [av1 @ 0x5bebf709c540] Total OBUs on this packet: 2.
 [av1 @ 0x5bebf709c540] OBU idx:0, type:1, content available:1.
 [av1 @ 0x5bebf709c540] OBU idx:1, type:6, content available:1.
 [av1 @ 0x5bebf709c540] Format vaapi chosen by get_format().
 [av1 @ 0x5bebf709c540] Format vaapi requires hwaccel av1_vaapi
 initialisation.
 [libdav1d @ 0x5bebf7099f00] Frame 8:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [libdav1d @ 0x5bebf7099f00] Frame 4:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [libdav1d @ 0x5bebf7099f00] Frame 2:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [libdav1d @ 0x5bebf7099f00] Frame 1:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [libdav1d @ 0x5bebf7099f00] Frame 3:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [libdav1d @ 0x5bebf7099f00] Frame 6:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [libdav1d @ 0x5bebf7099f00] Frame 5:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [libdav1d @ 0x5bebf7099f00] Frame 7:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [libdav1d @ 0x5bebf7099f00] Frame 12:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [libdav1d @ 0x5bebf7099f00] Frame 10:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [libdav1d @ 0x5bebf7099f00] Frame 9:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [av1 @ 0x5bebf709c540] Considering format 0x3231564e -> nv12.
 [av1 @ 0x5bebf709c540] Considering format 0x30313050 -> p010le.
 [av1 @ 0x5bebf709c540] Picked p010le (0x30313050) as best match for
 yuv420p10le.
 [AVHWFramesContext @ 0x7a44840039c0] Created surface 0.
 [AVHWFramesContext @ 0x7a44840039c0] Direct mapping possible.
 [av1 @ 0x5bebf709c540] Decode context initialised: 0x53/0x10000000.
 [av1 @ 0x5bebf709c540] AV1 decode get format: vaapi.
 [av1 @ 0x5bebf709c540] Param buffer (type 0, 1160 bytes) is 0.
 [av1 @ 0x5bebf709c540] Slice 0 param buffer (40 bytes) is 0x1.
 [av1 @ 0x5bebf709c540] Slice 0 data buffer (34 bytes) is 0x2.
 [av1 @ 0x5bebf709c540] Decode to surface 0.
 [AVHWFramesContext @ 0x7a44840039c0] Map surface 0.
 [AVHWFramesContext @ 0x7a44840039c0] Unmap surface 0.
 [av1 @ 0x5bebf709c540] Frame 16:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [av1 @ 0x5bebf709c540] Frame 8:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [av1 @ 0x5bebf709c540] Frame 4:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [av1 @ 0x5bebf709c540] Frame 2:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [av1 @ 0x5bebf709c540] Frame 1:  size 320x180  upscaled 320  render
 320x180  subsample 2x2  bitdepth 10  tiles 1x1.
 [av1 @ 0x5bebf709c540] Total OBUs on this packet: 5.
 [av1 @ 0x5bebf709c540] OBU idx:0, type:6, content available:1.
 detected 20 logical cores
 [AVHWFramesContext @ 0x7a44840039c0] Created surface 0x1.
 [AVHWFramesContext @ 0x7a44840039c0] Created surface 0x2.
 [av1 @ 0x5bebf709c540] Param buffer (type 0, 1160 bytes) is 0x2.
 [av1 @ 0x5bebf709c540] Slice 0 param buffer (40 bytes) is 0x1.
 [av1 @ 0x5bebf709c540] Slice 0 data buffer (229 bytes) is 0.
 [av1 @ 0x5bebf709c540] Decode to surface 0x2.
 [graph -1 input from stream 0:0 @ 0x7a448c0041c0] Setting 'video_size' to
 value '320x180'
 [graph -1 input from stream 0:0 @ 0x7a448c0041c0] Setting 'pix_fmt' to
 value '158'
 [graph -1 input from stream 0:0 @ 0x7a448c0041c0] Setting 'time_base' to
 value '1/1000'
 [graph -1 input from stream 0:0 @ 0x7a448c0041c0] Setting 'pixel_aspect'
 to value '1/1'
 [graph -1 input from stream 0:0 @ 0x7a448c0041c0] Setting 'colorspace' to
 value '14'
 [graph -1 input from stream 0:0 @ 0x7a448c0041c0] Setting 'range' to value
 '1'
 [graph -1 input from stream 0:0 @ 0x7a448c0041c0] Setting 'frame_rate' to
 value '24/1'
 [graph -1 input from stream 0:0 @ 0x7a448c0041c0] w:320 h:180
 pixfmt:p010le tb:1/1000 fr:24/1 sar:1/1 csp:ictcp range:tv
 [format @ 0x7a448c004d80] Setting 'pix_fmts' to value
 'yuvj420p|yuvj422p|yuvj444p|yuv420p|yuv422p|yuv444p'
 [format @ 0x7a448c004d80] Setting 'color_ranges' to value 'pc'
 [auto_scale_0 @ 0x7a448c006a00] w:iw h:ih flags:'' interl:0
 [format @ 0x7a448c004d80] auto-inserting filter 'auto_scale_0' between the
 filter 'Parsed_null_0' and the filter 'format'
 Impossible to convert between the formats supported by the filter
 'Parsed_null_0' and the filter 'auto_scale_0'
 [vf#0:0 @ 0x5bebf70992c0] Error reinitializing filters!
 [vf#0:0 @ 0x5bebf70992c0] Task finished with error code: -38 (Function not
 implemented)
 [out#0/image2 @ 0x5bebf7098500] sq: 0 EOF
 [out#0/image2 @ 0x5bebf7098500] sq: finish 0; head ts NOPTS
 [out#0/image2 @ 0x5bebf7098500] sq: finish queue
 [vf#0:0 @ 0x5bebf70992c0] Terminating thread with return code -38
 (Function not implemented)
 [vost#0:0/mjpeg @ 0x5bebf7098c40] Encoder thread received EOF
 [vost#0:0/mjpeg @ 0x5bebf7098c40] Could not open encoder before EOF
 [vost#0:0/mjpeg @ 0x5bebf7098c40] Task finished with error code: -22
 (Invalid argument)
 [vost#0:0/mjpeg @ 0x5bebf7098c40] Terminating thread with return code -22
 (Invalid argument)
 [av1 @ 0x5bebf709c540] OBU idx:1, type:6, content available:1.
 [AVHWFramesContext @ 0x7a44840039c0] Created surface 0x3.
 [AVHWFramesContext @ 0x7a44840039c0] Created surface 0x4.
 [av1 @ 0x5bebf709c540] Param buffer (type 0, 1160 bytes) is 0.
 [av1 @ 0x5bebf709c540] Slice 0 param buffer (40 bytes) is 0x1.
 [av1 @ 0x5bebf709c540] Slice 0 data buffer (90 bytes) is 0x2.
 [av1 @ 0x5bebf709c540] Decode to surface 0x4.
 [av1 @ 0x5bebf709c540] OBU idx:2, type:6, content available:1.
 [AVHWFramesContext @ 0x7a44840039c0] Created surface 0x5.
 [AVHWFramesContext @ 0x7a44840039c0] Created surface 0x6.
 [av1 @ 0x5bebf709c540] Param buffer (type 0, 1160 bytes) is 0x2.
 [av1 @ 0x5bebf709c540] Slice 0 param buffer (40 bytes) is 0x1.
 [av1 @ 0x5bebf709c540] Slice 0 data buffer (41 bytes) is 0.
 [av1 @ 0x5bebf709c540] Decode to surface 0x6.
 [av1 @ 0x5bebf709c540] OBU idx:3, type:6, content available:1.
 [AVHWFramesContext @ 0x7a44840039c0] Created surface 0x7.
 [av1 @ 0x5bebf709c540] Param buffer (type 0, 1160 bytes) is 0.
 [av1 @ 0x5bebf709c540] Slice 0 param buffer (40 bytes) is 0x1.
 [av1 @ 0x5bebf709c540] Slice 0 data buffer (11 bytes) is 0x2.
 [av1 @ 0x5bebf709c540] Decode to surface 0x7.
 [av1 @ 0x5bebf709c540] OBU idx:4, type:6, content available:1.
 [AVHWFramesContext @ 0x7a44840039c0] Created surface 0x8.
 [av1 @ 0x5bebf709c540] Param buffer (type 0, 1160 bytes) is 0x2.
 [av1 @ 0x5bebf709c540] Slice 0 param buffer (40 bytes) is 0x1.
 [av1 @ 0x5bebf709c540] Slice 0 data buffer (3 bytes) is 0.
 [av1 @ 0x5bebf709c540] Decode to surface 0x8.
 [AVHWFramesContext @ 0x7a44840039c0] Map surface 0x8.
 [AVHWFramesContext @ 0x7a44840039c0] Unmap surface 0x8.
 [vist#0:0/av1 @ 0x5bebf709a5c0] [dec:av1 @ 0x5bebf709bd00] Decoder
 returned EOF, finishing
 [vist#0:0/av1 @ 0x5bebf709a5c0] [dec:av1 @ 0x5bebf709bd00] Terminating
 thread with return code 0 (success)
 [vist#0:0/av1 @ 0x5bebf709a5c0] All consumers of this stream are done
 [in#0/matroska,webm @ 0x5bebf70945c0] All consumers are done
 [in#0/matroska,webm @ 0x5bebf70945c0] Terminating thread with return code
 0 (success)
 [out#0/image2 @ 0x5bebf7098500] Nothing was written into output file,
 because at least one of its streams received no packets.
 frame=    0 fps=0.0 q=0.0 Lsize=       0KiB time=N/A bitrate=N/A speed=N/A
 [in#0/matroska,webm @ 0x5bebf70945c0] Input file #0 (in.mkv):
 [in#0/matroska,webm @ 0x5bebf70945c0]   Input stream #0:0 (video): 11
 packets read (1928 bytes); 2 frames decoded; 0 decode errors;
 [in#0/matroska,webm @ 0x5bebf70945c0]   Total: 11 packets (1928 bytes)
 demuxed
 [AVIOContext @ 0x5bebf709d180] Statistics: 32768 bytes read, 0 seeks
 Conversion failed!
 }}}
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/11500#comment:4>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
_______________________________________________
FFmpeg-trac mailing list
FFmpeg-trac@avcodec.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-trac

To unsubscribe, visit link above, or email
ffmpeg-trac-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to