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 778015 - playbin3/decodebin3: Cannot re-enable track by select-streams event
playbin3/decodebin3: Cannot re-enable track by select-streams event
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: 1.13.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-02-01 09:27 UTC by Seungha Yang
Modified: 2017-10-27 07:59 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
playbin3: Use STREAMS_SELECTED message to update selected stream types (2.26 KB, patch)
2017-03-16 15:00 UTC, Seungha Yang
committed Details | Review
decodebin3: Allow configure output stream without reassign slot (1.31 KB, patch)
2017-03-16 15:00 UTC, Seungha Yang
committed Details | Review

Description Seungha Yang 2017-02-01 09:27:49 UTC
Track selection on playbin3 can possible by using select-streams event.
Also, by select-streams event, audio/video/text track can be disabled.

However, there are two bugs now, in playbin3/decodebin3

<re-enable a track never work>
More specifically, let's assume that we have one audio track and one video track.
When application sent select-streams event which includes only video track's stream-id, decodebin3 would remove audio decoder.
Then, if application re-send new select-streams event which has stream-ids of video/audio, new audio decoder element never be made.

<Segfault on playbin3>
By following sequence, segfault happen.
start playback -> disable a track -> unload pipeline

See also bug #775469
Comment 1 Seungha Yang 2017-03-16 15:00:07 UTC
Created attachment 348095 [details] [review]
playbin3: Use STREAMS_SELECTED message to update selected stream types

Application might choose only specific type among all available types
using select-streams event. In this case, it is desired that reconfigure
of playsink to clear unused stream path.
Comment 2 Seungha Yang 2017-03-16 15:00:42 UTC
Created attachment 348096 [details] [review]
decodebin3: Allow configure output stream without reassign slot

By select-streams event, current implementation of decodebin3
supports deactivate output stream (i.e., decoder element)
in reassign slot(), but cannot activate any slot without track change.
Comment 3 Seungha Yang 2017-03-16 15:01:54 UTC
(In reply to Seungha Yang from comment #0)
> <Segfault on playbin3>
> By following sequence, segfault happen.
> start playback -> disable a track -> unload pipeline
> 
> See also bug #775469
Please ignore this comment. It was bug of bug #775469
Comment 4 Edward Hervey 2017-10-27 07:58:40 UTC
commit 466cbef6ab545e669215a30b7963e7174290f333 (HEAD -> master, origin/master, origin/HEAD)
Author: Seungha Yang <sh.yang@lge.com>
Date:   Thu Mar 16 20:55:44 2017 +0900

    decodebin3: Allow configure output stream without reassign slot
    
    By select-streams event, current implementation of decodebin3
    supports deactivate output stream (i.e., decoder element)
    in reassign slot(), but cannot activate any slot without track change.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=778015

commit 969ab3f48cb07d70df68d8e58d5f7823a83ce14b
Author: Seungha Yang <sh.yang@lge.com>
Date:   Thu Mar 16 19:53:11 2017 +0900

    playbin3: Use STREAMS_SELECTED message to update selected stream types
    
    Application might choose only specific type among all available types
    using select-streams event. In this case, it is desired that reconfigure
    of playsink to clear unused stream path.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=778015