After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 544293 - rtspsrc / gstpoll regression
rtspsrc / gstpoll regression
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other Windows
: Normal major
: 0.10.22
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-07-23 08:31 UTC by Damien Lespiau
Modified: 2008-11-03 10:50 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
log with rtspsrc:5 and instrumented gstpoll (7.23 KB, text/plain)
2008-07-23 08:32 UTC, Damien Lespiau
  Details
dirty-fix-that-works-for-me and that can help someont actually understanding the new windows' gstpoll code (349 bytes, patch)
2008-07-23 08:33 UTC, Damien Lespiau
committed Details | Review

Description Damien Lespiau 2008-07-23 08:31:25 UTC
In version 0.10.20 gstpoll has a new, windows specific, gstpoll implementation instead of relying on winsock's select(). rtsp does not work any more with this and times out in the rtsp code (waiting for the socket to be ready for writing).

I've instrumented the gstpoll code to show the API called by the rtsp/rtcp/udp code and I attach this log as first comment.

I've somehow managed to "fix" the problem by calling gst_poll_fd_ignored() before actually writing in the rtsp socket but it's clearly not the intended use of the function. The patch "solving" the problem is attached as second comment

To reproduce the issue, you can setup a rtsp server with vlc for instance:
$ vlc --ttl 10 -vvv -I  telnet --telnet-password gst --rtsp-host 0.0.0.0:5554
$ telnet 127.0.0.1 4212 (passord gst)
> new test vod enabled
> setup test input /home/damien/samples/xxxxxxxx.mpeg

gst-launch-0.10.exe  --gst-debug-no-color --gst-plugin-path=c:\xxxxxxxx\lib\gstreamer-0.10 rtspsrc location="rtsp://10.250.154.29:5554/test" ! decodebin ! ffmpegcolorspace ! directdrawsink

I think it would be usefull to Cc. Ole André but I don't want to be gross, so let's hope he'll discover this bug report quickly :p
Comment 1 Damien Lespiau 2008-07-23 08:32:56 UTC
Created attachment 115079 [details]
log with rtspsrc:5 and instrumented gstpoll
Comment 2 Damien Lespiau 2008-07-23 08:33:56 UTC
Created attachment 115080 [details] [review]
dirty-fix-that-works-for-me and that can help someont actually understanding the new windows' gstpoll code
Comment 3 Wim Taymans 2008-11-03 10:50:24 UTC
I'll commit this but I'm unsure what the problem is. I think the right thing to do is to make sure we forget all previous results from poll before going into this (and other) functions.

        Patch by: Damien Lespiau  <damien.lespiau gmail com>

        * gst-libs/gst/rtsp/gstrtspconnection.c:
        (gst_rtsp_connection_write):
        Make the next call to poll not depend on previous calls to poll with or
        without reading from the active descriptor. Fixes #544293.