Reduced the volume to 80%; this might solve some sound quality issues.

This commit is contained in:
fgerlits 2006-09-27 18:25:45 +00:00
parent 05f4b89d95
commit 6dc6db1740
2 changed files with 21 additions and 5 deletions

View file

@ -289,9 +289,16 @@ GstreamerPlayer :: open(const std::string fileUrl)
gst_element_unlink(decoder, fakesink); gst_element_unlink(decoder, fakesink);
gst_object_unref(GST_OBJECT(pipe)); gst_object_unref(GST_OBJECT(pipe));
// connect the decoder to the real audio sink // reduce the volume to 80%
gst_element_link(decoder, audiosink); volume = gst_element_factory_make("volume", NULL);
gst_bin_add_many(GST_BIN(pipeline), filesrc, decoder, audiosink, 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 // connect the eos signal handler
g_signal_connect(decoder, "eos", G_CALLBACK(eosEventHandler), this); g_signal_connect(decoder, "eos", G_CALLBACK(eosEventHandler), this);
@ -440,8 +447,11 @@ GstreamerPlayer :: close(void) throw ()
if (filesrc && decoder) { if (filesrc && decoder) {
gst_element_unlink(filesrc, decoder); gst_element_unlink(filesrc, decoder);
} }
if (decoder && audiosink) { if (decoder && volume) {
gst_element_unlink(decoder, audiosink); gst_element_unlink(decoder, volume);
}
if (volume && audiosink) {
gst_element_unlink(volume, audiosink);
} }
if (decoder) { if (decoder) {
gst_bin_remove(GST_BIN(pipeline), decoder); gst_bin_remove(GST_BIN(pipeline), decoder);
@ -451,6 +461,7 @@ GstreamerPlayer :: close(void) throw ()
} }
filesrc = 0; filesrc = 0;
decoder = 0; decoder = 0;
volume = 0;
} }

View file

@ -112,6 +112,11 @@ class GstreamerPlayer : virtual public Configurable,
*/ */
GstElement * decoder; GstElement * decoder;
/**
* The volume element.
*/
GstElement * volume;
/** /**
* The desired capabilities of the audio sink. * The desired capabilities of the audio sink.
*/ */