def __init__(self, video_media, begin, end, cut_video_name, controller): threading.Thread.__init__(self) self.video_media = video_media self.begin = begin self.end = end self.cut_video_name = cut_video_name self.recorder = VideoRecorder(self._Media()) self.controller = controller
class ThreadRecordCutVideo(threading.Thread): """ """ def __init__(self, video_media, begin, end, cut_video_name, controller): threading.Thread.__init__(self) self.video_media = video_media self.begin = begin self.end = end self.cut_video_name = cut_video_name self.recorder = VideoRecorder(self._Media()) self.controller = controller #self.resource = Resource() #self.publisher = self.resource.get_publisher() def run(self): if not self.end > self.begin: log.print_function(logger.error, "end frame (%d) is not greater than begin frame (%d)." % (self.end, self.begin)) return if not (self.begin >= 0 and self.end <= self.video_media.get_total_frames()): log.print_function(logger.error, "begin frame(%d) and end frame(%d) must be between 0 and %d." % (self.end, self.begin, self.video_media.get_total_frames())) return if self.recorder.start(123, self.cut_video_name): self.video_media.set_position(self.begin) for frame_no in range(self.begin, self.end): img = self.video_media.next() self.recorder.add_image(img) new_file_name = self.recorder.get_file_name() self.recorder.stop() self.controller.add_lst_record_historic("Movie", new_file_name) log.print_function(logger.info, "Video has been cut and new video has been saved to %s" % new_file_name) class _Media(): def add_observer(self, cp): pass def remove_observer(self, cb): pass