Opened 11 years ago

Closed 11 years ago

#1820 closed defect (fixed)

track->cluster[0].dts <= 0 assertion when encoding MOV

Reported by: Andrew Wason Owned by:
Priority: important Component: avformat
Version: git-master Keywords: regression mov crash abort
Cc: dave rice Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug: ffmpeg aborting with assertion "Assertion track->cluster[0].dts <= 0 failed at libavformat/movenc.c:1708" when encoding to MOV.
How to reproduce: Sample (truncated) file uploaded to upload.ffmpeg.org:/incoming/dts-assert.mp4
See command line below and gdb backtrace.
This file transcoded as of ffmpeg commit f3bd6fa7a
The file was created by a Flip Video HD camera.

(gdb) run -v 9 -loglevel 99 -i ~/Desktop/dts-assert.mp4 -r 30 -codec:v rawvideo -pix_fmt uyvy422 -tag:v 2vuy -codec:a pcm_s32le -sample_fmt s32 -ac 1 -f mov -y ~/Desktop/out.mov
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /Users/aw/Projects/snapfish/encoder/foundation/ffmpeg/ffmpeg_g -v 9 -loglevel 99 -i ~/Desktop/dts-assert.mp4 -r 30 -codec:v rawvideo -pix_fmt uyvy422 -tag:v 2vuy -codec:a pcm_s32le -sample_fmt s32 -ac 1 -f mov -y ~/Desktop/out.mov
Reading symbols for shared libraries . done
ffmpeg version N-45569-g22c5cc2 Copyright (c) 2000-2012 the FFmpeg developers
  built on Oct 15 2012 16:18:36 with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
  configuration: --enable-shared --enable-debug=gdb3 --disable-optimizations --disable-asm --disable-stripping --prefix=/Users/aw/Projects/snapfish/encoder/foundation/ffmpeg/save/installed-new
  libavutil      51. 76.100 / 51. 76.100
  libavcodec     54. 66.100 / 54. 66.100
  libavformat    54. 32.101 / 54. 32.101
  libavdevice    54.  3.100 / 54.  3.100
  libavfilter     3. 19.102 /  3. 19.102
  libswscale      2.  1.101 /  2.  1.101
  libswresample   0. 16.100 /  0. 16.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x10201e200] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x10201e200] ISO: File Type Major Brand: MSNV
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x10201e200] File position before avformat_find_stream_info() is 60637
[h264 @ 0x10203a600] Using externally provided dimensions
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x10201e200] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x10201e200] File position after avformat_find_stream_info() is 128752
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/aw/Desktop/dts-assert.mp4':
  Metadata:
    major_brand     : MSNV
    minor_version   : 19464262
    compatible_brands: MSNVmp42isom
    creation_time   : 2008-10-25 16:47:14
  Duration: 00:01:39.20, start: 0.000033, bitrate: 422 kb/s
    Stream #0:0(jpn), 1, 1/30000: Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720, 1/60000, 10371 kb/s, 30 fps, 30 tbr, 30k tbn, 60k tbc
    Metadata:
      creation_time   : 2008-10-25 16:47:14
      handler_name    : ?Video Media Handler
    Stream #0:1(jpn), 1, 1/44100: Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, s16, 64 kb/s
    Metadata:
      creation_time   : 2008-10-25 16:47:14
      handler_name    : ?Sound Media Handler
[buffer @ 0x101814380] Setting entry with key 'video_size' to value '1280x720'
[buffer @ 0x101814380] Setting entry with key 'pix_fmt' to value '0'
[buffer @ 0x101814380] Setting entry with key 'time_base' to value '1/30000'
[buffer @ 0x101814380] Setting entry with key 'pixel_aspect' to value '0/1'
[buffer @ 0x101814380] Setting entry with key 'sws_param' to value 'flags=2'
[buffer @ 0x101814380] Setting entry with key 'frame_rate' to value '30/1'
[graph 0 input from stream 0:0 @ 0x101814300] w:1280 h:720 pixfmt:yuv420p tb:1/30000 fr:30/1 sar:0/1 sws_param:flags=2
[format @ 0x101814580] auto-inserting filter 'auto-inserted scaler 0' between the filter 'Parsed_null_0' and the filter 'format'
[auto-inserted scaler 0 @ 0x101814ae0] w:1280 h:720 fmt:yuv420p sar:0/1 -> w:1280 h:720 fmt:uyvy422 sar:0/1 flags:0x4
[abuffer @ 0x101815c70] Setting entry with key 'time_base' to value '1/44100'
[abuffer @ 0x101815c70] Setting entry with key 'sample_rate' to value '44100'
[abuffer @ 0x101815c70] Setting entry with key 'sample_fmt' to value 's16'
[abuffer @ 0x101815c70] Setting entry with key 'channel_layout' to value '0x4'
[graph 1 input from stream 0:1 @ 0x101815bf0] tb:1/44100 samplefmt:s16 samplerate:44100 chlayout:0x4
[aformat @ 0x101816060] Setting entry with key 'sample_fmts' to value 's32'
[aformat @ 0x101816060] Setting entry with key 'channel_layouts' to value '0x4'
[audio format for output stream 0:1 @ 0x101815e40] 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 @ 0x101816530] chl:mono fmt:s16 r:44100Hz -> chl:mono fmt:s32 r:44100Hz
[h264 @ 0x10203a600] detected 4 logical cores
Output #0, mov, to '/Users/aw/Desktop/out.mov':
  Metadata:
    major_brand     : MSNV
    minor_version   : 19464262
    compatible_brands: MSNVmp42isom
    encoder         : Lavf54.32.101
    Stream #0:0(jpn), 0, 1/15360: Video: rawvideo (2vuy / 0x79757632), uyvy422, 1280x720, 1/30, q=2-31, 200 kb/s, 15360 tbn, 30 tbc
    Metadata:
      creation_time   : 2008-10-25 16:47:14
      handler_name    : ?Video Media Handler
    Stream #0:1(jpn), 0, 1/44100: Audio: pcm_s32le (in32 / 0x32336E69), 44100 Hz, mono, s32, 1411 kb/s
    Metadata:
      creation_time   : 2008-10-25 16:47:14
      handler_name    : ?Sound Media Handler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> rawvideo)
  Stream #0:1 -> #0:1 (aac -> pcm_s32le)
