#7083: Decoder playing out frames at double speed -------------------------------------+------------------------------------- Reporter: baudouin0 | Type: defect Status: new | Priority: normal Component: avcodec | Version: git- Keywords: double | master playout rate | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- Summary of the bug:
sps->time_scale is being doubled on h264_slice_header_init(). After second frame h->x264_build is set to zero rather than -1 causing frame rate to be doubled. How to reproduce: ffmpeg -i test.264 out%d.bmp // Added printf to check: static int h264_slice_header_init(H264Context *h) { const SPS *sps = h->ps.sps; int i, ret; ff_set_sar(h->avctx, sps->sar); av_pix_fmt_get_chroma_sub_sample(h->avctx->pix_fmt, &h->chroma_x_shift, &h->chroma_y_shift); if (sps->timing_info_present_flag) { int64_t den = sps->time_scale; printf("h264_slice_header_init() build=%d time_scale=%d ticks_per_frame=%d num_units_in_tick=%d\n", h->x264_build, sps->time_scale, h->avctx->ticks_per_frame, sps->num_units_in_tick); if (h->x264_build < 44U) den *= 2; av_reduce(&h->avctx->framerate.den, &h->avctx->framerate.num, sps->num_units_in_tick * h->avctx->ticks_per_frame, den, 1 << 30); } Output from decoder is:ffmpeg version N-90264-g80798e3 Copyright (c) 2000-2018 the FFmpeg developers built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.4) configuration: libavutil 56. 8.100 / 56. 8.100 libavcodec 58. 14.100 / 58. 14.100 libavformat 58. 10.100 / 58. 10.100 libavdevice 58. 2.100 / 58. 2.100 libavfilter 7. 12.100 / 7. 12.100 libswscale 5. 0.102 / 5. 0.102 libswresample 3. 0.101 / 3. 0.101 h264_slice_header_init() build=-1 time_scale=50000 ticks_per_frame=2 num_units_in_tick=1000 Input #0, h264, from 'test.264': Duration: N/A, bitrate: N/A Stream #0:0: Video: h264 (High), yuv420p(progressive), 704x576 [SAR 12:11 DAR 4:3], 25 fps, 25 tbr, 1200k tbn, 50 tbc Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> bmp (native)) Press [q] to stop, [?] for help h264_slice_header_init() build=-1 time_scale=50000 ticks_per_frame=2 num_units_in_tick=1000 h264_slice_header_init() build=0 time_scale=50000 ticks_per_frame=2 num_units_in_tick=1000 h264_slice_header_init() build=0 time_scale=50000 ticks_per_frame=2 num_units_in_tick=1000 h264_slice_header_init() build=0 time_scale=50000 ticks_per_frame=2 num_units_in_tick=1000 h264_slice_header_init() build=0 time_scale=50000 ticks_per_frame=2 num_units_in_tick=1000 h264_slice_header_init() build=0 time_scale=50000 ticks_per_frame=2 num_units_in_tick=1000 h264_slice_header_init() build=0 time_scale=50000 ticks_per_frame=2 num_units_in_tick=1000 h264_slice_header_init() build=0 time_scale=50000 ticks_per_frame=2 num_units_in_tick=1000 h264_slice_header_init() build=0 time_scale=50000 ticks_per_frame=2 num_units_in_tick=1000 Output #0, image2, to 'xxx%d.bmp': Metadata: encoder : Lavf58.10.100 Stream #0:0: Video: bmp, bgr24, 704x576 [SAR 12:11 DAR 4:3], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc Metadata: encoder : Lavc58.14.100 bmp Note x264_build becomes zero. Built ob x64 linux with gcc 4.8.4 -- Ticket URL: <https://trac.ffmpeg.org/ticket/7083> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker _______________________________________________ FFmpeg-trac mailing list FFmpeg-trac@avcodec.org http://ffmpeg.org/mailman/listinfo/ffmpeg-trac