#528 closed defect (fixed)
Image corruption in H264 from DVB
Reported by: | Hendrik | Owned by: | |
---|---|---|---|
Priority: | minor | Component: | avcodec |
Version: | git-master | Keywords: | H264 mpegts |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
Hi,
following sample shows image corruption during decoding/transcoding/playback. The problem can be seen both with ffmpeg (after transcode into .avi for example), or with ffplay during playback.
The problem occurs around 3 seconds into playback, when the laptop keyboard is shown, as well as briefly before the scene switch.
Sample link:
http://files.1f0.de/samples/BBCOneHD20110921_21161.ts
Full ffmpeg output:
ffmpeg version N-33213-g2a9046c, Copyright (c) 2000-2011 the FFmpeg developers
built on Oct 2 2011 10:30:12 with gcc 4.6.1
configuration: --enable-gpl --enable-version3 --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
libavutil 51. 18. 0 / 51. 18. 0
libavcodec 53. 19. 0 / 53. 19. 0
libavformat 53. 13. 0 / 53. 13. 0
libavdevice 53. 4. 0 / 53. 4. 0
libavfilter 2. 43. 6 / 2. 43. 6
libswscale 2. 1. 0 / 2. 1. 0
libpostproc 51. 2. 0 / 51. 2. 0
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS referenced
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] no frame!
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS referenced
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] no frame!
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS referenced
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] no frame!
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS referenced
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] no frame!
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS referenced
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] no frame!
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS referenced
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] no frame!
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS referenced
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] no frame!
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS referenced
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] no frame!
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS referenced
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] no frame!
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS referenced
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] no frame!
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS referenced
[h264 @ 03DFB180] non-existing SPS 0 referenced in buffering period
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] non-existing PPS 0 referenced
[h264 @ 03DFB180] decode_slice_header error
[h264 @ 03DFB180] no frame!
[mpegts @ 01B191A0] PES packet size mismatch
[mpegts @ 01B191A0] Could not find codec parameters (Audio: mp3 ([3][0][0][0] / 0x0003), 0 channels, s16)
[mpegts @ 01B191A0] Could not find codec parameters (Unknown: none ([11][0][0][0] / 0x000B))
Last message repeated 3 times
[mpegts @ 01B191A0] Could not find codec parameters (Unknown: none ([5][0][0][0] / 0x0005))
Last message repeated 9 times
[NULL @ 01B1FA40] start time is not set in estimate_timings_from_pts
[NULL @ 03E015C0] start time is not set in estimate_timings_from_pts
[NULL @ 03E078E0] start time is not set in estimate_timings_from_pts
[NULL @ 03E0D9C0] start time is not set in estimate_timings_from_pts
[NULL @ 03E13AC0] start time is not set in estimate_timings_from_pts
[NULL @ 03E19A20] start time is not set in estimate_timings_from_pts
[NULL @ 03E1FAE0] start time is not set in estimate_timings_from_pts
[NULL @ 03E25AE0] start time is not set in estimate_timings_from_pts
[NULL @ 03E2BA80] start time is not set in estimate_timings_from_pts
[NULL @ 03E319C0] start time is not set in estimate_timings_from_pts
[NULL @ 03E37AA0] start time is not set in estimate_timings_from_pts
[NULL @ 03E3DA00] start time is not set in estimate_timings_from_pts
[NULL @ 03E43AE0] start time is not set in estimate_timings_from_pts
[NULL @ 03E49A80] start time is not set in estimate_timings_from_pts
[NULL @ 03E8AFA0] start time is not set in estimate_timings_from_pts
[NULL @ 03E9C380] start time is not set in estimate_timings_from_pts
[NULL @ 03EA2280] start time is not set in estimate_timings_from_pts
[mpegts @ 01B191A0] PES packet size mismatch
Seems stream 0 codec frame rate differs from container frame rate: 50.00 (50/1) -> 50.00 (50/1)
Input #0, mpegts, from 'BBCOneHD20110921_2116#1.ts':
Duration: 00:00:05.40, start: 46167.342433, bitrate: 7635 kb/s
Program 6941
Stream #0:0[0x1518]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1440x1080 [SAR 4:3 DAR 16:9], 31.19 fps, 50 tbr, 90k tbn, 50 tbc
Stream #0:1[0x151a](NAR): Audio: mp3 ([3][0][0][0] / 0x0003), 0 channels, s16
Stream #0:2[0x151b](eng): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006)
Stream #0:3[0xf05]: Unknown: none ([11][0][0][0] / 0x000B)
Stream #0:4[0xf06]: Unknown: none ([11][0][0][0] / 0x000B)
Stream #0:5[0xf07]: Unknown: none ([11][0][0][0] / 0x000B)
Stream #0:6[0xf08]: Unknown: none ([11][0][0][0] / 0x000B)
Stream #0:7[0x151c](eng): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
Stream #0:8[0xf00]: Unknown: none ([5][0][0][0] / 0x0005)
Stream #0:9[0xf01]: Unknown: none ([5][0][0][0] / 0x0005)
Stream #0:10[0xf02]: Unknown: none ([5][0][0][0] / 0x0005)
Stream #0:11[0xf03]: Unknown: none ([5][0][0][0] / 0x0005)
Stream #0:12[0xf04]: Unknown: none ([5][0][0][0] / 0x0005)
Stream #0:13[0x911]: Unknown: none ([5][0][0][0] / 0x0005)
Stream #0:14[0x912]: Unknown: none ([5][0][0][0] / 0x0005)
Stream #0:15[0x913]: Unknown: none ([5][0][0][0] / 0x0005)
Stream #0:16[0x1519](eng): Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz, stereo, s16, 192 kb/s
Stream #0:17[0x919]: Unknown: none ([5][0][0][0] / 0x0005)
Stream #0:18[0x91a]: Unknown: none ([5][0][0][0] / 0x0005)
[buffer @ 040DFF60] w:1440 h:1080 pixfmt:yuv420p tb:1/1000000 sar:4/3 sws_param:
Output #0, avi, to 'bbcone.avi':
Metadata:
ISFT : Lavf53.13.0
Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 1440x1080 [SAR 4:3 DAR 16:9], q=2-31, 200 kb/s, 50 tbn, 50 tbc
Stream #0:1(eng): Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16, 128 kb/s
Stream mapping:
Stream #0.0 -> #0.0 (h264 -> mpeg4)
Stream #0.16 -> #0.1 (ac3 -> libmp3lame)
Press [q] to stop, ? for help
frame= 20 fps= 0 q=31.0 size= 40kB time=00:00:01.89 bitrate= 172.8kbits/s
frame= 53 fps= 52 q=31.0 size= 324kB time=00:00:03.43 bitrate= 773.1kbits/s
PES packet size mismatch
[h264 @ 03DFB180] error while decoding MB 41 32, bytestream (td)
[h264 @ 03DFB180] concealing 3248 DC, 3248 AC, 3248 MV errors
frame= 79 fps= 50 q=31.0 size= 600kB time=00:00:04.72 bitrate=1040.2kbits/s
incomplete frame
frame= 81 fps= 51 q=31.0 Lsize= 943kB time=00:00:04.87 bitrate=1585.7kbits/s
video:846kB audio:76kB global headers:0kB muxing overhead 2.267769%
Attachments (2)
Change History (7)
by , 13 years ago
Attachment: | ticket528.264 added |
---|
by , 13 years ago
Attachment: | ticket528short.264 added |
---|
comment:1 by , 13 years ago
Reproduced by developer: | set |
---|---|
Status: | new → open |
comment:2 by , 13 years ago
Keywords: | H264 TS added; h264 artifact corruption removed |
---|
comment:3 by , 13 years ago
Priority: | normal → minor |
---|
The same eleven frames as before are still not decoded bit-identical with the reference decoder, but no artefacts are visible anymore afaict.
comment:4 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | open → closed |
The sample is decoded bit-identical with current git head.
comment:5 by , 10 years ago
Keywords: | mpegts added; TS removed |
---|
The original sample shows 11 wrong frames after the scene change.
This is reproducible with ticket528.264, which decodes ~33 frames correctly, then 11 wrong (framecrc: 0xcae18c42 - 0x9f3d95e7, bit-identical with the original sample), then 9 correct frames, all compared with the reference decoder.
ticket528short.264 contains all the corrupt frames from above (plus many frames before), but starts to decode in the middle of the originally corrupt block and outputs all frames correctly.