Problems with renegotiation when using queues

Jose Antonio Santos Cadenas santoscadenas at
Fri Jun 6 01:54:08 PDT 2014


I've been investigating about reconfiguration of pipelines dynamically and
I run into negotiation problems while changing the caps of a stream while

I've developed  a program to test the issue, you can download it here:

Let me explain the test a little bit (copied from the repo README):

  This test creates a simple pipeline and forces caps renegotiation once the
  GST_MESSAGE_STREAM_START is received on bus. It terminates correctly if
  appsink receives a buffer with the renegotiated format.

  This program runs a test continuously until it fails or it is executed a
  number of times selected by the used with -n option (1000000 by default).

  If option -q is given, the pipeline is this:

    --------------      -------      ---------
   | audiotestsrc | -> | queue | -> | appsink |
    --------------      -------      ---------

  This test frequently fails  (1 on 15?), because audiotestsrc receive a
  not negotiated error while pushing a buffer or because no buffer with
  the new format is received.

   If -q option is not present the pipeline is this:

    --------------      ---------
   | audiotestsrc | -> | appsink |
    --------------      ---------

  This second pipeline works properly and renegotiates correctly.

I'd like to know if I am suppose to do something else to perform the
renegotiation, currently I am blocking the appsink:sink pad to change the
appsink caps and send a reconfigure event, then I unblock the pad again.

Thanks for your help.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the gstreamer-devel mailing list