From: Jernej Fijačko Date: Fri, 16 Sep 2011 11:58:20 +0000 (+0200) Subject: Support sound recording of MP4A streams X-Git-Tag: 2.99~21^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2790f61836d388613e60c2c236372dfe6b781e19;p=thirdparty%2Ftvheadend.git Support sound recording of MP4A streams --- diff --git a/src/dvr/mkmux.c b/src/dvr/mkmux.c index d0f94bf4e..ac305f778 100644 --- a/src/dvr/mkmux.c +++ b/src/dvr/mkmux.c @@ -215,6 +215,7 @@ mk_build_tracks(mk_mux_t *mkm, const struct streaming_start *ss) codec_id = "A_EAC3"; break; + case SCT_MP4A: case SCT_AAC: tracktype = 2; codec_id = "A_AAC"; @@ -252,6 +253,7 @@ mk_build_tracks(mk_mux_t *mkm, const struct streaming_start *ss) switch(ssc->ssc_type) { case SCT_H264: case SCT_MPEG2VIDEO: + case SCT_MP4A: case SCT_AAC: if(ssc->ssc_gh) ebml_append_bin(t, 0x63a2, @@ -723,7 +725,7 @@ mk_write_frame_i(mk_mux_t *mkm, mk_track *t, th_pkt_t *pkt) data = pktbuf_ptr(pkt->pkt_payload); len = pktbuf_len(pkt->pkt_payload); - if(t->type == SCT_AAC) { + if(t->type == SCT_AAC || t->type == SCT_MP4A) { // Skip ADTS header if(len < 7) return; diff --git a/src/plumbing/globalheaders.c b/src/plumbing/globalheaders.c index 703591bd3..314839e41 100644 --- a/src/plumbing/globalheaders.c +++ b/src/plumbing/globalheaders.c @@ -78,6 +78,7 @@ apply_header(streaming_start_component_t *ssc, th_pkt_t *pkt) return; switch(ssc->ssc_type) { + case SCT_MP4A: case SCT_AAC: ssc->ssc_gh = pktbuf_alloc(NULL, 2); d = pktbuf_ptr(ssc->ssc_gh); @@ -121,6 +122,7 @@ header_complete(streaming_start_component_t *ssc, int not_so_picky) if(ssc->ssc_gh == NULL && (ssc->ssc_type == SCT_H264 || ssc->ssc_type == SCT_MPEG2VIDEO || + ssc->ssc_type == SCT_MP4A || ssc->ssc_type == SCT_AAC)) return 0; return 1; diff --git a/src/webui/extjs.c b/src/webui/extjs.c index b959214f5..3ed9f8b44 100644 --- a/src/webui/extjs.c +++ b/src/webui/extjs.c @@ -1189,6 +1189,7 @@ extjs_servicedetails(http_connection_t *hc, break; case SCT_AC3: + case SCT_MP4A: case SCT_AAC: case SCT_MPEG2AUDIO: htsmsg_add_str(c, "details", st->es_lang);