Segmentation fault when change pipeline state.
rasnaut
rasnaut at gmail.com
Mon Sep 3 08:12:38 PDT 2012
Hello to everyone!
I have problem when I stop my pipline. I have class video pipline:
TVideo::TVideo(int iNumberDevice)
{
gst_init (NULL,NULL);
geVideoSrc = gst_element_factory_make("v4l2src", "source");
g_assert(geVideoSrc);
QString strTmp = "/dev/video" + QString::number(NumDev);
const gchar* tmp = strTmp.toLatin1();
g_object_set (G_OBJECT (geVideoSrc), "device", tmp, NULL);
}
TVideo::~TVideo()
{
gst_object_unref (GST_OBJECT (gePipline));
}
int TVideo::Init()
{
gePipline = gst_pipeline_new("pipeline");
g_assert(gePipline);
geVideoRate = gst_element_factory_make("videorate", "vrate1");
g_assert(geVideoRate);
geVideoScale = gst_element_factory_make("videoscale", "vscale1");
g_assert(geVideoScale);
geVideoOut1 = gst_element_factory_make("fakesink", "video out1");
g_assert(geVideoOut1);
gst_bin_add_many(GST_BIN(gePipline), geVideoSrc,
geVideoRate,geVideoScale,geVideoOut1, NULL);
........
gst_element_set_state(GST_ELEMENT(gePipline), GST_STATE_READY);
gst_element_set_state(GST_ELEMENT(gePipline), GST_STATE_PAUSED);
return 1;
}
int TVideo::StartCapture()
{
gst_element_set_state(GST_ELEMENT(gePipline), GST_STATE_PLAYING);
g_print ("Running video... \n");
return 1;
}
int TVideo::StopCapture()
{
gst_element_set_state(gePipline, GST_STATE_PAUSED);
gst_element_set_state(gePipline, GST_STATE_READY);
gst_element_set_state(gePipline, GST_STATE_NULL);
return 1;
}
So, when I start create 24 objects and call Init() and StartCapture(), all
working. But when I stop process and call StopCapture() appear Segmentation
fault error. It appeared when I am changing state
(GST_STATE_PAUSED->GST_STATE_READY) of some object (Maybe 1, maybe 17, maybe
23) . If I remove it operation error appear again
(GST_STATE_PAUSED->GST_STATE_NULL).
So what I do wrong?
--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Segmentation-fault-when-change-pipeline-state-tp4656140.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.
More information about the gstreamer-devel
mailing list