Skip to content

d3d11videosink: Fix deadlock when parent window is busy

Seungha Yang requested to merge seungha.yang/gstreamer:d3d11-deadlock into main

Deadlock sequence:

  • From a streaming thread, d3d11videosink sends synchronous message to the parent window, so that internal (child) window can be constructed on the parent window's thread
  • App thread (parent window thread) is waiting for pipeline's state change (to GST_STATE_NULL) but streaming thread is blocked and waiting for app thread

To avoid the deadlock, GstD3D11WindowWin32 should send message to the parent window asynchronously.

Merge request reports