示例#1
0
 def test_Audio_to_Video(self):
     source = self.locateFile('tests/videos/sample1.mov')
     extractor = MetaDataExtractor(GraphProxy(source, 'b'))
     masks = [video_tools.create_segment(endframe= 2618367,
                                         rate= 44100,
                                         starttime=0.0,
                                         frames= 2618367,
                                         startframe=1,
                                         endtime=59373.424,
                                         type='audio')]
     newMasks = extractor.create_video_for_audio(source, masks=masks)
     self.assertTrue(len(newMasks) > len(masks))
     self.assertTrue(video_tools.get_start_frame_from_segment(newMasks[1]) == 1)
     self.assertTrue(video_tools.get_end_frame_from_segment(newMasks[1]) == 803)
     self.assertTrue(video_tools.get_rate_from_segment(newMasks[1]) == 28.25)
     self.assertTrue(video_tools.get_end_time_from_segment(newMasks[1]) == 59348.333)
     source = self.locateFile('tests/videos/Sample1_slow.mov')
     masks = [video_tools.create_segment(endframe= 441000,
                                         rate= 44100,
                                         starttime=1000.0,
                                         frames= 396901,
                                         startframe=44100,
                                         endtime=10000.0,
                                         type='audio')]
     newMasks = extractor.create_video_for_audio(source, masks=masks)
     self.assertTrue(len(newMasks) > len(masks))
     self.assertTrue(video_tools.get_rate_from_segment(newMasks[1]) == 10.0)
     self.assertTrue(video_tools.get_start_frame_from_segment(newMasks[1]) == 11)
     self.assertTrue(video_tools.get_end_frame_from_segment(newMasks[1]) == 100)
示例#2
0
 def run_warp(source, target, start_time, end_time):
     source_set = video_tools.FileMetaDataLocator(
         source).getMaskSetForEntireVideo(start_time=start_time,
                                          end_time=end_time)
     self.create_masks(source_set)
     extractor = MetaDataExtractor(GraphProxy(source, target))
     target_set = video_tools.FileMetaDataLocator(
         target).getMaskSetForEntireVideoForTuples(
             start_time_tuple=(video_tools.get_start_time_from_segment(
                 source_set[0]), 0),
             end_time_tuple=(video_tools.get_end_time_from_segment(
                 source_set[0]), 0))
     new_mask_set = extractor.warpMask(source_set, source, target)
     self.assertTrue(
         video_tools.get_frames_from_segment(new_mask_set[0]) ==
         video_tools.get_frames_from_segment(target_set[0]))
     self.assertTrue(
         video_tools.get_end_time_from_segment(new_mask_set[0]) ==
         video_tools.get_end_time_from_segment(target_set[0]))
     self.assertTrue(
         video_tools.get_rate_from_segment(new_mask_set[0]) ==
         video_tools.get_rate_from_segment(target_set[0]))
     self.assertTrue(
         video_tools.get_start_frame_from_segment(new_mask_set[0]) ==
         video_tools.get_start_frame_from_segment(target_set[0]))
     self.assertTrue(
         video_tools.get_start_time_from_segment(new_mask_set[0]) ==
         video_tools.get_start_time_from_segment(target_set[0]))
     file_data = self.read_masks(new_mask_set)
     self.assertEqual(
         video_tools.get_frames_from_segment(new_mask_set[0]),
         file_data[0]['frames'])
示例#3
0
 def testCache(self):
     from maskgen.scenario_model import VideoAddTool
     tool = VideoAddTool()
     source = self.locateFile('tests/videos/sample1.mov')
     target = 'sample1_ffr_ex.mov'
     extractor = MetaDataExtractor(GraphProxy(source, target, source_node=tool.getAdditionalMetaData(source),
                                              target_node={'media':[{'codec_type':'video','height':1000}]}))
     meta = extractor.getVideoMeta(source, show_streams=True)
     self.assertEqual('803', meta[0][0]['nb_frames'])
     meta = extractor.getVideoMeta(target, show_streams=True)
     self.assertEqual(1000, meta[0][0]['height'])
