Hi All,
I have a pipeline, which looks like this "appsrc ! ffdec_mpeg4 ! appsink". I am using this pipe to get the decoded frames out.
I do a gst_app_sink_pull_buffer() to get the decoded frame, just after I push the buffer into appsrc. The suedo code looks like
app_buff = gst_app_buffer_new();
g_signal_emit_by_name( appsrc, "push-buffer", app_buff, ret);
decBuff = gst_app_sink_pull_buffer(appsink);
Now the situation is, that there can be a case when the input buffer is not decoded for some error OR the data in input buff is not enough to form a decoded frame. In such a case gst_app_sink_pull_buffer() waits endlessly. Since its waiting (BLOCKED) here, i dont get the chance to push another buffer in, which can complete the frame.
The limitation is because I want to return the decoding status as a result of these actions to my app.
Is there some way I can come out of the BLOCKED state, without flushing the buffers/data in the pipeline (so as not to miss a frame)?
OR can the decoder give me some kind of hint that, the decoding is not complete and needs to push more data?
Any help is greatly appreciated!
-Ashwini
PS: I hope I have not confused you with my explanation of the problem.
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel