rtph26xdepay: Does not forward downstream GstFlowReturn
I though of fixing this in my !10 (merged) but it's getting too big, and this is just a distraction. I notice that the new identity eos-after=N does not push an eos returns EOS upstream. As a side effect, it rely on every element forwarding properly the GstFlowReturn value. Generally this is only broken in threaded elements, but in rth264depay, we over use gst_rtp_base_depayload_push(). This function does not return the GstFlowReturn, hence does not allow chaining it up. This issue can be fixed, by simply returning the buffer in process() implementation. The only case where the flow would be lost is when something is "injected" in the stream, but in all these cases something else will be pushed immediatly, so in the end, the flow return will be catched later.
To reproduce
This pipeline will not stop as it's supposed.
gst-launch-1.0 videotestsrc ! openh264enc ! rtph264pay ! rtph264depay ! identity eos-after=1 ! fakesink