Commit 12673bb2 authored by Sasi Inguva's avatar Sasi Inguva Committed by Michael Niedermayer

lavf/mov.c: Set start_time for all streams (in case of edit lists).

Fixes vorbis mp4 audio files, with edit list specified. Since
st->skip_samples is not set in case of vorbis , ffmpeg computes the
start_time as negative.
Signed-off-by: 's avatarSasi Inguva <isasi@google.com>
Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 87cc7e8d
...@@ -3686,9 +3686,9 @@ static void mov_fix_index(MOVContext *mov, AVStream *st) ...@@ -3686,9 +3686,9 @@ static void mov_fix_index(MOVContext *mov, AVStream *st)
st->index_entries[i].timestamp -= msc->min_corrected_pts; st->index_entries[i].timestamp -= msc->min_corrected_pts;
} }
} }
}
// Start time should be equal to zero or the duration of any empty edits. // Start time should be equal to zero or the duration of any empty edits.
st->start_time = empty_edits_sum_duration; st->start_time = empty_edits_sum_duration;
}
// Update av stream length, if it ends up shorter than the track's media duration // Update av stream length, if it ends up shorter than the track's media duration
st->duration = FFMIN(st->duration, edit_list_dts_entry_end - start_dts); st->duration = FFMIN(st->duration, edit_list_dts_entry_end - start_dts);
......
...@@ -19,6 +19,7 @@ FATE_MOV = fate-mov-3elist \ ...@@ -19,6 +19,7 @@ FATE_MOV = fate-mov-3elist \
fate-mov-stream-shorter-than-movie \ fate-mov-stream-shorter-than-movie \
FATE_MOV_FFPROBE = fate-mov-neg-firstpts-discard \ FATE_MOV_FFPROBE = fate-mov-neg-firstpts-discard \
fate-mov-neg-firstpts-discard-vorbis \
fate-mov-aac-2048-priming \ fate-mov-aac-2048-priming \
fate-mov-zombie \ fate-mov-zombie \
fate-mov-init-nonkeyframe \ fate-mov-init-nonkeyframe \
...@@ -89,6 +90,10 @@ fate-mov-bbi-elst-starts-b: CMD = framemd5 -flags +bitexact -acodec aac_fixed -i ...@@ -89,6 +90,10 @@ fate-mov-bbi-elst-starts-b: CMD = framemd5 -flags +bitexact -acodec aac_fixed -i
# Makes sure that the stream start_time is not negative when the first packet is a DISCARD packet with negative timestamp. # Makes sure that the stream start_time is not negative when the first packet is a DISCARD packet with negative timestamp.
fate-mov-neg-firstpts-discard: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=start_time -bitexact $(TARGET_SAMPLES)/mov/mov_neg_first_pts_discard.mov fate-mov-neg-firstpts-discard: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=start_time -bitexact $(TARGET_SAMPLES)/mov/mov_neg_first_pts_discard.mov
# Makes sure that the VORBIS audio stream start_time is not negative when the first few packets are DISCARD packets
# with negative timestamps (skip_samples is not set for Vorbis, so ffmpeg computes start_time as negative if not specified by demuxer).
fate-mov-neg-firstpts-discard-vorbis: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=start_time -bitexact $(TARGET_SAMPLES)/mov/mov_neg_first_pts_discard_vorbis.mp4
# Makes sure that expected frames are generated for mov_neg_first_pts_discard.mov with -vsync 1 # Makes sure that expected frames are generated for mov_neg_first_pts_discard.mov with -vsync 1
fate-mov-neg-firstpts-discard-frames: CMD = framemd5 -flags +bitexact -i $(TARGET_SAMPLES)/mov/mov_neg_first_pts_discard.mov -vsync 1 fate-mov-neg-firstpts-discard-frames: CMD = framemd5 -flags +bitexact -i $(TARGET_SAMPLES)/mov/mov_neg_first_pts_discard.mov -vsync 1
......
[STREAM]
start_time=0.000000
[/STREAM]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment