From 5532bf14d1ec5b848dec3dba6a0b279e66d4423d Mon Sep 17 00:00:00 2001 From: Derek Dai Date: Fri, 17 Mar 2017 22:46:41 +0800 Subject: [PATCH] miracle-wfdctl: encode audio with voaacenc instead of avenc_aac to get closer to WFD spec --- src/ctl/wfd-out-session.c | 50 +++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/src/ctl/wfd-out-session.c b/src/ctl/wfd-out-session.c index 16f9e8e..f7b8657 100644 --- a/src/ctl/wfd-out-session.c +++ b/src/ctl/wfd-out-session.c @@ -676,29 +676,33 @@ static int wfd_out_session_create_pipeline(struct wfd_session *s) *tmp ++ = NULL; } - /*if(*os->audio_dev) {*/ - /*for(tmp = pipeline_desc; *tmp; ++tmp);*/ - /**tmp ++ = "pulsesrc";*/ - /**tmp ++ = "do-timestamp=true";*/ - /**tmp ++ = "client-name=miraclecast";*/ - /**tmp ++ = "device=";*/ - /**tmp ++ = quote_str(os->audio_dev, audio_dev, sizeof(audio_dev));*/ - /**tmp ++ = "!";*/ - /**tmp ++ = "audioconvert";*/ - /**tmp ++ = "!";*/ - /**tmp ++ = "audio/x-raw,";*/ - /**tmp ++ = "rate=48000,";*/ - /**tmp ++ = "channels=2";*/ - /**tmp ++ = "!";*/ - /**tmp ++ = "avenc_aac";*/ - /**tmp ++ = "!";*/ - /**tmp ++ = "queue";*/ - /*[>*tmp ++ = "max-size-buffers=0";<]*/ - /*[>*tmp ++ = "max-size-bytes=0";<]*/ - /**tmp ++ = "!";*/ - /**tmp ++ = "muxer.";*/ - /**tmp ++ = NULL;*/ - /*}*/ + if(*os->audio_dev) { + for(tmp = pipeline_desc; *tmp; ++tmp); + *tmp ++ = "pulsesrc"; + *tmp ++ = "do-timestamp=true"; + *tmp ++ = "client-name=miraclecast"; + *tmp ++ = "device="; + *tmp ++ = quote_str(os->audio_dev, audio_dev, sizeof(audio_dev)); + *tmp ++ = "!"; + *tmp ++ = "voaacenc"; + *tmp ++ = "mark-granule=true"; + *tmp ++ = "hard-resync=true"; + *tmp ++ = "tolerance=40"; + *tmp ++ = "!"; + *tmp ++ = "audio/mpeg,"; + *tmp ++ = "rate=48000,"; + *tmp ++ = "channels=2,"; + *tmp ++ = "stream-format=adts,"; + *tmp ++ = "base-profile=lc"; + *tmp ++ = "!"; + *tmp ++ = "queue"; + *tmp ++ = "max-size-buffers=0"; + *tmp ++ = "max-size-bytes=0"; + *tmp ++ = "max-size-time=0"; + *tmp ++ = "!"; + *tmp ++ = "muxer."; + *tmp ++ = NULL; + } /* bad pratice, but since we are in the same process, I think this is the only way to do it */