Bug 984816: RTSP play/pause deadlock issue. 1. Release the monitor when access mReader. 2. Reverse the order in RtspOmxReader::SetIdle(). r=cpearce

This commit is contained in:
Benjamin Chen 2014-03-31 10:18:01 +08:00
Родитель 7535b0ba85
Коммит 7b006532c6
2 изменённых файлов: 7 добавлений и 4 удалений

Просмотреть файл

@ -1505,8 +1505,11 @@ MediaDecoderStateMachine::EnsureActive()
return;
}
mIsReaderIdle = false;
{
ReentrantMonitorAutoExit exitMon(mDecoder->GetReentrantMonitor());
SetReaderActive();
}
}
void
MediaDecoderStateMachine::SetReaderIdle()

Просмотреть файл

@ -312,6 +312,9 @@ RtspOmxReader::ReadMetadata(MediaInfo* aInfo,
}
void RtspOmxReader::SetIdle() {
// Call parent class to set OMXCodec idle.
MediaOmxReader::SetIdle();
// Need to pause RTSP streaming OMXCodec decoding.
if (mRtspResource) {
nsIStreamingProtocolController* controller =
@ -320,9 +323,6 @@ void RtspOmxReader::SetIdle() {
controller->Pause();
}
}
// Call parent class to set OMXCodec idle.
MediaOmxReader::SetIdle();
}
void RtspOmxReader::SetActive() {