Skip to content
GitLab
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 641
    • Issues 641
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 80
    • Merge requests 80
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GStreamerGStreamer
  • gst-plugins-basegst-plugins-base
  • Issues
  • #796
Closed
Open
Issue created Jul 28, 2020 by Isaac Lightburn@ILightburn

glimagesink/GstVideoOverlay issue on macOS

Having a weird issue on macOS with the video overlay functionality and glimagesink.

On Linux using either xvimagesink or glimagesink or on Windows with d3dvideosink the same code works fine every time, video is output overlayed on the window ID as set using gst_video_overlay_set_window_handle. (It's a Qt widget, just for reference)

On macOS, using glimagesink, sometimes a new window is created regardless of what's set via the set window handle function. I normally just call it while the pipeline state is still NULL before setting it to playing, though I checked to see if a message matching gst_is_video_overlay_prepare_window_handle was showing up in my sync message handler that I needed to respond to, but it isn't.

I did notice that in the instances when it shows a new window, gstreamer logs "Output window was closed" from the glimagesink element, though the winid is still valid, the window is open and visible, and the overlay will work on subsequent plays via the same pipeline (no pipeline or element unref/creation or linkage changes between plays) outputting to the same window ID. Not sure why gstreamer thinks that the winID has gone away sometimes when it hasn't, but that seems to be what's triggering it. Seems to happen around every 5th play on average, sometimes more, sometimes less.

Assignee
Assign to
Time tracking