[FFmpeg-trac] #8067(avfilter:new): vf_scale_vaapi fails when stream contains resolution changes

FFmpeg trac at avcodec.org
Thu Aug 8 22:23:03 EEST 2019


#8067: vf_scale_vaapi fails when stream contains resolution changes
----------------------------------+--------------------------------------
             Reporter:  tmm1      |                     Type:  defect
               Status:  new       |                 Priority:  normal
            Component:  avfilter  |                  Version:  git-master
             Keywords:            |               Blocked By:
             Blocking:            |  Reproduced by developer:  0
Analyzed by developer:  0         |
----------------------------------+--------------------------------------
 Summary of the bug:

 Given an mpegts stream which contains resolution changes, using vaapi
 decoding along with the scale_vaapi filter causes failures when the
 resolution change is encountered.

 ffmpeg appears to be attempting to insert an sws scaler.

 How to reproduce:
 {{{
 % ffmpeg -loglevel verbose -hwaccel vaapi -hwaccel_output_format vaapi -i
 input.ts -map 0:v -an -sn -c:v h264_vaapi -init_hw_device
 vaapi=intel:/dev/dri/renderD128 -profile:v 100 -level 42 -filter_hw_device
 intel -filter:v scale_vaapi=1280:720 -b:v 3000k -minrate 2700k -maxrate
 3300k -bufsize 6000k -f null -y /dev/null
 ffmpeg version 8183713 Copyright (c) 2000-2019 the FFmpeg developers
   built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.4)
   libavutil      56. 31.100 / 56. 31.100
   libavcodec     58. 54.100 / 58. 54.100
   libavformat    58. 29.100 / 58. 29.100
   libavdevice    58.  8.100 / 58.  8.100
   libavfilter     7. 57.100 /  7. 57.100
   libswscale      5.  5.100 /  5.  5.100
   libswresample   3.  5.100 /  3.  5.100
   libpostproc    55.  5.100 / 55.  5.100

 [AVHWDeviceContext @ 0x255a000] libva: VA-API version 1.5.0
 [AVHWDeviceContext @ 0x255a000] libva: va_getDriverName() returns 0
 [AVHWDeviceContext @ 0x255a000] libva: va_openDriver() returns 0
 [AVHWDeviceContext @ 0x255a000] Initialised VAAPI connection: version 1.5
 [AVHWDeviceContext @ 0x255a000] VAAPI driver: Intel i965 driver for
 Intel(R) Bay Trail - 2.4.0.pre1 (2.4.0.pre1).
 [AVHWDeviceContext @ 0x255a000] Driver not found in known nonstandard
 list, using standard behaviour.
 [mpegts @ 0x2569940] parser not found for codec timed_id3, packets or
 times may be invalid.
     Last message repeated 1 times
 [h264 @ 0x256f740] Reinit context to 1280x720, pix_fmt: yuv420p
 [mpegts @ 0x2569940] max_analyze_duration 5000000 reached at 5034667
 microseconds st:0
 Input #0, mpegts, from 'input.ts':
   Duration: 00:19:18.48, start: 0.033356, bitrate: 3445 kb/s
   Program 1
     Stream #0:0[0x101]: Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F),
 48000 Hz, stereo, fltp, 124 kb/s
     Stream #0:1[0x102]: Video: h264 (High), 1 reference frame
 ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, progressive, center),
 1280x720, 29.97 fps, 29.97 tbr, 90k tbn, 96k tbc
     Stream #0:2[0x103]: Data: timed_id3 (ID3  / 0x20334449)
 Stream mapping:
   Stream #0:1 -> #0:0 (h264 (native) -> h264 (h264_vaapi))
 Press [q] to stop, [?] for help
 [mpegts @ 0x2569940] Correcting start time by 2577
 [h264 @ 0x25a9100] Reinit context to 1280x720, pix_fmt: vaapi_vld
 [graph 0 input from stream 0:1 @ 0x282a340] w:1280 h:720 pixfmt:vaapi_vld
 tb:1/90000 fr:30000/1001 sar:0/1 sws_param:flags=2
 [h264_vaapi @ 0x25a6400] Input surface format is nv12.
 [h264_vaapi @ 0x25a6400] Using VAAPI profile VAProfileH264High (7).
 [h264_vaapi @ 0x25a6400] Using VAAPI entrypoint VAEntrypointEncSlice (6).
 [h264_vaapi @ 0x25a6400] Using VAAPI render target format YUV420 (0x1).
 [h264_vaapi @ 0x25a6400] RC mode: VBR.
 [h264_vaapi @ 0x25a6400] RC target: 90% of 3300000 bps over 1818 ms.
 [h264_vaapi @ 0x25a6400] RC buffer: 6000000 bits, initial fullness 4500000
 bits.
 [h264_vaapi @ 0x25a6400] RC framerate: 30000/1001 (29.97 fps).
 [h264_vaapi @ 0x25a6400] Using intra, P- and B-frames (supported
 references: 1 / 1).
 [h264_vaapi @ 0x25a6400] All wanted packed headers available (wanted 0xd,
 found 0x1f).
 Output #0, null, to '/dev/null':
   Metadata:
     encoder         : Lavf58.29.100
     Stream #0:0: Video: h264 (h264_vaapi) (High), 1 reference frame,
 vaapi_vld(center), 1280x720, q=-1--1, 3000 kb/s, 29.97 fps, 29.97 tbn,
 29.97 tbc
     Metadata:
       encoder         : Lavc58.54.100 h264_vaapi
 [h264 @ 0x261e580] Reinit context to 1920x1088, pix_fmt: vaapi_vld
 [graph 0 input from stream 0:1 @ 0x26e9d40] w:1920 h:1080 pixfmt:vaapi_vld
 tb:1/90000 fr:30000/1001 sar:0/1 sws_param:flags=2
 [scaler_out_0_0 @ 0x27cb8c0] w:1280 h:720 flags:'bicubic' interl:0
 [auto_scaler_0 @ 0x27a6200] w:iw h:ih flags:'bicubic' interl:0
 [scaler_out_0_0 @ 0x27cb8c0] auto-inserting filter 'auto_scaler_0' between
 the filter 'Parsed_scale_vaapi_0' and the filter 'scaler_out_0_0'
 Impossible to convert between the formats supported by the filter
 'Parsed_scale_vaapi_0' and the filter 'auto_scaler_0'
 Error reinitializing filters!
 Failed to inject frame into filter network: Function not implemented
 Error while processing the decoded data for stream #0:1
 [AVIOContext @ 0x25725c0] Statistics: 6606992 bytes read, 2 seeks
 Conversion failed!
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8067>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list