1 /*
2 * Copyright (c) 2023-2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "gtest/gtest.h"
17 #include "plugin/plugins/demuxer/wav_demuxer/wav_demuxer_plugin.h"
18
19 using namespace testing::ext;
20 using namespace OHOS::Media::Plugin;
21 using namespace OHOS::Media::Plugin::WavPlugin;
22
23 namespace OHOS {
24 namespace Media {
25 namespace Test {
WavDemuxerPluginCreate(const std::string & name)26 std::shared_ptr<WavDemuxerPlugin> WavDemuxerPluginCreate(const std::string& name)
27 {
28 return std::make_shared<WavDemuxerPlugin>(name);
29 }
30
31 HWTEST(TestWavDemuxerPlugin, find_wav_demuxer_plugins_process, TestSize.Level1)
32 {
33 std::shared_ptr<WavDemuxerPlugin> wavDemuxerPlugin = WavDemuxerPluginCreate("process");
34 ASSERT_TRUE(WavDemuxerPlugin != nullptr);
35 auto resetStatus = wavDemuxerPlugin->Reset();
36 ASSERT_TRUE(resetStatus == Status::OK);
37 auto initStatus = wavDemuxerPlugin->Init();
38 ASSERT_TRUE(initStatus == Status::OK);
39 auto prepareStatus = wavDemuxerPlugin->Prepare();
40 ASSERT_TRUE(prepareStatus == Status::OK);
41 auto startStatus = wavDemuxerPlugin->Start();
42 ASSERT_TRUE(startStatus == Status::OK);
43 auto stopStatus = wavDemuxerPlugin->Stop();
44 ASSERT_TRUE(stopStatus == Status::OK);
45 auto freeStatus = wavDemuxerPlugin->Deinit();
46 ASSERT_TRUE(freeStatus == Status::OK);
47 }
48
49 HWTEST(TestWavDemuxerPlugin, find_wav_demuxer_plugins_get_parameter, TestSize.Level1)
50 {
51 std::shared_ptr<WavDemuxerPlugin> wavDemuxerPlugin = WavDemuxerPluginCreate("get parameter");
52 ASSERT_TRUE(wavDemuxerPlugin != nullptr);
53 ValueType para;
54 auto channelLayoutStatus = wavDemuxerPlugin->GetParameter(Tag::AUDIO_CHANNEL_LAYOUT, para);
55 ASSERT_TRUE(channelLayoutStatus == Status::ERROR_UNIMPLEMENTED);
56 auto mediaTypeStatus = wavDemuxerPlugin->GetParameter(Tag::MEDIA_TYPE, para);
57 ASSERT_TRUE(mediaTypeStatus == Status::ERROR_UNIMPLEMENTED);
58 auto sampleRateStatus = wavDemuxerPlugin->GetParameter(Tag::AUDIO_SAMPLE_RATE, para);
59 ASSERT_TRUE(sampleRateStatus == Status::ERROR_UNIMPLEMENTED);
60 auto bitrateStatus = wavDemuxerPlugin->GetParameter(Tag::MEDIA_BITRATE, para);
61 ASSERT_TRUE(bitrateStatus == Status::ERROR_UNIMPLEMENTED);
62 auto channelsStatus = wavDemuxerPlugin->GetParameter(Tag::AUDIO_CHANNELS, para);
63 ASSERT_TRUE(channelsStatus == Status::ERROR_UNIMPLEMENTED);
64 auto trackIdStatus = wavDemuxerPlugin->GetParameter(Tag::TRACK_ID, para);
65 ASSERT_TRUE(trackIdStatus == Status::ERROR_UNIMPLEMENTED);
66 auto mimeStatus = wavDemuxerPlugin->GetParameter(Tag::MIME, para);
67 ASSERT_TRUE(mimeStatus == Status::ERROR_UNIMPLEMENTED);
68 auto mpegVersionStatus = wavDemuxerPlugin->GetParameter(Tag::AUDIO_MPEG_VERSION, para);
69 ASSERT_TRUE(mpegVersionStatus == Status::ERROR_UNIMPLEMENTED);
70 auto sampleFormatStatus = wavDemuxerPlugin->GetParameter(Tag::AUDIO_SAMPLE_FORMAT, para);
71 ASSERT_TRUE(sampleFormatStatus == Status::ERROR_UNIMPLEMENTED);
72 auto samplePerFrameStatus = wavDemuxerPlugin->GetParameter(Tag::AUDIO_SAMPLE_PER_FRAME, para);
73 ASSERT_TRUE(samplePerFrameStatus == Status::ERROR_UNIMPLEMENTED);
74 }
75
76 HWTEST(TestWavDemuxerPlugin, find_wav_demuxer_plugins_set_parameter, TestSize.Level1)
77 {
78 std::shared_ptr<WavDemuxerPlugin> wavDemuxerPlugin = WavDemuxerPluginCreate("get parameter");
79 ASSERT_TRUE(wavDemuxerPlugin != nullptr);
80 ASSERT_TRUE(wavDemuxerPlugin->SetParameter(Tag::AUDIO_CHANNEL_LAYOUT, AudioChannelLayout::STEREO)
81 == Status::ERROR_UNIMPLEMENTED);
82 ASSERT_TRUE(wavDemuxerPlugin->SetParameter(Tag::MEDIA_TYPE, MediaType::AUDIO) == Status::ERROR_UNIMPLEMENTED);
83 ASSERT_TRUE(wavDemuxerPlugin->SetParameter(Tag::TRACK_ID, 0) == Status::ERROR_UNIMPLEMENTED);
84 ASSERT_TRUE(wavDemuxerPlugin->SetParameter(Tag::MIME, MEDIA_MIME_AUDIO_RAW) == Status::ERROR_UNIMPLEMENTED);
85 ASSERT_TRUE(wavDemuxerPlugin->SetParameter(Tag::AUDIO_SAMPLE_FORMAT, AudioSampleFormat::WAVE_FORMAT_PCM)
86 == Status::ERROR_UNIMPLEMENTED);
87 ASSERT_TRUE(wavDemuxerPlugin->SetParameter(Tag::AUDIO_SAMPLE_PER_FRAME, 8192) // sample per frame: 8192
88 == Status::ERROR_UNIMPLEMENTED);
89 }
90
91 HWTEST(TestWavDemuxerPlugin, find_wav_demuxer_plugins_get_allocator, TestSize.Level1)
92 {
93 std::shared_ptr<WavDemuxerPlugin> wavDemuxerPlugin = WavDemuxerPluginCreate("get allocator");
94 ASSERT_TRUE(wavDemuxerPlugin != nullptr);
95 auto allocator = wavDemuxerPlugin->GetAllocator();
96 ASSERT_TRUE(allocator == nullptr);
97 }
98
99 HWTEST(TestWavDemuxerPlugin, find_wav_demuxer_plugins_set_callback, TestSize.Level1)
100 {
101 std::shared_ptr<WavDemuxerPlugin> wavDemuxerPlugin = WavDemuxerPluginCreate("set callback");
102 ASSERT_TRUE(wavDemuxerPlugin != nullptr);
103 Callback* cb = new Callback();
104 auto status = wavDemuxerPlugin->SetCallback(cb);
105 ASSERT_TRUE(status == Status::OK);
106 }
107
108 HWTEST(TestWavDemuxerPlugin, find_wav_demuxer_plugins_get_track_count, TestSize.Level1)
109 {
110 std::shared_ptr<WavDemuxerPlugin> wavDemuxerPlugin = WavDemuxerPluginCreate("get track count");
111 ASSERT_TRUE(wavDemuxerPlugin != nullptr);
112 ASSERT_TRUE(wavDemuxerPlugin->GetTrackCount() == 0);
113 }
114
115 HWTEST(TestWavDemuxerPlugin, find_wav_demuxer_plugins_select_track, TestSize.Level1)
116 {
117 std::shared_ptr<WavDemuxerPlugin> wavDemuxerPlugin = WavDemuxerPluginCreate("select track");
118 ASSERT_TRUE(wavDemuxerPlugin != nullptr);
119 auto selectStatus = wavDemuxerPlugin->SelectTrack(0);
120 ASSERT_TRUE(selectStatus == Status::OK);
121 }
122
123 HWTEST(TestWavDemuxerPlugin, find_wav_demuxer_plugins_unselect_track, TestSize.Level1)
124 {
125 std::shared_ptr<WavDemuxerPlugin> wavDemuxerPlugin = WavDemuxerPluginCreate("unselect track");
126 ASSERT_TRUE(wavDemuxerPlugin != nullptr);
127 auto unselectStatus = wavDemuxerPlugin->UnselectTrack(0);
128 ASSERT_TRUE(unselectStatus == Status::OK);
129 }
130
131 HWTEST(TestWavDemuxerPlugin, find_wav_demuxer_plugins_get_select_track, TestSize.Level1)
132 {
133 std::shared_ptr<WavDemuxerPlugin> wavDemuxerPlugin = WavDemuxerPluginCreate("get select track");
134 ASSERT_TRUE(wavDemuxerPlugin != nullptr);
135 std::vector<int32_t> trackIds = new std::vector<int32_t>[1];
136 auto selectStatus = wavDemuxerPlugin->GetSelectedTracks(trackIds);
137 ASSERT_TRUE(selectStatus == Status::OK);
138 }
139
140 } // namespace Test
141 } // namespace Media
142 } // namespace OHOS