Ticket #1340 (closed defect: fixed)

Opened 12 months ago

Last modified 5 months ago

Possibly suboptimal H.264 error concealment

Reported by: cehoyos 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

missingframe.ts Download (2.4 MB) - added by cehoyos 12 months ago.

Change History

Changed 12 months ago by cehoyos

comment:1 Changed 8 months ago by cehoyos

  • Keywords roundup added

comment:2 Changed 5 months ago by cehoyos

  • Keywords regression added
  • Status changed from new to open
  • Reproduced by developer set

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

comment:3 Changed 5 months ago by cehoyos

  • Status changed from open to closed
  • Resolution set to fixed

Fixed by Janne Grunau.

Note: See TracTickets for help on using tickets.