playbin2 element time out from PAUSE to PLAYING state
Stavros Markou
stavrosmk at gmail.com
Fri Jul 8 05:30:48 PDT 2011
Hello @ all,
I am developing a media player class using qt on freescale's imx515
processor and i am using playbin2 elent to create the pipeline. I am able to
play/stop/pause amy video i want but the problem is that when i am letting a
playlist loop for a long time (> 4Hours) in poll_for_state_change() :
int CGStreamer::poll_for_state_change(GstState sRecState, GstElement *
elem)
{
GTimeVal tfthen, tfnow;
GstClockTimeDiff diff;
GstStateChangeReturn result = GST_STATE_CHANGE_FAILURE;
GstState current;
guint32 timeescap = 0;
gchar *ele_name = gst_element_get_name(elem);
g_get_current_time(&tfthen);
result = gst_element_set_state(elem, sRecState);
if(result == GST_STATE_CHANGE_FAILURE)
{
if( NULL != ele_name )
{
g_free(ele_name);
}
return -1;
}
while(1)
{
gst_element_get_state(elem, ¤t, NULL, GST_SECOND);
g_get_current_time(&tfnow);
diff = GST_TIMEVAL_TO_TIME(tfnow) - GST_TIMEVAL_TO_TIME(tfthen);
diff /= (1000 * 1000);
timeescap = (unsigned int) diff;
if( sRecState == current )
{
break;
}
else
{
if (timeescap > 10000) /* 10s */
{
printf( "\n%s(): Element %s time out in state transferring
from %s to %s\n",
__FUNCTION__, ele_name,
gst_element_state_get_name (current),
gst_element_state_get_name (sRecState) );
if( NULL != ele_name )
{
g_free(ele_name);
}
return -1;
}
}
}
if( NULL != ele_name )
{
g_free(ele_name);
}
return 0;
}
I get Element playbin20 time out in state transferring from PAUSE to
PLAYING.
Since i am new to the whole gstreamer environment i was really surprised to
get a timeout since my application waits for EOS before any state change on
the element.
Have you any idea why this might happen ?
Thanks in advance for your help.
Best Regards,
Stavros.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20110708/73b44e4d/attachment.htm>
More information about the gstreamer-devel
mailing list