Playbin leak?

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Playbin leak?

mrsinger

I have a pretty simple python app.  The pipeline is built as:
   # BUILD THE GSTREAMER PIPELINE
    self.pipeline = Gst.Pipeline()
    self.pipeline.set_auto_flush_bus(True)

    self.bus = self.pipeline.get_bus()
    self.bus.set_flushing(True)
    self.bus.add_signal_watch()
    self.onEOS_ID = self.bus.connect('message::eos', self.OnEOS)
    self.onError_ID = self.bus.connect('message::error', self.OnError)
   
    self.bus.enable_sync_message_emission()
    self.onSync_ID = self.bus.connect('sync-message::element', self.OnSyncMessage)

    self.playbin = Gst.ElementFactory.make('playbin', None)
    self.playbin.set_property('uri', myFile)
    self.pipeline.add(self.playbin)
    self.playbin.set_property('uri', "file:///myfile")

    Then setup the clock and set the state to PLAY.


    At EOS, I set the state to NULL, change the uri and set the state back to PLAY.

    Works fine, but each new file just increases how much ram is being used.

    Anyone have an idea why?




Reply | Threaded
Open this post in threaded view
|

Re: Playbin leak?

Sebastian Dröge-3
On Fr, 2016-03-04 at 13:07 -0800, mrsinger wrote:

> I have a pretty simple python app.  The pipeline is built as:
>    # BUILD THE GSTREAMER PIPELINE
>     self.pipeline = Gst.Pipeline()
>     self.pipeline.set_auto_flush_bus(True)
>
>     self.bus = self.pipeline.get_bus()
>     self.bus.set_flushing(True)
>     self.bus.add_signal_watch()
>     self.onEOS_ID = self.bus.connect('message::eos', self.OnEOS)
>     self.onError_ID = self.bus.connect('message::error',
> self.OnError)
>     
>     self.bus.enable_sync_message_emission()
>     self.onSync_ID = self.bus.connect('sync-message::element',
> self.OnSyncMessage)
>
>     self.playbin = Gst.ElementFactory.make('playbin', None)
>     self.playbin.set_property('uri', myFile)
>     self.pipeline.add(self.playbin)
>     self.playbin.set_property('uri', "file:///myfile")
>
>     Then setup the clock and set the state to PLAY.
>
>
>     At EOS, I set the state to NULL, change the uri and set the state back
> to PLAY.
>
>     Works fine, but each new file just increases how much ram is being used.
>
>     Anyone have an idea why?
Can you reproduce the same in a C testcase? What does massif say where
the memory is all taken?


Also you don't need to put playbin into a pipeline, playbin *is* a
pipeline :) But that should be unrelated to your problem.

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (968 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

RE: Playbin leak?

mrsinger

Actually embedding playbin in a pipeline was the problem. 

 

Thanks for the tip Sebastian

 

Now to find the guy for did it in the first place J

 

 

From: Sebastian Dröge-3 [via GStreamer-devel] [mailto:ml-node+[hidden email]]
Sent: Saturday, March 05, 2016 2:18 AM
To: Singer, Matt
Subject: Re: Playbin leak?

 

On Fr, 2016-03-04 at 13:07 -0800, mrsinger wrote:


> I have a pretty simple python app.  The pipeline is built as:
>    # BUILD THE GSTREAMER PIPELINE
>     self.pipeline = Gst.Pipeline()
>     self.pipeline.set_auto_flush_bus(True)
>
>     self.bus = self.pipeline.get_bus()
>     self.bus.set_flushing(True)
>     self.bus.add_signal_watch()
>     self.onEOS_ID = self.bus.connect('message::eos', self.OnEOS)
>     self.onError_ID = self.bus.connect('message::error',
> self.OnError)
>     
>     self.bus.enable_sync_message_emission()
>     self.onSync_ID = self.bus.connect('sync-message::element',
> self.OnSyncMessage)
>
>     self.playbin = Gst.ElementFactory.make('playbin', None)
>     self.playbin.set_property('uri', myFile)
>     self.pipeline.add(self.playbin)
>     self.playbin.set_property('uri', "<a href="file:///\\myfile">file:///myfile")
>
>     Then setup the clock and set the state to PLAY.
>
>
>     At EOS, I set the state to NULL, change the uri and set the state back
> to PLAY.
>
>     Works fine, but each new file just increases how much ram is being used.
>
>     Anyone have an idea why?

Can you reproduce the same in a C testcase? What does massif say where
the memory is all taken?


Also you don't need to put playbin into a pipeline, playbin *is* a
pipeline :) But that should be unrelated to your problem.

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


signature.asc (968 bytes) Download Attachment

 


If you reply to this email, your message will be added to the discussion below:

http://gstreamer-devel.966125.n4.nabble.com/Playbin-leak-tp4676185p4676187.html

To unsubscribe from Playbin leak?, click here.
NAML

The information contained in this electronic message is privileged and confidential information; intended solely for the use of the intended recipient. Retransmission, dissemination or other use that any person other than the intended recipient makes of this communication is prohibited and any reliance or decisions made based upon it are solely the responsibility of such person. If you received this in error, contact the sender immediately and destroy all copies of this e-mail.