Opened 13 years ago

Closed 13 years ago

Last modified 10 years ago

#88 closed defect (fixed)

MPEG2 Transport Stream Demuxer - Incorrect PTS/DTS for Stream

Reported by: Jose Santiago Owned by:
Priority: normal Component: avcodec
Version: git-master Keywords: h264 mpegts aac
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Stream does not play correctly with FFPLAY because the H.264 PTS/DTS are incorrect. Stream plays correctly with VLC.

ffplay h264-incorrect-dts-pts.ts
FFplay version git-N-29265-g3eb15d9-VF, Copyright (c) 2003-2011 the FFmpeg developers

built on Apr 21 2011 14:43:30 with gcc 4.3.3
configuration: --extra-version=VF --prefix=/home/jsantiago/ffmpeg/build/build-linux/stage --extra-cflags='-I/home/jsantiago/ffmpeg/build/../src/libavformat -I/home/jsantiago/ffmpeg/build/../src/libavcodec -DCONFIG_AUDIO_FLOAT=0' --extra-ldflags='-L/home/jsantiago/ffmpeg/build/build-linux/stage/lib -Wl,-rpath -Wl,/home/jsantiago/ffmpeg/build/build-linux/stage/lib' --enable-static --enable-shared --enable-avfilter --enable-pthreads --enable-zlib --enable-bzlib --enable-runtime-cpudetect --enable-hardcoded-tables
libavutil 51. 0. 0 / 51. 0. 0
libavcodec 53. 0. 0 / 53. 0. 0
libavformat 53. 0. 0 / 53. 0. 0
libavdevice 53. 0. 0 / 53. 0. 0
libavfilter 2. 0. 0 / 2. 0. 0
libswscale 0. 13. 0 / 0. 13. 0

