Files
UnrealEngineUWP/Engine/Source/Runtime/GameplayMediaEncoder
peter lockhart a4099c7d3c Fix critical section bug where the audio mixer and the game thread can become stuck/deadlock on 2 mutexes triggered in reverse order.
Stopping a video recording via console command or via API can cause indefinite hang. Repo rate is 1/40.

#rb Rui.Figueira
#rnx


Deadlock occurs with MainThread and Audio FMixerDevice.

MainThread:

HighlightRecorder::Stop()

GameMediaEncorder::UnregisterListener (Locks Listener Mutex)

......

FMixerDevice::UnregisterSubmixBufferListener

FMixerSubmix::UnregisterBufferListener (Locks BufferListenerCriticalSection)



FMixerDevice:

FMixerDevice::ONProcessAudioStream

FMixerSubmix:: ProcessAudio (Locks BufferListenerCriticalSection)

......

FGameplayMediaEncoder::OnMediaSampleReady (Locks Listener Mutex)

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: peter.lockhart
#ROBOMERGE-SOURCE: CL 6104242 via CL 6104243 via CL 6104288 via CL 6104309
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 6132151 by peter lockhart in Dev-VR branch]
2019-04-26 22:54:27 -04:00
..