Hi,
I'm trying to use gnonlin to timeshift media playback within a pipeline. For example, instead of playing a 60 sec video clip normally, I want the output to be black for 10 sec, play the 60 sec clip, and then play another 10 sec black screen - for a new stream duration of 80 sec. In short, I want to shift the video's stream time range from 0->60 sec to 10->70 sec. In the Java example below (using gstreamer-java), I've added two gnlsource bins to a gnlcomposition and set the start/duration properties accordingly. The first videotestsrc will play as expected for 2 secs, but then the pipeline just stops. I would have expected it to switch over to the second videotestsrc for 1 sec and then switch back to the original videotestsrc for the final 2 secs. If the second gnlsource is removed from the code, the test source plays fine for the full 5 secs. Does anyone know what I'm doing wrong? Thanks! Cheers, - Dave L Pipeline pipe = new Pipeline("pipeline0"); final Bin composition = NativeObject.objectFor( ElementFactory.make("gnlcomposition", null).getNativeAddress(), Bin.class); pipe.add(composition); Bin source1 = Bin.objectFor(ElementFactory.make("gnlsource", null) .getNativeAddress(), Bin.class); source1.set("start", 0); source1.set("duration", 5000000000L); source1.set("media-start", 0); source1.set("media-duration", 5000000000L); source1.set("priority", 1); final Element videotestsrc1 = ElementFactory.make("videotestsrc", null); videotestsrc1.set("pattern", 0); source1.add(videotestsrc1); composition.add(source1); Bin source2 = Bin.objectFor(ElementFactory.make("gnlsource", null) .getNativeAddress(), Bin.class); source2.set("start", 2000000000L); source2.set("duration", 1000000000L); source2.set("media-start", 0); source2.set("media-duration", 1 * 1000000000L); source2.set("priority", 0); final Element videotestsrc2 = ElementFactory.make("videotestsrc", null); videotestsrc2.set("pattern", 1); source2.add(videotestsrc2); composition.add(source2); final Bin videobin = Bin.launch("identity single-segment=true ! " + "ffmpegcolorspace ! ximagesink", true); pipe.add(videobin); composition.connect(new Element.PAD_ADDED() { public void padAdded(Element element, Pad pad) { PadLinkReturn res = pad.link(videobin.getStaticPad("sink")); } }); pipe.setState(State.PLAYING); Gst.main(); ------------------------------------------------------------------------------ Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today. http://p.sf.net/sfu/beautyoftheweb _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |