+ if caps_string.startswith('audio/x-ac3'):
+ ac3parse = gst.element_factory_make('ac3parse', 'ac3parse')
+ self.transcoder.add(ac3parse)
+ gst.element_link_many(self.audio_input_queue, ac3parse, self.audio_output_queue, self.muxer)
+ ac3parse.set_state(gst.STATE_PLAYING)
+ elif caps_string.startswith('audio/mpeg'):
+ gst.element_link_many(self.audio_input_queue, self.audio_output_queue, self.muxer)
+ else:
+ audioconvert = gst.element_factory_make('audioconvert', 'audioconvert')
+ audio_encoder = gst.element_factory_make('ffenc_mp2', 'audio-encoder')
+ self.transcoder.add(audioconvert, audio_encoder)
+ gst.element_link_many(self.audio_input_queue, audioconvert, audio_encoder, self.audio_output_queue, self.muxer)
+ audioconvert.set_state(gst.STATE_PLAYING)
+ audio_encoder.set_state(gst.STATE_PLAYING)
+
+ def decoder_no_more_pads(self, decoder):
+ gst.element_link_many(self.muxer, self.output_file)
+ self.transcoder.set_state(gst.STATE_PLAYING)