def testBusStateChangedIgnored(self): ignore_src = gst.Bin() # ignore element ignored = gst.message_new_state_changed(ignore_src, gst.STATE_READY, gst.STATE_PAUSED, gst.STATE_VOID_PENDING) self.discoverer._busMessageStateChangedCb(None, ignored) self.failUnlessEqual(self.factories, []) # ignore transition ignored = gst.message_new_state_changed(self.src, gst.STATE_NULL, gst.STATE_READY, gst.STATE_PAUSED) self.discoverer._busMessageStateChangedCb(None, ignored) self.failUnlessEqual(self.factories, [])
def testBusStateChangedImageOnly(self): # only image pngdec = gst.element_factory_make("pngdec") self.discoverer.pipeline.add(pngdec) # images don't have duration self.discoverer.current_duration = gst.CLOCK_TIME_NONE pad = pngdec.get_pad("src") caps = gst.Caps(pad.get_caps()[0]) caps[0]["width"] = 320 caps[0]["height"] = 240 caps[0]["framerate"] = gst.Fraction(0, 1) pad.set_caps(caps) self.discoverer._newDecodedPadCb(None, pad, False) self.failUnlessEqual(self.error, None) message = gst.message_new_state_changed(self.src, gst.STATE_READY, gst.STATE_PAUSED, gst.STATE_VOID_PENDING) self.discoverer.addUri("illbepopped") self.failUnlessEqual(self.error, None) self.discoverer._busMessageStateChangedCb(None, message) # should go to PLAYING to do thumbnails self.failUnlessEqual(self.src.get_state(0)[2], gst.STATE_PLAYING) self.discoverer._finishAnalysis("foo") self.failUnlessEqual(len(self.factories), 1) factory = self.factories[0] self.failUnless(isinstance(factory, PictureFileSourceFactory)) self.failUnlessEqual(len(factory.output_streams), 1)
def testBusStateChangedImageOnly(self): # only image pngdec = gst.element_factory_make('pngdec') self.discoverer.pipeline.add(pngdec) # images don't have duration self.discoverer.current_duration = gst.CLOCK_TIME_NONE pad = pngdec.get_pad('src') caps = gst.Caps(pad.get_caps()[0]) caps[0]['width'] = 320 caps[0]['height'] = 240 caps[0]['framerate'] = gst.Fraction(0, 1) pad.set_caps(caps) self.discoverer._newDecodedPadCb(None, pad, False) self.failUnlessEqual(self.error, None) message = gst.message_new_state_changed(self.src, gst.STATE_READY, gst.STATE_PAUSED, gst.STATE_VOID_PENDING) self.discoverer.addUri('illbepopped') self.failUnlessEqual(self.error, None) self.discoverer._busMessageStateChangedCb(None, message) # should go to PLAYING to do thumbnails self.failUnlessEqual(self.src.get_state(0)[2], gst.STATE_PLAYING) self.discoverer._finishAnalysis("foo") self.failUnlessEqual(len(self.factories), 1) factory = self.factories[0] self.failUnless(isinstance(factory, PictureFileSourceFactory)) self.failUnlessEqual(len(factory.output_streams), 1)
def testBusStateChangedNoStreams(self): # no streams found message = gst.message_new_state_changed(self.src, gst.STATE_READY, gst.STATE_PAUSED, gst.STATE_VOID_PENDING) self.discoverer.addUri("illbepopped") self.failUnlessEqual(self.error, None) self.discoverer._busMessageStateChangedCb(None, message) self.failUnlessEqual(self.factories, []) # FIXME: be more strict about the error here self.failUnless(self.error)
def testBusStateChangedNoStreams(self): # no streams found message = gst.message_new_state_changed(self.src, gst.STATE_READY, gst.STATE_PAUSED, gst.STATE_VOID_PENDING) self.discoverer.addUri('illbepopped') self.failUnlessEqual(self.error, None) self.discoverer._busMessageStateChangedCb(None, message) self.failUnlessEqual(self.factories, []) # FIXME: be more strict about the error here self.failUnless(self.error)
def testBusStateChangedAudioOnly(self): # only audio pad = gst.Pad("src", gst.PAD_SRC) pad.set_caps(gst.Caps("audio/x-raw-int")) self.discoverer._newDecodedPadCb(None, pad, False) self.failUnlessEqual(self.error, None) message = gst.message_new_state_changed(self.src, gst.STATE_READY, gst.STATE_PAUSED, gst.STATE_VOID_PENDING) self.discoverer.addUri("illbepopped") self.failUnlessEqual(self.error, None) self.discoverer._busMessageStateChangedCb(None, message) self.failUnlessEqual(len(self.factories), 1) factory = self.factories[0] self.failUnless(isinstance(factory, FileSourceFactory)) self.failUnlessEqual(len(factory.output_streams), 1)
def testBusStateChangedAudioOnly(self): # only audio pad = gst.Pad('src', gst.PAD_SRC) pad.set_caps(gst.Caps('audio/x-raw-int')) self.discoverer._newDecodedPadCb(None, pad, False) self.failUnlessEqual(self.error, None) message = gst.message_new_state_changed(self.src, gst.STATE_READY, gst.STATE_PAUSED, gst.STATE_VOID_PENDING) self.discoverer.addUri('illbepopped') self.failUnlessEqual(self.error, None) self.discoverer._busMessageStateChangedCb(None, message) self.failUnlessEqual(len(self.factories), 1) factory = self.factories[0] self.failUnless(isinstance(factory, FileSourceFactory)) self.failUnlessEqual(len(factory.output_streams), 1)
def testBusStateChangedVideoOnly(self): # only video pad = gst.Pad("src", gst.PAD_SRC) pad.set_caps(gst.Caps("video/x-raw-rgb")) self.discoverer._newDecodedPadCb(None, pad, False) self.failUnlessEqual(self.error, None) message = gst.message_new_state_changed(self.src, gst.STATE_READY, gst.STATE_PAUSED, gst.STATE_VOID_PENDING) self.discoverer.addUri("illbepopped") self.failUnlessEqual(self.error, None) self.discoverer._busMessageStateChangedCb(None, message) # should go to PLAYING to do thumbnails self.failUnlessEqual(self.src.get_state(0)[2], gst.STATE_PLAYING) self.discoverer._finishAnalysis("foo") self.failUnlessEqual(len(self.factories), 1) factory = self.factories[0] self.failUnless(isinstance(factory, FileSourceFactory)) self.failUnlessEqual(len(factory.output_streams), 1)
def testBusStateChangedVideoOnly(self): # only video pad = gst.Pad('src', gst.PAD_SRC) pad.set_caps(gst.Caps('video/x-raw-rgb')) self.discoverer._newDecodedPadCb(None, pad, False) self.failUnlessEqual(self.error, None) message = gst.message_new_state_changed(self.src, gst.STATE_READY, gst.STATE_PAUSED, gst.STATE_VOID_PENDING) self.discoverer.addUri('illbepopped') self.failUnlessEqual(self.error, None) self.discoverer._busMessageStateChangedCb(None, message) # should go to PLAYING to do thumbnails self.failUnlessEqual(self.src.get_state(0)[2], gst.STATE_PLAYING) self.discoverer._finishAnalysis("foo") self.failUnlessEqual(len(self.factories), 1) factory = self.factories[0] self.failUnless(isinstance(factory, FileSourceFactory)) self.failUnlessEqual(len(factory.output_streams), 1)