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 774950 - shmsink, curl*sink, dshowvideosink: Returns flushing on PLAYING->PAUSED if it can block in ->render
shmsink, curl*sink, dshowvideosink: Returns flushing on PLAYING->PAUSED if it...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: 1.13.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-11-23 18:23 UTC by Olivier Crête
Modified: 2017-12-20 21:33 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
shmsink: Block in preroll_wait on unlock (2.92 KB, patch)
2016-11-23 18:23 UTC, Olivier Crête
committed Details | Review

Description Olivier Crête 2016-11-23 18:23:17 UTC
See #773912 for explanation, they need to call gst_base_sink_wait_preroll() in render instead of returning immediately on unlock().
Comment 1 Olivier Crête 2016-11-23 18:23:36 UTC
Created attachment 340634 [details] [review]
shmsink: Block in preroll_wait on unlock

The correct behaviour of anything stuck in the ->render() function
between ->unlock() and ->unlock_stop() is to call
gst_base_sink_wait_preroll() and only return an error if this returns an
error, otherwise, it must continue where it left off!
Comment 2 Olivier Crête 2017-12-19 22:44:06 UTC
Comment on attachment 340634 [details] [review]
shmsink: Block in preroll_wait on unlock

shmsink is down, curl and dshowvideosink left to do.

Attachment 340634 [details] pushed as e19e02d - shmsink: Block in preroll_wait on unlock
Comment 3 Olivier Crête 2017-12-20 21:33:59 UTC
I looked through the curl and dshowvideosink elements and it seems that in both cases the current code is fine, so closing this.