Only upstream renegotiation was properly handled, we needed to answer that when downstream forces a renegotiation we take into account the new downstream restrictions. And add tests for it Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>