예제 #1
0
    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)&quot;On2\ VP8&quot;, 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()
예제 #2
0
    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)
예제 #3
0
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