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 577326 - tcpclientsrc stops working if set to PLAYING, PAUSED and PLAYING again
tcpclientsrc stops working if set to PLAYING, PAUSED and PLAYING again
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: 0.10.26
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-03-30 16:32 UTC by Luca Ognibene
Modified: 2009-12-10 16:55 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
test program (624 bytes, text/x-python)
2009-03-30 16:33 UTC, Luca Ognibene
Details

Description Luca Ognibene 2009-03-30 16:32:29 UTC
Reproduce:
 * terminal 1: gst-launch-0.10 videotestsrc ! video/x-raw-yuv,framerate=1/1 ! tcpserversink port=1000
 * terminal 2: python ayt.py

You'll see that tcpclientsrc doesn't receive buffers after second PLAYING.
I think the problem is that gst_poll_set_flushing(TRUE) is called in gst_tcp_client_src_unlock while going to PAUSED but gst_poll_set_flushing(FALSE) is neved called. Maybe it should be called when needed in _create ?

ayt.py is a program that creates a tcpclientsrc port=%d ! fakesink name=f pipeline, set it to PLAYING, wait 3s, set it to PAUSED, wait 3s and set it to PLAYING again.
Comment 1 Luca Ognibene 2009-03-30 16:33:01 UTC
Created attachment 131710 [details]
test program
Comment 2 Luca Ognibene 2009-09-25 13:05:31 UTC
ping
Comment 3 Sebastian Dröge (slomo) 2009-09-30 17:11:45 UTC
Yes, calling _set_flushing(TRUE) should probably be done if needed in _create(). Could you prepare a patch?
Comment 4 Wim Taymans 2009-12-10 16:55:06 UTC
->unlock is only called when configured as a live source or when seeking or some other operation that needs to flush. I could not really reproduce this here.

In any case, this should fix it.. Reopen if something else goes wrong for you.

commit dc91454984a93cf9dd9587dbe7ba737d1fa77c56
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Thu Dec 10 17:53:01 2009 +0100

    tcpclientsrc: unset flushing state too
    
    When unlocking, we set the flushing state on the fdset. Implement unlock_stop so
    that we can use it to unset the flushing state again.
    
    Fixes #577326