def run(self): print("Starting XML render") player = PLAYER() # Don't try anything if somehow this was started # while timeline rendering is running if player.is_rendering: print("Can't render XML when another render is already running!") return # Stop all playback before producer is disconnected self.current_playback_frame = player.producer.frame() player.ticker.stop_ticker() player.consumer.stop() player.producer.set_speed(0) player.producer.seek(0) # Wait until producer is at start while player.producer.frame() != 0: time.sleep(0.1) # Get render producer if self.rendered_sequence == None: # default is current sequence timeline_producer = PROJECT().c_seq.tractor else: timeline_producer = self.rendered_sequence.tractor # Get render consumer xml_consumer = mlt.Consumer(PROJECT().profile, "xml", str(self.file_name)) # Connect and start rendering xml_consumer.connect(timeline_producer) xml_consumer.start() timeline_producer.set_speed(1) # Wait until done while xml_consumer.is_stopped() == False: print("In XML render wait loop...") time.sleep(0.1) print("XML render done") # Get app player going again player.connect_and_start() player.seek_frame(0) self.render_done_callback(self.data)
def run(self): print "Starting XML render" player = PLAYER() # Don't try anything if somehow this was started # while timeline rendering is running if player.is_rendering: print "Can't render XML when another render is already running!" return # Stop all playback before producer is disconnected self.current_playback_frame = player.producer.frame() player.ticker.stop_ticker() player.consumer.stop() player.producer.set_speed(0) player.producer.seek(0) # Wait until producer is at start while player.producer.frame() != 0: time.sleep(0.1) # Get render producer timeline_producer = PROJECT().c_seq.tractor # Get render consumer xml_consumer = mlt.Consumer(PROJECT().profile, "xml", str(self.file_name)) # Connect and start rendering xml_consumer.connect(timeline_producer) xml_consumer.start() timeline_producer.set_speed(1) # Wait until done while xml_consumer.is_stopped() == False: print "In XML render wait loop..." time.sleep(0.1) print "XML render done" # Get app player going again player.connect_and_start() player.seek_frame(0) self.render_done_callback(self.data)