From: John Törnblom Date: Thu, 8 Mar 2012 09:53:07 +0000 (+0100) Subject: sanity checks for mkv muxer X-Git-Tag: 2.99~8^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=07df79f2ee62ce649d6e1b0c5e472c869ddb3a47;p=thirdparty%2Ftvheadend.git sanity checks for mkv muxer --- diff --git a/src/dvr/mkmux.c b/src/dvr/mkmux.c index 54a350ced..1303d69f9 100644 --- a/src/dvr/mkmux.c +++ b/src/dvr/mkmux.c @@ -810,10 +810,13 @@ mk_write_frame_i(mk_mux_t *mkm, mk_track *t, th_pkt_t *pkt) int skippable = pkt->pkt_frametype == PKT_B_FRAME; int vkeyframe = SCT_ISVIDEO(t->type) && keyframe; - uint8_t *data; - size_t len; + uint8_t *data = pktbuf_ptr(pkt->pkt_payload); + size_t len = pktbuf_len(pkt->pkt_payload); const int clusersizemax = 2000000; + if(!data || len <= 0) + return; + if(pts == PTS_UNSET) // This is our best guess, it might be wrong but... oh well pts = t->nextpts; @@ -863,10 +866,6 @@ mk_write_frame_i(mk_mux_t *mkm, mk_track *t, th_pkt_t *pkt) addcue(mkm, pts, t->tracknum); } - - data = pktbuf_ptr(pkt->pkt_payload); - len = pktbuf_len(pkt->pkt_payload); - if(t->type == SCT_AAC || t->type == SCT_MP4A) { // Skip ADTS header if(len < 7)