Dear devs,
we want to setup a tracking application
artoolkit5 for our students project.
Since we are using gstreamer-1.0, my first intention was to port the application from gstreamer-0.10 to gstreamer-1.0 (
patch).
It compiles, it runs, but I experience two different odd behaviours:
1. For the
test application:
$ ./check_id --vconf 'v4l2src device="/dev/video0" ! videoconvert ! video/x-raw,format=RGB,width=640,height=480,framerate=30/1 ! identity name=artoolkit sync=true ! fakesink'
I get a SegFault when calling:
arVideoCapStart( void ) in
/lib/SRC/Video/video.cwhich calls
ar2VideoCapStart(AR2VideoParamT *vid) in
/lib/SRC/Video/video2.cwhich calls ar2VideoCapStartGStreamer( AR2VideoParamGStreamerT *vid ) in
/lib/SRC/VideoGStreame/videoGStreamer.cwhich calls
gst_element_set_state (vid->pipeline, GST_STATE_PLAYING)
2. For the test application:
./check_id --vconf 'v4l2src device="/dev/video0" ! videoconvert ! video/x-raw,format=RGB,width=640,height=480,framerate=30/1 ! videoconvert ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! identity name=artoolkit sync=true ! fakesink'
It runs without segfault, but the memory of the received image is not freed so the program runs out of heap after a while.
3. For test application compiled with gstreamer-0.10:
./check_id --vconf 'v4l2src device="/dev/video0" ! ffmpegcolorspace ! video/x-raw-rgb,width=640,height=480,framerate=30/1 ! identity name=artoolkit sync=true ! fakesink'
This works like a charm.
The point is, we dont want to use the depricated 0.10.
Our current Setup is as follows:
Kubuntu 14.04.5
Gstreamer-1.0 Version 1.8.3 with all plugins (Have also tested it with the stock version 1.2.4 from the Ubuntu repositories with the same error)
I think the porting from 0.10 to 1.0 went wrong, but I cannot find the misstake in the code.
Would be nice if someone can give me a pointer, since I am working with gstreamer for my first time.
Gretings,
Timo