示例#4
0
    def testWarp(self):
        source = self.locateFile('tests/videos/sample1.mov')
        target = 'sample1_ffr_ex.mov'
        source_set = video_tools.getMaskSetForEntireVideo(video_tools.FileMetaDataLocator(source),
                                                          start_time='29', end_time='55')
        target_set = video_tools.getMaskSetForEntireVideoForTuples(video_tools.FileMetaDataLocator(target),
                                                                   start_time_tuple=(video_tools.get_start_time_from_segment(source_set[0]), 0),
                                                                   end_time_tuple=(video_tools.get_end_time_from_segment(source_set[0]), 0))
        print(source_set[0])
        extractor = MetaDataExtractor(GraphProxy(source,target))
        new_mask_set = extractor.warpMask(source_set, source, source)
        print(new_mask_set[0])
        self.assertTrue(video_tools.get_frames_from_segment(new_mask_set[0]) == video_tools.get_frames_from_segment(source_set[0]))
        self.assertTrue(video_tools.get_end_time_from_segment(new_mask_set[0]) == video_tools.get_end_time_from_segment(source_set[0]))
        self.assertTrue(video_tools.get_rate_from_segment(new_mask_set[0]) == video_tools.get_rate_from_segment(source_set[0]))
        self.assertTrue(video_tools.get_start_frame_from_segment(new_mask_set[0]) == video_tools.get_start_frame_from_segment(source_set[0]))
        self.assertTrue(video_tools.get_start_time_from_segment(new_mask_set[0]) == video_tools.get_start_time_from_segment(source_set[0]))
        self._add_mask_files_to_kill(source_set)
        new_mask_set = extractor.warpMask(source_set,  source, target)
        self.assertTrue(video_tools.get_frames_from_segment(new_mask_set[0]) == video_tools.get_frames_from_segment(target_set[0]))
        self.assertTrue(video_tools.get_end_time_from_segment(new_mask_set[0]) == video_tools.get_end_time_from_segment(target_set[0]))
        self.assertTrue(video_tools.get_rate_from_segment(new_mask_set[0]) == video_tools.get_rate_from_segment(target_set[0]))
        self.assertTrue(video_tools.get_start_frame_from_segment(new_mask_set[0]) == video_tools.get_start_frame_from_segment(target_set[0]))
        self.assertTrue(video_tools.get_start_time_from_segment(new_mask_set[0]) == video_tools.get_start_time_from_segment(target_set[0]))
        source_mask_set = extractor.warpMask(new_mask_set, source, target, inverse=True)
        self.assertTrue(abs(video_tools.get_frames_from_segment(source_mask_set[0]) - video_tools.get_frames_from_segment(source_set[0])) < 2)
        self.assertTrue(abs(video_tools.get_end_time_from_segment(source_mask_set[0]) - video_tools.get_end_time_from_segment(source_set[0])) < video_tools.get_error_from_segment(source_mask_set[0]) * 2)
        self.assertTrue(abs(video_tools.get_rate_from_segment(source_mask_set[0]) - video_tools.get_rate_from_segment(source_set[0])) < 0.1)
        self.assertTrue(abs(video_tools.get_start_frame_from_segment(source_mask_set[0]) - video_tools.get_start_frame_from_segment(source_set[0])) < 2)
        self.assertTrue(
            abs(video_tools.get_start_time_from_segment(source_mask_set[0]) - video_tools.get_start_time_from_segment(source_set[0])) < video_tools.get_error_from_segment(source_mask_set[0]) * 2)
        new_mask_set = extractor.warpMask(source_set, source, target, useFFMPEG=True)
        self.assertTrue(video_tools.get_frames_from_segment(new_mask_set[0]) == video_tools.get_frames_from_segment(target_set[0]))
        self.assertTrue(video_tools.get_end_time_from_segment(new_mask_set[0]) == video_tools.get_end_time_from_segment(target_set[0]))
        self.assertTrue(video_tools.get_rate_from_segment(new_mask_set[0]) == video_tools.get_rate_from_segment(target_set[0]))
        self.assertTrue(video_tools.get_start_frame_from_segment(new_mask_set[0]) == video_tools.get_start_frame_from_segment(target_set[0]))
        self.assertTrue(video_tools.get_start_time_from_segment(new_mask_set[0]) == video_tools.get_start_time_from_segment(target_set[0]))
        source_mask_set = extractor.warpMask(new_mask_set, source, target, inverse=True, useFFMPEG=True)
        self.assertTrue(abs(video_tools.get_frames_from_segment(source_mask_set[0]) - video_tools.get_frames_from_segment(source_set[0])) < 2)
        self.assertTrue(abs(video_tools.get_end_time_from_segment(source_mask_set[0]) - video_tools.get_end_time_from_segment(source_set[0])) < video_tools.get_error_from_segment(source_mask_set[0]) * 2)
        self.assertTrue(abs(video_tools.get_rate_from_segment(source_mask_set[0]) - video_tools.get_rate_from_segment(source_set[0])) < 0.1)
        self.assertTrue(abs(video_tools.get_start_frame_from_segment(source_mask_set[0]) - video_tools.get_start_frame_from_segment(source_set[0])) < 2)
        self.assertTrue(
            abs(video_tools.get_start_time_from_segment(source_mask_set[0]) - video_tools.get_start_time_from_segment(source_set[0])) < video_tools.get_error_from_segment(source_mask_set[0]) * 2)

        source_set = target_set
        source = target
        target = 'sample1_ffr_2_ex.mov'
        target_set = video_tools.getMaskSetForEntireVideoForTuples(video_tools.FileMetaDataLocator(target),
                                                                   start_time_tuple=(video_tools.get_start_time_from_segment(source_set[0]), 0),
                                                                   end_time_tuple=(video_tools.get_end_time_from_segment(source_set[0]), 0))
        new_mask_set = extractor.warpMask(new_mask_set, source, target)
        self.assertTrue(video_tools.get_frames_from_segment(new_mask_set[0]) == video_tools.get_frames_from_segment(target_set[0]))
        self.assertTrue(video_tools.get_end_time_from_segment(new_mask_set[0]) == video_tools.get_end_time_from_segment(target_set[0]))
        self.assertTrue(video_tools.get_rate_from_segment(new_mask_set[0]) == video_tools.get_rate_from_segment(target_set[0]))
        self.assertTrue(video_tools.get_start_frame_from_segment(new_mask_set[0]) == video_tools.get_start_frame_from_segment(target_set[0]))
        self.assertTrue(video_tools.get_start_time_from_segment(new_mask_set[0]) == video_tools.get_start_time_from_segment(target_set[0]))
