Opened 6 years ago

Closed 5 years ago

#1340 closed defect (fixed)

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 (1)

missingframe.ts (2.4 MB) - added by cehoyos 6 years ago.

Change History (4)

Changed 6 years ago by cehoyos

comment:1 Changed 5 years ago by cehoyos

  • Keywords roundup added

comment:2 Changed 5 years ago by cehoyos

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

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

comment:3 Changed 5 years ago by cehoyos

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

Fixed by Janne Grunau.

Note: See TracTickets for help on using tickets.