Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • gst-plugins-base gst-plugins-base
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 645
    • Issues 645
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 88
    • Merge requests 88
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GStreamer
  • gst-plugins-basegst-plugins-base
  • Issues
  • #401

Closed
Open
Created Nov 09, 2017 by Bugzilla Migration User@bugzilla-migration

playbin3: NEED_CONTEXT events not propagated to app when creating sinks

Submitted by Arnaud Vrac @rawoul

Link to original bug (#790124)

Description

Some sinks can require an external context from the application, for example waylandsink and glimagesink require a wayland display or gl display handle when going from NULL to READY.

However, in playbin3 the sinks are created by playsink, which first tries to set the element state to READY. Since the element is still orphaned at this point, the NEED_CONTEXT messages are not propagated to the message bus, and thus the app (or playbin) cannot reply with a proper context.

This means it is impossible to properly embed waylandsink or glimagesink in an application using playbin3.

Note that this only seems to happen with playbin3: playbin2 creates the sink in the autoplug-select signal, and it correctly assigns a bus handler first before setting the sink to READY, and playsink uses the sink provided by playbin2. In playbin3 apparently the autoplug-select signal is not used.

Assignee
Assign to
Time tracking