summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-12-13 03:02:20 +0100
committerMichael Niedermayer <michaelni@gmx.at>2011-12-13 03:02:20 +0100
commit1f83f046090cac09b7a3da7f15182d2143bccf87 (patch)
treedf054359bfe50525d063ba5c2d72df548d455c3f
parent4a6855343f1f4f3804417869f4e87b18b231eda2 (diff)
mp4enc: dont store durations in trun if they are unneeded.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavformat/movenc.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index de6dafb288..31fd05d370 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -1447,8 +1447,12 @@ static int mov_write_trun_tag(AVIOContext *pb, MOVTrack *track)
int tr_flags=0;
int i;
- tr_flags |= 0x700; //FIXME
+ tr_flags |= 0x600; //FIXME
for(i=track->cluster_write_index; i<track->entry; i++){
+ int64_t duration = i + 1 == track->entry ?
+ track->trackDuration - track->cluster[i].dts + track->cluster[0].dts : /* readjusting */
+ track->cluster[i+1].dts - track->cluster[i].dts;
+ if(duration != 1) tr_flags |= 0x100;
if(track->cluster[i].cts) tr_flags |= 0x800;
}