From 0a32982284e128c0dd318a94b839eac1a7557c1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9B=BD=E5=BA=86?= Date: Thu, 29 Aug 2024 09:22:05 +0000 Subject: [PATCH] av codec MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 国庆 --- .../video_decoder_adapter_unit_test.h | 11 ++- .../video_resize_filter_unit_test.cpp | 37 +++++++- .../video_resize_filter_unit_test.h | 91 +++++++++++++++++++ 3 files changed, 135 insertions(+), 4 deletions(-) diff --git a/test/unittest/decoder_filter_test/video_decoder_adapter_unit_test.h b/test/unittest/decoder_filter_test/video_decoder_adapter_unit_test.h index fb04f8a60..97e3a7151 100644 --- a/test/unittest/decoder_filter_test/video_decoder_adapter_unit_test.h +++ b/test/unittest/decoder_filter_test/video_decoder_adapter_unit_test.h @@ -143,7 +143,7 @@ public: virtual int32_t QueueInputBuffer(uint32_t index) { - return status_; + return ret; } virtual int32_t GetOutputFormat(Format &format) @@ -185,6 +185,7 @@ public: } private: int32_t status_ = 0; + int32_t ret = 1; }; class TestAVBufferQueueConsumer : public AVBufferQueueConsumer { @@ -208,11 +209,15 @@ public: Status AcquireBuffer(std::shared_ptr& outBuffer) { - return Status::ERROR_UNKNOWN; + if (outBuffer == nullptr) { + return Status::ERROR_UNKNOWN; + } else { + return Status::OK; + } } Status ReleaseBuffer(const std::shared_ptr& inBuffer) { - return Status::OK; + return Status::ERROR_UNKNOWN; } Status AttachBuffer(std::shared_ptr& inBuffer, bool isFilled) diff --git a/test/unittest/filter_test/video_resize_filter_unit_test.cpp b/test/unittest/filter_test/video_resize_filter_unit_test.cpp index 52db10aa3..ed40efe52 100644 --- a/test/unittest/filter_test/video_resize_filter_unit_test.cpp +++ b/test/unittest/filter_test/video_resize_filter_unit_test.cpp @@ -115,6 +115,9 @@ HWTEST_F(VideoResizeFilterUnitTest, VideoResizeFilter_SetOutputSurface_001, Test sptr surface = nullptr; Status ret = videoResize_->SetOutputSurface(surface, 0, 0); EXPECT_EQ(ret, Status::ERROR_NULL_POINTER); + videoResize_->videoEnhancer_ = nullptr; + ret = videoResize_->SetOutputSurface(surface, 0, 0); + EXPECT_EQ(ret, Status::ERROR_NULL_POINTER); videoResize_->videoEnhancer_ = DetailEnhancerVideo::Create(); videoResize_->eventReceiver_ = nullptr; surface = videoResize_->videoEnhancer_->GetInputSurface(); @@ -167,7 +170,7 @@ HWTEST_F(VideoResizeFilterUnitTest, VideoResizeFilter_DoStop_001, TestSize.Level */ HWTEST_F(VideoResizeFilterUnitTest, VideoResizeFilter_SetParameter_001, TestSize.Level1) { - std::shared_ptr parameter= std::make_shared(); + std::shared_ptr parameter = std::make_shared(); videoResize_->videoEnhancer_ = nullptr; videoResize_->SetParameter(parameter); videoResize_->videoEnhancer_ = DetailEnhancerVideo::Create(); @@ -177,6 +180,22 @@ HWTEST_F(VideoResizeFilterUnitTest, VideoResizeFilter_SetParameter_001, TestSize EXPECT_EQ(videoResize_->appPid_, 0); } +/** + * @tc.name: VideoResizeFilter_SetParameter_002 + * @tc.desc: SetParameter + * @tc.type: FUNC + */ +HWTEST_F(VideoResizeFilterUnitTest, VideoResizeFilter_SetParameter_002, TestSize.Level1) +{ + std::shared_ptr parameter = std::make_shared(); + parameter->SetData(Tag::MEDIA_END_OF_STREAM, 2); + videoResize_->videoEnhancer_ = nullptr; + videoResize_->SetParameter(parameter); + videoResize_->videoEnhancer_ = DetailEnhancerVideo::Create(); + videoResize_->SetParameter(parameter); + EXPECT_EQ(videoResize_->appPid_, 0); +} + /** * @tc.name: VideoResizeFilter_LinkNext_001 * @tc.desc: LinkNext @@ -194,6 +213,22 @@ HWTEST_F(VideoResizeFilterUnitTest, VideoResizeFilter_LinkNext_001, TestSize.Lev EXPECT_NE(ret, Status::OK); } +/** + * @tc.name: VideoResizeFilter_OnLinkedResult_001 + * @tc.desc: OnLinkedResult + * @tc.type: FUNC + */ +HWTEST_F(VideoResizeFilterUnitTest, VideoResizeFilter_OnLinkedResult_001, TestSize.Level1) +{ + sptr outputBufferQueue = new OHOS::Media::Pipeline::MyAVBufferQueueProducer(); + std::shared_ptr meta = std::make_shared(); + videoResize_->onLinkedResultCallback_ = std::make_shared(); + videoResize_->OnLinkedResult(outputBufferQueue, meta); + videoResize_->onLinkedResultCallback_ = nullptr; + videoResize_->OnLinkedResult(outputBufferQueue, meta); + EXPECT_EQ(videoResize_->instanceId_, 0); +} + /** * @tc.name: VideoResizeFilter_ReleaseBuffer_001 * @tc.desc: ReleaseBuffer diff --git a/test/unittest/filter_test/video_resize_filter_unit_test.h b/test/unittest/filter_test/video_resize_filter_unit_test.h index be0f7571c..4a429cad2 100644 --- a/test/unittest/filter_test/video_resize_filter_unit_test.h +++ b/test/unittest/filter_test/video_resize_filter_unit_test.h @@ -101,6 +101,97 @@ public: } protected: }; + +class MyAVBufferQueueProducer : public IRemoteStub { +public: + uint32_t GetQueueSize() + { + return 0; + } + Status SetQueueSize(uint32_t size) + { + return Status::OK; + } + + Status RequestBuffer(std::shared_ptr& outBuffer, + const AVBufferConfig& config, int32_t timeoutMs) + { + if (outBuffer == nullptr) { + return Status::ERROR_NULL_POINTER; + } else { + return Status::OK; + } + } + Status PushBuffer(const std::shared_ptr& inBuffer, bool available) + { + return Status::OK; + } + Status ReturnBuffer(const std::shared_ptr& inBuffer, bool available) + { + return Status::OK; + } + + Status AttachBuffer(std::shared_ptr& inBuffer, bool isFilled) + { + return Status::OK; + } + Status DetachBuffer(const std::shared_ptr& outBuffer) + { + return Status::OK; + } + + Status SetBufferFilledListener(sptr& listener) + { + return Status::OK; + } + Status RemoveBufferFilledListener(sptr& listener) + { + return Status::OK; + } + Status SetBufferAvailableListener(sptr& listener) + { + return Status::OK; + } + Status Clear() + { + return Status::OK; + } + DECLARE_INTERFACE_DESCRIPTOR(u"Media.MyAVBufferQueueProducer"); + +protected: + enum: uint32_t { + PRODUCER_GET_QUEUE_SIZE = 0, + PRODUCER_SET_QUEUE_SIZE = 1, + PRODUCER_REQUEST_BUFFER = 2, + PRODUCER_PUSH_BUFFER = 3, + PRODUCER_RETURN_BUFFER = 4, + PRODUCER_ATTACH_BUFFER = 5, + PRODUCER_DETACH_BUFFER = 6, + PRODUCER_SET_FILLED_LISTENER = 7, + PRODUCER_REMOVE_FILLED_LISTENER = 8, + PRODUCER_SET_AVAILABLE_LISTENER = 9 + }; +}; + +class TestFilterLinkCallback : public Pipeline::FilterLinkCallback { +public: + explicit TestFilterLinkCallback() + { + std::cout << "filter back constructor" << std::endl; + } + void OnLinkedResult(const sptr& queue, std::shared_ptr& meta) + { + std::cout << "call OnLinkedResult" << std::endl; + } + void OnUnlinkedResult(std::shared_ptr& meta) + { + std::cout << "call OnUnlinkedResult" << std::endl; + } + void OnUpdatedResult(std::shared_ptr& meta) + { + std::cout << "call OnUpdatedResult" << std::endl; + } +}; } // namespace Pipeline } // namespace Media } // namespace OHOS