[FFmpeg-trac] #7497(avformat:new): trun.version=1 negative composition time offset is mishandled causing non-monotonic packet DTS

FFmpeg trac at avcodec.org
Wed Oct 17 00:41:14 EEST 2018


#7497: trun.version=1 negative composition time offset is mishandled causing non-
monotonic packet DTS
--------------------------------------+----------------------------------
               Reporter:  pkoshevoy   |                  Owner:
                   Type:  defect      |                 Status:  new
               Priority:  normal      |              Component:  avformat
                Version:  git-master  |               Keywords:
             Blocked By:              |               Blocking:
Reproduced by developer:  0           |  Analyzed by developer:  0
--------------------------------------+----------------------------------
 Summary of the bug:
 demuxing
 http://tungsten.aaplimg.com/VOD/bipbop_adv_example_hevc/v16/main.mp4
 produces packets with non-monotonically increasing DTS.  The file plays
 fine in QuickTime X player.


 How to reproduce:
 {{{
 $ wget
 http://tungsten.aaplimg.com/VOD/bipbop_adv_example_hevc/v16/main.mp4

 $ ffprobe -select_streams v:0 -show_packets main.mp4 | grep
 dts_time=10.000
 ffprobe version N-92190-gb2adc31697 Copyright (c) 2007-2018 the FFmpeg
 developers
   built with Apple LLVM version 9.0.0 (clang-900.0.38)
   configuration: --prefix=/Users/pkoshevoy/x86_64 --disable-debug
 --enable-shared --disable-static --enable-swscale --enable-avfilter
 --enable-pthreads --enable-gpl --enable-version3 --enable-postproc
 --enable-x86asm --enable-runtime-cpudetect --extra-
 cflags='-I/usr/local/include -mmacosx-version-min=10.8' --extra-
 ldflags='-headerpad_max_install_names -L/usr/local/lib -mmacosx-version-
 min=10.8'
   libavutil      56. 19.101 / 56. 19.101
   libavcodec     58. 33.100 / 58. 33.100
   libavformat    58. 19.100 / 58. 19.100
   libavdevice    58.  4.105 / 58.  4.105
   libavfilter     7. 33.101 /  7. 33.101
   libswscale      5.  2.100 /  5.  2.100
   libswresample   3.  2.100 /  3.  2.100
   libpostproc    55.  2.100 / 55.  2.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'main.mp4':
   Metadata:
     major_brand     : mp42
     minor_version   : 1
     compatible_brands: mp41mp42isomhlsf
     creation_time   : 2017-06-06T02:40:19.000000Z
   Duration: 00:10:08.63, start: 10.016667, bitrate: 3233 kb/s
     Stream #0:0(eng): Video: hevc (Main 10) (hvc1 / 0x31637668),
 yuv420p10le(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 3229
 kb/s, 60 fps, 60 tbr, 6k tbn, 6k tbc (default)
     Metadata:
       creation_time   : 2017-06-06T02:40:19.000000Z
       handler_name    : Core Media Video
     Stream #0:1(eng): Subtitle: eia_608 (c608 / 0x38303663), 0 kb/s
 (default)
     Metadata:
       creation_time   : 2017-06-06T02:40:19.000000Z
       handler_name    : Core Media Closed Caption
 dts_time=10.000000
 dts_time=10.000000
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7ff90d000000] DTS 60000 < 62900 out of order
 dts_time=10.000000
 dts_time=10.000000

 }}}


 This may be related to the issue described in
 https://sourceforge.net/p/gpac/bugs/331/

 I've had a quick look at libavformat/mov.c and I've noticed that
 mov_read_trun ignores version value, and ctts_duration is always unsigned.

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


More information about the FFmpeg-trac mailing list