diff options
| -rw-r--r-- | audio.c | 23 | ||||
| -rw-r--r-- | omxdevice.c | 12 |
2 files changed, 9 insertions, 26 deletions
@@ -89,45 +89,29 @@ public: cAudioCodec::eCodec GetCodec(void) { - m_mutex->Lock(); - if (!m_parsed) Parse(); - - m_mutex->Unlock(); return m_codec; } unsigned int GetChannels(void) { - m_mutex->Lock(); - if (!m_parsed) Parse(); - - m_mutex->Unlock(); return m_channels; } unsigned int GetSamplingRate(void) { - m_mutex->Lock(); - if (!m_parsed) Parse(); - - m_mutex->Unlock(); return m_samplingRate; } unsigned int GetFrameSize(void) { - m_mutex->Lock(); - if (!m_parsed) Parse(); - - m_mutex->Unlock(); return m_packet.size; } @@ -150,12 +134,8 @@ public: bool Empty(void) { - m_mutex->Lock(); - if (!m_parsed) Parse(); - - m_mutex->Unlock(); return m_packet.size == 0; } @@ -269,6 +249,8 @@ private: void Parse() { + m_mutex->Lock(); + cAudioCodec::eCodec codec = cAudioCodec::eInvalid; unsigned int channels = 0; unsigned int offset = 0; @@ -352,6 +334,7 @@ private: m_packet.size = 0; m_parsed = true; + m_mutex->Unlock(); } struct Pts diff --git a/omxdevice.c b/omxdevice.c index 8a3edb0..504ed1c 100644 --- a/omxdevice.c +++ b/omxdevice.c @@ -154,19 +154,19 @@ bool cOmxDevice::SetPlayMode(ePlayMode PlayMode) switch (PlayMode) { case pmNone: - m_omx->StopClock(); - m_omx->SetClockScale(0.0f); - - if (m_hasVideo) - m_omx->StopVideo(); - if (m_hasAudio) { m_audio->Reset(); m_omx->FlushAudio(); } + if (m_hasVideo) + m_omx->StopVideo(); + + m_omx->StopClock(); + m_omx->SetClockScale(0.0f); m_omx->SetCurrentReferenceTime(0); m_omx->SetClockReference(cOmx::eClockRefVideo); + m_videoCodec = cVideoCodec::eInvalid; m_hasAudio = false; m_hasVideo = false; |
