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 673211 - [0.10] playsink should push events on all its internal sinks
[0.10] playsink should push events on all its internal sinks
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
0.10.x
Other All
: Normal normal
: 0.10.37
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-03-30 22:21 UTC by Thiago Sousa Santos
Modified: 2012-04-23 21:21 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
playsink: add send-event-mode property (6.96 KB, patch)
2012-03-30 22:22 UTC, Thiago Sousa Santos
accepted-commit_now Details | Review
playbin2: Use new playsink send-event-mode property (1.13 KB, patch)
2012-03-30 22:22 UTC, Thiago Sousa Santos
accepted-commit_now Details | Review
ges: timeline-pipeline: Remove playsink send_event hack (2.30 KB, patch)
2012-03-30 22:22 UTC, Thiago Sousa Santos
accepted-commit_now Details | Review

Description Thiago Sousa Santos 2012-03-30 22:21:32 UTC
Playsink overrides GstBin's send_event function to push events to its internal sinks until one successfully handles the event.

This behaviour works for playbin2's use cases, but it won't work for scenarios where different demuxers have their branches linked to playsink, as it happens with GES. GES currently hacks around this in its gestimelinepipeline class.
Comment 1 Thiago Sousa Santos 2012-03-30 22:22:17 UTC
Created attachment 210998 [details] [review]
playsink: add send-event-mode property

Adds a property for playsink to define how it should handle
events sent in send_event function. The default is the same as
GstBin's, sending events to all internal sinks. There is also
mode-first, that will send to sinks until the one handles the
event successfully.
Comment 2 Thiago Sousa Santos 2012-03-30 22:22:29 UTC
Created attachment 210999 [details] [review]
playbin2: Use new playsink send-event-mode property

Set playsink's send-event-mode to MODE_FIRST as playbin2 only
needs one event going to the demuxer for its operation
Comment 3 Thiago Sousa Santos 2012-03-30 22:22:48 UTC
Created attachment 211000 [details] [review]
ges: timeline-pipeline: Remove playsink send_event hack

This is fixed now in upstream playsink, remove the hack
Comment 4 Sebastian Dröge (slomo) 2012-04-04 06:32:32 UTC
Review of attachment 210998 [details] [review]:

Looks good in general. What should be the "preview" mode?

Please push this to 0.10 and master (0.11) after addressing the comment below

::: gst/playback/gstplaysink.c
@@ +80,3 @@
+          "mode-default"},
+      {MODE_FIRST, "Sends the event to sinks until the first one handles it",
+          "mode-first"},

The last fields of the GEnumValue struct can simple be "default" and "first". Less annoying to use :)
Comment 5 Thiago Sousa Santos 2012-04-23 21:21:00 UTC
This is now fixed.