[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[h264 @ 0x8638a20] non-existing PPS referenced
[h264 @ 0x8638a20] non-existing PPS 0 referenced
[h264 @ 0x8638a20] decode_slice_header error
[h264 @ 0x8638a20] no frame!
[mpegts @ 0x8636e90] max_analyze_duration reached
Input #0, mpegts, from 'h264-incorrect-dts-pts.ts':

Duration: 00:00:12.89, start: 25113.420778, bitrate: 6351 kb/s
Program 1

Stream #0.0[0x21]: Video: h264 (Main), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 69.95 fps, 59.94 tbr, 90k tbn, 59.94 tbc
Stream #0.1[0x24]: Audio: aac, 48000 Hz, stereo, s16, 128 kb/s

[h264 @ 0x8638a20] cbp too large (4294967295) at 55 12= 0B f=0/0 /0
[h264 @ 0x8638a20] error while decoding MB 55 12
25121.43 A-V:25117.574 s:18.6 aq= 92KB vq= 0KB sq= 0B f=0/0

Attachments (2)

fix-no-b-v2.patch (605 bytes ) - added by Mike 13 years ago.
Fix for h264 I-P only input to decoder
h264-detect-no-b-v1.patch (1.0 KB ) - added by Mike 13 years ago.
Detect additional "no B" h264 bitstreams

Download all attachments as: .zip

Change History (21)

comment:1 by Jose Santiago, 13 years ago

I tried to upload the 10MB of the stream to upload.ffmpeg.org via FTP but the connection just times out :(:

jsantiago@josepc:~/ffmpeg$ ftp upload.ffmpeg.org
ftp: connect: Connection timed out

comment:2 by Carl Eugen Hoyos, 13 years ago

Since you reported the problem with ffplay: Is your issue not reproducible with ffmpeg? If it is, please provide ffmpeg output.

We currently have no incoming directory: Can you make the file available somewhere else? (For HD A/V sync issues, you should usually provide significantly more than 10MB.)

comment:3 by Carl Eugen Hoyos, 13 years ago

Component: avformatundetermined
Status: newopen

comment:5 by Jose Santiago, 13 years ago

./ffmpeg -v 9 -loglevel 99 -i h264-incorrect-dts-pts.ts
FFmpeg version git-N-29265-g3eb15d9-VF, Copyright (c) 2000-2011 the FFmpeg developers

built on Apr 21 2011 14:43:30 with gcc 4.3.3
configuration: --extra-version=VF --prefix=/home/jsantiago/ffmpeg/build/build-linux/stage --extra-cflags='-I/home/jsantiago/ffmpeg/build/../src/libavformat -I/home/jsantiago/ffmpeg/build/../src/libavcodec -DCONFIG_AUDIO_FLOAT=0' --extra-ldflags='-L/home/jsantiago/ffmpeg/build/build-linux/stage/lib -Wl,-rpath -Wl,/home/jsantiago/ffmpeg/build/build-linux/stage/lib' --enable-static --enable-shared --enable-avfilter --enable-pthreads --enable-zlib --enable-bzlib --enable-runtime-cpudetect --enable-hardcoded-tables
libavutil 51. 0. 0 / 51. 0. 0
libavcodec 53. 0. 0 / 53. 0. 0
libavformat 53. 0. 0 / 53. 0. 0
libavdevice 53. 0. 0 / 53. 0. 0
libavfilter 2. 0. 0 / 2. 0. 0
libswscale 0. 13. 0 / 0. 13. 0

[NULL @ 0x8bbbb90] Format mpegts probed with size=2048 and score=100
[mpegts @ 0x8bbbb90] stream=0 stream_type=1b pid=21 prog_reg_desc=
[mpegts @ 0x8bbbb90] stream=1 stream_type=f pid=24 prog_reg_desc=
[h264 @ 0x8bc0e20] Unsupported bit depth: 0
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[h264 @ 0x8bc0e20] non-existing PPS referenced
[h264 @ 0x8bc0e20] non-existing PPS 0 referenced
[h264 @ 0x8bc0e20] decode_slice_header error
[h264 @ 0x8bc0e20] no frame!
[mpegts @ 0x8bbbb90] max_analyze_duration reached

Seems stream 0 codec frame rate differs from container frame rate: 59.94 (60000/1001) -> 59.94 (60000/1001)
Input #0, mpegts, from 'h264-incorrect-dts-pts.ts':

Duration: 00:00:12.89, start: 25113.420778, bitrate: 6351 kb/s
Program 1

Stream #0.0[0x21], 303, 1/90000: Video: h264 (Main), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 1001/60000, 69.95 fps, 59.94 tbr, 90k tbn, 59.94 tbc
Stream #0.1[0x24], 237, 1/90000: Audio: aac, 48000 Hz, stereo, s16, 128 kb/s

comment:6 by Jose Santiago, 13 years ago

After Running the following, VLC can no longer play the output file:

./ffmpeg -i h264-incorrect-dts-pts.ts -vcodec copy -acodec copy out.ts

comment:7 by Jose Santiago, 13 years ago

One interesting Note:

I looked at the PTS and DTS returned by av_read_frame() in ffplay and they are not set. ffplay uses av_open_input_file().

However,

I wrote some test code in my own application that uses avio_alloc_context(), av_open_input_stream() where I provide a a 4KB buffer to the AVIOContext, and implement a read_packet() and seek() that uses the C runtime read() and seek() calls and the av_read_frame() returns the correct PTS and DTS for the H.264 stream. It works correctly in this case in my own application using the avio_alloc_context(), av_open_input_stream() interface, but does not work in FFPLAY application.

comment:8 by Carl Eugen Hoyos, 13 years ago

Component: undeterminedFFplay
Reproduced by developer: set

Works fine with ffmpeg.

comment:9 by Mike, 13 years ago

This sample bitstream has only I and P frames. The DTS/PTS timestamps in the file look good to me.

This is probably the same issue reported by Tony Strauss on the ffmpeg-devel list on 2011-apr-19 11:46pm, with subject "[FFmpeg-devel] [PATCH]: Fix decoding of mpegts streams with h264 video that does *NOT* have b frames".

Tony thinks the bug is in the h264 parser. He included a patch that has not yet been reviewed.

by Mike, 13 years ago

Attachment: fix-no-b-v2.patch added

Fix for h264 I-P only input to decoder

comment:10 by Mike, 13 years ago

I've attached a patch 'fix-no-b-v2.patch' for the h264 decoder that may help this problem, but did not try it with the submitted sample 'h264-incorrect-dts-pts.ts'.

comment:11 by Carl Eugen Hoyos, 13 years ago

Not fixed by "Fix decoding of mpegts streams with h264 video that does *NOT* have b frames", e12926393b3477e8c324268d3281ae9975f58435

comment:12 by Mike, 13 years ago

It looks like 'h264-incorrect-dts-pts.ts' does not have the (optional) sps.bitstream_restriction_flag set, so we need to use something else to detect that there are no B pictures.

The file does have constraint_set0_flag = 1, which we can use.

I will check if implementing constraint_set0_flag makes this file work.

by Mike, 13 years ago

Attachment: h264-detect-no-b-v1.patch added

Detect additional "no B" h264 bitstreams

comment:13 by Mike, 13 years ago

I've attached 'h264-detect-no-b-v1.patch'. I have verified it fixes the submitted sample for latest videolan git.

Test command: ffprobe -show_packets file.ts

comment:14 by Michael Niedermayer, 13 years ago

sps.constraint_set_flags&1 indicates no B frames
but no B frames does not implicate low_delay=1.

comment:15 by Jose Santiago, 13 years ago

These patches fix the problem. fix-no-b-v2.patch has already been applied to the GIT Tree HEAD. h264-detect-no-b-v1.patch however has not been applied to the GIT Development Tree. Is this intentional?

in reply to:  15 comment:16 by Michael Niedermayer, 13 years ago

Replying to jlsantiago0:

These patches fix the problem. fix-no-b-v2.patch has already been applied to the GIT Tree HEAD. h264-detect-no-b-v1.patch however has not been applied to the GIT Development Tree. Is this intentional?

yes, that patch seems wrong

comment:17 by Carl Eugen Hoyos, 13 years ago

Component: FFplayavcodec
Resolution: fixed
Status: openclosed
Version: gitgit-master

comment:18 by Carl Eugen Hoyos, 12 years ago

Keywords: h264 ts aac added

comment:19 by Carl Eugen Hoyos, 10 years ago

Keywords: mpegts added; ts removed
Note: See TracTickets for help on using tickets.