d3dvideosink: start/stop concurrency between multiple sinks
Submitted by Jonathan Roy
Created attachment 330505
Concurrent start/stop actions on multiple d3dvideosink instances running in parallel (distinct pipelines) may cause a crash. There is already a class mutex that is properly used in d3d_class_init and d3d_class_destroy, but it is momentarily released in both functions to let the window proc thread proceed. This opens up a breach for simultaneous start and/or stop calls to conflict, even on distinct sink instances.
Attached patch introduces another class mutex to serialize concurrent starts and stops.
Patch 330505, "0004-d3dvideosink-start-stop-lock.patch":