Esempio n. 1
0
    def setup(self):
        self.bitrate.data_type = int
        self.quality.data_type = int
        self.noise_sensitivity.data_type = int
        self.keyframe_delta.data_type = float
        self.sharpness.data_type = int
        self.has_quality.data_type = bool
        self.has_bitrate.data_type = bool

        self.add_proxy(self.model,
                       ['has_quality', 'has_bitrate'])
        self.add_proxy(self.model.properties,
                       ['bitrate', 'quality', 'keyframe_delta',
                        'noise_sensitivity', 'sharpness'])

        # we specify keyframe_delta in seconds, but theora expects
        # a number of frames, so we need the framerate and calculate
        # we need to go through the Step (which is the view) because models
        # don't have references to other models
        producer = self.wizard.getScenario().getVideoProducer(self.wizard)
        self.model.framerate = fractionAsFloat(producer.getFramerate())
        self.debug('Framerate of video producer: %r' % self.model.framerate)
        step = 1 / self.model.framerate
        page = 1.0
        self.keyframe_delta.set_increments(step, page)
Esempio n. 2
0
    def setup(self):
        self.qmin.data_type = int
        self.qmax.data_type = int
        self.threshold.data_type = int
        self.keyframe_interval.data_type = float

        producer = self.wizard.getScenario().getVideoProducer(self.wizard)
        self.model.framerate = fractionAsFloat(producer.getFramerate())
        self.model.keyframe_interval = 20 / self.model.framerate

        self.add_proxy(self.model.properties, ['qmin', 'qmax', 'threshold'])
        self.add_proxy(self.model, ['keyframe_interval'])

        step = 1 / self.model.framerate
        page = 1.0
        self.keyframe_interval.set_increments(step, page)
Esempio n. 3
0
    def setup(self):
        self.qmin.data_type = int
        self.qmax.data_type = int
        self.threshold.data_type = int
        self.keyframe_interval.data_type = float

        producer = self.wizard.getScenario().getVideoProducer(self.wizard)
        self.model.framerate = fractionAsFloat(producer.getFramerate())
        self.model.keyframe_interval = 20 / self.model.framerate

        self.add_proxy(self.model.properties,
                       ['qmin', 'qmax', 'threshold'])
        self.add_proxy(self.model, ['keyframe_interval'])

        step = 1 / self.model.framerate
        page = 1.0
        self.keyframe_interval.set_increments(step, page)
Esempio n. 4
0
    def _updateFramerate(self):
        if self._inSetup:
            return None

        framerate = self.framerate.get_selected()
        if framerate:
            num, denom = framerate['framerate']
            mime = framerate['mime']
            format = framerate.get('format', None)
        else:
            self.warning('something bad happened: no framerate selected?')
            num, denom = 15, 2
            mime = 'video/x-raw-yuv'
            format = None

        self.model.properties.mime = mime
        self.model.properties.framerate = fractionAsFloat((num, denom))
        if format:
            self.model.properties.format = format
Esempio n. 5
0
    def setup(self):
        self.bitrate.data_type = int
        self.quality.data_type = int
        self.keyframe_delta.data_type = float
        self.option_string.data_type = str

        self.add_proxy(
            self.model.properties,
            ['bitrate', 'quality', 'keyframe_delta', 'option_string'])

        # we specify keyframe_delta in seconds, but x264 expects
        # a number of frames, so we need the framerate and calculate
        # we need to go through the Step (which is the view) because models
        # don't have references to other models
        producer = self.wizard.getScenario().getVideoProducer(self.wizard)
        self.model.framerate = fractionAsFloat(producer.getFramerate())
        self.debug('Framerate of video producer: %r' % self.model.framerate)
        step = 1 / self.model.framerate
        page = 1.0
        self.keyframe_delta.set_increments(step, page)
Esempio n. 6
0
 def testFractionAsFloat(self):
     self.assertEquals(fractionAsFloat((10, 10)), 1)
     self.assertEquals(fractionAsFloat((4, 5)), 0.8)
Esempio n. 7
0
 def testFractionAsFloat(self):
     self.assertEquals(fractionAsFloat((10, 10)), 1)
     self.assertEquals(fractionAsFloat((4, 5)), 0.8)