diff --git a/services/media_engine/filters/decoder_surface_filter.cpp b/services/media_engine/filters/decoder_surface_filter.cpp index 6a85007ee5cdf0049864eb21c3a2ff19ee453c4d..616dfaaf1eb70116cbd6c424ad8eaf9f76c780bb 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 ffe26b45db8b02ed77e45a0bf86a89cb0ff6c04b..25749f662b42c30d29d270aef92ca26138403610 100644 --- a/services/media_engine/modules/sink/video_sink.cpp +++ b/services/media_engine/modules/sink/video_sink.cpp @@ -95,7 +95,14 @@ int64_t VideoSink::DoSyncWrite(const std::shared_ptr& buf } lastTimeStamp_ = buffer->pts_ - firstPts_; } else { - MEDIA_LOG_I("Video sink EOS"); + MEDIA_LOG_I("Videosink report EOS."); + if (eventReceiver_ != nullptr) { + Event event { + .srcFilter = "VideoSink", + .type = EventType::EVENT_COMPLETE, + }; + eventReceiver_->OnEvent(event); + } return -1; } if (shouldDrop) {