[Spice-devel] [PATCH spice-gtk] gstaudio: set object also when GstStreamVolume is not implemented
Marc-André Lureau
marcandre.lureau at gmail.com
Mon Jan 14 11:41:27 UTC 2019
On Mon, Jan 14, 2019 at 3:25 PM Snir Sheriber <ssheribe at redhat.com> wrote:
>
> 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>
ack,
thanks
> ---
> 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
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel
--
Marc-André Lureau
More information about the Spice-devel
mailing list