public void TestBufferOwnershipNIp() { MyTransformNIp.Register(); Pipeline pipeline = new Pipeline(); Element src = ElementFactory.Make("fakesrc"); src["sizetype"] = 2; Element capsfilter = ElementFactory.Make("capsfilter"); capsfilter["caps"] = Caps.FromString("foo/bar"); src["num-buffers"] = 10; MyTransformNIp transform = new MyTransformNIp(); Element sink = ElementFactory.Make("fakesink"); pipeline.Add(src, capsfilter, transform, sink); Element.Link(src, capsfilter, transform, sink); GLib.MainLoop loop = new GLib.MainLoop(); pipeline.Bus.AddWatch(delegate(Bus bus, Message message) { switch (message.Type) { case MessageType.Error: Enum err; string msg; message.ParseError(out err, out msg); Assert.Fail(String.Format("Error message: {0}", msg)); loop.Quit(); break; case MessageType.Eos: loop.Quit(); break; } return(true); }); pipeline.SetState(State.Playing); loop.Run(); Assert.IsTrue(transform.transformed); pipeline.SetState(State.Null); }
public void TestBufferOwnershipNIp() { MyTransformNIp.Register (); Pipeline pipeline = new Pipeline (); Element src = ElementFactory.Make ("fakesrc"); src["sizetype"] = 2; Element capsfilter = ElementFactory.Make ("capsfilter"); capsfilter["caps"] = Caps.FromString ("foo/bar"); src["num-buffers"] = 10; MyTransformNIp transform = new MyTransformNIp (); Element sink = ElementFactory.Make ("fakesink"); pipeline.Add (src, capsfilter, transform, sink); Element.Link (src, capsfilter, transform, sink); GLib.MainLoop loop = new GLib.MainLoop (); pipeline.Bus.AddWatch (delegate (Bus bus, Message message) { switch (message.Type) { case MessageType.Error: Enum err; string msg; message.ParseError (out err, out msg); Assert.Fail (String.Format ("Error message: {0}", msg)); loop.Quit (); break; case MessageType.Eos: loop.Quit (); break; } return true; }); pipeline.SetState (State.Playing); loop.Run (); Assert.IsTrue (transform.transformed); pipeline.SetState (State.Null); }