From 2176e6be49f01770fb0b3f844fcd946612652c15 Mon Sep 17 00:00:00 2001 From: TangoCash Date: Wed, 31 May 2017 20:07:43 +0200 Subject: [PATCH] small fix for gstreamer 1.0 playback Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/4b70aa585c874b9a57fda8c03c5bb5f057865553 Author: TangoCash Date: 2017-05-31 (Wed, 31 May 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- generic-pc/playback_gst_10.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/generic-pc/playback_gst_10.cpp b/generic-pc/playback_gst_10.cpp index 482a607..57d891d 100644 --- a/generic-pc/playback_gst_10.cpp +++ b/generic-pc/playback_gst_10.cpp @@ -72,10 +72,12 @@ static int end_eof = 0; extern GLFramebuffer *glfb; -gint match_sinktype(GstElement *element, gpointer type) +gint match_sinktype(const GValue *velement, const gchar *type) { - return strcmp(g_type_name(G_OBJECT_TYPE(element)), (const char*)type); + GstElement *element = GST_ELEMENT_CAST(g_value_get_object(velement)); + return strcmp(g_type_name(G_OBJECT_TYPE(element)), type); } + GstBusSyncReply Gst_bus_call(GstBus * bus, GstMessage *msg, gpointer user_data) { gchar * sourceName; @@ -207,9 +209,13 @@ GstBusSyncReply Gst_bus_call(GstBus * bus, GstMessage *msg, gpointer user_data) videoSink = NULL; } children = gst_bin_iterate_recurse(GST_BIN(m_gst_playbin)); - GValue *elem; - audioSink = GST_ELEMENT_CAST(gst_iterator_find_custom(children, (GCompareFunc)match_sinktype, elem, (gpointer)"GstDVBAudioSink")); - videoSink = GST_ELEMENT_CAST(gst_iterator_find_custom(children, (GCompareFunc)match_sinktype, elem, (gpointer)"GstDVBVideoSink")); + GValue r = G_VALUE_INIT; + gst_iterator_find_custom(children, (GCompareFunc)match_sinktype, &r, (gpointer)"GstDVBAudioSink"); + audioSink = GST_ELEMENT_CAST(g_value_dup_object (&r)); + g_value_unset (&r); + gst_iterator_find_custom(children, (GCompareFunc)match_sinktype, &r, (gpointer)"GstDVBVideoSink"); + videoSink = GST_ELEMENT_CAST(g_value_dup_object (&r)); + g_value_unset (&r); gst_iterator_free(children); } break;