diff --git a/services/media_engine/modules/demuxer/media_demuxer.cpp b/services/media_engine/modules/demuxer/media_demuxer.cpp index ae93c58238363523f993463176d4f37f59c16e29..385e761dbdbffbda8a333795f2759bc718b9a29a 100644 --- a/services/media_engine/modules/demuxer/media_demuxer.cpp +++ b/services/media_engine/modules/demuxer/media_demuxer.cpp @@ -467,6 +467,7 @@ bool MediaDemuxer::IsOffsetValid(int64_t offset) const bool MediaDemuxer::GetBufferFromUserQueue(uint32_t queueIndex, int32_t size) { + std::unique_lock lock(mutex_); MEDIA_LOG_I("Get buffer from user queue " PUBLIC_LOG_D32 ".", queueIndex); FALSE_RETURN_V_MSG_E(bufferQueueMap_.count(queueIndex) > 0 && bufferQueueMap_[queueIndex] != nullptr, false, "bufferQueue " PUBLIC_LOG_D32 " is nullptr", queueIndex); diff --git a/services/media_engine/modules/sink/video_sink.cpp b/services/media_engine/modules/sink/video_sink.cpp index e695783b3a0b14d0f149ff86b63a1ddd5bf526db..01edea3e51da60249412406ca57bfba7cfe65032 100644 --- a/services/media_engine/modules/sink/video_sink.cpp +++ b/services/media_engine/modules/sink/video_sink.cpp @@ -104,10 +104,10 @@ bool VideoSink::CheckBufferLatenessMayWait(const std::shared_ptr 0 && Plugins::HstTime2Ms(diff * HST_USECOND) > 40) { // > 40ms + } else if (diff > 0 && Plugins::HstTime2Ms(diff) > 40) { // > 40ms // buffer is late tooLate = true; MEDIA_LOG_DD("buffer is too late");