From 448b0a4acd56913239d6e5ae15f431f73c3f5095 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Tue, 25 Nov 2014 10:56:02 +0100 Subject: [PATCH] mkmux; Fix the cluster start (keyframe) --- src/muxer/tvh/mkmux.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/muxer/tvh/mkmux.c b/src/muxer/tvh/mkmux.c index 9b8e0fb9..4ffcef17 100644 --- a/src/muxer/tvh/mkmux.c +++ b/src/muxer/tvh/mkmux.c @@ -962,10 +962,14 @@ mk_write_frame_i(mk_mux_t *mkm, mk_track_t *t, th_pkt_t *pkt) return; } - if(vkeyframe && mkm->cluster && mkm->cluster->hq_size > mkm->cluster_maxsize) + if(vkeyframe && mkm->cluster && + (mkm->cluster->hq_size > mkm->cluster_maxsize || + mkm->cluster_last_close + 1 < dispatch_clock)) mk_close_cluster(mkm); - else if(!mkm->has_video && mkm->cluster && mkm->cluster->hq_size > clusersizemax/40) + else if(!mkm->has_video && mkm->cluster && + (mkm->cluster->hq_size > clusersizemax/40 || + mkm->cluster_last_close + 1 < dispatch_clock)) mk_close_cluster(mkm); else if(mkm->cluster && mkm->cluster->hq_size > clusersizemax) @@ -1005,9 +1009,6 @@ 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); }