GNOME Bugzilla – Bug 172938
[probe] Probe cb is called twice for the same data
Last modified: 2006-01-13 16:22:34 UTC
From irc: sKaBoy> strange problem.. I have a pipeline like " .... ! identity ! mux ! .... ". If i attach a probe to the src pad of identity i get the same data 2 times.. I i attach it to the sink of mux it works fine :) The mux element is loop based if this is important.. I'm using cvs of a month ago BBB> sKaBoy, hm, may be get/chain both calling the probe on the pad BBB> please file a bug, I'll be able to reproduce&fix sKaBoy> BBB, ok, should i try with latest cvs and do a simple test-case or not ? BBB> no, don't worry BBB> just attach a testcase, if possible BBB> like a single .c file reproducing it BBB> (if not too much effort) Attaching a simple test case that find the fps for a simple pipeline: luogni@shinji:~/Sorgenti/gst-tests$ gcc -o probe-cb probe-cb.c `pkg-config --cflags --libs gstreamer-0.8` luogni@shinji:~/Sorgenti/gst-tests$ ./probe-cb [21,0]fps [20,0]fps luogni@shinji:~/Sorgenti/gst-tests$ gcc -o probe-cb probe-cb.c `pkg-config --cflags --libs gstreamer-0.8` -DATTACH_TO_SINK luogni@shinji:~/Sorgenti/gst-tests$ ./probe-cb [11,0]fps [10,0]fps 10fps is the right answer :)
Created attachment 39798 [details] Simple test case
The bug, assuming a get->chain->loop pipeline element-chain: * Opt iterates the loop-group, loop iterates, pulls data. Opt iterates previous group. * Previous data is iterated by calling the getfunction, push from get-to-chain, push from chain-to-group-boundary. In both cases, the probes of the pads are called. * Iteration in opt returns, opt returns control to loop-group, pull returns and re-calls probes. We can't just remove the probe-calling in _pull(), because that is needed in a get->loop group. I don't know how to easily fix this. Anyone?
Targeting to 0.8.x.
Changing version to 0.8.x, removing target (there are no plans on fixing this atm)
Closing as obsolete.