Files
UnrealEngineUWP/Engine/Source/Runtime/GameplayMediaEncoder
peter lockhart 9d30969f5a 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: lina.halper
#ROBOMERGE-AUTHOR: peter.lockhart
#ROBOMERGE-SOURCE: CL 6104242 via CL 6104243 via CL 6104288 via CL 6104309
#ROBOMERGE-BOT: ANIM (Main -> Dev-Anim)

[CL 6127200 by peter lockhart in Dev-Anim branch]
2019-04-26 22:16:59 -04:00
..
2019-03-13 13:00:45 -04:00