Skip to content

d3d11videosink: Some fixes for running in GstVideoOverlay mode

Philipp Trommler requested to merge ferruck/gst-plugins-bad:master into master

While trying to embed multiple GstD3D11VideoSinks as GstVideoOverlays into our GTK4 application, we've stumbled upon some issues that I'm trying to resolve with the attached patches. Namely these are:

  • Resizing of the overlays via gst_video_overlay_set_render_rectangle did not work
  • Creating multiple overlays in the same top level window has led to the original window procedure being irrecoverably lost
  • Additionally, when creating multiple overlays, only one would behave normally

I've worked on these patches on top of 1.18.4 but also tested them on top of 1.19.1 (both GStreamer itself as well es gst-plugins-bad). Testing was done with our GTK application and (to ensure the normal use-case wasn't accidentally broken) with the simple pipeline

 gst-launch-1.0 videotestsrc ! d3d11videosink

on Windows 10. I could reproduce the issues without and the fixes with my patches on both versions.

This is my first time working on both GStreamer plugins and the WIN32-API so it's well possible I've missed something, I'm especially unsure about that dead code removal. In that case I'm happy for any feedback and will adjust my patches accordingly.

Regarding the failed pipeline: I guess the issues are not in my code.

Edited by Seungha Yang

Merge request reports