AppSrcTest.java pipeline problem
Morris Ford
morrishford at gmail.com
Thu Feb 17 07:00:54 PST 2011
I am modifying AppSrc.Test.java to change the example code to output to a
tcp port. I run the app and it hits NEED_DATA a couple of times and stops.
Apparently, there are errors somewhere but nothing is output by the program.
How do I track down the errors?
Here is the program at the moment:
Many thanks,
Morris
public class AppSrcTest
{
/** Creates a new instance of AppSrcTest */
public AppSrcTest()
{
}
private static Pipeline pipeline;
static TagList tags;
public static void main(String[] args)
{
args = Gst.init("AppSrcTest", args);
final int width = 320, height = 200;
/* setup pipeline */
pipeline = new Pipeline("pipeline");
final AppSrc appsrc = (AppSrc) ElementFactory.make("appsrc",
"source");
final Element srcfilter = ElementFactory.make("capsfilter",
"srcfilter");
Caps fltcaps = new Caps("video/x-raw-rgb, framerate=4/1"
+ ", width=" + width + ", height=" + height
// + ", bpp=16, depth=16");
+ ", bpp=32, depth=24, endianness=4321, red_mask=(int)0xFF,
green_mask=(int)0xFF00, blue_mask=(int)0xFF0000");
srcfilter.setCaps(fltcaps);
final Element colorspace = ElementFactory.make("ffmpegcolorspace",
"ffmpegcolorspace");
final Element enc = ElementFactory.make("ffenc_mpeg4",
"ffenc_mpeg4");
final Element gdppay = ElementFactory.make("gdppay", "gdppay");
final Element tcp = ElementFactory.make("tcpserversink",
"tcpserversink");
tcp.set("port", 3000);
pipeline.addMany(appsrc, srcfilter, colorspace, enc, gdppay, tcp);
Element.linkMany(appsrc, srcfilter, colorspace, enc, gdppay, tcp);
appsrc.set("emit-signals", true);
appsrc.setLive(true);
appsrc.connect(new AppSrc.NEED_DATA()
{
byte color = 0;
byte[] data = new byte[width * height * 4];
public void needData(Element elem, int size, Pointer userData)
{
System.out.println("Enter needData - buffer = " +
data.length);
System.out.println("NEED_DATA: Element=" +
elem.getNativeAddress()
+ " size=" + size + " color=" + color);
color++;
for(int i = 0; i < width * height * 4; i += 4)
{
data[i] = 0; // blue
data[i + 1] = 0; // green
data[i + 2] = color; // red
data[i + 3] = 0;
}
Buffer buffer = new Buffer(data.length);
buffer.getByteBuffer().put(data);
appsrc.pushBuffer(buffer);
}
});
appsrc.connect(new AppSrc.ENOUGH_DATA()
{
public void enoughData(Element elem, Pointer userData)
{
System.out.println("Enter enoughData");
}
});
pipeline.setState(State.PLAYING);
}
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20110217/e6a066db/attachment.htm>
-------------- next part --------------
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
More information about the gstreamer-devel
mailing list