Python Discoverer crash

Matt Veenstra matt at tribalmedia.com
Thu Mar 3 15:15:14 PST 2011


Thanks jon. I did not know such a thing existed.

tribalmedia mobile message

On Mar 3, 2011, at 5:03 PM, Jon Nordby <jononor at gmail.com> wrote:

> On 3 March 2011 20:21, Matt Veenstra <matt at tribalmedia.com> wrote:
>> class cMediaTool:
>>        # theFile is a local file.  Is not tested with proper URI. expects
>> format file:///
>>        # mv this expects a/v file.  Fails if not.
>>        def OnDiscovered(self, discoverer, ismedia, infile):
>>                print '\non_discovered:', infile
>>                self.last_duration = 0
>>                # we always want the shortest direction to avoid a/v sync issues.
>>                if (discoverer.videolength >= discoverer.audiolength):
>>                        self.last_duration = discoverer.audiolength / gst.MSECOND
>>                else:
>>                        self.last_duration = discoverer.videolength / gst.MSECOND
>>                discoverer.print_info()
>>                self.mainloop.quit()
>> 
>>        # this creates its own mainloop to create synchronous call.
>>        # this might cause bad things ran inside another mainloop.
>>        def GetFileDuration(self, theFile):
>>                print("GetDuration")
>> 
>>                discoverer = Discoverer(theFile)
>>                discoverer.print_info()
>>                discoverer.connect('discovered', self.OnDiscovered, theFile)
>> 
>>                # The MainLoop
>>                self.mainloop = gobject.MainLoop()
>>                gobject.idle_add(discoverer.discover)
>>                self.mainloop.run()
>>                del self.mainloop
>>                # del discoverer
>>                return self.last_duration
> I suggest you use GstDiscoverer blocking API if you want a blocking
> call, find the python equivalent of
> http://library.gnome.org/devel/gst-plugins-libs/unstable/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri
> 
> -- 
> Jon Nordby - www.jonnor.com


More information about the gstreamer-devel mailing list