示例#1
0
    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, [])
示例#2
0
    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, [])
示例#3
0
    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)
示例#4
0
    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)
示例#5
0
 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)
示例#6
0
 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)
示例#7
0
    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)
示例#8
0
    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)
示例#9
0
    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)
示例#10
0
    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)