[FFmpeg-trac] #2371(avcodec:new): h264 decoding regression in ref frame management

FFmpeg trac at avcodec.org
Sun Mar 17 08:05:21 CET 2013


#2371: h264 decoding regression in ref frame management
-------------------------------------+-------------------------------------
               Reporter:  heleppkes  |                  Owner:
                   Type:  defect     |                 Status:  new
               Priority:  normal     |              Component:  avcodec
                Version:  git-       |               Keywords:  h264
  master                             |  regression
             Blocked By:             |               Blocking:
Reproduced by developer:  0          |  Analyzed by developer:  0
-------------------------------------+-------------------------------------
 Ever since a recent change (specifically 01a0283), h264 decoding of this
 particular file is broken.

 The file is not without its own problems, however the decoder seemed to
 handle it fine before.

 How to reproduce:
 {{{
 % ffmpeg -i H.264_10bit.mp4 test.avi
 ffmpeg version N-51032-g9f95e35 Copyright (c) 2000-2013 the FFmpeg
 developers
   built on Mar 17 2013 07:59:15 with gcc 4.7.2 (GCC)
   configuration: --enable-gpl
   libavutil      52. 19.101 / 52. 19.101
   libavcodec     55.  0.100 / 55.  0.100
   libavformat    55.  0.100 / 55.  0.100
   libavdevice    55.  0.100 / 55.  0.100
   libavfilter     3. 47.102 /  3. 47.102
   libswscale      2.  2.100 /  2.  2.100
   libswresample   0. 17.102 /  0. 17.102
   libpostproc    52.  2.100 / 52.  2.100
 Splitting the commandline.
 Reading option '-loglevel' ... matched as option 'loglevel' (set libav*
 logging level) with argument '99'.
 Reading option '-i' ... matched as input file with argument
 'D:\H.264_10bit.mp4'.
 Reading option 'test2.avi' ... matched as output file.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option loglevel (set libav* logging level) with argument 99.
 Successfully parsed a group of options.
 Parsing a group of options: input file D:\H.264_10bit.mp4.
 Successfully parsed a group of options.
 Opening an input file: D:\H.264_10bit.mp4.
 [mov,mp4,m4a,3gp,3g2,mj2 @ 032EB820] Format mov,mp4,m4a,3gp,3g2,mj2 probed
 with size=2048 and score=100
 [mov,mp4,m4a,3gp,3g2,mj2 @ 032EB820] ISO: File Type Major Brand: mp42
 [mov,mp4,m4a,3gp,3g2,mj2 @ 032EB820] File position before
 avformat_find_stream_info() is 4464
 [h264 @ 003C9A00] no picture
 [mov,mp4,m4a,3gp,3g2,mj2 @ 032EB820] All info found
 [mov,mp4,m4a,3gp,3g2,mj2 @ 032EB820] File position after
 avformat_find_stream_info() is 472524
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'D:\H.264_10bit.mp4':
   Metadata:
     major_brand     : mp42
     minor_version   : 0
     compatible_brands: mp42M4V mp41isomiso2iso3iso4iso5iso6avc1M4A
     creation_time   : 2013-03-17 03:42:05
   Duration: 00:00:07.84, start: 0.021625, bitrate: 9993 kb/s
     Stream #0:0(jpn), 1, 1/24000: Video: h264 (High 10) (avc1 /
 0x31637661), yuv420p10le, 1920x1080 [SAR 1:1 DAR 16:9], 1001/48000, 7597
 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc
     Metadata:
       creation_time   : 2013-03-17 03:42:05
       handler_name    : Video
     Stream #0:1(jpn), 6, 1/48000: Audio: alac (alac / 0x63616C61), 48000
 Hz, 5.1, s16p, 2361 kb/s
     Metadata:
       creation_time   : 2013-03-17 03:42:05
       handler_name    : Audio
 Successfully opened the file.
 Parsing a group of options: output file test2.avi.
 Successfully parsed a group of options.
 Opening an output file: test2.avi.
 Successfully opened the file.
 [buffer @ 032F0060] Setting entry with key 'video_size' to value
 '1920x1080'
 [buffer @ 032F0060] Setting entry with key 'pix_fmt' to value '72'
 [buffer @ 032F0060] Setting entry with key 'time_base' to value '1/24000'
 [buffer @ 032F0060] Setting entry with key 'pixel_aspect' to value '1/1'
 [buffer @ 032F0060] Setting entry with key 'sws_param' to value 'flags=2'
 [buffer @ 032F0060] Setting entry with key 'frame_rate' to value
 '24000/1001'
 [graph 0 input from stream 0:0 @ 033D6E40] w:1920 h:1080
 pixfmt:yuv420p10le tb:1/24000 fr:24000/1001 sar:1/1 sws_param:flags=2
 [scale @ 03A60060] Setting 'w' to value '0'
 [scale @ 03A60060] Setting 'h' to value '0'
 [scale @ 03A60060] Setting 'flags' to value '0x4'
 [auto-inserted scaler 0 @ 033D7260] w:0 h:0 flags:'0x4' interl:0
 [format @ 033D7120] auto-inserting filter 'auto-inserted scaler 0' between
 the filter 'Parsed_null_0' and the filter 'format'
 [auto-inserted scaler 0 @ 033D7260] w:1920 h:1080 fmt:yuv420p10le sar:1/1
 -> w:1920 h:1080 fmt:yuv420p sar:1/1 flags:0x4
 [abuffer @ 032F0160] Setting entry with key 'time_base' to value '1/48000'
 [abuffer @ 032F0160] Setting entry with key 'sample_rate' to value '48000'
 [abuffer @ 032F0160] Setting entry with key 'sample_fmt' to value 's16p'
 [abuffer @ 032F0160] Setting entry with key 'channel_layout' to value
 '0x3f'
 [graph 1 input from stream 0:1 @ 003CB080] tb:1/48000 samplefmt:s16p
 samplerate:48000 chlayout:0x3f
 [aformat @ 033D75A0] Setting entry with key 'sample_fmts' to value 'fltp'
 [aformat @ 033D75A0] Setting entry with key 'channel_layouts' to value
 '0x4,0x3,0x103,0x7,0x603,0x33,0x107,0x607,0x37,0xc,0xb,0x10b,0xf,0x60b,0x3b,0x10f,0x60f,0x3f'
 [audio format for output stream 0:1 @ 003CB140] auto-inserting filter
 'auto-inserted resampler 0' between the filter 'Parsed_anull_0' and the
 filter 'audio format for output stream 0:1'
 [auto-inserted resampler 0 @ 003CB1A0] ch:6 chl:5.1 fmt:s16p r:48000Hz ->
 ch:6 chl:5.1 fmt:fltp r:48000Hz
 [mpeg4 @ 03B56480] detected 8 logical cores
 [mpeg4 @ 03B56480] intra_quant_bias = 0 inter_quant_bias = -64
 [h264 @ 003C9A00] detected 8 logical cores
 Output #0, avi, to 'test2.avi':
   Metadata:
     major_brand     : mp42
     minor_version   : 0
     compatible_brands: mp42M4V mp41isomiso2iso3iso4iso5iso6avc1M4A
     ISFT            : Lavf55.0.100
     Stream #0:0(jpn), 0, 1001/24000: Video: mpeg4 (FMP4 / 0x34504D46),
 yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 1001/24000, q=2-31, 200 kb/s, 23.98
 tbn, 23.98 tbc
     Metadata:
       creation_time   : 2013-03-17 03:42:05
       handler_name    : Video
     Stream #0:1(jpn), 0, 4/125: Audio: ac3 ([0] [0][0] / 0x2000), 48000
 Hz, 5.1, fltp, 448 kb/s
     Metadata:
       creation_time   : 2013-03-17 03:42:05
       handler_name    : Audio
 Stream mapping:
   Stream #0:0 -> #0:0 (h264 -> mpeg4)
   Stream #0:1 -> #0:1 (alac -> ac3)
 Press [q] to stop, [?] for help
 [h264 @ 032EB100] no picture
 [h264 @ 03AC2D60] no picture
 [h264 @ 03AC3920] Missing reference picture, default is 65540
 [h264 @ 03AC3920] decode_slice_header error
 [h264 @ 03AC40E0] Missing reference picture, default is 65544
 [h264 @ 03AC40E0] decode_slice_header error
 [h264 @ 03AC48C0] Missing reference picture, default is 65548
 [h264 @ 03AC48C0] decode_slice_header error
 [h264 @ 03AC2D60] Missing reference picture, default is 65552
 [h264 @ 03AC2D60] decode_slice_header error
 [h264 @ 03AC3520] Missing reference picture, default is 65556
 [h264 @ 03AC3520] decode_slice_header error
 [h264 @ 03AC44C0] Missing reference picture, default is 65564
 [h264 @ 03AC44C0] decode_slice_header error
 [h264 @ 03AC3140] Missing reference picture, default is 65572
 [h264 @ 03AC3140] decode_slice_header error
 [h264 @ 03AC40E0] Missing reference picture, default is 65580
 [h264 @ 03AC40E0] decode_slice_header error
 [h264 @ 03AC2D60] Missing reference picture, default is 65588
 [h264 @ 03AC2D60] decode_slice_header error
 [h264 @ 03AC3D00] Missing reference picture, default is 65596
 [h264 @ 03AC3D00] decode_slice_header error
 [h264 @ 032EB100] Missing reference picture, default is 65604
 [h264 @ 032EB100] decode_slice_header error
 [h264 @ 03AC3920] Missing reference picture, default is 65612
 [h264 @ 03AC3920] decode_slice_header error
 [h264 @ 03AC48C0] Missing reference picture, default is 65620
 [h264 @ 03AC48C0] decode_slice_header error
 [h264 @ 03AC3520] Missing reference picture, default is 65628
 [h264 @ 03AC3520] decode_slice_header error
 [h264 @ 03AC44C0] Missing reference picture, default is 65636
 [h264 @ 03AC44C0] decode_slice_header error
 [h264 @ 03AC3140] Missing reference picture, default is 65644
 [h264 @ 03AC3140] decode_slice_header error
 [h264 @ 03AC40E0] Missing reference picture, default is 65652
 [h264 @ 03AC40E0] decode_slice_header error
 [h264 @ 03AC2D60] Missing reference picture, default is 65660
 [h264 @ 03AC2D60] decode_slice_header error
 [h264 @ 03AC3D00] Missing reference picture, default is 65668
 [h264 @ 03AC3D00] decode_slice_header error
 [h264 @ 032EB100] Missing reference picture, default is 65676
 [h264 @ 032EB100] decode_slice_header error
 frame=   47 fps=0.0 q=31.0 size=    1928kB time=00:00:03.58
 bitrate=4407.9kbits/s
 Missing reference picture, default is 65684
 [h264 @ 03AC3920] decode_slice_header error
 [h264 @ 03AC48C0] Missing reference picture, default is 65692
 [h264 @ 03AC48C0] decode_slice_header error
 [h264 @ 03AC3520] Missing reference picture, default is 65700
 [h264 @ 03AC3520] decode_slice_header error
 [h264 @ 03AC44C0] Missing reference picture, default is 65708
 [h264 @ 03AC44C0] decode_slice_header error
 [h264 @ 03AC3140] Missing reference picture, default is 65716
 [h264 @ 03AC3140] decode_slice_header error
 [h264 @ 03AC40E0] Missing reference picture, default is 65724
 [h264 @ 03AC40E0] decode_slice_header error
 [h264 @ 03AC2D60] Missing reference picture, default is 65732
 [h264 @ 03AC2D60] decode_slice_header error
 [h264 @ 03AC3D00] Missing reference picture, default is 65740
 [h264 @ 03AC3D00] decode_slice_header error
 [h264 @ 032EB100] Missing reference picture, default is 65748
 [h264 @ 032EB100] decode_slice_header error
 [h264 @ 03AC3140] Missing reference picture, default is 65752
 [h264 @ 03AC3140] decode_slice_header error
 [h264 @ 03AC40E0] Missing reference picture, default is 65760
 [h264 @ 03AC40E0] decode_slice_header error
 [h264 @ 03AC3140] Missing reference picture, default is 65540
 [h264 @ 03AC3140] decode_slice_header error
 [h264 @ 03AC3920] Missing reference picture, default is 65544
 [h264 @ 03AC3920] decode_slice_header error
 [h264 @ 03AC40E0] Missing reference picture, default is 65548
 [h264 @ 03AC40E0] decode_slice_header error
 [h264 @ 03AC48C0] Missing reference picture, default is 65552
 [h264 @ 03AC48C0] decode_slice_header error
 [h264 @ 03AC2D60] Missing reference picture, default is 65556
 [h264 @ 03AC2D60] decode_slice_header error
 [h264 @ 03AC48C0] Missing reference picture, default is 65570
 [h264 @ 03AC48C0] decode_slice_header error
 [h264 @ 03AC3920] Missing reference picture, default is 65580
 [h264 @ 03AC3920] decode_slice_header error
 [h264 @ 03AC40E0] Missing reference picture, default is 65584
 [h264 @ 03AC40E0] decode_slice_header error
 [h264 @ 03AC48C0] Missing reference picture, default is 65588
 [h264 @ 03AC48C0] decode_slice_header error
 [h264 @ 03AC2D60] Missing reference picture, default is 65592
 [h264 @ 03AC2D60] decode_slice_header error
 [h264 @ 03AC40E0] Missing reference picture, default is 65602
 [h264 @ 03AC40E0] decode_slice_header error
 [h264 @ 03AC3920] Missing reference picture, default is 65616
 [h264 @ 03AC3920] decode_slice_header error
 frame=  107 fps=107 q=31.0 size=    3343kB time=00:00:06.65
 bitrate=4114.3kbits/s
 Missing reference picture, default is 65626
 [h264 @ 032EB100] decode_slice_header error
 [h264 @ 03AC3140] Missing reference picture, default is 65630
 [h264 @ 03AC3140] decode_slice_header error
 [h264 @ 03AC40E0] Missing reference picture, default is 65638
 [h264 @ 03AC40E0] decode_slice_header error
 [h264 @ 03AC2D60] Missing reference picture, default is 65646
 [h264 @ 03AC2D60] decode_slice_header error
 [h264 @ 03AC3D00] Missing reference picture, default is 65654
 [h264 @ 03AC3D00] decode_slice_header error
 [h264 @ 03AC44C0] Missing reference picture, default is 65658
 [h264 @ 03AC44C0] decode_slice_header error
 [h264 @ 03AC3520] Missing reference picture, default is 65668
 [h264 @ 03AC3520] decode_slice_header error
 [h264 @ 03AC44C0] Missing reference picture, default is 65676
 [h264 @ 03AC44C0] decode_slice_header error
 [output stream 0:0 @ 033D7020] EOF on sink link output stream 0:0:default.
 [output stream 0:1 @ 003CB0E0] EOF on sink link output stream 0:1:default.
 No more output streams to write to, finishing.
 frame=  137 fps=108 q=31.0 Lsize=    4422kB time=00:00:07.93
 bitrate=4564.7kbits/s

 video:3968kB audio:434kB subtitle:0 global headers:0kB muxing overhead
 0.456228%
 [AVIOContext @ 003C9380] Statistics: 9794102 bytes read, 0 seeks

 }}}

 Sample here: http://files.1f0.de/samples/h264refframeregression.mp4
 With the patch in question (01a0283) reverted, the file plays fine. The
 log still shows the "Missing reference picture" errors, however the
 "decode_slice_header error" messages go away, and so does the image
 corruption.

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2371>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list