From 7c6b1a8f7b9a435a2aacad401cc83363db4cfad2 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Fri, 10 Oct 2014 17:19:40 +0200 Subject: [PATCH] mkv: flush cluster also after 1 sec timeout --- src/muxer/tvh/mkmux.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/muxer/tvh/mkmux.c b/src/muxer/tvh/mkmux.c index 2699bdfa..f6e278d7 100644 --- a/src/muxer/tvh/mkmux.c +++ b/src/muxer/tvh/mkmux.c @@ -102,6 +102,7 @@ struct mk_mux { int64_t cluster_tc; off_t cluster_pos; int cluster_maxsize; + time_t cluster_last_close; off_t segment_header_pos; @@ -891,6 +892,7 @@ mk_close_cluster(mk_mux_t *mkm) if(mkm->cluster != NULL) mk_write_master(mkm, 0x1f43b675, mkm->cluster); mkm->cluster = NULL; + mkm->cluster_last_close = dispatch_clock; } @@ -982,6 +984,9 @@ mk_write_frame_i(mk_mux_t *mkm, mk_track_t *t, th_pkt_t *pkt) c_delta_flags[2] = (keyframe << 7) | skippable; htsbuf_append(mkm->cluster, c_delta_flags, 3); htsbuf_append(mkm->cluster, data, len); + + if (mkm->cluster_last_close + 1 < dispatch_clock) + mk_close_cluster(mkm); }