[FFmpeg-trac] #8395(ffplay:new): SPS/PPS with every slice of an IDR frame

FFmpeg trac at avcodec.org
Fri Nov 22 19:57:31 EET 2019


#8395: SPS/PPS with every slice of an IDR frame
----------------------------------------+----------------------------------
             Reporter:  ziaouina        |                     Type:  defect
               Status:  new             |                 Priority:  normal
            Component:  ffplay          |                  Version:  4.2
             Keywords:  Decoding fails  |               Blocked By:
             Blocking:                  |  Reproduced by developer:  1
Analyzed by developer:  1               |
----------------------------------------+----------------------------------
 Summary of the bug:
 The ffmpeg H264 decoding fails whenever there a input stream where SPS/PPS
 is sent along every slice of an IDR frame. It seems like the decoder
 treats every slice as a single frame but incomplete and try to perform
 some error concealment, and of course the followed P frames get corrupted.
 Potential solution is to ignore SPS/PPSs coming in mid IDR frame or Non
 IDR frame; ie accept SPS/PPS with the first IDR slice only.
 How to reproduce:
 {{{
 % ffplay h264_sps_pps_per_slice.h264
 ffplay version N-91273-g67747c89ad Copyright (c) 2003-2018 the FFmpeg
 developers
   built with gcc 7.3.0 (GCC)
   configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
 bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass
 --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-
 libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
 --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr
 --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack
 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2
 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-
 libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa
 --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx
 --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-
 nvenc --enable-nvdec --enable-dxva2 --enable-avisynth
   libavutil      56. 18.102 / 56. 18.102
   libavcodec     58. 20.101 / 58. 20.101
   libavformat    58. 17.100 / 58. 17.100
   libavdevice    58.  4.101 / 58.  4.101
   libavfilter     7. 25.100 /  7. 25.100
   libswscale      5.  2.100 /  5.  2.100
   libswresample   3.  2.100 /  3.  2.100
   libpostproc    55.  2.100 / 55.  2.100
 [h264 @ 000001d54b640080] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d54b640080] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d54b640080] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 Input #0, h264, from 'C:/work/video/Zexy_Salavaness_source.h264':
   Duration: N/A, bitrate: N/A
     Stream #0:0: Video: h264 (High), yuv420p(tv, bt709, progressive),
 1280x720 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 1200k tbn, 60 tbc
 [h264 @ 000001d552b78200] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552849800] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552ad2800] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c64440] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c648c0] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c3a040] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d54b65a000] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c64440] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c648c0] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c648c0] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c3a040] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c58ac0] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552ad2800] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d54b6d9c40] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d54b65a000] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c3a040] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c58ac0] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552b78200] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552849800] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552ad2800] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d54b6d9c40] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c58ac0] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552b78200] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552849800] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552b78200] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552849800] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552ad2800] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c64440] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c648c0] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c3a040] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d54b65a000] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c64440] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c648c0] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552ad2800] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d54b6d9c40] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d54b65a000] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d54b6d9c40] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d54b65a000] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c64440] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c648c0] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c3a040] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c58ac0] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c3a040] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c58ac0] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552b78200] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552c58ac0] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552b78200] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame
 [h264 @ 000001d552849800] concealing 2400 DC, 2400 AC, 2400 MV errors in I
 frame

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


More information about the FFmpeg-trac mailing list