From 6dc6db1740799758f533110eb4b6723ebb44e8c6 Mon Sep 17 00:00:00 2001 From: fgerlits <fgerlits@cfc7b370-4200-0410-a6e3-cb6bdb053afe> Date: Wed, 27 Sep 2006 18:25:45 +0000 Subject: [PATCH] Reduced the volume to 80%; this might solve some sound quality issues. --- .../playlistExecutor/src/GstreamerPlayer.cxx | 21 ++++++++++++++----- .../playlistExecutor/src/GstreamerPlayer.h | 5 +++++ 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/livesupport/src/modules/playlistExecutor/src/GstreamerPlayer.cxx b/livesupport/src/modules/playlistExecutor/src/GstreamerPlayer.cxx index 05dca337d..1dcd05d01 100644 --- a/livesupport/src/modules/playlistExecutor/src/GstreamerPlayer.cxx +++ b/livesupport/src/modules/playlistExecutor/src/GstreamerPlayer.cxx @@ -289,9 +289,16 @@ GstreamerPlayer :: open(const std::string fileUrl) gst_element_unlink(decoder, fakesink); gst_object_unref(GST_OBJECT(pipe)); - // connect the decoder to the real audio sink - gst_element_link(decoder, audiosink); - gst_bin_add_many(GST_BIN(pipeline), filesrc, decoder, audiosink, NULL); + // reduce the volume to 80% + volume = gst_element_factory_make("volume", NULL); + g_object_set(G_OBJECT(volume), "volume", gdouble(0.8), NULL); + + // connect the decoder to the real audio sink, through the volume element + gst_element_link_many(decoder, volume, audiosink); + gst_bin_add_many(GST_BIN(pipeline), filesrc, + decoder, + volume, + audiosink, NULL); // connect the eos signal handler g_signal_connect(decoder, "eos", G_CALLBACK(eosEventHandler), this); @@ -440,8 +447,11 @@ GstreamerPlayer :: close(void) throw () if (filesrc && decoder) { gst_element_unlink(filesrc, decoder); } - if (decoder && audiosink) { - gst_element_unlink(decoder, audiosink); + if (decoder && volume) { + gst_element_unlink(decoder, volume); + } + if (volume && audiosink) { + gst_element_unlink(volume, audiosink); } if (decoder) { gst_bin_remove(GST_BIN(pipeline), decoder); @@ -451,6 +461,7 @@ GstreamerPlayer :: close(void) throw () } filesrc = 0; decoder = 0; + volume = 0; } diff --git a/livesupport/src/modules/playlistExecutor/src/GstreamerPlayer.h b/livesupport/src/modules/playlistExecutor/src/GstreamerPlayer.h index 6dfb21bfa..fd23f8513 100644 --- a/livesupport/src/modules/playlistExecutor/src/GstreamerPlayer.h +++ b/livesupport/src/modules/playlistExecutor/src/GstreamerPlayer.h @@ -112,6 +112,11 @@ class GstreamerPlayer : virtual public Configurable, */ GstElement * decoder; + /** + * The volume element. + */ + GstElement * volume; + /** * The desired capabilities of the audio sink. */