Segment seek problem

Mikl michael.yarochkin at timetronics.be
Tue Nov 21 13:40:15 UTC 2017


Hello, 

I have difficulties in playback of segment.
It is freezing:
-sometimes in a moment of sending seek event
-sometimes in a middle of gst_app_sink_pull_preroll loop
-sometimes on try of start next segment

My code:
///this is done once on file open/
	//creation and linking elements of pipeline
	InitPipeline();

	//start pipeline prerolling: all "sometimes pads" will be connected in
pad-added call back function
	gst_element_set_state(pipeline, GST_STATE_PAUSED);

	//wait for GST_MESSAGE_ASYNC_DONE on a bus
	WaitForPipelineReady();
///this is done once on file open/

///this is done for every segment/
//my example is
http://gstreamer-devel.966125.n4.nabble.com/Loop-player-for-GStreamer-td4671773.html

	//move to first frame
	gst_element_seek(
		pipeline,
		1,
		GST_FORMAT_TIME,
		(GstSeekFlags)(GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_SEGMENT),
		GST_SEEK_TYPE_SET,
		segmentStart,
		GST_SEEK_TYPE_END,
		0);

	///wait for GST_MESSAGE_SEGMENT_DONE, but i have GST_MESSAGE_ASYNC_DONE 
	WaitForPipelineReady();

	//seek segment
	gst_element_seek(
		pipeline,
		1,
		GST_FORMAT_TIME,
		GST_SEEK_FLAG_SEGMENT,
		GST_SEEK_TYPE_SET,
		segmentStart,
		GST_SEEK_TYPE_SET,
		segmentEnd);

	//start playback pipeline
	gst_element_set_state(pipeline, GST_STATE_PLAYING);

	//wait for pipeline start playback
	while (GetElementState(_pipeline) != GST_STATE_PLAYING)
		QThread::msleep(1);

	for (unsigned long long i = 0; i != frames; i++)
		gst_app_sink_pull_sample((GstAppSink*)sink);
///this is done for every segment/

What i am doing wrong?
Mikl



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list