Opened 10 years ago

Closed 10 years ago

#1340 closed defect (fixed)

Possibly suboptimal H.264 error concealment

Reported by: Carl Eugen Hoyos Owned by:
Priority: normal Component: avcodec
Version: git-master Keywords: h264 roundup regression
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

(Related to issue 2564)

I will attach a cut transport stream (that is possibly corrupted), the first ~eleven frames are decoded correctly, then three corrupted frames follow.

Older versions of FFmpeg simply skipped the broken frames (and caused no easily visible corruption except for error messages from the h264 decoder), current git head shows severely broken frames.

$ ffmpeg -i missingframe.ts -f null -vframes 40 -
ffmpeg version N-40924-g349c624 Copyright (c) 2000-2012 the FFmpeg developers
  built on May 21 2012 07:59:42 with gcc 4.3.2
  configuration: --cc=/usr/local/gcc-4.3.2/bin/gcc --enable-gpl --enable-libopenjpeg --enable-libvorbis --enable-libspeex --enable-libmp3lame --enable-libtheora --extra-ldflags=-lm
  libavutil      51. 53.100 / 51. 53.100
  libavcodec     54. 21.101 / 54. 21.101
  libavformat    54.  5.101 / 54.  5.101
  libavdevice    53.  4.100 / 53.  4.100
  libavfilter     2. 75.100 /  2. 75.100
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
[h264 @ 0x8f10040] Increasing reorder buffer to 1
[mpegts @ 0x8f0c3c0] PES packet size mismatch
    Last message repeated 1 times
Input #0, mpegts, from 'missingframe.ts':
  Duration: 00:00:01.56, start: 0.200000, bitrate: 13128 kb/s
  Program 1
    Stream #0:0[0x200]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuvj420p, 1920x1080 [SAR 1:1 DAR 16:9], 50 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x294](eng): Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz, stereo, s16, 384 kb/s
[buffer @ 0x8f09ee0] w:1920 h:1080 pixfmt:yuvj420p tb:1/90000 sar:1/1 sws_param:flags=2
[buffersink @ 0x8f0a280] No opaque field provided
Output #0, null, to 'pipe:':
  Metadata:
    encoder         : Lavf54.5.101
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuvj420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 90k tbn, 25 tbc
    Stream #0:1(eng): Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> rawvideo)
  Stream #0:1 -> #0:1 (ac3 -> pcm_s16le)
Press [q] to stop, [?] for help
[null @ 0x8f0ec80] Encoder did not produce proper pts, making some up.
[h264 @ 0x8f10040] mmco: unref short failure
    Last message repeated 2 times
[h264 @ 0x8f10040] Increasing reorder buffer to 2
frame=   40 fps= 26 q=0.0 Lsize=       0kB time=00:00:01.23 bitrate=   0.0kbits/s dup=8 drop=0
video:0kB audio:186kB global headers:0kB muxing overhead -100.000000%

Attachments (1)

missingframe.ts (2.4 MB ) - added by Carl Eugen Hoyos 10 years ago.

Change History (4)

by Carl Eugen Hoyos, 10 years ago

Attachment: missingframe.ts added

comment:1 by Carl Eugen Hoyos, 10 years ago

Keywords: roundup added

comment:2 by Carl Eugen Hoyos, 10 years ago

Keywords: regression added
Reproduced by developer: set
Status: newopen

The visible corruption is a regression since d375c10 (merge of ffmpeg-mt).

comment:3 by Carl Eugen Hoyos, 10 years ago

Resolution: fixed
Status: openclosed

Fixed by Janne Grunau.

Note: See TracTickets for help on using tickets.