[FFmpeg-trac] #7699(avcodec:new): [regression] vaapi: Zero refs for a frame with P or B slices

FFmpeg trac at avcodec.org
Fri Jan 25 19:18:25 EET 2019


#7699: [regression] vaapi: Zero refs for a frame with P or B slices
-------------------------------------+-------------------------------------
             Reporter:  uartie       |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  avcodec      |                  Version:  git-
             Keywords:  vaapi,       |  master
  hevc, h265                         |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:

 Since commit:
 {{{
 commit 362992e94bccca225d180e791f7e24858efb857d
 Author: Mark Thompson <sw at jkqxz.net>
 Date:   Thu Dec 20 20:39:59 2018 +0000

     vaapi_encode_h265: Support more complex reference structures

     The reference picture sets are now constructed directly from the DPB
     information.
 }}}

 Unable to decode HEVC 8-bit and 10-bit videos that were encoded by
 hevc_vaapi with {{{g > 1}}} (GOP) and {{{bf == 0 or bf == 1 or bf == 3}}}
 (B-frames) in any RC-mode (CQP, CBR, VBR).

 This can be reproduced with both iHD and i965 intel drivers.

 How to reproduce:
 {{{
 % ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128 \
   -v verbose -f rawvideo -pix_fmt yuv420p -s:v 1920x1080 \
   -i input.yuv -vf 'format=nv12,hwupload' -c:v hevc_vaapi \
   -g 30 -qp 14 -bf 0 -vframes 10 -y output.h265

 ffmpeg version N-93014-g362992e94bcc Copyright (c) 2000-2019 the FFmpeg
 developers
   built with gcc 8 (GCC)
   configuration: --prefix=/home/uaeoff/Work/workspace/media/install
 --disable-static --enable-shared --enable-libdrm --enable-vaapi --enable-
 libmfx --disable-amf --disable-audiotoolbox --disable-cuda --disable-cuda-
 sdk --disable-cuvid --disable-d3d11va --disable-dxva2 --disable-libnpp
 --disable-mmal --disable-nvdec --disable-nvenc --disable-omx --disable-
 omx-rpi --disable-rkmpp --disable-v4l2-m2m --disable-vdpau --disable-
 videotoolbox
   libavutil      56. 26.100 / 56. 26.100
   libavcodec     58. 44.100 / 58. 44.100
   libavformat    58. 26.100 / 58. 26.100
   libavdevice    58.  6.101 / 58.  6.101
   libavfilter     7. 48.100 /  7. 48.100
   libswscale      5.  4.100 /  5.  4.100
   libswresample   3.  4.100 /  3.  4.100
 [AVHWDeviceContext @ 0x1f01680] Opened VA display via DRM device
 /dev/dri/renderD128.
 [AVHWDeviceContext @ 0x1f01680] libva: VA-API version 1.4.0
 [AVHWDeviceContext @ 0x1f01680] libva: va_getDriverName() returns 0
 [AVHWDeviceContext @ 0x1f01680] libva: Trying to open
 /home/uaeoff/Work/workspace/media/install/lib/dri/i965_drv_video.so
 [AVHWDeviceContext @ 0x1f01680] libva: Found init function
 __vaDriverInit_1_4
 [AVHWDeviceContext @ 0x1f01680] libva: va_openDriver() returns 0
 [AVHWDeviceContext @ 0x1f01680] Initialised VAAPI connection: version 1.4
 [AVHWDeviceContext @ 0x1f01680] VAAPI driver: Intel i965 driver for
 Intel(R) Kaby Lake - 2.4.0.pre1 (2.4.0.pre1).
 [AVHWDeviceContext @ 0x1f01680] Driver not found in known nonstandard
 list, using standard behaviour.
 [rawvideo @ 0x1f123c0] Estimating duration from bitrate, this may be
 inaccurate
 Input #0, rawvideo, from 'input.yuv':
   Duration: 00:00:06.00, start: 0.000000, bitrate: 622080 kb/s
     Stream #0:0: Video: rawvideo, 1 reference frame (I420 / 0x30323449),
 yuv420p, 1920x1080, 622080 kb/s, 25 tbr, 25 tbn, 25 tbc
 Stream mapping:
   Stream #0:0 -> #0:0 (rawvideo (native) -> hevc (hevc_vaapi))
 Press [q] to stop, [?] for help
 [graph 0 input from stream 0:0 @ 0x1f24480] w:1920 h:1080 pixfmt:yuv420p
 tb:1/25 fr:25/1 sar:0/1 sws_param:flags=2
 [auto_scaler_0 @ 0x1f27980] w:iw h:ih flags:'bicubic' interl:0
 [Parsed_format_0 @ 0x1f23b40] auto-inserting filter 'auto_scaler_0'
 between the filter 'graph 0 input from stream 0:0' and the filter
 'Parsed_format_0'
 [auto_scaler_0 @ 0x1f27980] w:1920 h:1080 fmt:yuv420p sar:0/1 -> w:1920
 h:1080 fmt:nv12 sar:0/1 flags:0x4
 [hevc_vaapi @ 0x1f1fd40] Input surface format is nv12.
 [hevc_vaapi @ 0x1f1fd40] Using VAAPI profile VAProfileHEVCMain (17).
 [hevc_vaapi @ 0x1f1fd40] Using VAAPI entrypoint VAEntrypointEncSlice (6).
 [hevc_vaapi @ 0x1f1fd40] Using VAAPI render target format YUV420 (0x1).
 [hevc_vaapi @ 0x1f1fd40] Using constant-quality mode.
 [hevc_vaapi @ 0x1f1fd40] Using intra and P-frames (supported references: 3
 / 1).
 [hevc_vaapi @ 0x1f1fd40] All wanted packed headers available (wanted 0xd,
 found 0x1f).
 [hevc_vaapi @ 0x1f1fd40] Using level 4.
 Output #0, hevc, to 'output.h265':
   Metadata:
     encoder         : Lavf58.26.100
     Stream #0:0: Video: hevc (hevc_vaapi) (Main), 1 reference frame,
 vaapi_vld, 1920x1080, q=-1--1, 25 fps, 25 tbn, 25 tbc
     Metadata:
       encoder         : Lavc58.44.100 hevc_vaapi
 No more output streams to write to, finishing.
 frame=   10 fps=0.0 q=-0.0 Lsize=    1261kB time=00:00:00.40
 bitrate=25818.6kbits/s speed=3.53x
 video:1261kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 0.000000%
 Input file #0 (input.yuv):
   Input stream #0:0 (video): 10 packets read (31104000 bytes); 10 frames
 decoded;
   Total: 10 packets (31104000 bytes) demuxed
 Output file #0 (output.h265):
   Output stream #0:0 (video): 10 frames encoded; 10 packets muxed (1290930
 bytes);
   Total: 10 packets (1290930 bytes) muxed
 [AVIOContext @ 0x1f20b40] Statistics: 0 seeks, 5 writeouts
 [AVIOContext @ 0x1f1b600] Statistics: 31104000 bytes read, 0 seeks


 % ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128 \
   -v verbose -i output.h265 -pix_fmt yuv420p -f rawvideo \
   -vsync passthrough -vframes 10 -y output.yuv

 ffmpeg version N-93014-g362992e94bcc Copyright (c) 2000-2019 the FFmpeg
 developers
   built with gcc 8 (GCC)
   configuration: --prefix=/home/uaeoff/Work/workspace/media/install
 --disable-static --enable-shared --enable-libdrm --enable-vaapi --enable-
 libmfx --disable-amf --disable-audiotoolbox --disable-cuda --disable-cuda-
 sdk --disable-cuvid --disable-d3d11va --disable-dxva2 --disable-libnpp
 --disable-mmal --disable-nvdec --disable-nvenc --disable-omx --disable-
 omx-rpi --disable-rkmpp --disable-v4l2-m2m --disable-vdpau --disable-
 videotoolbox
   libavutil      56. 26.100 / 56. 26.100
   libavcodec     58. 44.100 / 58. 44.100
   libavformat    58. 26.100 / 58. 26.100
   libavdevice    58.  6.101 / 58.  6.101
   libavfilter     7. 48.100 /  7. 48.100
   libswscale      5.  4.100 /  5.  4.100
   libswresample   3.  4.100 /  3.  4.100
 [AVHWDeviceContext @ 0x9e0500] Opened VA display via DRM device
 /dev/dri/renderD128.
 [AVHWDeviceContext @ 0x9e0500] libva: VA-API version 1.4.0
 [AVHWDeviceContext @ 0x9e0500] libva: va_getDriverName() returns 0
 [AVHWDeviceContext @ 0x9e0500] libva: Trying to open
 /home/uaeoff/Work/workspace/media/install/lib/dri/i965_drv_video.so
 [AVHWDeviceContext @ 0x9e0500] libva: Found init function
 __vaDriverInit_1_4
 [AVHWDeviceContext @ 0x9e0500] libva: va_openDriver() returns 0
 [AVHWDeviceContext @ 0x9e0500] Initialised VAAPI connection: version 1.4
 [AVHWDeviceContext @ 0x9e0500] VAAPI driver: Intel i965 driver for
 Intel(R) Kaby Lake - 2.4.0.pre1 (2.4.0.pre1).
 [AVHWDeviceContext @ 0x9e0500] Driver not found in known nonstandard list,
 using standard behaviour.
 Input #0, hevc, from 'output.h265':
   Duration: N/A, bitrate: N/A
     Stream #0:0: Video: hevc (Main), 1 reference frame, yuv420p(tv),
 1920x1080 (1920x1088), 25 fps, 25 tbr, 1200k tbn, 25 tbc
 Stream mapping:
   Stream #0:0 -> #0:0 (hevc (native) -> rawvideo (native))
 Press [q] to stop, [?] for help
 [hevc @ 0xa3e100] Zero refs for a frame with P or B slices.
 [hevc @ 0xa3e100] Error parsing NAL unit #0.
 [hevc @ 0xa5fcc0] Zero refs for a frame with P or B slices.
 [hevc @ 0xa5fcc0] Error parsing NAL unit #0.
 [hevc @ 0xa15400] Zero refs for a frame with P or B slices.
 [hevc @ 0xa15400] Error parsing NAL unit #0.
 [hevc @ 0xa25880] Zero refs for a frame with P or B slices.
 [hevc @ 0xa25880] Error parsing NAL unit #0.
 [hevc @ 0xa2e540] Zero refs for a frame with P or B slices.
 [hevc @ 0xa2e540] Error parsing NAL unit #0.
 [hevc @ 0xacb1c0] Zero refs for a frame with P or B slices.
 [hevc @ 0xacb1c0] Error parsing NAL unit #0.
 [hevc @ 0xadb8c0] Zero refs for a frame with P or B slices.
 [hevc @ 0xadb8c0] Error parsing NAL unit #0.
 [hevc @ 0xaec100] Zero refs for a frame with P or B slices.
 [hevc @ 0xaec100] Error parsing NAL unit #0.
 [graph 0 input from stream 0:0 @ 0x1560bc0] w:1920 h:1080 pixfmt:nv12
 tb:1/1200000 fr:25/1 sar:0/1 sws_param:flags=2
 [auto_scaler_0 @ 0x1563100] w:iw h:ih flags:'bicubic' interl:0
 [format @ 0x1561440] auto-inserting filter 'auto_scaler_0' between the
 filter 'Parsed_null_0' and the filter 'format'
 [auto_scaler_0 @ 0x1563100] w:1920 h:1080 fmt:nv12 sar:0/1 -> w:1920
 h:1080 fmt:yuv420p sar:0/1 flags:0x4
 Output #0, rawvideo, to 'output.yuv':
   Metadata:
     encoder         : Lavf58.26.100
     Stream #0:0: Video: rawvideo, 1 reference frame (I420 / 0x30323449),
 yuv420p, 1920x1080, q=2-31, 622080 kb/s, 25 fps, 25 tbn, 25 tbc
     Metadata:
       encoder         : Lavc58.44.100 rawvideo
 Error while decoding stream #0:0: Invalid data found when processing input
 [hevc @ 0x9f4000] Zero refs for a frame with P or B slices.
 [hevc @ 0x9f4000] Error parsing NAL unit #0.
 Error while decoding stream #0:0: Invalid data found when processing input
     Last message repeated 7 times
 No more output streams to write to, finishing.
 frame=    1 fps=0.0 q=-0.0 Lsize=    3038kB time=00:00:00.04
 bitrate=622080.0kbits/s speed=1.57x
 video:3038kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 0.000000%
 Input file #0 (output.h265):
   Input stream #0:0 (video): 10 packets read (1290930 bytes); 1 frames
 decoded;
   Total: 10 packets (1290930 bytes) demuxed
 Output file #0 (output.yuv):
   Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (3110400
 bytes);
   Total: 1 packets (3110400 bytes) muxed
 [AVIOContext @ 0x9f7f40] Statistics: 0 seeks, 12 writeouts
 [AVIOContext @ 0x9fa180] Statistics: 1290930 bytes read, 0 seeks
 Conversion failed!

 }}}
 Patches should be submitted to the ffmpeg-devel mailing list and not this
 bug tracker.

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


More information about the FFmpeg-trac mailing list