GNOME Bugzilla – Bug 725361
[regression] rtpsession: setting the "internal-ssrc" property does nothing
Last modified: 2014-05-03 08:21:26 UTC
We should probably remove revert Wim's rtpjitterbuffer changes from the 1.2 branch because right now it's a regression from 1.0 or 0.10. Also, in master, we need to push up a reconfigure event when the application sets the property.
Setting the internal-ssrc property makes the session suggest a different SSRC on the sinkpad caps. It's to somewhat provide backwards compatibility with payloaders that use capsnego to get an SSRC. It's also from a time where the session manager would modify the SSRC on each packet if it was incorrect. I would like to make it so that only the payloaders create the SSRC (they can do that now) and let the session manager deal with any SSRC that it gets. This is needed if you need to handle multiple senders in a session. I would like to make the SSRC property on the session deprecated. Changing the internal-ssrc on the session while streaming was not a good idea in 0.10 or 1.0 anyway, it would modify each buffer. I will make a reconfigure event on internal-ssrc change to make it work somewhat like before.
Are you suggesting that instead we should fish out every payloader and set the ssrc property there ? That still won't work with the current code as this only has an effect on the next state change as this is the only time this property is read. The only way to currently change the SSRC while playing is the GstRTPCollision event.
Created attachment 275720 [details] [review] tests/check/libs/rtpbasepayload.c: Run gst-indent That file was no good!
Created attachment 275721 [details] [review] rtpbasepayload: Implement reconfigure event & renegotiation without subclass Implement the reconfigure event, also do correct downstream caps negotiation if the subclass doesn't implementy set_caps. I think this is the last bit required to close this bug. Also, the downstream negotiation never happened if the subclass didn't implement a setcaps function, so also fixed that.
Created attachment 275722 [details] [review] rtpbasepayload: Implement reconfigure event & renegotiation without subclass Ooops, had left some debug g_assert().
commit bdf8ce286d6f0be3a36b0ddff0f91783d4be2226 Author: Olivier Crête <olivier.crete@collabora.com> Date: Fri May 2 19:09:59 2014 -0400 rtpbasepayload: Implement reconfigure event & renegotiation without subclass Implement the reconfigure event, also do correct downstream caps negotiation if the subclass doesn't implementy set_caps. https://bugzilla.gnome.org/show_bug.cgi?id=725361 commit 42e3e22969b4a49fe056c3555032d56c3e15c3e0 Author: Olivier Crête <olivier.crete@collabora.com> Date: Fri May 2 19:09:44 2014 -0400 tests/check/libs/rtpbasepayload.c: Run gst-indent https://bugzilla.gnome.org/show_bug.cgi?id=725361