[Bug 780876] New: [rtspsrc] Returning TRUE in the select-stream signal does not check for other streams

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Apr 3 15:55:32 UTC 2017


https://bugzilla.gnome.org/show_bug.cgi?id=780876

            Bug ID: 780876
           Summary: [rtspsrc] Returning TRUE in the select-stream signal
                    does not check for other streams
    Classification: Platform
           Product: GStreamer
           Version: 1.10.4
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: nnoell3 at gmail.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Hi,

Not sure if this is a bug or a feature but I will try to explain it as best as
I can.

We have an RTSP source that has 2 streams: a *video* stream and a *metadata*
stream. For some reason, the metadata stream from that source does not work
properly and causes the rtspsrc element to not play the video stream, which I
suppose it is the desired behavior.

However, since we do not care about that *metadata* stream, I was planning to
use the `select-stream` signal from rtspsrc to only select the video stream and
so discard the metadata stream, but it does not work as I expect because the
callback seems to be removed after returning TRUE for the first time.

In my case, the first stream that is checked is the video stream, so returning
TRUE will also select the metadata stream because the signal handler will NOT
be called again. However, if I return FALSE when checking the video stream, the
signal handler will be called for the metadata stream:

Video    -> signal handler is called and TRUE is returned
Metadata -> signal handler is not called but the stream is also selected

Video    -> signal handler is called and I return FALSE
Metadata -> signal handler is called

Shouldn't the signal handler be always called regardless of the return value of
the previous call? In my case, it is not possible to just select the video
stream and ignore the metadata stream because of the order they are checked.

If I add a small hack into the gst_rtspsrc_setup_streams() function (from
gst/rtsp/rtspsrc.c) to only select the video stream in the for loop, the
rtspsrc element plays the video stream fine without any issues:

https://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/gst/rtsp/gstrtspsrc.c#n5948

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list