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 308193 - switch plugin inside a bin doesn't make the bin go EOS if itself goes to EOS
switch plugin inside a bin doesn't make the bin go EOS if itself goes to EOS
Status: RESOLVED WONTFIX
Product: GStreamer
Classification: Platform
Component: gst-plugins
0.8.10
Other Linux
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2005-06-18 15:13 UTC by Akos Maroy
Modified: 2005-07-02 10:47 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
sample code demonstrating the problem (1.99 KB, text/plain)
2005-06-18 15:18 UTC, Akos Maroy
Details

Description Akos Maroy 2005-06-18 15:13:08 UTC
if a switch element inside a bin goes to EOS, the bin containing the switch
element still thinks there's room for iteration.

omitting the switch element will make the bin stop appropriately.
Comment 1 Akos Maroy 2005-06-18 15:18:16 UTC
Created attachment 47957 [details]
sample code demonstrating the problem

see the sample code demonstrating the problem. it will set the switch element
inside the bin to EOS after 2 seconds of playing - but the bin itself will not
stop.

removing the switch element from the chain, and setting say the decoder element
to EOS will make the bin stop propery. to see this effect, #undef HAVE_SWITCH
in the source file...
Comment 2 Ronald Bultje 2005-07-02 09:04:23 UTC
Ah, right. That's not what gst_element_set_eos() is supposed to be used for. I
use managers for this purpose, which works better. See
http://gstreamer.freedesktop.org/data/doc/gstreamer/stable/pwg/html/chapter-other-manager.html
for a short description of the problem, and sample code is available on
http://cvs.gnome.org/viewcvs/gnome-media/grecord/src/gst/ and
http://cvs.gnome.org/viewcvs/gnome-media/grecord/src/gst/ (assistant.[ch] and
manager.[ch] only).

Applications are not supposed to call gst_element_set_eos() on elements, this is
a function that only elements may call on themselves. I udnerstands that the API
docs do not reflect this, so this may need to be cleared up (possibly by
separating the docs in three sections: "anyone ...", "only apps ..." and "only
elements may use this function").
Comment 3 Akos Maroy 2005-07-02 10:47:52 UTC
I see. I wanted to create a manager myself, but the sample code is missing from
the  documentation, so I couldn't. I'll look into the sample of grecord above.

as for documenting which call is legal by whom - basically we're talking about
function accessibility (close to private / protected / package / public). it
would be nice to clear this issue up.

also see the other bug, http://bugzilla.gnome.org/show_bug.cgi?id=308619, where
a seemingly correct, public API call can break an element. that's way way bad...