From 7a2560e642db31eacfe0e1f058e3a30504bc6fcf Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Mon, 2 Feb 2015 21:26:07 +0100 Subject: [PATCH] matroska muxer: update total duration using only audio/video tracks --- src/muxer/tvh/mkmux.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/muxer/tvh/mkmux.c b/src/muxer/tvh/mkmux.c index aaad9b04..5f091939 100644 --- a/src/muxer/tvh/mkmux.c +++ b/src/muxer/tvh/mkmux.c @@ -51,6 +51,7 @@ typedef struct mk_track { int avc; int type; int tracknum; + int tracktype; int disabled; int64_t nextpts; @@ -334,6 +335,7 @@ mk_build_tracks(mk_mux_t *mkm, const streaming_start_t *ss) } tr->tracknum = ++tracknum; + tr->tracktype = tracktype; mkm->has_video |= (tracktype == 1); t = htsbuf_queue_alloc(0); @@ -976,7 +978,7 @@ mk_write_frame_i(mk_mux_t *mkm, mk_track_t *t, th_pkt_t *pkt) nxt = ts_rescale(t->nextpts, 1000000000 / MATROSKA_TIMESCALE); pts = ts_rescale(pts, 1000000000 / MATROSKA_TIMESCALE); - if(mkm->totduration < nxt) + if((t->tracktype == 1 || t->tracktype == 2) && mkm->totduration < nxt) mkm->totduration = nxt; delta = pts - mkm->cluster_tc;