Advertisement
Guest User

Untitled

a guest
Jan 28th, 2013
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.04 KB | None | 0 0
  1. diff --git a/content/media/gstreamer/GStreamerReader.cpp b/content/media/gstreamer/GStreamerReader.cpp
  2. index 854127e..677eba9 100644
  3. --- a/content/media/gstreamer/GStreamerReader.cpp
  4. +++ b/content/media/gstreamer/GStreamerReader.cpp
  5. @@ -88,6 +88,7 @@ GStreamerReader::~GStreamerReader()
  6.  
  7.    if (mPlayBin) {
  8.      gst_app_src_end_of_stream(mSource);
  9. +    g_object_unref(mSource);
  10.      gst_element_set_state(mPlayBin, GST_STATE_NULL);
  11.      gst_object_unref(mPlayBin);
  12.      mPlayBin = NULL;
  13. @@ -160,18 +161,21 @@ nsresult GStreamerReader::Init(MediaDecoderReader* aCloneDonor)
  14.        "audio-sink", mAudioSink,
  15.        NULL);
  16.  
  17. -  g_object_connect(mPlayBin, "signal::source-setup",
  18. -      GStreamerReader::PlayBinSourceSetupCb, this, NULL);
  19. -
  20. +  g_signal_connect(G_OBJECT(mPlayBin), "notify::source",
  21. +    G_CALLBACK(GStreamerReader::PlayBinSourceSetupCb), this);
  22. +  
  23.    return NS_OK;
  24.  }
  25.  
  26.  void GStreamerReader::PlayBinSourceSetupCb(GstElement *aPlayBin,
  27. -                                             GstElement *aSource,
  28. +                                             GParamSpec *pspec,
  29.                                               gpointer aUserData)
  30.  {
  31. +  GstElement *source;
  32.    GStreamerReader *reader = reinterpret_cast<GStreamerReader*>(aUserData);
  33. -  reader->PlayBinSourceSetup(GST_APP_SRC(aSource));
  34. +
  35. +  g_object_get(aPlayBin, "source", &source, NULL);
  36. +  reader->PlayBinSourceSetup(GST_APP_SRC(source));
  37.  }
  38.  
  39.  void GStreamerReader::PlayBinSourceSetup(GstAppSrc *aSource)
  40. diff --git a/content/media/gstreamer/GStreamerReader.h b/content/media/gstreamer/GStreamerReader.h
  41. index 23d5375..aecf2d1 100644
  42. --- a/content/media/gstreamer/GStreamerReader.h
  43. +++ b/content/media/gstreamer/GStreamerReader.h
  44. @@ -57,7 +57,7 @@ private:
  45.     * configure appsrc .
  46.     */
  47.    static void PlayBinSourceSetupCb(GstElement *aPlayBin,
  48. -                                   GstElement *aSource,
  49. +                                   GParamSpec *pspec,
  50.                                     gpointer aUserData);
  51.    void PlayBinSourceSetup(GstAppSrc *aSource);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement