Opened 6 years ago

Closed 6 years ago

#6714 closed defect (invalid)

MOV file with svq3 video fails to decode if edit list parsing is enabled

Reported by: James Owned by:
Priority: important Component: avformat
Version: git-master Keywords: mov edts regression
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

$ ./ffmpeg -loglevel debug -i ../samples/svq3/svq3_decoding_regression.mov -f null -
ffmpeg version N-87667-g712ee85816 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 7.2.0 (Rev1, Built by MSYS2 project)
  configuration: --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libwebp --cpu=haswell --extra-cflags='-D_WIN32_WINNT=0x0602' --cc='ccache gcc' --x86asmexe=yasm --samples=../samples --prefix=/mingw64
  libavutil      55. 77.101 / 55. 77.101
  libavcodec     57.106.104 / 57.106.104
  libavformat    57. 82.102 / 57. 82.102
  libavdevice    57.  9.101 / 57.  9.101
  libavfilter     6.106.100 /  6.106.100
  libswscale      4.  7.103 /  4.  7.103
  libswresample   2.  8.100 /  2.  8.100
  libpostproc    54.  6.100 / 54.  6.100
Splitting the commandline.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Reading option '-i' ... matched as input url with argument '../samples/svq3/svq3_decoding_regression.mov'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'null'.
Reading option '-' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input url ../samples/svq3/svq3_decoding_regression.mov.
Successfully parsed a group of options.
Opening an input file: ../samples/svq3/svq3_decoding_regression.mov.
[NULL @ 00000000001f8960] Opening '../samples/svq3/svq3_decoding_regression.mov' for reading
[file @ 00000000024c2e00] Setting default whitelist 'file,crypto'
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] ISO: File Type Major Brand: qt
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Unknown dref type 0x206c7275 size 12
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Processing st: 0, edit list 0 - media time: 20800, duration: 82463367283
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 0 @ 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 800 @ 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 1600 @ 2
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 2400 @ 3
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 3200 @ 4
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 4000 @ 5
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 4800 @ 6
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 5600 @ 7
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 6400 @ 8
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 7200 @ 9
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 8000 @ 10
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 8800 @ 11
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 9600 @ 12
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 10400 @ 13
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 11200 @ 14
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 12000 @ 15
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 12800 @ 16
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 13600 @ 17
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 14400 @ 18
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] drop a frame at curr_cts: 15200 @ 19
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Before avformat_find_stream_info() pos: 247510 bytes read:33704 seeks:1 nb_streams:1
[svq3 @ 00000000024d3f20] Unknown fields 0 0 1 1 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Non-increasing DTS in stream 0: packet 2 with DTS 0, packet 3 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Non-increasing DTS in stream 0: packet 3 with DTS 0, packet 4 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Non-increasing DTS in stream 0: packet 4 with DTS 0, packet 5 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Non-increasing DTS in stream 0: packet 5 with DTS 0, packet 6 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Non-increasing DTS in stream 0: packet 6 with DTS 0, packet 7 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Non-increasing DTS in stream 0: packet 7 with DTS 0, packet 8 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Non-increasing DTS in stream 0: packet 8 with DTS 0, packet 9 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Non-increasing DTS in stream 0: packet 9 with DTS 0, packet 10 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Non-increasing DTS in stream 0: packet 10 with DTS 0, packet 11 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Non-increasing DTS in stream 0: packet 11 with DTS 0, packet 12 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Non-increasing DTS in stream 0: packet 12 with DTS 0, packet 13 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Non-increasing DTS in stream 0: packet 13 with DTS 0, packet 14 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Non-increasing DTS in stream 0: packet 14 with DTS 0, packet 15 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Non-increasing DTS in stream 0: packet 15 with DTS 0, packet 16 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Non-increasing DTS in stream 0: packet 16 with DTS 0, packet 17 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Non-increasing DTS in stream 0: packet 17 with DTS 0, packet 18 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] Non-increasing DTS in stream 0: packet 18 with DTS 0, packet 19 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000001f8960] After avformat_find_stream_info() pos: 246574 bytes read:281178 seeks:2 frames:20
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../samples/svq3/svq3_decoding_regression.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 512
    compatible_brands: qt
    artist          : Mark Strube - SupaDupaStrube@msn.com
    artist-eng      : Mark Strube - SupaDupaStrube@msn.com
    title           : Movie-List Presents: The Abyss
    title-eng       : Movie-List Presents: The Abyss
    encoder         : Lavf57.66.101
    copyright       : © 1989 Twentieth Century Fox
    copyright-eng   : © 1989 Twentieth Century Fox
  Duration: 00:00:00.83, bitrate: 2374 kb/s
    Stream #0:0(eng), 20, 1/19200: Video: svq3, 1 reference frame (SVQ3 / 0x33515653), yuvj420p(pc), 480x257, 0/1, 2366 kb/s, 24 fps, 24 tbr, 19200 tbn, 19200 tbc (default)
    Metadata:
      handler_name    : DataHandler
      encoder         : Sorenson Video 3
Successfully opened the file.
Parsing a group of options: output url -.
Applying option f (force format) with argument null.
Successfully parsed a group of options.
Opening an output file: -.
Successfully opened the file.
[svq3 @ 00000000024d5180] Unknown fields 0 0 1 1 0
Stream mapping:
  Stream #0:0 -> #0:0 (svq3 (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
    Last message repeated 1 times
[svq3 @ 00000000024d5180] Missing reference frame.
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
    Last message repeated 18 times
No more output streams to write to, finishing.
Finishing stream 0:0 without any data written to it.
detected 4 logical cores
[graph 0 input from stream 0:0 @ 00000000024c4160] Setting 'video_size' to value '480x257'
[graph 0 input from stream 0:0 @ 00000000024c4160] Setting 'pix_fmt' to value '12'
[graph 0 input from stream 0:0 @ 00000000024c4160] Setting 'time_base' to value '1/19200'
[graph 0 input from stream 0:0 @ 00000000024c4160] Setting 'pixel_aspect' to value '0/1'
[graph 0 input from stream 0:0 @ 00000000024c4160] Setting 'sws_param' to value 'flags=2'
[graph 0 input from stream 0:0 @ 00000000024c4160] Setting 'frame_rate' to value '24/1'
[graph 0 input from stream 0:0 @ 00000000024c4160] w:480 h:257 pixfmt:yuvj420p tb:1/19200 fr:24/1 sar:0/1 sws_param:flags=2
[AVFilterGraph @ 00000000025297c0] query_formats: 3 queried, 2 merged, 0 already done, 0 delayed
Output #0, null, to 'pipe:':
  Metadata:
    major_brand     : qt
    minor_version   : 512
    compatible_brands: qt
    artist          : Mark Strube - SupaDupaStrube@msn.com
    artist-eng      : Mark Strube - SupaDupaStrube@msn.com
    title           : Movie-List Presents: The Abyss
    title-eng       : Movie-List Presents: The Abyss
    copyright-eng   : © 1989 Twentieth Century Fox
    copyright       : © 1989 Twentieth Century Fox
    encoder         : Lavf57.82.102
    Stream #0:0(eng), 0, 1/24: Video: wrapped_avframe, 1 reference frame, yuvj420p, 480x257, 0/1, q=2-31, 200 kb/s, 24 fps, 24 tbn, 24 tbc (default)
    Metadata:
      handler_name    : DataHandler
      encoder         : Lavc57.106.104 wrapped_avframe
frame=    0 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.00 bitrate=N/A speed=   0x
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Input file #0 (../samples/svq3/svq3_decoding_regression.mov):
  Input stream #0:0 (video): 20 packets read (246538 bytes); 0 frames decoded;
  Total: 20 packets (246538 bytes) demuxed
Output file #0 (pipe:):
  Output stream #0:0 (video): 0 frames encoded; 0 packets muxed (0 bytes);
  Total: 0 packets (0 bytes) muxed
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
0 frames successfully decoded, 0 decoding errors
[AVIOContext @ 00000000024cb0a0] Statistics: 281178 bytes read, 2 seeks

Adding "-ignore_editlist 1" to the demuxer options allows to decode the file.

Attachments (1)

svq3_decoding_regression.mov (241.7 KB ) - added by James 6 years ago.

Download all attachments as: .zip

Change History (4)

by James, 6 years ago

comment:1 by James, 6 years ago

Keywords: edts regression added
Priority: normalimportant
Status: newopen

comment:2 by Sasi Inguva, 6 years ago

The file has an edit-list that specifies to play from the 1.3s. offset, while it has only 1s. worth of samples.

Edit list:
Entry[0].SegmentDuration 4294967046
Entry[0].MediaTime 20800
Entry[0].MediaRateInteger 1
Entry[0].MediaRateFraction 0

While total duration in mdhd itself is 16000 only
mdhd:
Timescale 19200
Duration 16000

So, the edit list parsing code is doing the correct thing by not producing any frames. Please investigate why such an edit list has been introduced in the file.

comment:3 by Carl Eugen Hoyos, 6 years ago

Resolution: invalid
Status: openclosed

The file was cut to be as small as possible for the fate testing repository.

Please also look at the other related tickets if you have time.

Note: See TracTickets for help on using tickets.