From 7e32cadaf46f420fcf5f74a2434e300af112bf8b Mon Sep 17 00:00:00 2001 From: fduncanh Date: Mon, 25 Apr 2022 13:52:29 -0400 Subject: [PATCH] small cleanup of appsrc construction. --- renderers/audio_renderer_gstreamer.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/renderers/audio_renderer_gstreamer.c b/renderers/audio_renderer_gstreamer.c index 0cda0ae..c7c4568 100644 --- a/renderers/audio_renderer_gstreamer.c +++ b/renderers/audio_renderer_gstreamer.c @@ -26,17 +26,17 @@ /* GStreamer Caps strings for Airplay-defined audio compression types (ct) */ /* ct = 1; linear PCM (uncompressed): 44100/16/2, S16LE */ -static const char lpcm[]="audio/x-raw,rate=(int)44100,channels=(int)2,format=S16LE,layout=interleaved"; +static const char lpcm_caps[]="audio/x-raw,rate=(int)44100,channels=(int)2,format=S16LE,layout=interleaved"; /* ct = 2; codec_data is ALAC magic cookie: 44100/16/2 spf = 352 */ -static const char alac[] = "audio/x-alac,mpegversion=(int)4,channnels=(int)2,rate=(int)44100,stream-format=raw,codec_data=(buffer)" +static const char alac_caps[] = "audio/x-alac,mpegversion=(int)4,channnels=(int)2,rate=(int)44100,stream-format=raw,codec_data=(buffer)" "00000024""616c6163""00000000""00000160""0010280a""0e0200ff""00000000""00000000""0000ac44"; /* ct = 4; codec_data from MPEG v4 ISO 14996-3 Section 1.6.2.1: AAC-LC 44100/2 spf = 1024 */ -static const char aac_lc[] ="audio/mpeg,mpegversion=(int)4,channnels=(int)2,rate=(int)44100,stream-format=raw,codec_data=(buffer)1210"; +static const char aac_lc_caps[] ="audio/mpeg,mpegversion=(int)4,channnels=(int)2,rate=(int)44100,stream-format=raw,codec_data=(buffer)1210"; /* ct = 8; codec_data from MPEG v4 ISO 14996-3 Section 1.6.2.1: AAC_ELD 44100/2 spf = 480 */ -static const char aac_eld[] ="audio/mpeg,mpegversion=(int)4,channnels=(int)2,rate=(int)44100,stream-format=raw,codec_data=(buffer)f8e85000"; +static const char aac_eld_caps[] ="audio/mpeg,mpegversion=(int)4,channnels=(int)2,rate=(int)44100,stream-format=raw,codec_data=(buffer)f8e85000"; typedef struct audio_renderer_s { GstElement *appsrc; @@ -85,7 +85,8 @@ void audio_renderer_init(logger_t *render_logger, const char* audiosink) { for (int i = 0; i < NFORMATS ; i++) { renderer_type[i] = (audio_renderer_t *) calloc(1,sizeof(audio_renderer_t)); assert(renderer_type[i]); - GString *launch = g_string_new("appsrc name=audio_source stream-type=0 format=GST_FORMAT_TIME is-live=true ! queue ! "); + GString *launch = g_string_new("appsrc name=audio_source ! "); + g_string_append(launch, "queue ! "); switch (i) { case 0: /* AAC-ELD */ case 2: /* AAC-LC */ @@ -111,28 +112,28 @@ void audio_renderer_init(logger_t *render_logger, const char* audiosink) { renderer_type[i]->volume = gst_bin_get_by_name (GST_BIN (renderer_type[i]->pipeline), "volume"); switch (i) { case 0: - caps = gst_caps_from_string(aac_eld); + caps = gst_caps_from_string(aac_eld_caps); renderer_type[i]->ct = 8; format[i] = "AAC-ELD 44100/2"; break; case 1: - caps = gst_caps_from_string(alac); + caps = gst_caps_from_string(alac_caps); renderer_type[i]->ct = 2; format[i] = "ALAC 44100/16/2"; break; case 2: - caps = gst_caps_from_string(aac_lc); + caps = gst_caps_from_string(aac_lc_caps); renderer_type[i]->ct = 4; format[i] = "AAC-LC 44100/2"; break; case 3: - caps = gst_caps_from_string(lpcm); + caps = gst_caps_from_string(lpcm_caps); renderer_type[i]->ct = 1; format[i] = "PCM 44100/16/2 S16LE"; break; } logger_log(logger, LOGGER_DEBUG, "supported audio format %d: %s",i+1,format[i]); - g_object_set(renderer_type[i]->appsrc, "caps", caps, NULL); + g_object_set(renderer_type[i]->appsrc, "caps", caps, "stream-type", 0, "is-live", TRUE, "format", GST_FORMAT_TIME, NULL); gst_caps_unref(caps); } }