sometimes seek blocks

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

sometimes seek blocks

Patrick Fischer

I have a mobile(android) app with gst and unfortunately it hangs occasionally after a seek. I've been searching for several weeks and just can't get any further. Therefore, I hope that I can get this way a few tips on what I could still do.

The pipeline is attached in the image.
But in this case it is not a UDP Src but a souphttpsrc.

After a seek sometimes the pipeline doesn't get into the playing state anymore.
So I can't read from the queue of the appsink anymore. It hangs and triggers a deadlock.

    gst_element_seek_simple(customData->pipeline, GST_FORMAT_TIME, (GstSeekFlags)(GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT),time_nanoseconds)

I tried it with a flush before the seek.

To get appropriate log output I set the loglevels like this.

            setenv("GST_DEBUG", "GST_TRACER:7,GST_BUFFER*:3,GST_EVENT:9,GST_MESSAGE:9,appsink:9,queue:9", true);
            setenv("GST_TRACERS", "leaks(GstEvent,GstMessage)", true);

Of course this generates a lot of output. Therefore, I attached the logfile.

If my app can't get any data from the appsink for a certain time, then I run through the pipeline and output each state. So you can see that both appsinks (each for audio/video) are still hanging in the pause state.
Even if I try to set them explicitly to playing nothing happens.
I also can't get

    g_signal_emit_by_name(mAppSink, "pull-sample", &sample);

or similar on the appsink anymore.

It seems that the gst-libs/gst/app/gstappsink.c it hands on a mutex code. I don't know why.

I suspect that some buffer is full and I do not know why

every now and then I get
"Got data flow before segment event"
but it doesn't seem to be the problem because it sometimes works anyway.

What can I do to get to the bottom of this?



gstreamer-devel mailing list
[hidden email]

testmobile.log (634K) Download Attachment
pipeline.png (328K) Download Attachment