Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/content/media/gstreamer/GStreamerReader.cpp b/content/media/gstreamer/GStreamerReader.cpp
- index 854127e..677eba9 100644
- --- a/content/media/gstreamer/GStreamerReader.cpp
- +++ b/content/media/gstreamer/GStreamerReader.cpp
- @@ -88,6 +88,7 @@ GStreamerReader::~GStreamerReader()
- if (mPlayBin) {
- gst_app_src_end_of_stream(mSource);
- + g_object_unref(mSource);
- gst_element_set_state(mPlayBin, GST_STATE_NULL);
- gst_object_unref(mPlayBin);
- mPlayBin = NULL;
- @@ -160,18 +161,21 @@ nsresult GStreamerReader::Init(MediaDecoderReader* aCloneDonor)
- "audio-sink", mAudioSink,
- NULL);
- - g_object_connect(mPlayBin, "signal::source-setup",
- - GStreamerReader::PlayBinSourceSetupCb, this, NULL);
- -
- + g_signal_connect(G_OBJECT(mPlayBin), "notify::source",
- + G_CALLBACK(GStreamerReader::PlayBinSourceSetupCb), this);
- +
- return NS_OK;
- }
- void GStreamerReader::PlayBinSourceSetupCb(GstElement *aPlayBin,
- - GstElement *aSource,
- + GParamSpec *pspec,
- gpointer aUserData)
- {
- + GstElement *source;
- GStreamerReader *reader = reinterpret_cast<GStreamerReader*>(aUserData);
- - reader->PlayBinSourceSetup(GST_APP_SRC(aSource));
- +
- + g_object_get(aPlayBin, "source", &source, NULL);
- + reader->PlayBinSourceSetup(GST_APP_SRC(source));
- }
- void GStreamerReader::PlayBinSourceSetup(GstAppSrc *aSource)
- diff --git a/content/media/gstreamer/GStreamerReader.h b/content/media/gstreamer/GStreamerReader.h
- index 23d5375..aecf2d1 100644
- --- a/content/media/gstreamer/GStreamerReader.h
- +++ b/content/media/gstreamer/GStreamerReader.h
- @@ -57,7 +57,7 @@ private:
- * configure appsrc .
- */
- static void PlayBinSourceSetupCb(GstElement *aPlayBin,
- - GstElement *aSource,
- + GParamSpec *pspec,
- gpointer aUserData);
- void PlayBinSourceSetup(GstAppSrc *aSource);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement