[Spice-devel] [PATCH spice-gtk] gstaudio: set object also when GstStreamVolume is not implemented
Snir Sheriber
ssheribe at redhat.com
Mon Jan 14 11:25:02 UTC 2019
If GstStreamVolume is not implemented (e.g. in alsasrc) element value is
set to NULL, this is causing some g_object assertions to fail.
Signed-off-by: Snir Sheriber <ssheribe at redhat.com>
---
src/spice-gstaudio.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/spice-gstaudio.c b/src/spice-gstaudio.c
index d0cfbc6..84f452d 100644
--- a/src/spice-gstaudio.c
+++ b/src/spice-gstaudio.c
@@ -344,7 +344,7 @@ static void playback_data(SpicePlaybackChannel *channel,
static void playback_volume_changed(GObject *object, GParamSpec *pspec, gpointer data)
{
SpiceGstaudio *gstaudio = data;
- GstElement *e;
+ GstElement *e = NULL;
guint16 *volume;
guint nchannels;
SpiceGstaudioPrivate *p = gstaudio->priv;
@@ -365,7 +365,7 @@ static void playback_volume_changed(GObject *object, GParamSpec *pspec, gpointer
if (GST_IS_BIN(p->playback.sink))
e = gst_bin_get_by_interface(GST_BIN(p->playback.sink), GST_TYPE_STREAM_VOLUME);
- else
+ if (!e)
e = g_object_ref(p->playback.sink);
if (GST_IS_STREAM_VOLUME(e))
@@ -380,7 +380,7 @@ static void playback_mute_changed(GObject *object, GParamSpec *pspec, gpointer d
{
SpiceGstaudio *gstaudio = data;
SpiceGstaudioPrivate *p = gstaudio->priv;
- GstElement *e;
+ GstElement *e = NULL;
gboolean mute;
if (!p->playback.sink)
@@ -391,7 +391,7 @@ static void playback_mute_changed(GObject *object, GParamSpec *pspec, gpointer d
if (GST_IS_BIN(p->playback.sink))
e = gst_bin_get_by_interface(GST_BIN(p->playback.sink), GST_TYPE_STREAM_VOLUME);
- else
+ if (!e)
e = g_object_ref(p->playback.sink);
if (GST_IS_STREAM_VOLUME(e))
@@ -404,7 +404,7 @@ static void record_volume_changed(GObject *object, GParamSpec *pspec, gpointer d
{
SpiceGstaudio *gstaudio = data;
SpiceGstaudioPrivate *p = gstaudio->priv;
- GstElement *e;
+ GstElement *e = NULL;
guint16 *volume;
guint nchannels;
gdouble vol;
@@ -424,7 +424,7 @@ static void record_volume_changed(GObject *object, GParamSpec *pspec, gpointer d
if (GST_IS_BIN(p->record.src))
e = gst_bin_get_by_interface(GST_BIN(p->record.src), GST_TYPE_STREAM_VOLUME);
- else
+ if (!e)
e = g_object_ref(p->record.src);
if (GST_IS_STREAM_VOLUME(e))
@@ -439,7 +439,7 @@ static void record_mute_changed(GObject *object, GParamSpec *pspec, gpointer dat
{
SpiceGstaudio *gstaudio = data;
SpiceGstaudioPrivate *p = gstaudio->priv;
- GstElement *e;
+ GstElement *e = NULL;
gboolean mute;
if (!p->record.src)
@@ -450,7 +450,7 @@ static void record_mute_changed(GObject *object, GParamSpec *pspec, gpointer dat
if (GST_IS_BIN(p->record.src))
e = gst_bin_get_by_interface(GST_BIN(p->record.src), GST_TYPE_STREAM_VOLUME);
- else
+ if (!e)
e = g_object_ref(p->record.src);
if (GST_IS_STREAM_VOLUME (e))
@@ -558,7 +558,7 @@ static gboolean spice_gstaudio_get_playback_volume_info_finish(SpiceAudio *audio
GError **error)
{
SpiceGstaudioPrivate *p = SPICE_GSTAUDIO(audio)->priv;
- GstElement *e;
+ GstElement *e = NULL;
gboolean lmute;
gdouble vol;
GTask *task = G_TASK(res);
@@ -582,7 +582,7 @@ static gboolean spice_gstaudio_get_playback_volume_info_finish(SpiceAudio *audio
if (GST_IS_BIN(p->playback.sink))
e = gst_bin_get_by_interface(GST_BIN(p->playback.sink), GST_TYPE_STREAM_VOLUME);
- else
+ if (!e)
e = g_object_ref(p->playback.sink);
if (GST_IS_STREAM_VOLUME(e)) {
@@ -640,7 +640,7 @@ static gboolean spice_gstaudio_get_record_volume_info_finish(SpiceAudio *audio,
GError **error)
{
SpiceGstaudioPrivate *p = SPICE_GSTAUDIO(audio)->priv;
- GstElement *e;
+ GstElement *e = NULL;
gboolean lmute;
gdouble vol;
gboolean fake_channel = FALSE;
@@ -665,7 +665,7 @@ static gboolean spice_gstaudio_get_record_volume_info_finish(SpiceAudio *audio,
if (GST_IS_BIN(p->record.src))
e = gst_bin_get_by_interface(GST_BIN(p->record.src), GST_TYPE_STREAM_VOLUME);
- else
+ if (!e)
e = g_object_ref(p->record.src);
if (GST_IS_STREAM_VOLUME(e)) {
--
2.19.1
More information about the Spice-devel
mailing list