Search code examples
javagstreamerjava-gstreamer

Getting pads from gstreamer element gives error on gstreamer-java for 1.x


I was trying to run this java code from https://opencast.jira.com/secure/attachment/10077/MultipleSinks.java with gstreamer-java 1.x

public static void printPipeline(Pipeline p) {

    List<Element> elements = p.getElements();

    if (elements.size() > 0) {
        Iterator<Element> elemiter = elements.iterator();
        Element e = null;
        while (elemiter.hasNext()) {
            e = (Element) elemiter.next();

            List<Pad> pads = e.getPads();

            if (pads.size() > 0) {
                Iterator<Pad> paditer = pads.iterator();
                Pad pad = null;
                while (paditer.hasNext()) {
                    pad = (Pad) paditer.next();
                    System.out.print(e + " " + pad.getDirection()); 
                    System.out.println("\t" + pad.getCaps());
                }
            }
        }
    }
}

p.getElements() in the above code gives me:

Exception in thread "main" java.lang.Error: Invalid memory access


Solution

  • I confirmed this is a bug in gstreamer binding. I filed it on gstreamer-java on https://github.com/gstreamer-java/gst1-java-core/issues.