I am using yocto dora branch for IMX6 SabreSD board. I have written a GStreamer application which can save video streams from multiple cameras into .mkv format simultaneously.
The pipeline used in the program to store video stream in .mkv format is given below,
gst-launch rtspsrc location=rtsp://10.20.1.48/axis-media/media.amp typefind=true ! rtph264depay queue-delay=0 ! capsfilter caps="video/x-h264,width=640,height=480,framerate=(fraction)30/1" ! matroskamux ! filesink location=test.mkv
As long as I run the program with single camera stream it works all the time. When I switch to multi-threading to get streams from multiple cameras I see in-consistency due to "matroskamux" plugin. It works 2-out-of-5 times kind of behaviour. If I remove the plugin from pipeline and save the raw stream in .264 format directly then there is no problem with the application.
(GSTApp:1718): GLib-GObject-WARNING **: cannot register existing type `GstMatroskamuxPad'
(GSTApp:1718): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed
Segmentation fault
My same application works fine on phytec board. I do not have phytec sources to diff "matroskamux" plugin right now.
Plugin Versions :
/gstreamer/0.10.36-r2/
/gst-plugins-good-0.10.31/gst/matroska
Has anyone encountered such an issue with "matroskamux" plugin in multi-threading scenario.
~Suman