d3dvideosink: start/stop concurrency between multiple sinks
Submitted by Jonathan Roy
Link to original bug (#768154)
Description
Created attachment 330505
0004-d3dvideosink-start-stop-lock.patch
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":
0004-d3dvideosink-start-stop-lock.patch
Version: 1.8.2