From b5815db50ef84423b19ffe98d6ca0b2d54eb2925 Mon Sep 17 00:00:00 2001 From: Dong Yu Date: Tue, 16 Apr 2024 19:10:22 +0800 Subject: [PATCH 1/3] optimize video EOS report Signed-off-by: Dong Yu --- services/media_engine/filters/decoder_surface_filter.cpp | 5 ----- services/media_engine/modules/sink/video_sink.cpp | 7 ++++++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/services/media_engine/filters/decoder_surface_filter.cpp b/services/media_engine/filters/decoder_surface_filter.cpp index 6a85007ee..616dfaaf1 100644 --- a/services/media_engine/filters/decoder_surface_filter.cpp +++ b/services/media_engine/filters/decoder_surface_filter.cpp @@ -401,11 +401,6 @@ Status DecoderSurfaceFilter::DoProcessOutputBuffer(int arg, bool dropped) MEDIA_LOG_I("ReleaseBuffer for eos, index: %{public}u, bufferid: %{public}" PRIu64 ", pts: %{public}" PRIu64", flag: %{public}u", index, task.second->GetUniqueId(), task.second->pts_, task.second->flag_); - Event event { - .srcFilter = "VideoSink", - .type = EventType::EVENT_COMPLETE, - }; - eventReceiver_ ->OnEvent(event); } return Status::OK; } diff --git a/services/media_engine/modules/sink/video_sink.cpp b/services/media_engine/modules/sink/video_sink.cpp index ffe26b45d..5ff517e45 100644 --- a/services/media_engine/modules/sink/video_sink.cpp +++ b/services/media_engine/modules/sink/video_sink.cpp @@ -95,7 +95,12 @@ int64_t VideoSink::DoSyncWrite(const std::shared_ptr& buf } lastTimeStamp_ = buffer->pts_ - firstPts_; } else { - MEDIA_LOG_I("Video sink EOS"); + Event event { + .srcFilter = "VideoSink", + .type = EventType::EVENT_COMPLETE, + }; + eventReceiver_ ->OnEvent(event); + MEDIA_LOG_I("Videosink report EOS."); return -1; } if (shouldDrop) { -- Gitee From 95174999736f5a52c084be1742720fcd75073deb Mon Sep 17 00:00:00 2001 From: dongyu_dy Date: Fri, 19 Apr 2024 08:08:41 +0000 Subject: [PATCH 2/3] update services/media_engine/modules/sink/video_sink.cpp. Signed-off-by: dongyu_dy --- services/media_engine/modules/sink/video_sink.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/services/media_engine/modules/sink/video_sink.cpp b/services/media_engine/modules/sink/video_sink.cpp index 5ff517e45..7827d837d 100644 --- a/services/media_engine/modules/sink/video_sink.cpp +++ b/services/media_engine/modules/sink/video_sink.cpp @@ -95,12 +95,14 @@ int64_t VideoSink::DoSyncWrite(const std::shared_ptr& buf } lastTimeStamp_ = buffer->pts_ - firstPts_; } else { - Event event { - .srcFilter = "VideoSink", - .type = EventType::EVENT_COMPLETE, - }; - eventReceiver_ ->OnEvent(event); MEDIA_LOG_I("Videosink report EOS."); + if (eventReceiver_ != nullptr) { + Event event { + .srcFilter = "VideoSink", + .type = EventType::EVENT_COMPLETE, + }; + eventReceiver_ ->OnEvent(event); + } return -1; } if (shouldDrop) { -- Gitee From 1b2e945eab122befeb4bbe747a5fe65b6d5d0804 Mon Sep 17 00:00:00 2001 From: dongyu_dy Date: Fri, 19 Apr 2024 08:13:25 +0000 Subject: [PATCH 3/3] update services/media_engine/modules/sink/video_sink.cpp. Signed-off-by: dongyu_dy --- services/media_engine/modules/sink/video_sink.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/media_engine/modules/sink/video_sink.cpp b/services/media_engine/modules/sink/video_sink.cpp index 7827d837d..25749f662 100644 --- a/services/media_engine/modules/sink/video_sink.cpp +++ b/services/media_engine/modules/sink/video_sink.cpp @@ -101,7 +101,7 @@ int64_t VideoSink::DoSyncWrite(const std::shared_ptr& buf .srcFilter = "VideoSink", .type = EventType::EVENT_COMPLETE, }; - eventReceiver_ ->OnEvent(event); + eventReceiver_->OnEvent(event); } return -1; } -- Gitee