Internal data flow error on appsink appsrc pipelines

Tim-Philipp Müller t.i.m at zen.co.uk
Tue May 28 11:41:07 PDT 2013


On Mon, 2013-05-27 at 16:29 -0700, Richard Cagley wrote:


> I have an appsink that is reading from a file. This gets modified and
> then read from an appsrc and goes out to a display.

> Here are in/out pipelines
> // creating pipelines from strings
>   sprintf(pipelineInStr, "filesrc location=movie.avi ! decodebin !
> ffmpegcolorspace ! queue ! appsink name=\"%s\"",app_sink_name);
>   sprintf(pipelineOutStr, "appsrc name=\"%s\" ! queue !
> ximagesink",app_src_name);
> 
> 
> I always get a "Internal data flow error." What would cause this?

Do you set caps on appsrc before pushing a buffer into it? If not, do
you set caps on the buffer that you push into it?

I'm assuming the internal flow error you get is a 'not-negotiated' one.
This can be caused by a) no caps specified where caps are required b)
wrong caps, c) incomplete caps (some field missing, check the debug log
of GST_DEBUG=*:sink), d) incompatible caps.

One problem here is that no negotiation happens across that
appsink/appsrc link. Maybe you need another ffmpegcolorspace in front of
the ximagesink.

Otherwise check the GST_DEBUG=*:6 log and grep for the first occurence
of "not-negotiated", then look at the lines before that.

Cheers
 -Tim



More information about the gstreamer-devel mailing list