Press [q] to stop, [?] for help
[h264 @ 0x1020af200] Using externally provided dimensions
frame=    7 fps=0.0 q=0.0 size=   12636kB time=00:00:00.34 bitrate=297180.2kbitsframe=   17 fps= 16 q=0.0 size=   30692kB time=00:00:00.67 bitrate=373372.1kbitsframe=   27 fps= 17 q=0.0 size=   48752kB time=00:00:01.02 bitrate=390893.9kbitsframe=   37 fps= 18 q=0.0 size=   66808kB time=00:00:01.34 bitrate=406370.3kbitsframe=   47 fps= 18 q=0.0 size=   84868kB time=00:00:01.67 bitrate=415847.8kbitsframe=   57 fps= 18 q=0.0 size=  102924kB time=00:00:01.99 bitrate=422223.1kbitsframe=   67 fps= 18 q=0.0 size=  120980kB time=00:00:02.34 bitrate=422587.6kbitsframe=   76 fps= 18 q=0.0 size=  137232kB time=00:00:02.64 bitrate=424693.3kbitsframe=   84 fps= 18 q=0.0 size=  151680kB time=00:00:02.92 bitrate=424700.8kbitsframe=   92 fps= 17 q=0.0 size=  166124kB time=00:00:03.18 bitrate=427796.7kbitsframe=  100 fps= 17 q=0.0 size=  180572kB time=00:00:03.43 bitrate=430441.8kbitsframe=  108 fps= 17 q=0.0 size=  195016kB time=00:00:03.71 bitrate=430007.8kbitsTruncating packet of size 48505 to 47966
[h264 @ 0x102801200] AVC: nal size 48501
    Last message repeated 1 times
[h264 @ 0x102801200] no frame!
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x10201e200] stream 1, offset 0x50021c: partial file
/Users/aw/Desktop/dts-assert.mp4: Invalid data found when processing input
frame=  116 fps= 17 q=0.0 size=  209464kB time=00:00:03.97 bitrate=432154.9kbitsEOF on sink link output stream 0:0:default.
[output stream 0:1 @ 0x101815f00] EOF on sink link output stream 0:1:default.
No more output streams to write to, finishing.
Assertion track->cluster[0].dts <= 0 failed at libavformat/movenc.c:1708

Program received signal SIGABRT, Aborted.
0x00007fff918e1212 in __pthread_kill ()
(gdb) bt
#0  0x00007fff918e1212 in __pthread_kill ()
#1  0x00007fff8cc1daf4 in pthread_kill ()
#2  0x00007fff8cc61dce in abort ()
#3  0x000000010017d173 in mov_write_edts_tag (pb=0x1018138c0, track=0x103000bf0) at movenc.c:1708
#4  0x000000010017d8ec in mov_write_trak_tag (pb=0x1018138c0, mov=0x101812c60, track=0x103000bf0, st=0x1018134a0) at movenc.c:1781
#5  0x0000000100180c68 in mov_write_moov_tag (pb=0x1018138c0, mov=0x101812c60, s=0x102025200) at movenc.c:2308
#6  0x0000000100188731 in mov_write_trailer (s=0x102025200) at movenc.c:3844
#7  0x00000001001a3cf2 in av_write_trailer (s=0x102025200) at mux.c:775
#8  0x000000010001f0f2 in transcode () at ffmpeg.c:3003
#9  0x000000010001f6f2 in main (argc=25, argv=0x7fff5fbff8e0) at ffmpeg.c:3157

Change History (4)

comment:1 by Carl Eugen Hoyos, 11 years ago

Keywords: regression mov added
Priority: normalimportant
Reproduced by developer: set
Status: newopen

Regression since 14fd34d, reproducible with:

$ ffmpeg -i dts-assert.mp4 -vn -acodec pcm_s32le out.mov

Sample is in http://samples.ffmpeg.org/ffmpeg-bugs/trac/ticket1820/

comment:2 by Carl Eugen Hoyos, 11 years ago

Keywords: crash abort added

comment:3 by Carl Eugen Hoyos, 11 years ago

Cc: dave rice added

Ticket #1908 looks like a duplicate of this ticket.

comment:4 by Michael Niedermayer, 11 years ago

Resolution: fixed
Status: openclosed
Note: See TracTickets for help on using tickets.