<div dir="ltr">Hi,<br><br>I've been investigating about reconfiguration of pipelines dynamically and I run into negotiation problems while changing the caps of a stream while playing.<br><br>I've developed a program to test the issue, you can download it here:<br>
<br><a href="https://github.com/jcaden/negotiation_test">https://github.com/jcaden/negotiation_test</a><br><br>Let me explain the test a little bit (copied from the repo README):<div><div><br></div><div> This test creates a simple pipeline and forces caps renegotiation once the</div>
<div> GST_MESSAGE_STREAM_START is received on bus. It terminates correctly if the</div><div> appsink receives a buffer with the renegotiated format.</div><div><br></div><div> This program runs a test continuously until it fails or it is executed a</div>
<div> number of times selected by the used with -n option (1000000 by default).</div><div><br></div><div> If option -q is given, the pipeline is this:</div><div><br></div><div><font face="courier new, monospace"> -------------- ------- ---------</font></div>
<div><font face="courier new, monospace"> | audiotestsrc | -> | queue | -> | appsink |</font></div><div><font face="courier new, monospace"> -------------- ------- ---------</font></div><div><br></div>
<div> This test frequently fails (1 on 15?), because audiotestsrc receive a</div><div> not negotiated error while pushing a buffer or because no buffer with</div><div> the new format is received.</div><div><br></div>
<div>
If -q option is not present the pipeline is this:</div><div><br></div><div><font face="courier new, monospace"> -------------- ---------</font></div><div><font face="courier new, monospace"> | audiotestsrc | -> | appsink |</font></div>
<div><font face="courier new, monospace"> -------------- ---------</font></div><div><br></div><div> This second pipeline works properly and renegotiates correctly.</div></div><div><br></div><div>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.</div>
<div><br></div><div>Thanks for your help.</div><div><br></div><div>Jose.</div></div>