GNOME Bugzilla – Bug 581294
rtspext: extensions configure_stream methods conflict
Last modified: 2010-09-06 09:25:23 UTC
As rtspsrc queries extensions whether it should configure a stream, the rtspwms extension might indicate that the rtx stream should not be configured (i.e. it returns FALSE), after which another extension (e.g. real rtsp) might simply return TRUE (e.g. if no configure_stream is implemented). The net effect is that the stream is configured. On the one hand, this is not the way the extension knowing about the stuff in question intended it. On the other hand, an inconvenient side effect is that the UDP ports of the RTX stream might be retried for the video stream (rather than those of the audio stream), leading to unsupported transport failure in setting up video stream (due to MS RTSP specs). So, (usually) video over UDP (for MS WMS servers) might randomly seem to appear or not depending on whether other extensions are present and in what order they are executed. There may be some way to remedy the latter side effect, though likely no really clean one. As for the basic problem; maybe gst_rtsp_ext_list_configure_stream should check whether configure_stream method is implemented, or a method should be able to return "do not know/care" ?
Came across this a few days ago - the aggregation of the return values looks dodgy/broken. Didn't know there was actually a case where this mattered though.
I would say that as soon as some extension returns FALSE, we don't configure the stream. So, the aggregation needs improving.
commit 3bae70ceea96cc98985dc84c75efe8a046f82b7e Author: Wim Taymans <wim.taymans@collabora.co.uk> Date: Wed Aug 25 09:58:20 2010 +0200 rtspext: stop configuration on first failure Stop the configuration of a stream as soon as some of the extensions return FALSE. Fixes #581294