示例#5
0
 def __init__(self, parent):
     self.parent = parent
     self.scModel = parent.scModel
     self.meta_extractor = MetaDataExtractor(parent.scModel.getGraph())
     self.probes = None
     Toplevel.__init__(self, parent)
     self.type = self.parent.scModel.getEndType()
     self.pages = []
     self.current_qa_page = None
     self.checkboxes = {}  #Checkboxes, keyed by page
     self.backs = {}
     self.lookup = {}
     self.subplots = {}
     self.pltdata = {}
     self.backsProbes = {}
     self.photos = {}
     self.commentsBoxes = {}
     self.edges = {}
     self.qaList = []
     self.pathboxes = {}
     self.qaData = maskgen.qa_logic.ValidationData(self.scModel)
     self.resizable(width=False, height=False)
     self.progressBars = []
     self.narnia = {}
     self.pageDisplays = {}  #Frames that go inside pages, keyed by page.
     self.valid = False
     self.mannypage = MannyPage(self)
     self.switch_frame(self.mannypage)
     self.lastpage = None  #Assigned in generate Pages
     self.pages.append(self.mannypage)
     self.getProbes()
     if self.probes is None:
         self.mannypage.statusLabelText.set(
             'Probe Generation failed.  Please consult logs for more details.'
         )
         self.parent.update()
     else:
         self.errors = [p for p in self.probes if p.failure]
         if len(self.errors) > 0:
             self.mannypage.statusLabelText.set(
                 'Probes Complete with errors. Generating Preview Pages.')
         else:
             self.mannypage.statusLabelText.set(
                 'Probes Complete. Generating Preview Pages.')
     self.generate_pages()