def test_asset_metadata_on_reload(self): mainloop = GLib.MainLoop() unused, xges_path = tempfile.mkstemp(suffix=".xges") project_uri = Gst.filename_to_uri(os.path.abspath(xges_path)) asset_uri = Gst.filename_to_uri( os.path.join(__file__, "../../assets/audio_video.ogg")) xges = """<ges version='0.3'> <project properties='properties;' metadatas='metadatas;'> <ressources> <asset id='%(uri)s' extractable-type-name='GESUriClip' properties='properties, supported-formats=(int)6, duration=(guint64)2003000000;' metadatas='metadatas, container-format=(string)Matroska, language-code=(string)und, application-name=(string)Lavc56.60.100, encoder-version=(uint)0, audio-codec=(string)Vorbis, nominal-bitrate=(uint)80000, bitrate=(uint)80000, video-codec=(string)"On2\ VP8", file-size=(guint64)223340, foo=(string)bar;' > </asset> </ressources> </project> </ges>""" % { "uri": asset_uri } with open(xges_path, "w") as xges_file: xges_file.write(xges) def loaded_cb(project, timeline): asset = project.list_assets(GES.Extractable)[0] self.assertEqual(asset.get_meta("foo"), "bar") mainloop.quit() loaded_project = GES.Project(uri=project_uri, extractable_type=GES.Timeline) loaded_project.connect("loaded", loaded_cb) timeline = loaded_project.extract() mainloop.run()
def testTimeline(self, timeline): timeline.set_easing_duration(600) Gst.init([]) GES.init() self.project = GES.Project(uri=None, extractable_type=GES.Timeline) bTimeline = GES.Timeline() bTimeline.add_track(GES.Track.audio_raw_new()) bTimeline.add_track(GES.Track.video_raw_new()) self.bTimeline = bTimeline timeline.setTimeline(bTimeline) layer = GES.Layer() bTimeline.add_layer(layer) self.bTimeline = bTimeline self.project.connect("asset-added", self._doAssetAddedCb, layer) self.project.create_asset("file://" + sys.argv[2], GES.UriClip)
def create_project(with_group=False, saved=False): """Creates a project with two clips in a group.""" project = GES.Project() timeline = project.extract() layer = timeline.append_layer() if with_group: clip1 = GES.TitleClip() clip1.set_start(0) clip1.set_duration(10) layer.add_clip(clip1) clip2 = GES.TitleClip() clip2.set_start(100) clip2.set_duration(10) layer.add_clip(clip2) group = GES.Container.group([clip1, clip2]) if saved: uri = "file://%s" % tempfile.NamedTemporaryFile(suffix=".xges").name project.save(timeline, uri, None, overwrite=True) return timeline