mirror of
https://gitee.com/openharmony/multimedia_av_codec
synced 2024-10-07 06:04:54 +00:00
commit
1aee53fbdd
@ -1411,13 +1411,14 @@ void CodecServer::PostProcessingOnOutputBufferAvailable(uint32_t index, [[maybe_
|
||||
CHECK_AND_RETURN_LOG(ret == QueueResult::OK, "Push data failed, %{public}s",
|
||||
QUEUE_RESULT_DESCRIPTION[static_cast<int32_t>(ret)]);
|
||||
videoCb_->OnOutputBufferAvailable(index, info->buffer);
|
||||
|
||||
processedFrameCount_++;
|
||||
|
||||
auto decoderIsEOS = decoderIsEOS_.load();
|
||||
AVCODEC_LOGD("Processed frame count = %{public}" PRIu64 ", decoder eos = %{public}u", processedFrameCount_.load(),
|
||||
decoderIsEOS ? 1 : 0);
|
||||
auto decodedFrameCount = decodedFrameCount_.load() - 1;
|
||||
auto needEOS = processedFrameCount_.compare_exchange_strong(decodedFrameCount, decodedFrameCount + 1);
|
||||
auto decodedFrameCount = decodedFrameCount_.load();
|
||||
auto needEOS = processedFrameCount_.load() == (decodedFrameCount - 1);
|
||||
AVCODEC_LOGD("Processed frame count = %{public}" PRIu64 "decoded frame count = %{public}" PRIu64
|
||||
", decoder eos = %{public}u, need eos = %{public}u", processedFrameCount_.load(), decodedFrameCount,
|
||||
decoderIsEOS ? 1 : 0, needEOS ? 1 : 0);
|
||||
if (!decoderIsEOS || !needEOS) {
|
||||
return;
|
||||
}
|
||||
@ -1433,6 +1434,9 @@ void CodecServer::PostProcessingOnOutputBufferAvailable(uint32_t index, [[maybe_
|
||||
CHECK_AND_RETURN_LOG(ret == QueueResult::OK, "Push data failed, %{public}s",
|
||||
QUEUE_RESULT_DESCRIPTION[static_cast<int32_t>(ret)]);
|
||||
videoCb_->OnOutputBufferAvailable(info->index, info->buffer);
|
||||
processedFrameCount_++;
|
||||
AVCODEC_LOGD("EOS frame. Processed frame count = %{public}" PRIu64 "decoded frame count = %{public}" PRIu64,
|
||||
processedFrameCount_.load(), decodedFrameCount);
|
||||
}
|
||||
|
||||
void CodecServer::PostProcessingOnOutputFormatChanged(const Format& format)
|
||||
|
@ -98,7 +98,7 @@ public:
|
||||
return QueueResult::OK;
|
||||
}
|
||||
|
||||
bool PopWait(T& data)
|
||||
QueueResult PopWait(T& data)
|
||||
{
|
||||
CHECK_AND_RETURN_RET_LOG(data_, QueueResult::NO_MEMORY, "Queue %{public}s has no memory", name_.data());
|
||||
if (!active_.load()) {
|
||||
|
Loading…
Reference in New Issue
Block a user