1 /*
2 * Copyright (c) 2022 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 "player_unit_test.h"
17 #include <unistd.h>
18 #include <securec.h>
19 #include "media_errors.h"
20 #include "media_errors.cpp"
21 #include "audio_effect.h"
22 #include "av_common.h"
23 #include "meta/video_types.h"
24
25 using namespace std;
26 using namespace testing::ext;
27 using namespace OHOS::Media::PlayerTestParam;
28
29 namespace OHOS {
30 namespace Media {
31
SetUpTestCase(void)32 void PlayerUnitTest::SetUpTestCase(void)
33 {
34 }
35
TearDownTestCase(void)36 void PlayerUnitTest::TearDownTestCase(void)
37 {
38 }
39
SetUp(void)40 void PlayerUnitTest::SetUp(void)
41 {
42 callback_ = std::make_shared<PlayerCallbackTest>();
43 ASSERT_NE(nullptr, callback_);
44 player_ = std::make_shared<PlayerMock>(callback_);
45 ASSERT_NE(nullptr, player_);
46 EXPECT_TRUE(player_->CreatePlayer());
47 EXPECT_EQ(MSERR_OK, player_->SetPlayerCallback(callback_));
48 }
49
TearDown(void)50 void PlayerUnitTest::TearDown(void)
51 {
52 if (player_ != nullptr) {
53 player_->Release();
54 }
55 }
56
PlayFunTest(const std::string & protocol)57 void PlayerUnitTest::PlayFunTest(const std::string &protocol)
58 {
59 int32_t duration = 0;
60 if (player_ != nullptr) {
61 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
62 EXPECT_EQ(MSERR_OK, player_->Play());
63 EXPECT_TRUE(player_->IsPlaying());
64 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
65 EXPECT_EQ(MSERR_OK, player_->Pause());
66 int32_t time;
67 EXPECT_EQ(MSERR_OK, player_->GetCurrentTime(time));
68 std::vector<Format> videoTrack;
69 std::vector<Format> audioTrack;
70 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
71 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
72 PlaybackRateMode mode;
73 player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X);
74 player_->GetPlaybackSpeed(mode);
75 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
76 EXPECT_EQ(true, player_->IsLooping());
77 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_NEXT_SYNC));
78 EXPECT_EQ(MSERR_OK, player_->Play());
79 sleep(PLAYING_TIME_2_SEC);
80 if (protocol == PlayerTestParam::HLS_PLAY) {
81 EXPECT_EQ(MSERR_OK, player_->SelectBitRate(200000)); // 200000:bitrate
82 sleep(PLAYING_TIME_2_SEC);
83 }
84 EXPECT_EQ(MSERR_OK, player_->SetLooping(false));
85 EXPECT_EQ(false, player_->IsLooping());
86 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
87 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
88 EXPECT_EQ(MSERR_OK, player_->Stop());
89 EXPECT_EQ(MSERR_OK, player_->Reset());
90 }
91 }
92
NoRunPlayFunTest(const std::string & protocol)93 void PlayerUnitTest::NoRunPlayFunTest(const std::string &protocol)
94 {
95 int32_t duration = 0;
96 if (player_ != nullptr) {
97 EXPECT_NE(MSERR_OK, player_->GetDuration(duration));
98 EXPECT_NE(MSERR_OK, player_->Play());
99 EXPECT_FALSE(player_->IsPlaying());
100 EXPECT_NE(MSERR_OK, player_->GetDuration(duration));
101 EXPECT_NE(MSERR_OK, player_->Pause());
102 int32_t time;
103 EXPECT_NE(MSERR_OK, player_->GetCurrentTime(time));
104 std::vector<Format> videoTrack;
105 std::vector<Format> audioTrack;
106 EXPECT_NE(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
107 EXPECT_NE(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
108 PlaybackRateMode mode;
109 player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X);
110 player_->GetPlaybackSpeed(mode);
111 EXPECT_NE(MSERR_OK, player_->SetLooping(true));
112 EXPECT_NE(true, player_->IsLooping());
113 EXPECT_NE(MSERR_OK, player_->Seek(duration, SEEK_NEXT_SYNC));
114 EXPECT_NE(MSERR_OK, player_->Play());
115 sleep(PLAYING_TIME_2_SEC);
116 if (protocol == PlayerTestParam::HLS_PLAY) {
117 EXPECT_NE(MSERR_OK, player_->SelectBitRate(200000)); // 200000:bitrate
118 sleep(PLAYING_TIME_2_SEC);
119 }
120 EXPECT_NE(MSERR_OK, player_->SetLooping(false));
121 EXPECT_EQ(false, player_->IsLooping());
122 EXPECT_NE(MSERR_OK, player_->SetVolume(1, 1));
123 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
124 EXPECT_NE(MSERR_OK, player_->Stop());
125 EXPECT_NE(MSERR_OK, player_->Reset());
126 }
127 }
128
129
GetSetParaFunTest()130 void PlayerUnitTest::GetSetParaFunTest()
131 {
132 if (player_ != nullptr) {
133 int32_t duration = 0;
134 int32_t time = 0;
135 PlaybackRateMode mode;
136 std::vector<Format> videoTrack;
137 std::vector<Format> audioTrack;
138 player_->GetVideoTrackInfo(videoTrack);
139 player_->GetAudioTrackInfo(audioTrack);
140 player_->GetCurrentTime(time);
141 player_->GetDuration(duration);
142 player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X);
143 player_->GetPlaybackSpeed(mode);
144 player_->SetLooping(true);
145 player_->IsLooping();
146 player_->SetVolume(1, 1);
147 }
148 }
149
MediaServiceErrCodeTest(MediaServiceErrCode code)150 void PlayerUnitTest::MediaServiceErrCodeTest(MediaServiceErrCode code)
151 {
152 if (MSERRCODE_INFOS.count(code) != 0) {
153 EXPECT_EQ(MSERRCODE_INFOS.at(code), MSErrorToString(code));
154 } else if (code > MSERR_EXTEND_START) {
155 EXPECT_EQ("extend error:" + std::to_string(static_cast<int32_t>(code - MSERR_EXTEND_START)),
156 MSErrorToString(code));
157 } else {
158 EXPECT_EQ("invalid error code:" + std::to_string(static_cast<int32_t>(code)), MSErrorToString(code));
159 }
160
161 if (MSERRCODE_INFOS.count(code) != 0 && MSERRCODE_TO_EXTERRORCODE.count(code) != 0 &&
162 MSEXTERRCODE_INFOS.count(MSERRCODE_TO_EXTERRORCODE.at(code)) != 0) {
163 EXPECT_EQ(MSEXTERRCODE_INFOS.at(MSERRCODE_TO_EXTERRORCODE.at(code)), MSErrorToExtErrorString(code));
164 } else {
165 EXPECT_EQ("unkown error", MSErrorToExtErrorString(code));
166 }
167
168 if (MSERRCODE_INFOS.count(code) != 0 && MSERRCODE_TO_EXTERRORCODE.count(code) != 0) {
169 EXPECT_EQ(MSERRCODE_TO_EXTERRORCODE.at(code), MSErrorToExtError(code));
170 } else {
171 EXPECT_EQ(MSERR_EXT_UNKNOWN, MSErrorToExtError(code));
172 }
173
174 if (MSERRCODE_INFOS.count(code) != 0 && MSERRCODE_TO_EXTERRORCODEAPI9.count(code) != 0 &&
175 MSEXTERRAPI9CODE_FUNCS.count(MSERRCODE_TO_EXTERRORCODEAPI9.at(code)) != 0) {
176 EXPECT_EQ(MSEXTERRAPI9CODE_FUNCS.at(MSERRCODE_TO_EXTERRORCODEAPI9.at(code))("test1", "test2"),
177 MSErrorToExtErrorAPI9String(code, "test1", "test2"));
178 } else {
179 EXPECT_EQ("unkown error", MSErrorToExtErrorAPI9String(code, "test1", "test2"));
180 }
181
182 if (MSERRCODE_INFOS.count(code) != 0 && MSERRCODE_TO_EXTERRORCODEAPI9.count(code) != 0) {
183 EXPECT_EQ(MSERRCODE_TO_EXTERRORCODEAPI9.at(code), MSErrorToExtErrorAPI9(code));
184 } else {
185 EXPECT_EQ(MSERR_EXT_API9_IO, MSErrorToExtErrorAPI9(code));
186 }
187 }
188
MediaServiceExtErrCodeAPI9Test(MediaServiceExtErrCodeAPI9 code)189 void PlayerUnitTest::MediaServiceExtErrCodeAPI9Test(MediaServiceExtErrCodeAPI9 code)
190 {
191 if (MSEXTERRAPI9CODE_FUNCS.count(code) != 0) {
192 EXPECT_EQ(MSEXTERRAPI9CODE_FUNCS.at(code)("test1", "test2"),
193 MSExtErrorAPI9ToString(code, "test1", "test2"));
194 } else {
195 EXPECT_EQ("invalid error code:" + std::to_string(code), MSExtErrorAPI9ToString(code, "test1", "test2"));
196 }
197
198 if (MSEXTERRCODE_API9_INFOS.count(code) != 0) {
199 EXPECT_EQ(MSEXTERRCODE_API9_INFOS.at(code), MSExtAVErrorToString(code));
200 } else {
201 EXPECT_EQ("invalid error code:", MSExtAVErrorToString(code));
202 }
203 }
204
205 /**
206 * @tc.name : Test Player SetMediaSource API
207 * @tc.number: Player_SetMediaSource_001
208 * @tc.desc : Test Player SetMediaSource interface
209 */
210 HWTEST_F(PlayerUnitTest, Player_SetMediaSource_001, TestSize.Level0)
211 {
212 std::map<std::string, std::string> header = {
213 {"key1", "value1"},
214 {"key2", "value2"},
215 };
216 struct AVPlayStrategy strategy = {1080, 920, 10000, false};
217 std::shared_ptr<AVMediaSource> mediaSource = std::make_shared<AVMediaSource>(VIDEO_FILE1, header);
218 int32_t ret = player_->SetMediaSource(mediaSource, strategy);
219 EXPECT_EQ(MSERR_OK, ret);
220 }
221
222 /**
223 * @tc.name : Test Player SetMediaSource API
224 * @tc.number: Player_SetMediaSource_002
225 * @tc.desc : Test Player SetMediaSource interface
226 */
227 HWTEST_F(PlayerUnitTest, Player_SetMediaSource_002, TestSize.Level0)
228 {
229 struct AVPlayStrategy strategy = {1080, 920, 10000, false};
230 int32_t ret = player_->SetMediaSource(nullptr, strategy);
231 EXPECT_NE(MSERR_OK, ret);
232 }
233
234 /**
235 * @tc.name : Test Player SetMediaSource API
236 * @tc.number: Player_SetMediaSource_003
237 * @tc.desc : Test Player SetMediaSource interface
238 */
239 HWTEST_F(PlayerUnitTest, Player_SetMediaSource_003, TestSize.Level0)
240 {
241 std::map<std::string, std::string> header = {
242 {"key1", "value1"},
243 {"key2", "value2"},
244 };
245 struct AVPlayStrategy strategy = {1080, 920, 10000, false};
246 std::shared_ptr<AVMediaSource> mediaSource = std::make_shared<AVMediaSource>(MEDIA_ROOT + "error.mp4", header);
247 int32_t ret = player_->SetMediaSource(mediaSource, strategy);
248 EXPECT_EQ(MSERR_OK, ret);
249 EXPECT_NE(MSERR_OK, player_->PrepareAsync());
250 }
251
252 /**
253 * @tc.name : Test Player SetMediaSource API
254 * @tc.number: Player_SetMediaSource_004
255 * @tc.desc : Test Player SetMediaSource interface
256 */
257 HWTEST_F(PlayerUnitTest, Player_SetMediaSource_004, TestSize.Level0)
258 {
259 std::map<std::string, std::string> header = {
260 {"key1", "value1"},
261 {"key2", "value2"},
262 };
263 struct AVPlayStrategy strategy = {1080, 920, 10000, false};
264 std::shared_ptr<AVMediaSource> mediaSource = std::make_shared<AVMediaSource>(MEDIA_ROOT + "error.mp4", header);
265 int32_t ret = player_->SetMediaSource(mediaSource, strategy);
266 EXPECT_EQ(MSERR_OK, ret);
267 EXPECT_NE(MSERR_OK, player_->PrepareAsync());
268 EXPECT_NE(MSERR_OK, player_->Prepare());
269 }
270
271 /**
272 * @tc.name : Test Player SetMediaSource API
273 * @tc.number: Player_SetMediaSource_005
274 * @tc.desc : Test Player SetMediaSource interface
275 */
276 HWTEST_F(PlayerUnitTest, Player_SetMediaSource_005, TestSize.Level0)
277 {
278 std::map<std::string, std::string> header = {
279 {"key1", "value1"},
280 {"key2", "value2"},
281 };
282 struct AVPlayStrategy strategy = {1080, 920, 10000, false};
283 std::shared_ptr<AVMediaSource> mediaSource = std::make_shared<AVMediaSource>(MEDIA_ROOT + "error.mp4", header);
284 int32_t ret = player_->SetMediaSource(mediaSource, strategy);
285 EXPECT_EQ(MSERR_OK, ret);
286 EXPECT_NE(MSERR_OK, player_->Play());
287 EXPECT_EQ(false, player_->IsPlaying());
288 }
289
290 /**
291 * @tc.name : Test Player SetMediaSource API
292 * @tc.number: Player_SetMediaSource_006
293 * @tc.desc : Test Player SetMediaSource interface
294 */
295 HWTEST_F(PlayerUnitTest, Player_SetMediaSource_006, TestSize.Level0)
296 {
297 std::map<std::string, std::string> header = {
298 };
299 struct AVPlayStrategy strategy = {1080, 920, 10000, false};
300 std::shared_ptr<AVMediaSource> mediaSource = std::make_shared<AVMediaSource>(MEDIA_ROOT + "error.mp4", header);
301 int32_t ret = player_->SetMediaSource(mediaSource, strategy);
302 EXPECT_EQ(MSERR_OK, ret);
303 EXPECT_NE(MSERR_OK, player_->Play());
304 EXPECT_EQ(false, player_->IsPlaying());
305 }
306
307 /**
308 * @tc.name : Test Player SetMediaSource API
309 * @tc.number: Player_SetMediaSource_007
310 * @tc.desc : Test Player SetMediaSource interface pre_download
311 */
312 HWTEST_F(PlayerUnitTest, Player_SetMediaSource_007, TestSize.Level0)
313 {
314 std::map<std::string, std::string> header = {
315 {"key1", "value1"},
316 {"key2", "value2"},
317 };
318 struct AVPlayStrategy strategy = {1080, 920, 0, false};
319 std::shared_ptr<LoaderCallback> mediaSourceLoaderCb = std::make_shared<MockLoaderCallback>();
320 std::shared_ptr<AVMediaSource> mediaSource = std::make_shared<AVMediaSource>(VIDEO_URL, header);
321 mediaSource->mediaSourceLoaderCb_ = mediaSourceLoaderCb;
322 EXPECT_EQ(MSERR_OK, player_->SetMediaSource(mediaSource, strategy));
323
324 sptr<Surface> videoSurface = player_->GetVideoSurface();
325 ASSERT_NE(nullptr, videoSurface);
326 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
327 int32_t ret = player_->PrepareAsync();
328 if (ret == MSERR_OK) {
329 PlayFunTest(PRE_DOWNLOAD);
330 }
331 }
332
333 /**
334 * @tc.name : Test Player SetMediaSource API
335 * @tc.number: Player_SetMediaSource_008
336 * @tc.desc : Test Player SetMediaSource with MediaStream
337 */
338 HWTEST_F(PlayerUnitTest, Player_SetMediaSource_008, TestSize.Level0)
339 {
340 std::map<std::string, std::string> header = {
341 };
342 struct AVPlayStrategy strategy = {720, 1280, 0, false};
343 std::shared_ptr<AVMediaSource> mediaSource = std::make_shared<AVMediaSource>("", header);
344 AVPlayMediaStream mediaStream;
345 mediaStream.url = "http://media.iyuns.top:1003/live/SEI-H264.flv";
346 mediaStream.width = 720;
347 mediaStream.height = 1280;
348 mediaStream.bitrate = 1024*1024;
349 mediaSource->AddMediaStream(mediaStream);
350 int32_t ret = player_->SetMediaSource(mediaSource, strategy);
351 EXPECT_EQ(MSERR_OK, ret);
352 }
353
354 /**
355 * @tc.name : Test Player SetSource API
356 * @tc.number: Player_SetSource_001
357 * @tc.desc : Test Player SetSource interface
358 */
359 HWTEST_F(PlayerUnitTest, Player_SetSource_001, TestSize.Level0)
360 {
361 int32_t ret = player_->SetSource(VIDEO_FILE1);
362 EXPECT_EQ(MSERR_OK, ret);
363 }
364
365 /**
366 * @tc.name : Test Player SetSource API
367 * @tc.number: Player_SetSource_002
368 * @tc.desc : Test Player SetSource interface with invalid path
369 */
370 HWTEST_F(PlayerUnitTest, Player_SetSource_002, TestSize.Level1)
371 {
372 int32_t ret = player_->SetSource(MEDIA_ROOT + "kong.mp4");
373 EXPECT_NE(MSERR_OK, ret);
374 }
375
376 /**
377 * @tc.name : Test Player SetSource API
378 * @tc.number: Player_SetSource_003
379 * @tc.desc : Test Player SetSource interface with wrong mp3
380 */
381 HWTEST_F(PlayerUnitTest, Player_SetSource_003, TestSize.Level2)
382 {
383 system("param set sys.media.player.buffering.enable TRUE");
384 PlaybackRateMode mode;
385 int32_t time = 0;
386 int32_t duration = 0;
387 std::vector<Format> videoTrack;
388 std::vector<Format> audioTrack;
389 int32_t ret = player_->SetSource(MEDIA_ROOT + "1kb.mp3");
390 EXPECT_EQ(MSERR_OK, ret);
391 sptr<Surface> videoSurface = player_->GetVideoSurface();
392 ASSERT_NE(nullptr, videoSurface);
393 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
394 EXPECT_NE(MSERR_OK, player_->PrepareAsync());
395 EXPECT_NE(MSERR_OK, player_->Prepare());
396 Format format;
397 format.PutIntValue(PlayerKeys::VIDEO_SCALE_TYPE,
398 static_cast<int32_t>(Plugins::VideoScaleType::VIDEO_SCALE_TYPE_FIT));
399 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
400 EXPECT_NE(MSERR_OK, player_->SetVolume(1, 1));
401 EXPECT_NE(MSERR_OK, player_->Play());
402 EXPECT_EQ(false, player_->IsPlaying());
403 EXPECT_NE(MSERR_OK, player_->Pause());
404 EXPECT_NE(MSERR_OK, player_->Seek(0, SEEK_CLOSEST));
405 EXPECT_NE(MSERR_OK, player_->SetLooping(true));
406 EXPECT_EQ(false, player_->IsLooping());
407 EXPECT_NE(MSERR_OK, player_->SetVolume(1, 1));
408 EXPECT_NE(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
409 EXPECT_NE(MSERR_OK, player_->GetPlaybackSpeed(mode));
410 EXPECT_NE(MSERR_OK, player_->GetCurrentTime(time));
411 EXPECT_NE(MSERR_OK, player_->GetDuration(duration));
412 EXPECT_NE(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
413 EXPECT_NE(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
414 EXPECT_NE(480, player_->GetVideoHeight());
415 EXPECT_NE(720, player_->GetVideoWidth());
416 EXPECT_NE(MSERR_OK, player_->Stop());
417 EXPECT_EQ(MSERR_OK, player_->Reset());
418 system("param set sys.media.player.buffering.enable FALSE");
419 }
420
421 /**
422 * @tc.name : Test Player SetSource API
423 * @tc.number: Player_SetSource_004
424 * @tc.desc : Test Player SetSource interface with txt
425 */
426 HWTEST_F(PlayerUnitTest, Player_SetSource_004, TestSize.Level2)
427 {
428 int32_t ret = player_->SetSource(MEDIA_ROOT + "error.mp4");
429 EXPECT_EQ(MSERR_OK, ret);
430 EXPECT_NE(MSERR_OK, player_->PrepareAsync());
431 }
432
433 /**
434 * @tc.name : Test Player SetSource
435 * @tc.number: Player_SetSource_005
436 * @tc.desc : Test Player SetSource interface
437 */
438 HWTEST_F(PlayerUnitTest, Player_SetSource_005, TestSize.Level3)
439 {
440 PlaybackRateMode mode;
441 int32_t duration = 0;
442 std::vector<Format> videoTrack;
443 std::vector<Format> audioTrack;
444 Format format;
445 format.PutIntValue(PlayerKeys::VIDEO_SCALE_TYPE,
446 static_cast<int32_t>(Plugins::VideoScaleType::VIDEO_SCALE_TYPE_FIT));
447 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
448 sptr<Surface> videoSurface = player_->GetVideoSurface();
449 ASSERT_NE(nullptr, videoSurface);
450 EXPECT_NE(MSERR_OK, player_->SetVideoSurface(videoSurface));
451 EXPECT_NE(MSERR_OK, player_->PrepareAsync());
452 EXPECT_NE(MSERR_OK, player_->Prepare());
453 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
454 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
455 EXPECT_NE(MSERR_OK, player_->Play());
456 EXPECT_NE(MSERR_OK, player_->Pause());
457 EXPECT_NE(MSERR_OK, player_->Seek(0, SEEK_CLOSEST));
458 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
459 EXPECT_EQ(true, player_->IsLooping());
460 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
461 EXPECT_NE(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
462 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
463 EXPECT_EQ(SPEED_FORWARD_1_00_X, mode);
464 EXPECT_NE(MSERR_OK, player_->GetDuration(duration));
465 EXPECT_NE(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
466 EXPECT_NE(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
467 EXPECT_NE(480, player_->GetVideoHeight());
468 EXPECT_NE(720, player_->GetVideoWidth());
469 EXPECT_NE(MSERR_OK, player_->Stop());
470 EXPECT_NE(MSERR_OK, player_->Reset());
471 }
472
473 /**
474 * @tc.name : Test Player SetSource API
475 * @tc.number: Player_SetSource_006
476 * @tc.desc : Test Player SetSource interface
477 */
478 HWTEST_F(PlayerUnitTest, Player_SetSource_006, TestSize.Level2)
479 {
480 int32_t ret = player_->SetSource(VIDEO_FILE1);
481 EXPECT_EQ(MSERR_OK, ret);
482 EXPECT_EQ(MSERR_OK, player_->Reset());
483 EXPECT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
484 }
485
486 /**
487 * @tc.name : Test Player SetSource API
488 * @tc.number: Player_SetSource_007
489 * @tc.desc : Test Player SetSource interface
490 */
491 HWTEST_F(PlayerUnitTest, Player_SetSource_007, TestSize.Level2)
492 {
493 EXPECT_NE(MSERR_OK, player_->SetSource(INVALID_FILE));
494 }
495
496 /**
497 * @tc.name : Test Player SetSource API
498 * @tc.number: Player_SetSource_009
499 * @tc.desc : Test Player SetSource interface
500 */
501 HWTEST_F(PlayerUnitTest, Player_SetSource_009, TestSize.Level2)
502 {
503 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
504 sptr<Surface> videoSurface = player_->GetVideoSurface();
505 ASSERT_NE(nullptr, videoSurface);
506 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
507 int32_t ret = player_->PrepareAsync();
508 ASSERT_NE(MSERR_OK, player_->SetSource(MEDIA_ROOT + "AVC_Baseline@L1.2_81.0Kbps_320x240.mp4"));
509 if (ret == MSERR_OK) {
510 PlayFunTest(LOCAL_PLAY);
511 }
512 }
513
514 /**
515 * @tc.name : Test Player SetSource API
516 * @tc.number: Player_SetSource_012
517 * @tc.desc : Test Player SetSource interface
518 */
519 HWTEST_F(PlayerUnitTest, Player_SetSource_012, TestSize.Level2)
520 {
521 int32_t ret = player_->SetSource(VIDEO_FILE1, 0, 0);
522 ASSERT_EQ(MSERR_OK, ret);
523 }
524
525 /**
526 * @tc.name : Test Player Local
527 * @tc.number: Player_Local_001
528 * @tc.desc : Test Player Local source
529 */
530 HWTEST_F(PlayerUnitTest, Player_Local_001, TestSize.Level2)
531 {
532 int32_t ret = player_->SetSource(MEDIA_ROOT + "AVC_Baseline@L1.2_81.0Kbps_320x240.mp4");
533 EXPECT_EQ(MSERR_OK, ret);
534 sptr<Surface> videoSurface = player_->GetVideoSurface();
535 ASSERT_NE(nullptr, videoSurface);
536 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
537 ret = player_->PrepareAsync();
538 if (ret == MSERR_OK) {
539 PlayFunTest(LOCAL_PLAY);
540 }
541 }
542
543 /**
544 * @tc.name : Test Player Local
545 * @tc.number: Player_Local_003
546 * @tc.desc : Test Player Local source
547 */
548 HWTEST_F(PlayerUnitTest, Player_Local_003, TestSize.Level2)
549 {
550 int32_t ret = player_->SetSource(MEDIA_ROOT + "H264_MP3.mp4");
551 EXPECT_EQ(MSERR_OK, ret);
552 sptr<Surface> videoSurface = player_->GetVideoSurface();
553 ASSERT_NE(nullptr, videoSurface);
554 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
555 ret = player_->PrepareAsync();
556 if (ret == MSERR_OK) {
557 PlayFunTest(LOCAL_PLAY);
558 }
559 }
560
561 /**
562 * @tc.name : Test Player Local
563 * @tc.number: Player_Local_008
564 * @tc.desc : Test Player Local source
565 */
566 HWTEST_F(PlayerUnitTest, Player_Local_008, TestSize.Level2)
567 {
568 int32_t ret = player_->SetSource(MEDIA_ROOT + "out_170_170.mp4");
569 EXPECT_EQ(MSERR_OK, ret);
570 sptr<Surface> videoSurface = player_->GetVideoSurface();
571 ASSERT_NE(nullptr, videoSurface);
572 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
573 ret = player_->PrepareAsync();
574 if (ret == MSERR_OK) {
575 PlayFunTest(LOCAL_PLAY);
576 }
577 }
578
579 /**
580 * @tc.name : Test Player Local
581 * @tc.number: Player_Local_009
582 * @tc.desc : Test Player Local source
583 */
584 HWTEST_F(PlayerUnitTest, Player_Local_009, TestSize.Level2)
585 {
586 int32_t ret = player_->SetSource(MEDIA_ROOT + "H264_AAC_320x240.mp4");
587 EXPECT_EQ(MSERR_OK, ret);
588 sptr<Surface> videoSurface = player_->GetVideoSurface();
589 ASSERT_NE(nullptr, videoSurface);
590 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
591 ret = player_->PrepareAsync();
592 if (ret == MSERR_OK) {
593 PlayFunTest(LOCAL_PLAY);
594 }
595 }
596
597 /**
598 * @tc.name : Test Player Local
599 * @tc.number: Player_Local_010
600 * @tc.desc : Test Player Local source
601 */
602 HWTEST_F(PlayerUnitTest, Player_Local_010, TestSize.Level2)
603 {
604 int32_t ret = player_->SetSource(MEDIA_ROOT + "aac_44100Hz_143kbs_stereo.aac");
605 EXPECT_EQ(MSERR_OK, ret);
606 sptr<Surface> videoSurface = player_->GetVideoSurface();
607 ASSERT_NE(nullptr, videoSurface);
608 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
609 ret = player_->PrepareAsync();
610 if (ret == MSERR_OK) {
611 PlayFunTest(LOCAL_PLAY);
612 }
613 }
614
615 /**
616 * @tc.name : Test Player Local
617 * @tc.number: Player_Local_011
618 * @tc.desc : Test Player Local source
619 */
620 HWTEST_F(PlayerUnitTest, Player_Local_011, TestSize.Level2)
621 {
622 int32_t ret = player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3");
623 EXPECT_EQ(MSERR_OK, ret);
624 sptr<Surface> videoSurface = player_->GetVideoSurface();
625 ASSERT_NE(nullptr, videoSurface);
626 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
627 ret = player_->PrepareAsync();
628 if (ret == MSERR_OK) {
629 PlayFunTest(LOCAL_PLAY);
630 }
631 }
632
633 /**
634 * @tc.name : Test Player Local
635 * @tc.number: Player_Local_013
636 * @tc.desc : Test Player Local source
637 */
638 HWTEST_F(PlayerUnitTest, Player_Local_013, TestSize.Level2)
639 {
640 int32_t ret = player_->SetSource(MEDIA_ROOT + "pcm_s16le_48000Hz_768kbs_mono.wav");
641 EXPECT_EQ(MSERR_OK, ret);
642 sptr<Surface> videoSurface = player_->GetVideoSurface();
643 ASSERT_NE(nullptr, videoSurface);
644 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
645 ret = player_->PrepareAsync();
646 if (ret == MSERR_OK) {
647 PlayFunTest(LOCAL_PLAY);
648 }
649 }
650
651 /**
652 * @tc.name : Test Player Local
653 * @tc.number: Player_Local_014
654 * @tc.desc : Test Player Local source
655 */
656 HWTEST_F(PlayerUnitTest, Player_Local_014, TestSize.Level2)
657 {
658 int32_t ret = player_->SetSource(MEDIA_ROOT + "vorbis_48000Hz_80kbs_mono.ogg");
659 EXPECT_EQ(MSERR_OK, ret);
660 sptr<Surface> videoSurface = player_->GetVideoSurface();
661 ASSERT_NE(nullptr, videoSurface);
662 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
663 ret = player_->PrepareAsync();
664 if (ret == MSERR_OK) {
665 PlayFunTest(LOCAL_PLAY);
666 }
667 }
668
669 /**
670 * @tc.name : Test Player Local
671 * @tc.number: Player_Local_015
672 * @tc.desc : Test Player Local source
673 */
674 HWTEST_F(PlayerUnitTest, Player_Local_015, TestSize.Level2)
675 {
676 int32_t ret = player_->SetSource(MEDIA_ROOT + "aac_48000Hz_70kbs_mono.m4a");
677 EXPECT_EQ(MSERR_OK, ret);
678 sptr<Surface> videoSurface = player_->GetVideoSurface();
679 ASSERT_NE(nullptr, videoSurface);
680 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
681 ret = player_->PrepareAsync();
682 if (ret == MSERR_OK) {
683 PlayFunTest(LOCAL_PLAY);
684 }
685 }
686
687 #ifdef SUBSCRIBE_HISTREAMER_EXT
688 /**
689 * @tc.name : Test Player Local
690 * @tc.number: Player_Local_016
691 * @tc.desc : Test Player Local source
692 */
693 HWTEST_F(PlayerUnitTest, Player_Local_016, TestSize.Level2)
694 {
695 int32_t ret = player_->SetSource(MEDIA_ROOT + "H265_AAC.mp4");
696 EXPECT_EQ(MSERR_OK, ret);
697 sptr<Surface> videoSurface = player_->GetVideoSurface();
698 ASSERT_NE(nullptr, videoSurface);
699 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
700 ret = player_->PrepareAsync();
701 if (ret == MSERR_OK) {
702 PlayFunTest(LOCAL_PLAY);
703 }
704 }
705 #endif
706
707 /**
708 * @tc.name : Test Player Local
709 * @tc.number: Player_Local_017
710 * @tc.desc : Test Player Local source
711 */
712 HWTEST_F(PlayerUnitTest, Player_Local_017, TestSize.Level2)
713 {
714 int32_t ret = player_->SetSource(MEDIA_ROOT + "amr_nb_8ksr_7400kbr_1ch.amr");
715 EXPECT_EQ(MSERR_OK, ret);
716 sptr<Surface> videoSurface = player_->GetVideoSurface();
717 ASSERT_NE(nullptr, videoSurface);
718 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
719 ret = player_->PrepareAsync();
720 if (ret == MSERR_OK) {
721 PlayFunTest(LOCAL_PLAY);
722 }
723 }
724
725 /**
726 * @tc.name : Test Player SetPlayerCallback API
727 * @tc.number: Player_SetPlayerCallback_001
728 * @tc.desc : Test Player SetPlayerCallback interface
729 */
730 HWTEST_F(PlayerUnitTest, Player_SetPlayerCallback_001, TestSize.Level0)
731 {
732 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
733 sptr<Surface> videoSurface = player_->GetVideoSurface();
734 ASSERT_NE(nullptr, videoSurface);
735 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
736 EXPECT_EQ(MSERR_OK, player_->Prepare());
737 std::shared_ptr<PlayerCallbackTest> callback = std::make_shared<PlayerCallbackTest>();
738 ASSERT_NE(nullptr, callback);
739 EXPECT_NE(MSERR_OK, player_->SetPlayerCallback(callback));
740 player_->Reset();
741 player_->SetPlayerCallback(callback);
742 }
743
744 /**
745 * @tc.name : Test Player Prepare API
746 * @tc.number: Player_Prepare_001
747 * @tc.desc : Test Player Prepare interface
748 */
749 HWTEST_F(PlayerUnitTest, Player_Prepare_001, TestSize.Level0)
750 {
751 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
752 sptr<Surface> videoSurface = player_->GetVideoSurface();
753 ASSERT_NE(nullptr, videoSurface);
754 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
755 EXPECT_EQ(MSERR_OK, player_->Prepare());
756 }
757
758 /**
759 * @tc.name : Test Player Prepare API
760 * @tc.number: Player_Prepare_002
761 * @tc.desc : Test Player Prepare->Prepare
762 */
763 HWTEST_F(PlayerUnitTest, Player_Prepare_002, TestSize.Level2)
764 {
765 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
766 sptr<Surface> videoSurface = player_->GetVideoSurface();
767 ASSERT_NE(nullptr, videoSurface);
768 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
769 EXPECT_EQ(MSERR_OK, player_->Prepare());
770 EXPECT_NE(MSERR_OK, player_->Prepare());
771 }
772
773 /**
774 * @tc.name : Test Player Prepare API
775 * @tc.number: Player_Prepare_003
776 * @tc.desc : Test Player SetVolume/SetLooping/SetPlaybackSpeed->Prepare
777 */
778 HWTEST_F(PlayerUnitTest, Player_Prepare_003, TestSize.Level2)
779 {
780 PlaybackRateMode rateMode;
781 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
782 sptr<Surface> renderSurface = player_->GetVideoSurface();
783 ASSERT_NE(nullptr, renderSurface);
784 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(renderSurface));
785 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
786 bool ret = player_->IsLooping();
787 EXPECT_EQ(true, ret);
788 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
789 EXPECT_NE(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
790 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(rateMode));
791 EXPECT_NE(SPEED_FORWARD_2_00_X, rateMode);
792 EXPECT_EQ(MSERR_OK, player_->Prepare());
793 EXPECT_EQ(true, player_->IsLooping());
794 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(rateMode));
795 EXPECT_NE(SPEED_FORWARD_2_00_X, rateMode);
796 }
797
798 /**
799 * @tc.name : Test Player Prepare API
800 * @tc.number: Player_Prepare_004
801 * @tc.desc : Test Player Stop->Prepare
802 */
803 HWTEST_F(PlayerUnitTest, Player_Prepare_004, TestSize.Level2)
804 {
805 PlaybackRateMode mode;
806 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
807 sptr<Surface> videoSurface = player_->GetVideoSurface();
808 ASSERT_NE(nullptr, videoSurface);
809 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
810 EXPECT_EQ(MSERR_OK, player_->Prepare());
811 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
812 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
813 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
814 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
815 EXPECT_EQ(mode, SPEED_FORWARD_2_00_X);
816 EXPECT_EQ(MSERR_OK, player_->Stop());
817 EXPECT_EQ(MSERR_OK, player_->Prepare());
818 EXPECT_EQ(true, player_->IsLooping());
819 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
820 EXPECT_EQ(mode, SPEED_FORWARD_2_00_X);
821 }
822
823 /**
824 * @tc.name : Test Player Prepare API
825 * @tc.number: Player_Prepare_005
826 * @tc.desc : Test Player Play->Prepare
827 */
828 HWTEST_F(PlayerUnitTest, Player_Prepare_005, TestSize.Level2)
829 {
830 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
831 sptr<Surface> videoSurface = player_->GetVideoSurface();
832 ASSERT_NE(nullptr, videoSurface);
833 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
834 EXPECT_EQ(MSERR_OK, player_->Prepare());
835 EXPECT_EQ(MSERR_OK, player_->Play());
836 EXPECT_NE(MSERR_OK, player_->Prepare());
837 }
838
839 /**
840 * @tc.name : Test Player PrepareAsync API
841 * @tc.number: Player_PrepareAsync_001
842 * @tc.desc : Test Player PrepareAsync interface
843 */
844 HWTEST_F(PlayerUnitTest, Player_PrepareAsync_001, TestSize.Level0)
845 {
846 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
847 sptr<Surface> videoSurface = player_->GetVideoSurface();
848 ASSERT_NE(nullptr, videoSurface);
849 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
850 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
851 }
852
853 /**
854 * @tc.name : Test Player PrepareAsync API
855 * @tc.number: Player_PrepareAsync_002
856 * @tc.desc : Test Player PrepareAsync->PrepareAsync
857 */
858 HWTEST_F(PlayerUnitTest, Player_PrepareAsync_002, TestSize.Level2)
859 {
860 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
861 sptr<Surface> videoSurface = player_->GetVideoSurface();
862 ASSERT_NE(nullptr, videoSurface);
863 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
864 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
865 EXPECT_NE(MSERR_OK, player_->PrepareAsync());
866 }
867
868 /**
869 * @tc.name : Test Player PrepareAsync API
870 * @tc.number: Player_PrepareAsync_003
871 * @tc.desc : Test Player SetVolume/SetLooping/SetPlaybackSpeed->PrepareAsync
872 */
873 HWTEST_F(PlayerUnitTest, Player_PrepareAsync_003, TestSize.Level2)
874 {
875 PlaybackRateMode mode;
876 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
877 sptr<Surface> videoSurface = player_->GetVideoSurface();
878 ASSERT_NE(nullptr, videoSurface);
879 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
880 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
881 EXPECT_EQ(true, player_->IsLooping());
882 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
883 EXPECT_NE(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
884 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
885 EXPECT_NE(SPEED_FORWARD_2_00_X, mode);
886 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
887 EXPECT_EQ(true, player_->IsLooping());
888 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
889 EXPECT_NE(SPEED_FORWARD_2_00_X, mode);
890 }
891
892 /**
893 * @tc.name : Test Player PrepareAsync API
894 * @tc.number: Player_PrepareAsync_004
895 * @tc.desc : Test Player Stop->PrepareAsync
896 */
897 HWTEST_F(PlayerUnitTest, Player_PrepareAsync_004, TestSize.Level2)
898 {
899 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
900 sptr<Surface> videoSurface = player_->GetVideoSurface();
901 ASSERT_NE(nullptr, videoSurface);
902 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
903 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
904 EXPECT_EQ(MSERR_OK, player_->Stop());
905 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
906 }
907
908 /**
909 * @tc.name : Test Player PrepareAsync API
910 * @tc.number: Player_PrepareAsync_005
911 * @tc.desc : Test Player Play->PrepareAsync
912 */
913 HWTEST_F(PlayerUnitTest, Player_PrepareAsync_005, TestSize.Level2)
914 {
915 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
916 sptr<Surface> videoSurface = player_->GetVideoSurface();
917 ASSERT_NE(nullptr, videoSurface);
918 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
919 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
920 EXPECT_EQ(MSERR_OK, player_->Play());
921 EXPECT_NE(MSERR_OK, player_->PrepareAsync());
922 }
923
924 /**
925 * @tc.name : Test Player PrepareAsync API
926 * @tc.number: Player_PrepareAsync_006
927 * @tc.desc : Test Player Play->PrepareAsync
928 */
929 HWTEST_F(PlayerUnitTest, Player_PrepareAsync_006, TestSize.Level2)
930 {
931 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "H264_AAC_DRM.ts"));
932 sptr<Surface> videoSurface = player_->GetVideoSurface();
933 ASSERT_NE(nullptr, videoSurface);
934 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
935 EXPECT_NE(MSERR_OK, player_->PrepareAsync());
936 }
937
938 /**
939 * @tc.name : Test Player SetVideoSurface API
940 * @tc.number: Player_SetVideoSurface_001
941 * @tc.desc : Test Player SetVideoSurface interface
942 */
943 HWTEST_F(PlayerUnitTest, Player_SetVideoSurface_001, TestSize.Level0)
944 {
945 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
946 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(player_->GetVideoSurface()));
947 }
948
949 /**
950 * @tc.name : Test Player SetVideoSurface API
951 * @tc.number: Player_SetVideoSurface_002
952 * @tc.desc : Test Player PrepareAsync->SetVideoSurface
953 */
954 HWTEST_F(PlayerUnitTest, Player_SetVideoSurface_002, TestSize.Level2)
955 {
956 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
957 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
958 sptr<Surface> videoSurface = player_->GetVideoSurface();
959 ASSERT_NE(nullptr, videoSurface);
960 EXPECT_NE(MSERR_OK, player_->SetVideoSurface(videoSurface));
961 }
962
963 /**
964 * @tc.name : Test Player SetVideoSurface API
965 * @tc.number: Player_SetVideoSurface_003
966 * @tc.desc : Test Player SetVideoSurface interface
967 */
968 HWTEST_F(PlayerUnitTest, Player_SetVideoSurface_003, TestSize.Level0)
969 {
970 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
971 EXPECT_EQ(MSERR_OK, player_->Prepare());
972 sptr<Surface> videoSurface = player_->GetVideoSurface();
973 ASSERT_NE(nullptr, videoSurface);
974 EXPECT_NE(MSERR_OK, player_->SetVideoSurface(videoSurface));
975 }
976
977 /**
978 * @tc.name : Test Player Play API
979 * @tc.number: Player_Play_001
980 * @tc.desc : Test Player Play interface
981 */
982 HWTEST_F(PlayerUnitTest, Player_Play_001, TestSize.Level0)
983 {
984 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
985 sptr<Surface> videoSurface = player_->GetVideoSurface();
986 ASSERT_NE(nullptr, videoSurface);
987 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
988 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
989 EXPECT_EQ(MSERR_OK, player_->Play());
990 EXPECT_TRUE(player_->IsPlaying());
991 EXPECT_EQ(MSERR_OK, player_->Pause());
992 EXPECT_EQ(MSERR_OK, player_->Play());
993 }
994
995 /**
996 * @tc.name : Test Player Play API
997 * @tc.number: Player_Play_002
998 * @tc.desc : Test Player Reset->Play
999 */
1000 HWTEST_F(PlayerUnitTest, Player_Play_002, TestSize.Level2)
1001 {
1002 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1003 sptr<Surface> videoSurface = player_->GetVideoSurface();
1004 ASSERT_NE(nullptr, videoSurface);
1005 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1006 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
1007 EXPECT_EQ(MSERR_OK, player_->Play());
1008 EXPECT_TRUE(player_->IsPlaying());
1009 EXPECT_EQ(MSERR_OK, player_->Reset());
1010 EXPECT_NE(MSERR_OK, player_->Play());
1011 }
1012
1013 /**
1014 * @tc.name : Test Player Play API
1015 * @tc.number: Player_Play_003
1016 * @tc.desc : Test Player complete->Play
1017 */
1018 HWTEST_F(PlayerUnitTest, Player_Play_003, TestSize.Level2)
1019 {
1020 int32_t duration = 0;
1021 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1022 sptr<Surface> videoSurface = player_->GetVideoSurface();
1023 ASSERT_NE(nullptr, videoSurface);
1024 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1025 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
1026 EXPECT_EQ(MSERR_OK, player_->Play());
1027 EXPECT_TRUE(player_->IsPlaying());
1028 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1029 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
1030 sleep(PLAYING_TIME_2_SEC);
1031 EXPECT_EQ(MSERR_OK, player_->Play());
1032 }
1033
1034 /**
1035 * @tc.name : Test Player Play API
1036 * @tc.number: Player_Play_004
1037 * @tc.desc : Test Player Play->Play
1038 */
1039 HWTEST_F(PlayerUnitTest, Player_Play_004, TestSize.Level2)
1040 {
1041 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1042 sptr<Surface> videoSurface = player_->GetVideoSurface();
1043 ASSERT_NE(nullptr, videoSurface);
1044 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1045 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
1046 EXPECT_EQ(MSERR_OK, player_->Play());
1047 EXPECT_TRUE(player_->IsPlaying());
1048 EXPECT_NE(MSERR_OK, player_->Play());
1049 }
1050
1051 /**
1052 * @tc.name : Test Player Play API
1053 * @tc.number: Player_Play_005
1054 * @tc.desc : Test Player is killed Play
1055 */
1056 HWTEST_F(PlayerUnitTest, Player_Play_005, TestSize.Level2)
1057 {
1058 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1059 sptr<Surface> videoSurface = player_->GetVideoSurface();
1060 ASSERT_NE(nullptr, videoSurface);
1061 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1062 int32_t ret = player_->PrepareAsync();
1063 EXPECT_EQ(MSERR_OK, player_->Release());
1064 if (ret == MSERR_OK) {
1065 NoRunPlayFunTest(LOCAL_PLAY);
1066 }
1067 }
1068
1069 /**
1070 * @tc.name : Test Player Stop API
1071 * @tc.number: Player_Stop_001
1072 * @tc.desc : Test Player Stop Play->Stop
1073 */
1074 HWTEST_F(PlayerUnitTest, Player_Stop_001, TestSize.Level0)
1075 {
1076 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1, 0, 0));
1077 sptr<Surface> videoSurface = player_->GetVideoSurface();
1078 ASSERT_NE(nullptr, videoSurface);
1079 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1080 EXPECT_EQ(MSERR_OK, player_->Prepare());
1081 EXPECT_EQ(MSERR_OK, player_->Play());
1082 EXPECT_TRUE(player_->IsPlaying());
1083 EXPECT_EQ(MSERR_OK, player_->Stop());
1084 }
1085
1086 /**
1087 * @tc.name : Test Player Stop API
1088 * @tc.number: Player_Stop_002
1089 * @tc.desc : Test Player Stop Prepare->Stop
1090 */
1091 HWTEST_F(PlayerUnitTest, Player_Stop_002, TestSize.Level2)
1092 {
1093 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1, 0, 0));
1094 sptr<Surface> videoSurface = player_->GetVideoSurface();
1095 ASSERT_NE(nullptr, videoSurface);
1096 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1097 EXPECT_EQ(MSERR_OK, player_->Prepare());
1098 EXPECT_EQ(MSERR_OK, player_->Stop());
1099 }
1100
1101 /**
1102 * @tc.name : Test Player Stop API
1103 * @tc.number: Player_Stop_003
1104 * @tc.desc : Test Player Stop complete/stop->Stop
1105 */
1106 HWTEST_F(PlayerUnitTest, Player_Stop_003, TestSize.Level2)
1107 {
1108 int32_t duration = 0;
1109 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1, 0, 0));
1110 sptr<Surface> videoSurface = player_->GetVideoSurface();
1111 ASSERT_NE(nullptr, videoSurface);
1112 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1113 EXPECT_EQ(MSERR_OK, player_->Prepare());
1114 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1115 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
1116 sleep(PLAYING_TIME_2_SEC);
1117 EXPECT_EQ(MSERR_OK, player_->Stop());
1118 EXPECT_NE(MSERR_OK, player_->Stop());
1119 }
1120
1121 /**
1122 * @tc.name : Test Player Stop API
1123 * @tc.number: Player_Stop_004
1124 * @tc.desc : Test Player Stop Reset->Stop
1125 */
1126 HWTEST_F(PlayerUnitTest, Player_Stop_004, TestSize.Level2)
1127 {
1128 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1, 0, 0));
1129 sptr<Surface> videoSurface = player_->GetVideoSurface();
1130 ASSERT_NE(nullptr, videoSurface);
1131 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1132 EXPECT_EQ(MSERR_OK, player_->Prepare());
1133 EXPECT_EQ(MSERR_OK, player_->Play());
1134 EXPECT_EQ(MSERR_OK, player_->Reset());
1135 EXPECT_NE(MSERR_OK, player_->Stop());
1136 }
1137
1138 /**
1139 * @tc.name : Test Player Stop API
1140 * @tc.number: Player_Stop_005
1141 * @tc.desc : Test Player Reset->Stop
1142 */
1143 HWTEST_F(PlayerUnitTest, Player_Stop_005, TestSize.Level2)
1144 {
1145 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1, 0, 0));
1146 sptr<Surface> videoSurface = player_->GetVideoSurface();
1147 ASSERT_NE(nullptr, videoSurface);
1148 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1149 EXPECT_EQ(MSERR_OK, player_->Prepare());
1150 EXPECT_EQ(MSERR_OK, player_->Play());
1151 EXPECT_TRUE(player_->IsPlaying());
1152 EXPECT_EQ(MSERR_OK, player_->Reset());
1153 EXPECT_NE(MSERR_OK, player_->Stop());
1154 }
1155
1156 /**
1157 * @tc.name : Test Player Pause API
1158 * @tc.number: Player_Pause_001
1159 * @tc.desc : Test Player Pause interface
1160 */
1161 HWTEST_F(PlayerUnitTest, Player_Pause_001, TestSize.Level0)
1162 {
1163 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1164 sptr<Surface> videoSurface = player_->GetVideoSurface();
1165 ASSERT_NE(nullptr, videoSurface);
1166 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1167 EXPECT_EQ(MSERR_OK, player_->Prepare());
1168 EXPECT_EQ(MSERR_OK, player_->Play());
1169 EXPECT_TRUE(player_->IsPlaying());
1170 EXPECT_EQ(MSERR_OK, player_->Pause());
1171 EXPECT_FALSE(player_->IsPlaying());
1172 EXPECT_EQ(MSERR_OK, player_->Pause());
1173 }
1174
1175 /**
1176 * @tc.name : Test Player Pause API
1177 * @tc.number: Player_Pause_002
1178 * @tc.desc : Test Player Pause interface
1179 */
1180 HWTEST_F(PlayerUnitTest, Player_Pause_002, TestSize.Level2)
1181 {
1182 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1183 sptr<Surface> videoSurface = player_->GetVideoSurface();
1184 ASSERT_NE(nullptr, videoSurface);
1185 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1186 EXPECT_EQ(MSERR_OK, player_->Prepare());
1187 EXPECT_NE(MSERR_OK, player_->Pause());
1188 }
1189
1190 /**
1191 * @tc.name : Test Player Pause API
1192 * @tc.number: Player_Pause_003
1193 * @tc.desc : Test Player Pause interface, Stop -> Pause
1194 */
1195 HWTEST_F(PlayerUnitTest, Player_Pause_003, TestSize.Level2)
1196 {
1197 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1198 sptr<Surface> videoSurface = player_->GetVideoSurface();
1199 ASSERT_NE(nullptr, videoSurface);
1200 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1201 EXPECT_EQ(MSERR_OK, player_->Prepare());
1202 EXPECT_EQ(MSERR_OK, player_->Stop());
1203 EXPECT_NE(MSERR_OK, player_->Pause());
1204 }
1205
1206 /**
1207 * @tc.name : Test Player Reset API
1208 * @tc.number: Player_Reset_001
1209 * @tc.desc : Test Player Reset interface
1210 */
1211 HWTEST_F(PlayerUnitTest, Player_Reset_001, TestSize.Level0)
1212 {
1213 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1214 sptr<Surface> videoSurface = player_->GetVideoSurface();
1215 ASSERT_NE(nullptr, videoSurface);
1216 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1217 EXPECT_EQ(MSERR_OK, player_->Prepare());
1218 EXPECT_EQ(MSERR_OK, player_->Reset());
1219 EXPECT_NE(MSERR_OK, player_->Reset());
1220 }
1221
1222 /**
1223 * @tc.name : Test Player Seek API
1224 * @tc.number: Player_Seek_001
1225 * @tc.desc : Test Player Seek interface with valid parameters
1226 */
1227 HWTEST_F(PlayerUnitTest, Player_Seek_001, TestSize.Level0)
1228 {
1229 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1230 sptr<Surface> videoSurface = player_->GetVideoSurface();
1231 ASSERT_NE(nullptr, videoSurface);
1232 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1233 EXPECT_EQ(MSERR_OK, player_->Prepare());
1234 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_4_SEC, SEEK_NEXT_SYNC));
1235 EXPECT_EQ(MSERR_OK, player_->Play());
1236 EXPECT_TRUE(player_->IsPlaying());
1237 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_4_SEC, SEEK_CLOSEST));
1238 int32_t time = 0;
1239 EXPECT_EQ(MSERR_OK, player_->GetCurrentTime(time));
1240 EXPECT_NEAR(SEEK_TIME_4_SEC, time, DELTA_TIME);
1241 EXPECT_EQ(MSERR_OK, player_->Pause());
1242 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_4_SEC, SEEK_NEXT_SYNC));
1243 }
1244
1245 /**
1246 * @tc.name : Test Player Seek API
1247 * @tc.number: Player_Seek_002
1248 * @tc.desc : Test Player Seek interface with seek mode
1249 */
1250 HWTEST_F(PlayerUnitTest, Player_Seek_002, TestSize.Level1)
1251 {
1252 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1253 sptr<Surface> videoSurface = player_->GetVideoSurface();
1254 ASSERT_NE(nullptr, videoSurface);
1255 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1256 EXPECT_EQ(MSERR_OK, player_->Prepare());
1257 EXPECT_EQ(MSERR_OK, player_->Seek(0, SEEK_NEXT_SYNC));
1258 EXPECT_EQ(MSERR_OK, player_->Seek(0, SEEK_PREVIOUS_SYNC));
1259 EXPECT_EQ(MSERR_OK, player_->Seek(0, SEEK_CLOSEST_SYNC));
1260 EXPECT_EQ(MSERR_OK, player_->Play());
1261 EXPECT_TRUE(player_->IsPlaying());
1262 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1263 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC));
1264 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_CLOSEST_SYNC));
1265 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, (PlayerSeekMode)5));
1266 }
1267
1268 /**
1269 * @tc.name : Test Player Seek API
1270 * @tc.number: Player_Seek_002
1271 * @tc.desc : Test Player Seek out of duration
1272 */
1273 HWTEST_F(PlayerUnitTest, Player_Seek_003, TestSize.Level2)
1274 {
1275 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1276 sptr<Surface> videoSurface = player_->GetVideoSurface();
1277 ASSERT_NE(nullptr, videoSurface);
1278 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1279 EXPECT_EQ(MSERR_OK, player_->Prepare());
1280 EXPECT_EQ(MSERR_OK, player_->Play());
1281 EXPECT_TRUE(player_->IsPlaying());
1282 EXPECT_EQ(MSERR_OK, player_->Seek(1000000, SEEK_NEXT_SYNC));
1283 }
1284
1285 /**
1286 * @tc.name : Test Seek API
1287 * @tc.number: Player_Seek_004
1288 * @tc.desc : Test Player Seek
1289 */
1290 HWTEST_F(PlayerUnitTest, Player_Seek_004, TestSize.Level2)
1291 {
1292 int32_t duration = 0;
1293 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1294 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1295 sptr<Surface> videoSurface = player_->GetVideoSurface();
1296 ASSERT_NE(nullptr, videoSurface);
1297 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1298 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1299 EXPECT_EQ(MSERR_OK, player_->Prepare());
1300 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1301 EXPECT_EQ(MSERR_OK, player_->Play());
1302 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1303 EXPECT_EQ(MSERR_OK, player_->Pause());
1304 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1305 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1306 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
1307 EXPECT_EQ(MSERR_OK, player_->Play());
1308 sleep(PLAYING_TIME_2_SEC);
1309 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1310 EXPECT_EQ(MSERR_OK, player_->Stop());
1311 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1312 EXPECT_EQ(MSERR_OK, player_->Reset());
1313 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1314 }
1315
1316 /**
1317 * @tc.name : Test Player Seek API
1318 * @tc.number: Player_Seek_005
1319 * @tc.desc : Test Player Seek interface
1320 */
1321 HWTEST_F(PlayerUnitTest, Player_Seek_005, TestSize.Level0)
1322 {
1323 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1324 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC));
1325 sptr<Surface> videoSurface = player_->GetVideoSurface();
1326 ASSERT_NE(nullptr, videoSurface);
1327 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1328 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC));
1329 EXPECT_EQ(MSERR_OK, player_->Prepare());
1330 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC));
1331 }
1332
1333 /**
1334 * @tc.name : Test Player Seek API
1335 * @tc.number: Player_Seek_006
1336 * @tc.desc : Test Player Seek interface
1337 */
1338 HWTEST_F(PlayerUnitTest, Player_Seek_006, TestSize.Level0)
1339 {
1340 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1341 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_CLOSEST));
1342 sptr<Surface> videoSurface = player_->GetVideoSurface();
1343 ASSERT_NE(nullptr, videoSurface);
1344 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1345 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_CLOSEST));
1346 EXPECT_EQ(MSERR_OK, player_->Prepare());
1347 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_CLOSEST));
1348 }
1349
1350 /**
1351 * @tc.name : Test Player Seek API
1352 * @tc.number: Player_Seek_007
1353 * @tc.desc : Test Player Seek interface
1354 */
1355 HWTEST_F(PlayerUnitTest, Player_Seek_007, TestSize.Level0)
1356 {
1357 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1358 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1359 sptr<Surface> videoSurface = player_->GetVideoSurface();
1360 ASSERT_NE(nullptr, videoSurface);
1361 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1362 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1363 EXPECT_EQ(MSERR_OK, player_->Prepare());
1364 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1365 }
1366
1367 /**
1368 * @tc.name : Test Player Seek API
1369 * @tc.number: Player_Seek_008
1370 * @tc.desc : Test Player Seek interface
1371 */
1372 HWTEST_F(PlayerUnitTest, Player_Seek_008, TestSize.Level0)
1373 {
1374 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1375 sptr<Surface> videoSurface = player_->GetVideoSurface();
1376 ASSERT_NE(nullptr, videoSurface);
1377 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1378 EXPECT_EQ(MSERR_OK, player_->Prepare());
1379 EXPECT_EQ(MSERR_OK, player_->Play());
1380 EXPECT_EQ(MSERR_OK, player_->Seek(0, SEEK_CLOSEST));
1381 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_CLOSEST));
1382 int32_t duration = 0;
1383 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1384 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
1385 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_CLOSEST));
1386 EXPECT_EQ(MSERR_OK, player_->Seek(0, SEEK_CLOSEST));
1387 }
1388
1389 /**
1390 * @tc.name : Test Player Seek API
1391 * @tc.number: Player_Seek_009
1392 * @tc.desc : Test Player Seek interface
1393 */
1394 HWTEST_F(PlayerUnitTest, Player_Seek_009, TestSize.Level0)
1395 {
1396 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1397 sptr<Surface> videoSurface = player_->GetVideoSurface();
1398 ASSERT_NE(nullptr, videoSurface);
1399 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1400 EXPECT_EQ(MSERR_OK, player_->Prepare());
1401 EXPECT_EQ(MSERR_OK, player_->Play());
1402 EXPECT_EQ(MSERR_OK, player_->Seek(0, SEEK_PREVIOUS_SYNC));
1403 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC));
1404 int32_t duration = 0;
1405 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1406 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_PREVIOUS_SYNC));
1407 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC));
1408 EXPECT_EQ(MSERR_OK, player_->Seek(0, SEEK_PREVIOUS_SYNC));
1409 }
1410
1411 /**
1412 * @tc.name : Test Player Seek API
1413 * @tc.number: Player_Seek_010
1414 * @tc.desc : Test Player Seek interface
1415 */
1416 HWTEST_F(PlayerUnitTest, Player_Seek_010, TestSize.Level0)
1417 {
1418 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1419 sptr<Surface> videoSurface = player_->GetVideoSurface();
1420 ASSERT_NE(nullptr, videoSurface);
1421 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1422 EXPECT_EQ(MSERR_OK, player_->Prepare());
1423 EXPECT_EQ(MSERR_OK, player_->Play());
1424 EXPECT_EQ(MSERR_OK, player_->Seek(0, SEEK_NEXT_SYNC));
1425 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1426 int32_t duration = 0;
1427 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1428 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_NEXT_SYNC));
1429 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1430 EXPECT_EQ(MSERR_OK, player_->Seek(0, SEEK_NEXT_SYNC));
1431 }
1432
1433 /**
1434 * @tc.name : Test GetVideoTrackInfo API
1435 * @tc.number: Player_GetVideoTrackInfo_001
1436 * @tc.desc : Test Player GetVideoTrackInfo
1437 */
1438 HWTEST_F(PlayerUnitTest, Player_GetVideoTrackInfo_001, TestSize.Level0)
1439 {
1440 std::vector<Format> videoTrack;
1441 std::vector<Format> audioTrack;
1442 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1443 sptr<Surface> videoSurface = player_->GetVideoSurface();
1444 ASSERT_NE(nullptr, videoSurface);
1445 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1446 EXPECT_EQ(MSERR_OK, player_->Prepare());
1447 EXPECT_EQ(MSERR_OK, player_->Play());
1448 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
1449 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1450 }
1451
1452 /**
1453 * @tc.name : Test GetVideoTrackInfo API
1454 * @tc.number: Player_GetVideoTrackInfo_002
1455 * @tc.desc : Test Player GetVideoTrackInfo
1456 */
1457 HWTEST_F(PlayerUnitTest, Player_GetVideoTrackInfo_002, TestSize.Level2)
1458 {
1459 std::vector<Format> videoTrack;
1460 std::vector<Format> audioTrack;
1461 int32_t duration = 0;
1462 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1463 EXPECT_NE(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
1464 EXPECT_NE(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1465 sptr<Surface> videoSurface = player_->GetVideoSurface();
1466 ASSERT_NE(nullptr, videoSurface);
1467 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1468 EXPECT_NE(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
1469 EXPECT_NE(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1470 EXPECT_EQ(MSERR_OK, player_->Prepare());
1471 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
1472 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1473 EXPECT_EQ(MSERR_OK, player_->Play());
1474 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
1475 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1476 EXPECT_EQ(MSERR_OK, player_->Pause());
1477 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
1478 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1479 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1480 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
1481 EXPECT_EQ(MSERR_OK, player_->Play());
1482 sleep(PLAYING_TIME_2_SEC);
1483 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
1484 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1485 EXPECT_EQ(MSERR_OK, player_->Stop());
1486 EXPECT_NE(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
1487 EXPECT_NE(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1488 EXPECT_EQ(MSERR_OK, player_->Reset());
1489 EXPECT_NE(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
1490 EXPECT_NE(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1491 }
1492
1493 /**
1494 * @tc.name : Test GetAudioTrackInfo API
1495 * @tc.number: Player_GetAudioTrackInfo_001
1496 * @tc.desc : Test Player GetAudioTrackInfo
1497 */
1498 HWTEST_F(PlayerUnitTest, Player_GetAudioTrackInfo_001, TestSize.Level2)
1499 {
1500 std::vector<Format> audioTrack;
1501 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1502 EXPECT_EQ(MSERR_OK, player_->Prepare());
1503 EXPECT_EQ(MSERR_OK, player_->Play());
1504 sleep(PLAYING_TIME_2_SEC);
1505 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1506 EXPECT_EQ(1, audioTrack.size());
1507 Format audioTrackFormat = audioTrack.front();
1508 int32_t sampleDepth;
1509 audioTrackFormat.GetIntValue("sample_depth", sampleDepth);
1510 EXPECT_EQ(16, sampleDepth);
1511 }
1512
1513 /**
1514 * @tc.name : Test SelectTrack and DeselectTrack API
1515 * @tc.number: Player_SelectTrack_001
1516 * @tc.desc : Test Player SelectTrack and DeselectTrack
1517 */
1518 HWTEST_F(PlayerUnitTest, Player_SelectTrack_001, TestSize.Level0)
1519 {
1520 bool trackChange = false;
1521 std::vector<Format> audioTrack;
1522 std::vector<int32_t> audioTrackIds;
1523 int32_t currentAudioTrackIndex = -1;
1524 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE2));
1525 EXPECT_EQ(MSERR_OK, player_->Prepare());
1526 EXPECT_EQ(MSERR_OK, player_->Play());
1527 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1528 sleep(PLAYING_TIME_2_SEC);
1529 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_AUD, currentAudioTrackIndex));
1530 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1531 for (Format audioTrackFormat: audioTrack) {
1532 int32_t trackIndex = -1;
1533 audioTrackFormat.GetIntValue("track_index", trackIndex);
1534 audioTrackIds.push_back(trackIndex);
1535 }
1536 for (int32_t trackIndex: audioTrackIds) {
1537 if (trackIndex != currentAudioTrackIndex) {
1538 trackChange = false;
1539 EXPECT_EQ(MSERR_OK, player_->SelectTrack(trackIndex, trackChange));
1540 EXPECT_EQ(trackChange, true);
1541 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_AUD, currentAudioTrackIndex));
1542 sleep(PLAYING_TIME_2_SEC);
1543 trackChange = false;
1544 EXPECT_EQ(MSERR_OK, player_->DeselectTrack(currentAudioTrackIndex, trackChange));
1545 EXPECT_EQ(trackChange, true);
1546 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_AUD, currentAudioTrackIndex));
1547 sleep(PLAYING_TIME_2_SEC);
1548 }
1549 }
1550 EXPECT_EQ(MSERR_OK, player_->Stop());
1551 }
1552
1553 /**
1554 * @tc.name : Test SelectTrack API
1555 * @tc.number: Player_SelectTrack_002
1556 * @tc.desc : Test Player SelectTrack invalid trackId
1557 */
1558 HWTEST_F(PlayerUnitTest, Player_SelectTrack_002, TestSize.Level0)
1559 {
1560 bool trackChange = false;
1561 int32_t currentAudioTrackIndex = -1;
1562 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE2));
1563 EXPECT_EQ(MSERR_OK, player_->Prepare());
1564 EXPECT_EQ(MSERR_OK, player_->Play());
1565 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1566 sleep(PLAYING_TIME_2_SEC);
1567 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_AUD, currentAudioTrackIndex));
1568 EXPECT_NE(MSERR_OK, player_->SelectTrack(currentAudioTrackIndex, trackChange));
1569 EXPECT_EQ(trackChange, false);
1570 sleep(PLAYING_TIME_2_SEC);
1571 EXPECT_EQ(MSERR_OK, player_->Stop());
1572 }
1573
1574 /**
1575 * @tc.name : Test DeselectTrack API
1576 * @tc.number: Player_DeselectTrack_001
1577 * @tc.desc : Test Player DeselectTrack invalid trackId
1578 */
1579 HWTEST_F(PlayerUnitTest, Player_DeselectTrack_001, TestSize.Level0)
1580 {
1581 std::vector<Format> audioTrack;
1582 std::vector<int32_t> audioTrackIds;
1583 int32_t defaultAudioTrackIndex = -1;
1584 bool trackChange = false;
1585 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE2));
1586 EXPECT_EQ(MSERR_OK, player_->Prepare());
1587 EXPECT_EQ(MSERR_OK, player_->Play());
1588 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1589 sleep(PLAYING_TIME_2_SEC);
1590 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1591 EXPECT_GT(audioTrack.size(), 0);
1592 audioTrack[0].GetIntValue("track_index", defaultAudioTrackIndex);
1593 EXPECT_GT(defaultAudioTrackIndex, -1);
1594 EXPECT_NE(MSERR_OK, player_->DeselectTrack(defaultAudioTrackIndex, trackChange));
1595 EXPECT_EQ(trackChange, false);
1596 sleep(PLAYING_TIME_2_SEC);
1597 EXPECT_EQ(MSERR_OK, player_->Stop());
1598 }
1599
1600 /**
1601 * @tc.name : Test GetVideoHeight API
1602 * @tc.number: Player_GetVideoHeight_001
1603 * @tc.desc : Test Player GetVideoHeight
1604 */
1605 HWTEST_F(PlayerUnitTest, Player_GetVideoHeight_001, TestSize.Level0)
1606 {
1607 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1608 sptr<Surface> videoSurface = player_->GetVideoSurface();
1609 ASSERT_NE(nullptr, videoSurface);
1610 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1611 EXPECT_EQ(MSERR_OK, player_->Prepare());
1612 EXPECT_EQ(MSERR_OK, player_->Play());
1613 EXPECT_EQ(480, player_->GetVideoHeight());
1614 EXPECT_EQ(720, player_->GetVideoWidth());
1615 }
1616
1617 /**
1618 * @tc.name : Test GetVideoHeight API
1619 * @tc.number: Player_GetVideoHeight_002
1620 * @tc.desc : Test Player GetVideoHeight
1621 */
1622 HWTEST_F(PlayerUnitTest, Player_GetVideoHeight_002, TestSize.Level2)
1623 {
1624 int32_t duration = 0;
1625 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1626 EXPECT_NE(480, player_->GetVideoHeight());
1627 EXPECT_NE(720, player_->GetVideoWidth());
1628 sptr<Surface> videoSurface = player_->GetVideoSurface();
1629 ASSERT_NE(nullptr, videoSurface);
1630 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1631 EXPECT_NE(480, player_->GetVideoHeight());
1632 EXPECT_NE(720, player_->GetVideoWidth());
1633 EXPECT_EQ(MSERR_OK, player_->Prepare());
1634 EXPECT_EQ(480, player_->GetVideoHeight());
1635 EXPECT_EQ(720, player_->GetVideoWidth());
1636 EXPECT_EQ(MSERR_OK, player_->Play());
1637 EXPECT_EQ(480, player_->GetVideoHeight());
1638 EXPECT_EQ(720, player_->GetVideoWidth());
1639 EXPECT_EQ(MSERR_OK, player_->Pause());
1640 EXPECT_EQ(480, player_->GetVideoHeight());
1641 EXPECT_EQ(720, player_->GetVideoWidth());
1642 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1643 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
1644 EXPECT_EQ(MSERR_OK, player_->Play());
1645 sleep(PLAYING_TIME_2_SEC);
1646 EXPECT_EQ(480, player_->GetVideoHeight());
1647 EXPECT_EQ(720, player_->GetVideoWidth());
1648 EXPECT_EQ(MSERR_OK, player_->Stop());
1649 EXPECT_EQ(480, player_->GetVideoHeight());
1650 EXPECT_EQ(720, player_->GetVideoWidth());
1651 EXPECT_EQ(MSERR_OK, player_->Reset());
1652 EXPECT_NE(480, player_->GetVideoHeight());
1653 EXPECT_NE(720, player_->GetVideoWidth());
1654 }
1655
1656 /**
1657 * @tc.name : Test GetDuration API
1658 * @tc.number: Player_GetDuration_001
1659 * @tc.desc : Test Player GetDuration
1660 */
1661 HWTEST_F(PlayerUnitTest, Player_GetDuration_001, TestSize.Level0)
1662 {
1663 int32_t duration = 0;
1664 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1665 sptr<Surface> videoSurface = player_->GetVideoSurface();
1666 ASSERT_NE(nullptr, videoSurface);
1667 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1668 EXPECT_EQ(MSERR_OK, player_->Prepare());
1669 EXPECT_EQ(MSERR_OK, player_->Play());
1670 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1671 EXPECT_NEAR(10000, duration, DELTA_TIME); // duration 10000ms
1672 }
1673
1674 /**
1675 * @tc.name : Test GetDuration API
1676 * @tc.number: Player_GetDuration_002
1677 * @tc.desc : Test Player GetDuration
1678 */
1679 HWTEST_F(PlayerUnitTest, Player_GetDuration_002, TestSize.Level2)
1680 {
1681 int32_t duration = 0;
1682 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1683 EXPECT_NE(MSERR_OK, player_->GetDuration(duration));
1684 sptr<Surface> videoSurface = player_->GetVideoSurface();
1685 ASSERT_NE(nullptr, videoSurface);
1686 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1687 EXPECT_NE(MSERR_OK, player_->GetDuration(duration));
1688 EXPECT_EQ(MSERR_OK, player_->Prepare());
1689 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1690 EXPECT_EQ(MSERR_OK, player_->Play());
1691 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1692 EXPECT_EQ(MSERR_OK, player_->Pause());
1693 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1694 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
1695 EXPECT_EQ(MSERR_OK, player_->Play());
1696 sleep(PLAYING_TIME_2_SEC);
1697 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1698 EXPECT_EQ(MSERR_OK, player_->Stop());
1699 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1700 EXPECT_EQ(MSERR_OK, player_->Reset());
1701 EXPECT_NE(MSERR_OK, player_->GetDuration(duration));
1702 }
1703
1704 /**
1705 * @tc.name : Test SetPlaybackSpeed API
1706 * @tc.number: Player_SetPlaybackSpeed_001
1707 * @tc.desc : Test Player SetPlaybackSpeed
1708 */
1709 HWTEST_F(PlayerUnitTest, Player_SetPlaybackSpeed_001, TestSize.Level0)
1710 {
1711 PlaybackRateMode mode;
1712 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1713 sptr<Surface> videoSurface = player_->GetVideoSurface();
1714 ASSERT_NE(nullptr, videoSurface);
1715 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1716 EXPECT_EQ(MSERR_OK, player_->Prepare());
1717 EXPECT_EQ(MSERR_OK, player_->Play());
1718 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
1719 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
1720 EXPECT_EQ(SPEED_FORWARD_2_00_X, mode);
1721 }
1722
1723 /**
1724 * @tc.name : Test SetPlaybackSpeed API
1725 * @tc.number: Player_SetPlaybackSpeed_002
1726 * @tc.desc : Test Player SetPlaybackSpeed
1727 */
1728 HWTEST_F(PlayerUnitTest, Player_SetPlaybackSpeed_002, TestSize.Level2)
1729 {
1730 int32_t duration = 0;
1731 PlaybackRateMode mode;
1732 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1733 EXPECT_NE(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
1734 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
1735 sptr<Surface> videoSurface = player_->GetVideoSurface();
1736 ASSERT_NE(nullptr, videoSurface);
1737 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1738 EXPECT_NE(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
1739 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
1740 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
1741 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
1742 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
1743 EXPECT_EQ(MSERR_OK, player_->Play());
1744 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
1745 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
1746 EXPECT_EQ(MSERR_OK, player_->Pause());
1747 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_1_75_X));
1748 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
1749 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1750 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
1751 EXPECT_EQ(MSERR_OK, player_->Play());
1752 sleep(PLAYING_TIME_2_SEC);
1753 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_0_75_X));
1754 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
1755 EXPECT_EQ(MSERR_OK, player_->Stop());
1756 EXPECT_NE(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_1_25_X));
1757 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
1758 EXPECT_EQ(MSERR_OK, player_->Reset());
1759 EXPECT_NE(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
1760 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
1761 }
1762
1763 /**
1764 * @tc.name : Test SetLooping API
1765 * @tc.number: Player_SetLooping_001
1766 * @tc.desc : Test Player SetLooping
1767 */
1768 HWTEST_F(PlayerUnitTest, Player_SetLooping_001, TestSize.Level0)
1769 {
1770 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1771 sptr<Surface> videoSurface = player_->GetVideoSurface();
1772 ASSERT_NE(nullptr, videoSurface);
1773 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1774 EXPECT_EQ(MSERR_OK, player_->Prepare());
1775 EXPECT_EQ(MSERR_OK, player_->Play());
1776 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
1777 EXPECT_EQ(true, player_->IsLooping());
1778 EXPECT_EQ(MSERR_OK, player_->SetLooping(false));
1779 EXPECT_EQ(false, player_->IsLooping());
1780 }
1781
1782 /**
1783 * @tc.name : Test SetVolume API
1784 * @tc.number: Player_SetVolume_001
1785 * @tc.desc : Test Player SetVolume
1786 */
1787 HWTEST_F(PlayerUnitTest, Player_SetVolume_001, TestSize.Level0)
1788 {
1789 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1790 sptr<Surface> videoSurface = player_->GetVideoSurface();
1791 ASSERT_NE(nullptr, videoSurface);
1792 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1793 EXPECT_EQ(MSERR_OK, player_->Prepare());
1794 EXPECT_EQ(MSERR_OK, player_->Play());
1795 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1796 }
1797
1798 /**
1799 * @tc.name : Test SetVolume API
1800 * @tc.number: Player_SetVolume_002
1801 * @tc.desc : Test Player SetVolume
1802 */
1803 HWTEST_F(PlayerUnitTest, Player_SetVolume_002, TestSize.Level0)
1804 {
1805 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1806 sptr<Surface> videoSurface = player_->GetVideoSurface();
1807 ASSERT_NE(nullptr, videoSurface);
1808 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1809 EXPECT_EQ(MSERR_OK, player_->Prepare());
1810 EXPECT_EQ(MSERR_OK, player_->Play());
1811 EXPECT_NE(MSERR_OK, player_->SetVolume(1.1, 0.1));
1812 EXPECT_NE(MSERR_OK, player_->SetVolume(0.1, 1.1));
1813 EXPECT_NE(MSERR_OK, player_->SetVolume(1.1, 1.1));
1814 EXPECT_NE(MSERR_OK, player_->SetVolume(-0.1, 0.1));
1815 EXPECT_NE(MSERR_OK, player_->SetVolume(0.1, -0.1));
1816 EXPECT_NE(MSERR_OK, player_->SetVolume(-0.1, -0.1));
1817 }
1818
1819 /**
1820 * @tc.name : Test SetVolume API
1821 * @tc.number: Player_SetVolume_003
1822 * @tc.desc : Test Player SetVolume
1823 */
1824 HWTEST_F(PlayerUnitTest, Player_SetVolume_003, TestSize.Level2)
1825 {
1826 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1827 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1828 sptr<Surface> videoSurface = player_->GetVideoSurface();
1829 ASSERT_NE(nullptr, videoSurface);
1830 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1831 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1832 EXPECT_EQ(MSERR_OK, player_->Prepare());
1833 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1834 EXPECT_EQ(MSERR_OK, player_->Play());
1835 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1836 EXPECT_EQ(MSERR_OK, player_->Pause());
1837 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1838 EXPECT_EQ(MSERR_OK, player_->Stop());
1839 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1840 EXPECT_EQ(MSERR_OK, player_->Reset());
1841 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1842 }
1843
1844 /**
1845 * @tc.name : Test SetVolume API
1846 * @tc.number: Player_SetVolume_004
1847 * @tc.desc : Test Player SetVolume
1848 */
1849 HWTEST_F(PlayerUnitTest, Player_SetVolume_004, TestSize.Level2)
1850 {
1851 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1852 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1853 sptr<Surface> videoSurface = player_->GetVideoSurface();
1854 ASSERT_NE(nullptr, videoSurface);
1855 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1856 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
1857 EXPECT_EQ(MSERR_OK, player_->Play());
1858 EXPECT_EQ(MSERR_OK, player_->SetVolume(1e-7, 1));
1859 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1e-7));
1860 EXPECT_EQ(MSERR_OK, player_->SetVolume(1e-7, 1e-7));
1861 }
1862
1863 /**
1864 * @tc.name : Test SetVideoScaleType API
1865 * @tc.number: Player_SetVideoScaleType_001
1866 * @tc.desc : Test Player SetVideoScaleType
1867 */
1868 HWTEST_F(PlayerUnitTest, Player_SetVideoScaleType_001, TestSize.Level0)
1869 {
1870 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1871 sptr<Surface> videoSurface = player_->GetVideoSurface();
1872 ASSERT_NE(nullptr, videoSurface);
1873 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1874 EXPECT_EQ(MSERR_OK, player_->Prepare());
1875 EXPECT_EQ(MSERR_OK, player_->Play());
1876 Format format;
1877 format.PutIntValue(PlayerKeys::VIDEO_SCALE_TYPE,
1878 static_cast<int32_t>(Plugins::VideoScaleType::VIDEO_SCALE_TYPE_FIT));
1879 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
1880 format.PutIntValue(PlayerKeys::VIDEO_SCALE_TYPE,
1881 static_cast<int32_t>(Plugins::VideoScaleType::VIDEO_SCALE_TYPE_FIT_CROP));
1882 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
1883 }
1884
1885 /**
1886 * @tc.name : Test SetRendererInfo API
1887 * @tc.number: Player_SetRendererInfo_001
1888 * @tc.desc : Test Player SetRendererInfo
1889 */
1890 HWTEST_F(PlayerUnitTest, Player_SetRendererInfo_001, TestSize.Level0)
1891 {
1892 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1893 Format format;
1894 sptr<Surface> videoSurface = player_->GetVideoSurface();
1895 ASSERT_NE(nullptr, videoSurface);
1896 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1897 int32_t contentType = 1;
1898 int32_t streamUsage = 1;
1899 int32_t rendererFlags = 0;
1900 (void)format.PutIntValue(PlayerKeys::CONTENT_TYPE, contentType);
1901 (void)format.PutIntValue(PlayerKeys::STREAM_USAGE, streamUsage);
1902 (void)format.PutIntValue(PlayerKeys::RENDERER_FLAG, rendererFlags);
1903 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
1904 EXPECT_EQ(MSERR_OK, player_->Prepare());
1905 EXPECT_EQ(MSERR_OK, player_->Play());
1906 }
1907
1908 /**
1909 * @tc.name : Test SetVolumeMode API
1910 * @tc.number: Player_SetVolumeMode_001
1911 * @tc.desc : Test Player SetVolumeMode
1912 */
1913 HWTEST_F(PlayerUnitTest, Player_SetVolumeMode_001, TestSize.Level0)
1914 {
1915 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1916 Format format;
1917 sptr<Surface> videoSurface = player_->GetVideoSurface();
1918 ASSERT_NE(nullptr, videoSurface);
1919 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1920 int32_t contentType = 1;
1921 int32_t streamUsage = 1;
1922 int32_t rendererFlags = 0;
1923 int32_t mode = 1;
1924 (void)format.PutIntValue(PlayerKeys::CONTENT_TYPE, contentType);
1925 (void)format.PutIntValue(PlayerKeys::STREAM_USAGE, streamUsage);
1926 (void)format.PutIntValue(PlayerKeys::RENDERER_FLAG, rendererFlags);
1927 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
1928 EXPECT_EQ(MSERR_OK, player_->SetVolumeMode(mode));
1929 EXPECT_EQ(MSERR_OK, player_->Prepare());
1930 EXPECT_EQ(MSERR_OK, player_->Play());
1931 }
1932
1933 /**
1934 * @tc.name : Test SetInterrupt API
1935 * @tc.number: Player_SetInterrupt_001
1936 * @tc.desc : Test Player SetInterrupt
1937 */
1938 HWTEST_F(PlayerUnitTest, Player_SetInterrupt_001, TestSize.Level0)
1939 {
1940 Format format;
1941 int32_t mode = 1;
1942 int32_t type = 1;
1943 std::shared_ptr<PlayerMock> player = nullptr;
1944 std::shared_ptr<PlayerCallbackTest> callback = nullptr;
1945 callback = std::make_shared<PlayerCallbackTest>();
1946 ASSERT_NE(nullptr, callback);
1947 player = std::make_shared<PlayerMock>(callback);
1948 ASSERT_NE(nullptr, player);
1949 EXPECT_TRUE(player->CreatePlayer());
1950 EXPECT_EQ(MSERR_OK, player->SetPlayerCallback(callback));
1951 ASSERT_EQ(MSERR_OK, player->SetSource(MEDIA_ROOT + "01.mp3"));
1952 EXPECT_EQ(MSERR_OK, player->Prepare());
1953
1954 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1955 EXPECT_EQ(MSERR_OK, player_->Prepare());
1956 (void)format.PutIntValue(PlayerKeys::AUDIO_INTERRUPT_MODE, mode);
1957 (void)format.PutIntValue(PlayerKeys::AUDIO_INTERRUPT_TYPE, type);
1958 EXPECT_EQ(MSERR_OK, player->SetParameter(format));
1959 EXPECT_EQ(MSERR_OK, player->Play());
1960 sleep(PLAYING_TIME_2_SEC);
1961 EXPECT_EQ(MSERR_OK, player_->Play());
1962 sleep(PLAYING_TIME_2_SEC);
1963 EXPECT_EQ(MSERR_OK, player->ReleaseSync());
1964 }
1965
1966 /**
1967 * @tc.name : Test SetDataSource API
1968 * @tc.number: Player_SetDataSource_003
1969 * @tc.desc : Test Player SetDataSource
1970 */
1971 HWTEST_F(PlayerUnitTest, Player_SetDataSource_003, TestSize.Level0)
1972 {
1973 system("param set sys.media.datasrc.set.copymode TRUE");
1974 ASSERT_EQ(MSERR_OK, player_->SetDataSrc("/data/test/H264_AAC.mp4", 1894386, true)); // 1894386 file size
1975 sptr<Surface> renderSurface = player_->GetVideoSurface();
1976 ASSERT_NE(nullptr, renderSurface);
1977 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(renderSurface));
1978 EXPECT_EQ(MSERR_OK, player_->Prepare());
1979 EXPECT_EQ(MSERR_OK, player_->Play());
1980 sleep(PLAYING_TIME_2_SEC);
1981 int32_t ret = player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC);
1982 EXPECT_EQ(MSERR_OK, ret);
1983 sleep(PLAYING_TIME_2_SEC);
1984 EXPECT_EQ(MSERR_OK, player_->Pause());
1985 ret = player_->Play();
1986 EXPECT_EQ(MSERR_OK, ret);
1987 sleep(PLAYING_TIME_2_SEC);
1988 ret = player_->Stop();
1989 EXPECT_EQ(MSERR_OK, ret);
1990 EXPECT_EQ(MSERR_OK, player_->Reset());
1991 ret = player_->Release();
1992 EXPECT_EQ(MSERR_OK, ret);
1993 system("param set sys.media.datasrc.set.copymode FALSE");
1994 }
1995
1996 /**
1997 * @tc.name : Test Player SelectBitRate API
1998 * @tc.number: Player_SelectBitRate_001
1999 * @tc.desc : Test Player SelectBitRate interface
2000 */
2001 HWTEST_F(PlayerUnitTest, Player_SelectBitRate_001, TestSize.Level0)
2002 {
2003 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2004 sptr<Surface> videoSurface = player_->GetVideoSurface();
2005 ASSERT_NE(nullptr, videoSurface);
2006 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2007 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2008 EXPECT_EQ(MSERR_OK, player_->Play());
2009 EXPECT_EQ(MSERR_OK, player_->SelectBitRate(0));
2010 }
2011
2012 /**
2013 * @tc.name: Player_Performance_Prepared_001
2014 * @tc.desc: test player start
2015 * @tc.type: PERFORMANCE
2016 * @tc.require: issueI5NYBJ
2017 */
2018 HWTEST_F(PlayerUnitTest, Player_Performance_Prepared_001, TestSize.Level0)
2019 {
2020 struct timeval startTime = {};
2021 struct timeval finishTime = {};
2022 int32_t runTimes = 10;
2023 float timeConv = 1000;
2024 float deltaTime = 0;
2025 sptr<Surface> videoSurface = player_->GetVideoSurface();
2026 ASSERT_NE(nullptr, videoSurface);
2027 for (int32_t i = 0; i < runTimes; i++) {
2028 EXPECT_EQ(MSERR_OK, gettimeofday(&startTime, nullptr));
2029 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2030 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2031 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2032 EXPECT_EQ(MSERR_OK, gettimeofday(&finishTime, nullptr));
2033 EXPECT_EQ(MSERR_OK, player_->Play());
2034 deltaTime += (finishTime.tv_sec - startTime.tv_sec) * timeConv +
2035 (finishTime.tv_usec - startTime.tv_usec) / timeConv;
2036 EXPECT_EQ(MSERR_OK, player_->Reset());
2037 }
2038 EXPECT_LE(deltaTime / runTimes, 1000); // less than 1000 ms
2039 }
2040
2041 /**
2042 * @tc.name : Test Player Play mp4 with rotation
2043 * @tc.number: Player_Rotate_001
2044 * @tc.desc : Test Player Play interface
2045 */
2046 HWTEST_F(PlayerUnitTest, Player_Rotate_001, TestSize.Level0)
2047 {
2048 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "MP4_ROTATE_90.mp4"));
2049 sptr<Surface> videoSurface = player_->GetVideoSurface();
2050 ASSERT_NE(nullptr, videoSurface);
2051 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2052 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2053 EXPECT_EQ(MSERR_OK, player_->Play());
2054 EXPECT_TRUE(player_->IsPlaying());
2055 }
2056
2057 /**
2058 * @tc.name : Test Player Dump Dot
2059 * @tc.number: Player_Dump_Dot_001
2060 * @tc.desc : Test Player Dump Dot
2061 */
2062 HWTEST_F(PlayerUnitTest, Player_Dump_Dot_001, TestSize.Level0)
2063 {
2064 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "MP4_ROTATE_90.mp4"));
2065 sptr<Surface> videoSurface = player_->GetVideoSurface();
2066 ASSERT_NE(nullptr, videoSurface);
2067 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2068 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2069 EXPECT_EQ(MSERR_OK, player_->Play());
2070 system("param set sys.media.dump.dot.path /data/test/media");
2071 EXPECT_TRUE(player_->IsPlaying());
2072 EXPECT_EQ(MSERR_OK, player_->Pause());
2073 EXPECT_EQ(MSERR_OK, player_->Play());
2074 }
2075
2076 /**
2077 * @tc.name : Test Player Dump Dot
2078 * @tc.number: Player_Dump_Dot_002
2079 * @tc.desc : Test Player Dump Dot
2080 */
2081 HWTEST_F(PlayerUnitTest, Player_Dump_Dot_002, TestSize.Level0)
2082 {
2083 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "MP4_ROTATE_90.mp4"));
2084 sptr<Surface> videoSurface = player_->GetVideoSurface();
2085 ASSERT_NE(nullptr, videoSurface);
2086 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2087 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2088 EXPECT_EQ(MSERR_OK, player_->Play());
2089 system("param set sys.media.dump.dot.path /xx");
2090 EXPECT_TRUE(player_->IsPlaying());
2091 EXPECT_EQ(MSERR_OK, player_->Pause());
2092 EXPECT_EQ(MSERR_OK, player_->Play());
2093 }
2094
2095 /**
2096 * @tc.name : Test Player Dump GlibMem
2097 * @tc.number: Player_Dump_GlibMem_001
2098 * @tc.desc : Test Player Dump GlibMem
2099 */
2100 HWTEST_F(PlayerUnitTest, Player_Dump_GlibMem_001, TestSize.Level0)
2101 {
2102 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "MP4_ROTATE_90.mp4"));
2103 sptr<Surface> videoSurface = player_->GetVideoSurface();
2104 ASSERT_NE(nullptr, videoSurface);
2105 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2106 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2107 EXPECT_EQ(MSERR_OK, player_->Play());
2108 system("hidumper -s 3002 -a glibmem");
2109 system("param set sys.media.dump.codec.vdec ALL");
2110 EXPECT_TRUE(player_->IsPlaying());
2111 EXPECT_EQ(MSERR_OK, player_->Pause());
2112 }
2113
2114 /**
2115 * @tc.name : Test Player Dump GlibPool
2116 * @tc.number: Player_Dump_GlibPool_001
2117 * @tc.desc : Test Player Dump GlibPool
2118 */
2119 HWTEST_F(PlayerUnitTest, Player_Dump_GlibPool_001, TestSize.Level0)
2120 {
2121 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "MP4_ROTATE_90.mp4"));
2122 sptr<Surface> videoSurface = player_->GetVideoSurface();
2123 ASSERT_NE(nullptr, videoSurface);
2124 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2125 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2126 system("param set sys.media.dump.frame.enable true");
2127 system("param set sys.media.set.mute TRUE");
2128 system("param set sys.media.kpi.avsync.log.enable true");
2129 system("param set sys.media.kpi.opt.renderdelay.enable true");
2130 EXPECT_EQ(MSERR_OK, player_->Play());
2131 system("hidumper -s 3002 -a glibpool");
2132 system("param set sys.media.dump.codec.vdec ALL");
2133 EXPECT_TRUE(player_->IsPlaying());
2134 EXPECT_EQ(MSERR_OK, player_->Pause());
2135 }
2136
2137 /**
2138 * @tc.name : Test Player Dump Log
2139 * @tc.number: Player_Dump_Log_001
2140 * @tc.desc : Test Player Dump Log
2141 */
2142 HWTEST_F(PlayerUnitTest, Player_Dump_Log_001, TestSize.Level0)
2143 {
2144 system("mkdir /data/media/log");
2145 system("chmod 777 -R /data/media");
2146 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2147 sptr<Surface> videoSurface = player_->GetVideoSurface();
2148 ASSERT_NE(nullptr, videoSurface);
2149 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2150 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2151 system("param set sys.media.log.level *:l,multiqueue,decodecbin:,tsdemux:D,multiqueue:D,hlsdemux:D,souphttpsrc:W");
2152 system("param set sys.media.log.level *:l,basesrcmmmbasesrcmmmbasesrcmmmbasesrcmmmbasesrcmmmbasesrcmmmbasesrcmmm" \
2153 "basesrcmmmbasesrcmmmbasesrcmmmbasesrcmmmbasesrcmmmbasesrcmmm:D");
2154 system("param set sys.media.dump.frame.enable false");
2155 system("param set sys.media.set.mute FALSE");
2156 system("param set sys.media.kpi.avsync.log.enable false");
2157 system("param set sys.media.kpi.opt.renderdelay.enable false");
2158 EXPECT_EQ(MSERR_OK, player_->Play());
2159 system("param set sys.media.dump.codec.vdec NULL");
2160 EXPECT_TRUE(player_->IsPlaying());
2161 EXPECT_EQ(MSERR_OK, player_->Pause());
2162 system("rm -rf /data/media/log");
2163 }
2164
2165 /**
2166 * @tc.name : Test Player Dump gstbuffer
2167 * @tc.number: Player_Dump_GstBuffer_001
2168 * @tc.desc : Test Player Dump gstbuffer
2169 */
2170 HWTEST_F(PlayerUnitTest, Player_Dump_GstBuffer_001, TestSize.Level0)
2171 {
2172 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2173 sptr<Surface> videoSurface = player_->GetVideoSurface();
2174 ASSERT_NE(nullptr, videoSurface);
2175 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2176 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2177 system("param set sys.media.dump.gstbuffer 1");
2178 system("param set sys.media.set.mute null");
2179 EXPECT_EQ(MSERR_OK, player_->Play());
2180 EXPECT_TRUE(player_->IsPlaying());
2181 EXPECT_EQ(MSERR_OK, player_->Pause());
2182 system("param set sys.media.dump.gstbuffer 0");
2183 }
2184
2185 /**
2186 * @tc.name : Test Player With Not Performance
2187 * @tc.number: Player_Not_Performance_001
2188 * @tc.desc : Test Player Not Performance
2189 */
2190 HWTEST_F(PlayerUnitTest, Player_Not_Performance_001, TestSize.Level2)
2191 {
2192 system("param set sys.media.player.performance.enable FALSE");
2193 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2194 sptr<Surface> videoSurface = player_->GetVideoSurface();
2195 ASSERT_NE(nullptr, videoSurface);
2196 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2197 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2198 system("param set sys.media.player.performance.enable TRUE");
2199 }
2200
2201 /**
2202 * @tc.name : Test Player Mem Recycle
2203 * @tc.number: Player_Mem_Recycle_001
2204 * @tc.desc : Test Player Mem Recycle
2205 */
2206 HWTEST_F(PlayerUnitTest, Player_Mem_Recycle_001, TestSize.Level0)
2207 {
2208 sptr<Surface> renderSurface = player_->GetVideoSurface();
2209 ASSERT_NE(nullptr, renderSurface);
2210 std::vector<std::string> srcVector = {MEDIA_ROOT + "H264_MP3.mp4"};
2211 for (int32_t i = 0; i < static_cast<int32_t>(srcVector.size()); i++) {
2212 if (srcVector[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2213 system("param set sys.media.player.resource.type NetWork");
2214 }
2215 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVector[i]));
2216 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(renderSurface));
2217 char text[100]; // 100: text len
2218 sprintf_s(text, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", 0, 0, 4);
2219 system(text);
2220 sprintf_s(text, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), 0, 4);
2221 system(text);
2222 system("hidumper -s 1909 -a \"-t 6\"");
2223 system("hidumper -s 1909 -a \"-t 3\"");
2224 int32_t ret = player_->Prepare();
2225 EXPECT_EQ(MSERR_OK, ret);
2226 EXPECT_EQ(MSERR_OK, player_->Reset());
2227 system("param set sys.media.player.resource.type Local");
2228 }
2229 }
2230
2231 /**
2232 * @tc.name : Test Player Mem Recycle
2233 * @tc.number: Player_Mem_Recycle_002
2234 * @tc.desc : Test Player Mem Recycle
2235 */
2236 HWTEST_F(PlayerUnitTest, Player_Mem_Recycle_002, TestSize.Level0)
2237 {
2238 sptr<Surface> vSurface = player_->GetVideoSurface();
2239 ASSERT_NE(nullptr, vSurface);
2240 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2241 for (uint32_t i = 0; i < srcVec.size(); i++) {
2242 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2243 system("param set sys.media.player.resource.type NetWork");
2244 }
2245 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2246 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(vSurface));
2247 EXPECT_EQ(MSERR_OK, player_->Prepare());
2248 char str[100]; // 100: str len
2249 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2250 system(str);
2251 system("hidumper -s 1909 -a \"-t 3\"");
2252 EXPECT_EQ(MSERR_OK, player_->Play());
2253 EXPECT_EQ(MSERR_OK, player_->Reset());
2254 system("param set sys.media.player.resource.type Local");
2255 }
2256 }
2257
2258 /**
2259 * @tc.name : Test Player Mem Recycle
2260 * @tc.number: Player_Mem_Recycle_003
2261 * @tc.desc : Test Player Mem Recycle
2262 */
2263 HWTEST_F(PlayerUnitTest, Player_Mem_Recycle_003, TestSize.Level0)
2264 {
2265 sptr<Surface> videoSurface = player_->GetVideoSurface();
2266 ASSERT_NE(nullptr, videoSurface);
2267 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2268 for (uint32_t i = 0; i < srcVec.size(); i++) {
2269 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2270 system("param set sys.media.player.resource.type NetWork");
2271 }
2272 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2273 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2274 EXPECT_EQ(MSERR_OK, player_->Prepare());
2275 EXPECT_EQ(MSERR_OK, player_->Play());
2276 sleep(15);
2277 char str[100]; // 100: str len
2278 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2279 system(str);
2280 system("hidumper -s 1909 -a \"-t 3\"");
2281 EXPECT_EQ(MSERR_OK, player_->Play());
2282 EXPECT_EQ(MSERR_OK, player_->Reset());
2283 system("param set sys.media.player.resource.type Local");
2284 }
2285 }
2286
2287 /**
2288 * @tc.name : Test Player Mem Recycle
2289 * @tc.number: Player_Mem_Recycle_004
2290 * @tc.desc : Test Player Mem Recycle
2291 */
2292 HWTEST_F(PlayerUnitTest, Player_Mem_Recycle_004, TestSize.Level0)
2293 {
2294 sptr<Surface> videoSurface = player_->GetVideoSurface();
2295 ASSERT_NE(nullptr, videoSurface);
2296 std::vector<std::string> vec = {MEDIA_ROOT + "H264_MP3.mp4"};
2297 for (uint32_t i = 0; i < vec.size(); i++) {
2298 if (vec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2299 system("param set sys.media.player.resource.type NetWork");
2300 }
2301 const auto ret = MSERR_OK;
2302 ASSERT_EQ(ret, player_->SetSource(vec[i]));
2303 EXPECT_EQ(ret, player_->SetVideoSurface(videoSurface));
2304 EXPECT_EQ(ret, player_->Prepare());
2305 EXPECT_EQ(ret, player_->Play());
2306 EXPECT_EQ(ret, player_->Pause());
2307 char str[100]; // 100: str len
2308 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2309 system(str);
2310 system("hidumper -s 1909 -a \"-t 3\"");
2311 int32_t currentTime = 0;
2312 std::vector<Format> videoTrack;
2313 std::vector<Format> audioTrack;
2314 int32_t duration = 0;
2315 PlaybackRateMode mode;
2316 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
2317 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
2318 EXPECT_EQ(MSERR_OK, player_->GetCurrentTime(currentTime));
2319 EXPECT_NE(0, player_->GetVideoWidth());
2320 EXPECT_NE(0, player_->GetVideoHeight());
2321 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
2322 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
2323 int32_t index;
2324 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_AUD, index));
2325 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_VID, index));
2326 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_SUBTITLE, index));
2327 EXPECT_NE(MSERR_OK, player_->GetCurrentTrack(100, index));
2328 EXPECT_EQ(false, player_->IsPlaying());
2329 EXPECT_EQ(false, player_->IsLooping());
2330 EXPECT_EQ(MSERR_OK, player_->Seek(1000, SEEK_NEXT_SYNC));
2331 EXPECT_EQ(MSERR_OK, player_->Reset());
2332 system("param set sys.media.player.resource.type Local");
2333 }
2334 }
2335
2336 /**
2337 * @tc.name : Test Player Mem Recycle
2338 * @tc.number: Player_Mem_Recycle_005
2339 * @tc.desc : Test Player Mem Recycle
2340 */
2341 HWTEST_F(PlayerUnitTest, Player_Mem_Recycle_005, TestSize.Level0)
2342 {
2343 sptr<Surface> videoSurface = player_->GetVideoSurface();
2344 ASSERT_NE(nullptr, videoSurface);
2345 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2346 for (uint32_t i = 0; i < srcVec.size(); i++) {
2347 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2348 system("param set sys.media.player.resource.type NetWork");
2349 }
2350 const auto result = MSERR_OK;
2351 ASSERT_EQ(result, player_->SetSource(srcVec[i]));
2352 EXPECT_EQ(result, player_->SetVideoSurface(videoSurface));
2353 EXPECT_EQ(result, player_->Prepare());
2354 EXPECT_EQ(result, player_->Play());
2355 EXPECT_EQ(result, player_->Pause());
2356 char str[100]; // 100: str len
2357 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2358 system(str);
2359 system("hidumper -s 1909 -a \"-t 3\"");
2360 EXPECT_EQ(result, player_->Reset());
2361 system("param set sys.media.player.resource.type Local");
2362 }
2363 }
2364
2365 /**
2366 * @tc.name : Test Player Mem Recycle
2367 * @tc.number: Player_Mem_Recycle_006
2368 * @tc.desc : Test Player Mem Recycle
2369 */
2370 HWTEST_F(PlayerUnitTest, Player_Mem_Recycle_006, TestSize.Level0)
2371 {
2372 sptr<Surface> videoSurface = player_->GetVideoSurface();
2373 ASSERT_NE(nullptr, videoSurface);
2374 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2375 for (uint32_t i = 0; i < srcVec.size(); i++) {
2376 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2377 system("param set sys.media.player.resource.type NetWork");
2378 }
2379 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2380 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2381 EXPECT_EQ(MSERR_OK, player_->Prepare());
2382 EXPECT_EQ(MSERR_OK, player_->Play());
2383 EXPECT_EQ(MSERR_OK, player_->Pause());
2384 char str[100]; // 100: str len
2385 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2386 system(str);
2387 system("hidumper -s 1909 -a \"-t 3\"");
2388 EXPECT_EQ(MSERR_OK, player_->Reset());
2389 system("param set sys.media.player.resource.type Local");
2390 }
2391 }
2392
2393 /**
2394 * @tc.name : Test Player Mem Recycle
2395 * @tc.number: Player_Mem_Recycle_007
2396 * @tc.desc : Test Player Mem Recycle
2397 */
2398 HWTEST_F(PlayerUnitTest, Player_Mem_Recycle_007, TestSize.Level0)
2399 {
2400 sptr<Surface> videoSurface = player_->GetVideoSurface();
2401 ASSERT_NE(nullptr, videoSurface);
2402 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2403 std::vector<PlaybackRateMode> speedMode = {SPEED_FORWARD_2_00_X, SPEED_FORWARD_1_25_X};
2404 for (uint32_t i = 0; i < srcVec.size(); i++) {
2405 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2406 system("param set sys.media.player.resource.type NetWork");
2407 }
2408 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2409 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2410 EXPECT_EQ(MSERR_OK, player_->Prepare());
2411 EXPECT_EQ(MSERR_OK, player_->Play());
2412 EXPECT_EQ(MSERR_OK, player_->Pause());
2413 char str[100]; // 100: str len
2414 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2415 system(str);
2416 system("hidumper -s 1909 -a \"-t 3\"");
2417 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(speedMode[i]));
2418 EXPECT_EQ(MSERR_OK, player_->Reset());
2419 system("param set sys.media.player.resource.type Local");
2420 }
2421 }
2422
2423 /**
2424 * @tc.name : Test Player Mem Recycle
2425 * @tc.number: Player_Mem_Recycle_008
2426 * @tc.desc : Test Player Mem Recycle
2427 */
2428 HWTEST_F(PlayerUnitTest, Player_Mem_Recycle_008, TestSize.Level0)
2429 {
2430 sptr<Surface> videoSurface = player_->GetVideoSurface();
2431 ASSERT_NE(nullptr, videoSurface);
2432 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2433 for (uint32_t i = 0; i < srcVec.size(); i++) {
2434 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2435 system("param set sys.media.player.resource.type NetWork");
2436 }
2437 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2438 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2439 EXPECT_EQ(MSERR_OK, player_->Prepare());
2440 EXPECT_EQ(MSERR_OK, player_->Play());
2441 EXPECT_EQ(MSERR_OK, player_->Pause());
2442 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
2443 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
2444 EXPECT_EQ(MSERR_OK, player_->SetVolume(0.5, 0.5));
2445 char str[100]; // 100: str len
2446 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2447 system(str);
2448 system("hidumper -s 1909 -a \"-t 3\"");
2449 EXPECT_EQ(MSERR_OK, player_->SetLooping(false));
2450 EXPECT_EQ(MSERR_OK, player_->Reset());
2451 system("param set sys.media.player.resource.type Local");
2452 }
2453 }
2454
2455 /**
2456 * @tc.name : Test Player Mem Recycle
2457 * @tc.number: Player_Mem_Recycle_009
2458 * @tc.desc : Test Player Mem Recycle
2459 */
2460 HWTEST_F(PlayerUnitTest, Player_Mem_Recycle_009, TestSize.Level0)
2461 {
2462 sptr<Surface> videoSurface = player_->GetVideoSurface();
2463 ASSERT_NE(nullptr, videoSurface);
2464 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2465 for (uint32_t i = 0; i < srcVec.size(); i++) {
2466 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2467 system("param set sys.media.player.resource.type NetWork");
2468 }
2469 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2470 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2471 EXPECT_EQ(MSERR_OK, player_->Prepare());
2472 EXPECT_EQ(MSERR_OK, player_->Play());
2473 EXPECT_EQ(MSERR_OK, player_->Pause());
2474 char str[100]; // 100: str len
2475 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2476 system(str);
2477 system("hidumper -s 1909 -a \"-t 3\"");
2478 EXPECT_EQ(MSERR_OK, player_->SelectBitRate(0));
2479 EXPECT_EQ(MSERR_OK, player_->Reset());
2480 system("param set sys.media.player.resource.type Local");
2481 }
2482 }
2483
2484 /**
2485 * @tc.name : Test Player Mem Recycle
2486 * @tc.number: Player_Mem_Recycle_010
2487 * @tc.desc : Test Player Mem Recycle
2488 */
2489 HWTEST_F(PlayerUnitTest, Player_Mem_Recycle_010, TestSize.Level0)
2490 {
2491 sptr<Surface> videoSurface = player_->GetVideoSurface();
2492 ASSERT_NE(nullptr, videoSurface);
2493 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2494 for (uint32_t i = 0; i < srcVec.size(); i++) {
2495 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2496 system("param set sys.media.player.resource.type NetWork");
2497 }
2498 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2499 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2500 EXPECT_EQ(MSERR_OK, player_->Prepare());
2501 EXPECT_EQ(MSERR_OK, player_->Play());
2502 EXPECT_EQ(MSERR_OK, player_->Stop());
2503 char str[100]; // 100: str len
2504 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2505 system(str);
2506 system("hidumper -s 1909 -a \"-t 3\"");
2507 EXPECT_EQ(MSERR_OK, player_->Reset());
2508 system("param set sys.media.player.resource.type Local");
2509 }
2510 }
2511
2512 /**
2513 * @tc.name : Test Player Mem Recycle
2514 * @tc.number: Player_Mem_Recycle_011
2515 * @tc.desc : Test Player Mem Recycle
2516 */
2517 HWTEST_F(PlayerUnitTest, Player_Mem_Recycle_011, TestSize.Level0)
2518 {
2519 sptr<Surface> videoSurface = player_->GetVideoSurface();
2520 ASSERT_NE(nullptr, videoSurface);
2521 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2522 for (uint32_t i = 0; i < srcVec.size(); i++) {
2523 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2524 system("param set sys.media.player.resource.type NetWork");
2525 }
2526 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2527 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2528 EXPECT_EQ(MSERR_OK, player_->Prepare());
2529 EXPECT_EQ(MSERR_OK, player_->Play());
2530 EXPECT_EQ(MSERR_OK, player_->Pause());
2531 char str[100]; // 100: str len
2532 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2533 system(str);
2534 system("hidumper -s 1909 -a \"-t 2\"");
2535 EXPECT_EQ(MSERR_OK, player_->Reset());
2536 system("param set sys.media.player.resource.type Local");
2537 }
2538 }
2539
2540 /**
2541 * @tc.name : Test Player Mem Recycle
2542 * @tc.number: Player_Mem_Recycle_012
2543 * @tc.desc : Test Player Mem Recycle
2544 */
2545 HWTEST_F(PlayerUnitTest, Player_Mem_Recycle_012, TestSize.Level0)
2546 {
2547 sptr<Surface> videoSurface = player_->GetVideoSurface();
2548 ASSERT_NE(nullptr, videoSurface);
2549 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2550 for (uint32_t i = 0; i < srcVec.size(); i++) {
2551 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2552 system("param set sys.media.player.resource.type NetWork");
2553 }
2554 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2555 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2556 EXPECT_EQ(MSERR_OK, player_->Prepare());
2557 EXPECT_EQ(MSERR_OK, player_->Play());
2558 EXPECT_EQ(MSERR_OK, player_->Pause());
2559 char str[100]; // 100: str len
2560 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2561 system(str);
2562 system("hidumper -s 1909 -a \"-t 4\"");
2563 EXPECT_EQ(MSERR_OK, player_->Reset());
2564 system("param set sys.media.player.resource.type Local");
2565 }
2566 }
2567
2568 /**
2569 * @tc.name : Test Player Mem Recycle
2570 * @tc.number: Player_Mem_Recycle_013
2571 * @tc.desc : Test Player Mem Recycle
2572 */
2573 HWTEST_F(PlayerUnitTest, Player_Mem_Recycle_013, TestSize.Level0)
2574 {
2575 sptr<Surface> videoSurface = player_->GetVideoSurface();
2576 ASSERT_NE(nullptr, videoSurface);
2577 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2578 for (uint32_t i = 0; i < srcVec.size(); i++) {
2579 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2580 system("param set sys.media.player.resource.type NetWork");
2581 }
2582 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2583 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2584 EXPECT_EQ(MSERR_OK, player_->Prepare());
2585 EXPECT_EQ(MSERR_OK, player_->Play());
2586 EXPECT_EQ(MSERR_OK, player_->Pause());
2587 char str[100]; // 100: str len
2588 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2589 system(str);
2590 system("hidumper -s 1909 -a \"-f 3\"");
2591 EXPECT_EQ(MSERR_OK, player_->Reset());
2592 system("param set sys.media.player.resource.type Local");
2593 system("killall memmgrservice");
2594 sleep(1);
2595 }
2596 }
2597
2598 /**
2599 * @tc.name : Test Player Mem Recycle
2600 * @tc.number: Player_Mem_Recycle_014
2601 * @tc.desc : Test Player Mem Recycle
2602 */
2603 HWTEST_F(PlayerUnitTest, Player_Mem_Recycle_014, TestSize.Level0)
2604 {
2605 sptr<Surface> videoSurface = player_->GetVideoSurface();
2606 ASSERT_NE(nullptr, videoSurface);
2607 std::vector<std::string> srcVector = {MEDIA_ROOT + "H264_AAC.mp4"};
2608 for (uint32_t i = 0; i < srcVector.size(); i++) {
2609 if (srcVector[i] == MEDIA_ROOT + "H264_AAC.mp4") {
2610 system("param set sys.media.player.resource.type NetWork");
2611 }
2612 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVector[i]));
2613 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2614 EXPECT_EQ(MSERR_OK, player_->Prepare());
2615 char str[100]; // 100: str len
2616 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2617 system(str);
2618 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 2);
2619 system(str);
2620 sleep(30);
2621 EXPECT_EQ(MSERR_OK, player_->Play());
2622 EXPECT_EQ(MSERR_OK, player_->Reset());
2623 system("param set sys.media.player.resource.type Local");
2624 }
2625 }
2626
2627 /**
2628 * @tc.name : Test Player Mem Recycle
2629 * @tc.number: Player_Mem_Recycle_015
2630 * @tc.desc : Test Player Mem Recycle
2631 */
2632 HWTEST_F(PlayerUnitTest, Player_Mem_Recycle_015, TestSize.Level0)
2633 {
2634 sptr<Surface> videoSurface = player_->GetVideoSurface();
2635 ASSERT_NE(nullptr, videoSurface);
2636 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_AAC.mp4"};
2637 for (uint32_t i = 0; i < srcVec.size(); i++) {
2638 if (srcVec[i] == MEDIA_ROOT + "H264_AAC.mp4") {
2639 system("param set sys.media.player.resource.type NetWork");
2640 }
2641 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2642 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2643 EXPECT_EQ(MSERR_OK, player_->Prepare());
2644 char str[100]; // 100: str len
2645 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2646 system(str);
2647 system("hidumper -s 3002 -a \"player\"");
2648 sleep(30);
2649 system("hidumper -s 3002 -a \"player\"");
2650 EXPECT_EQ(MSERR_OK, player_->Play());
2651 EXPECT_EQ(MSERR_OK, player_->Stop());
2652 EXPECT_EQ(MSERR_OK, player_->Reset());
2653 system("param set sys.media.player.resource.type Local");
2654 }
2655 }
2656
2657 /**
2658 * @tc.name : Test Player Mem Recycle
2659 * @tc.number: Player_Mem_Recycle_016
2660 * @tc.desc : Test Player Mem Recycle
2661 */
2662 HWTEST_F(PlayerUnitTest, Player_Mem_Recycle_016, TestSize.Level0)
2663 {
2664 int32_t duration = 0;
2665 std::vector<Format> videoTrack;
2666 std::vector<Format> audioTrack;
2667 PlaybackRateMode mode;
2668 int32_t index = 0;
2669 EXPECT_EQ(MSERR_OK, player_->SetVolume(0.9, 0.9));
2670 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1, 0, 0));
2671 sptr<Surface> videoSurface = player_->GetVideoSurface();
2672 ASSERT_NE(nullptr, videoSurface);
2673 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2674 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
2675 EXPECT_EQ(true, player_->IsLooping());
2676 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2677 char str[100]; // 100: str len
2678 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2679 system(str);
2680 system("hidumper -s 1909 -a \"-t 4\"");
2681 EXPECT_EQ(720, player_->GetVideoWidth());
2682 EXPECT_EQ(480, player_->GetVideoHeight());
2683 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
2684 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
2685 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
2686 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
2687 EXPECT_EQ(SPEED_FORWARD_1_00_X, mode);
2688 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_0_50_X));
2689 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
2690 EXPECT_EQ(SPEED_FORWARD_0_50_X, mode);
2691 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
2692 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
2693 EXPECT_EQ(SPEED_FORWARD_2_00_X, mode);
2694
2695 EXPECT_EQ(false, player_->IsPlaying());
2696 EXPECT_EQ(true, player_->IsLooping());
2697
2698 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_AUD, index));
2699 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_VID, index));
2700 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_SUBTITLE, index));
2701 EXPECT_NE(MSERR_OK, player_->GetCurrentTrack(100, index));
2702
2703 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
2704 EXPECT_EQ(MSERR_OK, player_->Seek(duration, PlayerSeekMode::SEEK_PREVIOUS_SYNC));
2705 EXPECT_EQ(MSERR_OK, player_->Reset());
2706 EXPECT_EQ(MSERR_OK, player_->Release());
2707 }
2708
2709 /**
2710 * @tc.name : Test SetEffect API
2711 * @tc.number: Player_SetEffect_001
2712 * @tc.desc : Test Player SetEffect state machine
2713 */
2714 HWTEST_F(PlayerUnitTest, Player_SetEffect_001, TestSize.Level0)
2715 {
2716 Format format;
2717 const float FLOAT_VALUE = 1.0;
2718 const double DOUBLE_VALUE = 2.5;
2719 const std::string STRING_VALUE = "player_test";
2720 const int32_t INT_VALUE = 1;
2721 (void)format.PutIntValue(PlayerKeys::AUDIO_EFFECT_MODE, OHOS::AudioStandard::AudioEffectMode::EFFECT_NONE);
2722 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
2723 (void)format.PutFloatValue(PlayerKeys::AUDIO_EFFECT_MODE, FLOAT_VALUE);
2724 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
2725 (void)format.PutDoubleValue(PlayerKeys::AUDIO_EFFECT_MODE, DOUBLE_VALUE);
2726 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
2727 (void)format.PutStringValue(PlayerKeys::AUDIO_EFFECT_MODE, STRING_VALUE);
2728 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
2729 (void)format.PutIntValue(PlayerKeys::AUDIO_EFFECT_MODE, INT_VALUE);
2730 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
2731
2732 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "01.mp3"));
2733 sptr<Surface> videoSurface = player_->GetVideoSurface();
2734 ASSERT_NE(nullptr, videoSurface);
2735 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2736
2737 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
2738 EXPECT_EQ(MSERR_OK, player_->Prepare());
2739 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
2740 EXPECT_EQ(MSERR_OK, player_->Play());
2741 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
2742 EXPECT_EQ(MSERR_OK, player_->Pause());
2743 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
2744 EXPECT_EQ(MSERR_OK, player_->Stop());
2745 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
2746 EXPECT_EQ(MSERR_OK, player_->Prepare());
2747 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
2748 EXPECT_EQ(MSERR_OK, player_->Reset());
2749 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
2750 EXPECT_EQ(MSERR_OK, player_->Release());
2751 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
2752 }
2753
2754 /**
2755 * @tc.name : Test SetEffect API
2756 * @tc.number: Player_SetEffect_002
2757 * @tc.desc : Test Player SetEffect param
2758 */
2759 HWTEST_F(PlayerUnitTest, Player_SetEffect_002, TestSize.Level0)
2760 {
2761 Format format;
2762 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "01.mp3"));
2763 sptr<Surface> videoSurface = player_->GetVideoSurface();
2764 ASSERT_NE(nullptr, videoSurface);
2765 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2766 EXPECT_EQ(MSERR_OK, player_->Prepare());
2767
2768 (void)format.PutIntValue(PlayerKeys::AUDIO_EFFECT_MODE, OHOS::AudioStandard::AudioEffectMode::EFFECT_DEFAULT);
2769 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
2770 (void)format.PutIntValue(PlayerKeys::AUDIO_EFFECT_MODE, OHOS::AudioStandard::AudioEffectMode::EFFECT_NONE);
2771 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
2772 (void)format.PutIntValue(PlayerKeys::AUDIO_EFFECT_MODE, 100); // 100 is an invalid parameter.
2773 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
2774 (void)format.PutIntValue(PlayerKeys::AUDIO_EFFECT_MODE, -1); // -1 is an invalid parameter.
2775 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
2776
2777 EXPECT_EQ(MSERR_OK, player_->Release());
2778 }
2779
2780 /**
2781 * @tc.name : Test media error
2782 * @tc.number: Player_Media_Error
2783 * @tc.desc : Test Player Media Error
2784 */
2785 HWTEST_F(PlayerUnitTest, Player_Media_Error, TestSize.Level0)
2786 {
2787 std::array<MediaServiceErrCode, 5> errCodes = {MSERR_OK, MSERR_NO_MEMORY, MSERR_INVALID_OPERATION,
2788 MSERR_INVALID_VAL, MSERR_UNKNOWN};
2789 for (const auto& code : errCodes) {
2790 MediaServiceErrCodeTest(code);
2791 }
2792 for (MediaServiceErrCode code = MSERR_SERVICE_DIED; code < MSERR_EXTEND_START;
2793 code = (MediaServiceErrCode)(code + 1)) {
2794 MediaServiceErrCodeTest(code);
2795 }
2796 MediaServiceErrCodeTest(MSERR_EXTEND_START);
2797
2798 for (auto code = MSERR_EXT_OK; code <= MSERR_EXT_UNSUPPORT; code = (MediaServiceExtErrCode)(code + 1)) {
2799 EXPECT_EQ(MSEXTERRCODE_INFOS.at(code), MSExtErrorToString(code));
2800 }
2801 EXPECT_EQ(MSEXTERRCODE_INFOS.at(MSERR_EXT_EXTEND_START), MSExtErrorToString(MSERR_EXT_EXTEND_START));
2802
2803 std::array<MediaServiceExtErrCodeAPI9, 5> errCodesAPI9 = {MSERR_EXT_API9_OK, MSERR_EXT_API9_NO_PERMISSION,
2804 MSERR_EXT_API9_PERMISSION_DENIED, MSERR_EXT_API9_INVALID_PARAMETER, MSERR_EXT_API9_UNSUPPORT_CAPABILITY};
2805 for (const auto& errCodeApi9 : errCodesAPI9) {
2806 MediaServiceExtErrCodeAPI9Test(errCodeApi9);
2807 }
2808 for (auto code = MSERR_EXT_API9_NO_MEMORY;
2809 code <= MSERR_EXT_API9_AUDIO_INTERRUPTED; code = (MediaServiceExtErrCodeAPI9)(code + 1)) {
2810 MediaServiceExtErrCodeAPI9Test(code);
2811 }
2812 }
2813
2814 /**
2815 * @tc.name : Test media error
2816 * @tc.number: Player_Media_Error_002
2817 * @tc.desc : Test Player Media Error
2818 */
2819 HWTEST_F(PlayerUnitTest, Player_Media_Error_002, TestSize.Level0)
2820 {
2821 for (MediaServiceErrCode code = MSERR_IO_CANNOT_FIND_HOST; code <= MSERR_IO_UNSUPPORTTED_REQUEST;
2822 code = (MediaServiceErrCode)(code + 1)) {
2823 MediaServiceErrCodeTest(code);
2824 }
2825 MediaServiceErrCodeTest(MSERR_EXTEND_START);
2826
2827 for (auto code = MSERR_EXT_API14_IO_CANNOT_FIND_HOST;
2828 code <= MSERR_EXT_API14_IO_UNSUPPORTTED_REQUEST; code = (MediaServiceExtErrCodeAPI9)(code + 1)) {
2829 EXPECT_EQ(MSEXTERRCODE_API9_INFOS.at(code), MSExtAVErrorToString(code));
2830 MediaServiceExtErrCodeAPI9Test(code);
2831 }
2832 }
2833
2834 /**
2835 * @tc.name : Test ChangeSurface
2836 * @tc.number: Player_ChangeSurface_001
2837 * @tc.desc : Test video player change surface in idle state
2838 */
2839 HWTEST_F(PlayerUnitTest, Player_ChangeSurface_001, TestSize.Level0)
2840 {
2841 sptr<Surface> videoSurface = player_->GetVideoSurface();
2842 ASSERT_NE(nullptr, videoSurface);
2843 EXPECT_NE(MSERR_OK, player_->SetVideoSurface(videoSurface));
2844 }
2845
2846 /**
2847 * @tc.name : Test ChangeSurface
2848 * @tc.number: Player_ChangeSurface_002
2849 * @tc.desc : Test video player change surface in released state
2850 */
2851 HWTEST_F(PlayerUnitTest, Player_ChangeSurface_002, TestSize.Level0)
2852 {
2853 sptr<Surface> videoSurface = player_->GetVideoSurface();
2854 ASSERT_NE(nullptr, videoSurface);
2855 player_->Release();
2856 EXPECT_NE(MSERR_OK, player_->SetVideoSurface(videoSurface));
2857 }
2858
2859 /**
2860 * @tc.name : Test ChangeSurface
2861 * @tc.number: Player_ChangeSurface_003
2862 * @tc.desc : Test video player change surface in error state
2863 */
2864 HWTEST_F(PlayerUnitTest, Player_ChangeSurface_003, TestSize.Level0)
2865 {
2866 int32_t ret = player_->SetSource(MEDIA_ROOT + "error.mp4");
2867 EXPECT_EQ(MSERR_OK, ret);
2868 sptr<Surface> videoSurface = player_->GetVideoSurface();
2869 ASSERT_NE(nullptr, videoSurface);
2870 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2871 EXPECT_NE(MSERR_OK, player_->PrepareAsync());
2872 sleep(PLAYING_TIME_2_SEC);
2873 sptr<Surface> nextVideoSurface = player_->GetVideoSurfaceNext();
2874 ASSERT_NE(nullptr, nextVideoSurface);
2875 EXPECT_NE(MSERR_OK, player_->SetVideoSurface(nextVideoSurface));
2876 }
2877
2878 /**
2879 * @tc.name : Test ChangeSurface
2880 * @tc.number: Player_ChangeSurface_004
2881 * @tc.desc : Test video player change surface in initialized state
2882 */
2883 HWTEST_F(PlayerUnitTest, Player_ChangeSurface_004, TestSize.Level0)
2884 {
2885 int32_t ret = player_->SetSource(VIDEO_FILE1);
2886 EXPECT_EQ(MSERR_OK, ret);
2887 sptr<Surface> videoSurface = player_->GetVideoSurface();
2888 ASSERT_NE(nullptr, videoSurface);
2889 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2890 sptr<Surface> nextVideoSurface = player_->GetVideoSurfaceNext();
2891 ASSERT_NE(nullptr, nextVideoSurface);
2892 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(nextVideoSurface));
2893 }
2894
2895 /**
2896 * @tc.name : Test ChangeSurface
2897 * @tc.number: Player_ChangeSurface_005
2898 * @tc.desc : Test video player change surface in prepared state
2899 */
2900 HWTEST_F(PlayerUnitTest, Player_ChangeSurface_005, TestSize.Level0)
2901 {
2902 int32_t ret = player_->SetSource(VIDEO_FILE1);
2903 EXPECT_EQ(MSERR_OK, ret);
2904 sptr<Surface> videoSurface = player_->GetVideoSurface();
2905 ASSERT_NE(nullptr, videoSurface);
2906 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2907 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2908 sleep(PLAYING_TIME_2_SEC);
2909 sptr<Surface> nextVideoSurface = player_->GetVideoSurfaceNext();
2910 ASSERT_NE(nullptr, nextVideoSurface);
2911 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(nextVideoSurface));
2912 }
2913
2914 /**
2915 * @tc.name : Test ChangeSurface
2916 * @tc.number: Player_ChangeSurface_006
2917 * @tc.desc : Test video player change surface in playing state
2918 */
2919 HWTEST_F(PlayerUnitTest, Player_ChangeSurface_006, TestSize.Level0)
2920 {
2921 int32_t ret = player_->SetSource(VIDEO_FILE1);
2922 EXPECT_EQ(MSERR_OK, ret);
2923 sptr<Surface> videoSurface = player_->GetVideoSurface();
2924 ASSERT_NE(nullptr, videoSurface);
2925 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2926 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2927 sleep(PLAYING_TIME_2_SEC);
2928 EXPECT_EQ(MSERR_OK, player_->Play());
2929 sleep(PLAYING_TIME_2_SEC);
2930 sptr<Surface> nextVideoSurface = player_->GetVideoSurfaceNext();
2931 ASSERT_NE(nullptr, nextVideoSurface);
2932 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(nextVideoSurface));
2933 }
2934
2935 /**
2936 * @tc.name : Test ChangeSurface
2937 * @tc.number: Player_ChangeSurface_007
2938 * @tc.desc : Test video player change surface in paused state
2939 */
2940 HWTEST_F(PlayerUnitTest, Player_ChangeSurface_007, TestSize.Level0)
2941 {
2942 int32_t ret = player_->SetSource(VIDEO_FILE1);
2943 EXPECT_EQ(MSERR_OK, ret);
2944 sptr<Surface> videoSurface = player_->GetVideoSurface();
2945 ASSERT_NE(nullptr, videoSurface);
2946 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2947 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2948 sleep(PLAYING_TIME_2_SEC);
2949 EXPECT_EQ(MSERR_OK, player_->Play());
2950 sleep(PLAYING_TIME_2_SEC);
2951 EXPECT_EQ(MSERR_OK, player_->Pause());
2952 sleep(PLAYING_TIME_2_SEC);
2953 sptr<Surface> nextVideoSurface = player_->GetVideoSurfaceNext();
2954 ASSERT_NE(nullptr, nextVideoSurface);
2955 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(nextVideoSurface));
2956 }
2957
2958 /**
2959 * @tc.name : Test ChangeSurface
2960 * @tc.number: Player_ChangeSurface_008
2961 * @tc.desc : Test video player change surface in stopped state
2962 */
2963 HWTEST_F(PlayerUnitTest, Player_ChangeSurface_008, TestSize.Level0)
2964 {
2965 int32_t ret = player_->SetSource(VIDEO_FILE1);
2966 EXPECT_EQ(MSERR_OK, ret);
2967 sptr<Surface> videoSurface = player_->GetVideoSurface();
2968 ASSERT_NE(nullptr, videoSurface);
2969 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2970 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2971 sleep(PLAYING_TIME_2_SEC);
2972 EXPECT_EQ(MSERR_OK, player_->Play());
2973 sleep(PLAYING_TIME_2_SEC);
2974 EXPECT_EQ(MSERR_OK, player_->Stop());
2975 sleep(PLAYING_TIME_2_SEC);
2976 sptr<Surface> nextVideoSurface = player_->GetVideoSurfaceNext();
2977 ASSERT_NE(nullptr, nextVideoSurface);
2978 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(nextVideoSurface));
2979 }
2980
2981 /**
2982 * @tc.name : Test ChangeSurface
2983 * @tc.number: Player_ChangeSurface_009
2984 * @tc.desc : Test video player change surface in completed state
2985 */
2986 HWTEST_F(PlayerUnitTest, Player_ChangeSurface_009, TestSize.Level0)
2987 {
2988 int32_t ret = player_->SetSource(VIDEO_FILE1);
2989 EXPECT_EQ(MSERR_OK, ret);
2990 sptr<Surface> videoSurface = player_->GetVideoSurface();
2991 ASSERT_NE(nullptr, videoSurface);
2992 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2993 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2994 sleep(PLAYING_TIME_2_SEC);
2995 EXPECT_EQ(MSERR_OK, player_->Play());
2996 int32_t duration = 0;
2997 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
2998 sleep(PLAYING_TIME_10_SEC);
2999 sptr<Surface> nextVideoSurface = player_->GetVideoSurfaceNext();
3000 ASSERT_NE(nullptr, nextVideoSurface);
3001 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(nextVideoSurface));
3002 }
3003
3004 /**
3005 * @tc.name : Test SetPlaybackSpeed API
3006 * @tc.number: Player_SetPlaybackSpeed_003
3007 * @tc.desc : Test Player SetPlaybackSpeed SPEED_FORWARD_0_50_X
3008 */
3009 HWTEST_F(PlayerUnitTest, Player_SetPlaybackSpeed_003, TestSize.Level0)
3010 {
3011 PlaybackRateMode mode;
3012 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3013 sptr<Surface> videoSurface = player_->GetVideoSurface();
3014 ASSERT_NE(nullptr, videoSurface);
3015 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3016 EXPECT_EQ(MSERR_OK, player_->Prepare());
3017 EXPECT_EQ(MSERR_OK, player_->Play());
3018 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_0_50_X));
3019 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
3020 EXPECT_EQ(SPEED_FORWARD_0_50_X, mode);
3021 }
3022
3023 /**
3024 * @tc.name : Test SetPlaybackSpeed API
3025 * @tc.number: Player_SetPlaybackSpeed_004
3026 * @tc.desc : Test Player SetPlaybackSpeed SPEED_FORWARD_1_50_X
3027 */
3028 HWTEST_F(PlayerUnitTest, Player_SetPlaybackSpeed_004, TestSize.Level0)
3029 {
3030 PlaybackRateMode mode;
3031 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3032 sptr<Surface> videoSurface = player_->GetVideoSurface();
3033 ASSERT_NE(nullptr, videoSurface);
3034 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3035 EXPECT_EQ(MSERR_OK, player_->Prepare());
3036 EXPECT_EQ(MSERR_OK, player_->Play());
3037 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_1_50_X));
3038 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
3039 EXPECT_EQ(SPEED_FORWARD_1_50_X, mode);
3040 }
3041
3042 /**
3043 * @tc.name : Test SetPlaybackSpeed API
3044 * @tc.number: Player_SetPlaybackSpeed_005
3045 * @tc.desc : Test Player SetPlaybackSpeed SPEED_FORWARD_1_50_X
3046 */
3047 HWTEST_F(PlayerUnitTest, Player_SetPlaybackSpeed_005, TestSize.Level0)
3048 {
3049 PlaybackRateMode mode;
3050 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3051 sptr<Surface> videoSurface = player_->GetVideoSurface();
3052 ASSERT_NE(nullptr, videoSurface);
3053 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3054 EXPECT_EQ(MSERR_OK, player_->Prepare());
3055 EXPECT_EQ(MSERR_OK, player_->Play());
3056 int32_t speed = -1;
3057 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(static_cast<OHOS::Media::PlaybackRateMode>(speed)));
3058 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
3059 EXPECT_EQ(-1, mode);
3060 }
3061
3062 /**
3063 * @tc.name : Test SetSurface API
3064 * @tc.number: Player_SetSurface_001
3065 * @tc.desc : Test Player SetSurface->SetSurface
3066 */
3067 HWTEST_F(PlayerUnitTest, Player_SetSurface_001, TestSize.Level0)
3068 {
3069 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3070 sptr<Surface> videoSurface = player_->GetVideoSurface();
3071 ASSERT_NE(nullptr, videoSurface);
3072 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3073 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3074 int32_t ret = player_->PrepareAsync();
3075 if (ret == MSERR_OK) {
3076 PlayFunTest(LOCAL_PLAY);
3077 }
3078 }
3079
3080 /**
3081 * @tc.name : Test AddSubSource
3082 * @tc.number: Player_AddSubSource_001
3083 * @tc.desc : Test Player AddSubSource state machine
3084 */
3085 HWTEST_F(PlayerUnitTest, Player_AddSubSource_001, TestSize.Level0)
3086 {
3087 ASSERT_NE(MSERR_OK, player_->AddSubSource(SUBTITLE_SRT_FIELE, 0, 0));
3088 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "H264_AAC.mp4", 0, 0));
3089 sptr<Surface> videoSurface = player_->GetVideoSurface();
3090 ASSERT_NE(nullptr, videoSurface);
3091 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3092 EXPECT_NE(MSERR_OK, player_->AddSubSource(SUBTITLE_SRT_FIELE)); // Illegal state machine
3093 EXPECT_EQ(MSERR_OK, player_->Prepare());
3094 EXPECT_EQ(MSERR_OK, player_->Play());
3095 EXPECT_NE(SUBTITLE_0_SEC, player_->GetSubtitleText(SUBTITLE_0_SEC));
3096 EXPECT_EQ(MSERR_OK, player_->Pause());
3097 EXPECT_EQ(MSERR_OK, player_->Stop());
3098 EXPECT_EQ(MSERR_OK, player_->Reset());
3099 EXPECT_EQ(MSERR_OK, player_->Release());
3100 }
3101
3102 /**
3103 * @tc.name : Test AddSubSource
3104 * @tc.number: Player_AddSubSource_002
3105 * @tc.desc : Test Player AddSubSource behavior
3106 */
3107 HWTEST_F(PlayerUnitTest, Player_AddSubSource_002, TestSize.Level0)
3108 {
3109 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "H264_AAC.mp4", 0, 0));
3110 sptr<Surface> videoSurface = player_->GetVideoSurface();
3111 ASSERT_NE(nullptr, videoSurface);
3112 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3113 EXPECT_NE(MSERR_OK, player_->AddSubSource(SUBTITLE_SRT_FIELE, 0, 0));
3114 EXPECT_EQ(MSERR_OK, player_->Prepare());
3115 EXPECT_EQ(MSERR_OK, player_->Play());
3116 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_5_SEC, SEEK_CLOSEST));
3117 EXPECT_EQ("", player_->GetSubtitleText(""));
3118 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_CLOSEST));
3119 EXPECT_EQ("", player_->GetSubtitleText(""));
3120 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_5_SEC, SEEK_NEXT_SYNC));
3121 EXPECT_EQ("", player_->GetSubtitleText(""));
3122 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC));
3123 EXPECT_EQ("", player_->GetSubtitleText(""));
3124 int duration = 0;
3125 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
3126 EXPECT_EQ(MSERR_OK, player_->Play());
3127 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
3128 EXPECT_EQ("", player_->GetSubtitleText(""));
3129 }
3130
3131 /**
3132 * @tc.name : Test PlayerServer Stop
3133 * @tc.number: PlayerServer_Stop_001
3134 * @tc.desc : Test PlayerServer Stop on different status
3135 */
3136 HWTEST_F(PlayerUnitTest, PlayerServer_Stop_001, TestSize.Level0)
3137 {
3138 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "H264_AAC.mp4", 0, 0));
3139 sptr<Surface> videoSurface = player_->GetVideoSurface();
3140 ASSERT_NE(nullptr, videoSurface);
3141 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3142 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3143 EXPECT_EQ(MSERR_OK, player_->Stop());
3144 }
3145
3146 /**
3147 * @tc.name : Test PlayerServer Stop
3148 * @tc.number: PlayerServer_Stop_002
3149 * @tc.desc : Test PlayerServer Stop on different status
3150 */
3151 HWTEST_F(PlayerUnitTest, PlayerServer_Stop_002, TestSize.Level0)
3152 {
3153 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "H264_AAC.mp4", 0, 0));
3154 sptr<Surface> videoSurface = player_->GetVideoSurface();
3155 ASSERT_NE(nullptr, videoSurface);
3156 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3157 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3158 EXPECT_EQ(MSERR_OK, player_->Play());
3159 EXPECT_TRUE(player_->IsPlaying());
3160 EXPECT_EQ(MSERR_OK, player_->Stop());
3161 }
3162
3163 /**
3164 * @tc.name : Test PlayerServer Stop
3165 * @tc.number: PlayerServer_Stop_003
3166 * @tc.desc : Test PlayerServer Stop on different status
3167 */
3168 HWTEST_F(PlayerUnitTest, PlayerServer_Stop_003, TestSize.Level0)
3169 {
3170 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "H264_AAC.mp4", 0, 0));
3171 sptr<Surface> videoSurface = player_->GetVideoSurface();
3172 int32_t duration = 0;
3173 ASSERT_NE(nullptr, videoSurface);
3174 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3175 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3176 EXPECT_EQ(MSERR_OK, player_->Play());
3177 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
3178 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_NEXT_SYNC));
3179 EXPECT_TRUE(player_->IsPlaying());
3180 sleep(PLAYING_TIME_2_SEC);
3181 EXPECT_EQ(MSERR_OK, player_->Stop());
3182 }
3183
3184 /**
3185 * @tc.name : Test PlayerServer Stop
3186 * @tc.number: PlayerServer_Stop_004
3187 * @tc.desc : Test PlayerServer Stop on different status
3188 */
3189 HWTEST_F(PlayerUnitTest, PlayerServer_Stop_004, TestSize.Level0)
3190 {
3191 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "H264_AAC.mp4", 0, 0));
3192 sptr<Surface> videoSurface = player_->GetVideoSurface();
3193 ASSERT_NE(nullptr, videoSurface);
3194 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3195 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3196 EXPECT_EQ(MSERR_OK, player_->Play());
3197 EXPECT_TRUE(player_->IsPlaying());
3198 EXPECT_EQ(MSERR_OK, player_->Pause());
3199 EXPECT_EQ(MSERR_OK, player_->Stop());
3200 }
3201
3202 /**
3203 * @tc.name : Test PlayerServer Stop
3204 * @tc.number: PlayerServer_Stop_005
3205 * @tc.desc : Test PlayerServer Stop on different status
3206 */
3207 HWTEST_F(PlayerUnitTest, PlayerServer_Stop_005, TestSize.Level0)
3208 {
3209 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "H264_AAC.mp4", 0, 0));
3210 sptr<Surface> videoSurface = player_->GetVideoSurface();
3211 ASSERT_NE(nullptr, videoSurface);
3212 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3213 EXPECT_NE(MSERR_OK, player_->Stop());
3214 }
3215
3216 /**
3217 * @tc.name : Test SetParameter Stop
3218 * @tc.number: Player_SetParameter_001
3219 * @tc.desc : Test Player SetParameter
3220 */
3221 HWTEST_F(PlayerUnitTest, Player_SetParameter_001, TestSize.Level0)
3222 {
3223 std::vector<Format> videoTrack;
3224 std::vector<Format> audioTrack;
3225 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3226 sptr<Surface> videoSurface = player_->GetVideoSurface();
3227 ASSERT_NE(nullptr, videoSurface);
3228 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3229 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3230 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
3231 Format format;
3232 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
3233 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
3234 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
3235 }
3236
3237 /**
3238 * @tc.name : Test SetParameter Stop
3239 * @tc.number: Player_SetParameter_002
3240 * @tc.desc : Test Player SetParameter
3241 */
3242 HWTEST_F(PlayerUnitTest, Player_SetParameter_002, TestSize.Level0)
3243 {
3244 std::vector<Format> videoTrack;
3245 std::vector<Format> audioTrack;
3246 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3247 sptr<Surface> videoSurface = player_->GetVideoSurface();
3248 ASSERT_NE(nullptr, videoSurface);
3249 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3250 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3251 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
3252 Format format;
3253 int32_t contentType = 1;
3254 int32_t scaleType = 1;
3255 int32_t streamUsage = 1;
3256 int32_t rendererFlags = 1;
3257 int32_t audioInterruptMode = 1;
3258 format.PutIntValue(PlayerKeys::VIDEO_SCALE_TYPE, scaleType);
3259 format.PutIntValue(PlayerKeys::CONTENT_TYPE, contentType);
3260 format.PutIntValue(PlayerKeys::STREAM_USAGE, streamUsage);
3261 format.PutIntValue(PlayerKeys::RENDERER_FLAG, rendererFlags);
3262 format.PutIntValue(PlayerKeys::AUDIO_INTERRUPT_MODE, audioInterruptMode);
3263 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
3264 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
3265 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
3266 }
3267
3268 /**
3269 * @tc.name : Test SetParameter Stop
3270 * @tc.number: Player_SetParameter_003
3271 * @tc.desc : Test Player SetParameter
3272 */
3273 HWTEST_F(PlayerUnitTest, Player_SetParameter_003, TestSize.Level0)
3274 {
3275 Format formatScaleType;
3276 Format formatContentType;
3277 Format formatStreamUsage;
3278 Format formatStreamUsageAndContentType;
3279 Format formatInterruptMode;
3280 std::vector<Format> videoTrack;
3281 std::vector<Format> audioTrack;
3282 int32_t contentType = 1;
3283 int32_t scaleType = 1;
3284 int32_t streamUsage = 1;
3285 int32_t audioInterruptMode = 1;
3286 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3287 sptr<Surface> videoSurface = player_->GetVideoSurface();
3288 ASSERT_NE(nullptr, videoSurface);
3289 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3290 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3291 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
3292
3293 formatScaleType.PutIntValue(PlayerKeys::VIDEO_SCALE_TYPE, scaleType);
3294 EXPECT_EQ(MSERR_OK, player_->SetParameter(formatScaleType));
3295
3296 formatContentType.PutIntValue(PlayerKeys::CONTENT_TYPE, contentType);
3297 EXPECT_EQ(MSERR_OK, player_->SetParameter(formatContentType));
3298
3299 formatStreamUsage.PutIntValue(PlayerKeys::STREAM_USAGE, streamUsage);
3300 EXPECT_EQ(MSERR_OK, player_->SetParameter(formatStreamUsage));
3301
3302 formatStreamUsageAndContentType.PutIntValue(PlayerKeys::CONTENT_TYPE, contentType);
3303 formatStreamUsageAndContentType.PutIntValue(PlayerKeys::STREAM_USAGE, streamUsage);
3304 EXPECT_EQ(MSERR_OK, player_->SetParameter(formatStreamUsageAndContentType));
3305
3306 formatInterruptMode.PutIntValue(PlayerKeys::AUDIO_INTERRUPT_MODE, audioInterruptMode);
3307 EXPECT_EQ(MSERR_OK, player_->SetParameter(formatInterruptMode));
3308
3309 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
3310 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
3311 }
3312
3313 /**
3314 * @tc.name : Test Player state machine, invalid operation on stopped
3315 * @tc.number: Player_State_Machine_001
3316 * @tc.desc : Test Player state machine, invalid operation on stopped
3317 */
3318 HWTEST_F(PlayerUnitTest, Player_State_Machine_001, TestSize.Level0)
3319 {
3320 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3321 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3322 ASSERT_EQ(MSERR_OK, player_->PrepareAsync());
3323 sleep(1);
3324 ASSERT_EQ(PlayerStates::PLAYER_PREPARED, player_->GetState());
3325 int32_t duration = 0;
3326 ASSERT_EQ(MSERR_OK, player_->GetDuration(duration));
3327 ASSERT_EQ(MSERR_OK, player_->Play());
3328 sleep(1);
3329 ASSERT_EQ(true, player_->IsPlaying());
3330 ASSERT_EQ(PlayerStates::PLAYER_STARTED, player_->GetState());
3331 ASSERT_EQ(MSERR_OK, player_->Stop());
3332 sleep(1);
3333 ASSERT_EQ(PlayerStates::PLAYER_STOPPED, player_->GetState());
3334 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Pause());
3335 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Play());
3336 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3337 }
3338
3339 /**
3340 * @tc.name : Test Player state machine, invalid operation on error
3341 * @tc.number: Player_State_Machine_002
3342 * @tc.desc : Test Player state machine, invalid operation on error
3343 */
3344 HWTEST_F(PlayerUnitTest, Player_State_Machine_002, TestSize.Level0)
3345 {
3346 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3347 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "1kb.mp3"));
3348 ASSERT_NE(MSERR_OK, player_->PrepareAsync());
3349 sleep(1);
3350 ASSERT_EQ(PlayerStates::PLAYER_STATE_ERROR, player_->GetState());
3351 int32_t duration = 0;
3352 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->GetDuration(duration));
3353 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Seek(0, PlayerSeekMode::SEEK_NEXT_SYNC));
3354 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Play());
3355 sleep(1);
3356 ASSERT_EQ(false, player_->IsPlaying());
3357 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Stop());
3358 sleep(1);
3359 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Pause());
3360 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Play());
3361 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3362 ASSERT_EQ(MSERR_OK, player_->Reset());
3363 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3364 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Reset());
3365 }
3366
3367 /**
3368 * @tc.name : Test Player state machine, invalid operation on idle
3369 * @tc.number: Player_State_Machine_003
3370 * @tc.desc : Test Player state machine, invalid operation on idle
3371 */
3372 HWTEST_F(PlayerUnitTest, Player_State_Machine_003, TestSize.Level0)
3373 {
3374 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3375 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->PrepareAsync());
3376 sleep(1);
3377 int32_t duration = 0;
3378 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->GetDuration(duration));
3379 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Play());
3380 sleep(1);
3381 ASSERT_EQ(false, player_->IsPlaying());
3382 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3383 ASSERT_EQ(MSERR_NO_MEMORY, player_->Seek(0, PlayerSeekMode::SEEK_NEXT_SYNC));
3384 sleep(1);
3385 ASSERT_EQ(false, player_->IsPlaying());
3386 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Pause());
3387 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Stop());
3388 }
3389
3390 /**
3391 * @tc.name : Test Player state machine, invalid operation on initialized
3392 * @tc.number: Player_State_Machine_004
3393 * @tc.desc : Test Player state machine, invalid operation on initialized
3394 */
3395 HWTEST_F(PlayerUnitTest, Player_State_Machine_004, TestSize.Level0)
3396 {
3397 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3398 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3399 sleep(1);
3400 int32_t duration = 0;
3401 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->GetDuration(duration));
3402 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Seek(duration, PlayerSeekMode::SEEK_NEXT_SYNC));
3403 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Play());
3404 sleep(1);
3405 ASSERT_EQ(false, player_->IsPlaying());
3406 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Stop());
3407 sleep(1);
3408 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Pause());
3409 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Play());
3410 }
3411
3412 /**
3413 * @tc.name : Test Player state machine, invalid operation on prepared
3414 * @tc.number: Player_State_Machine_005
3415 * @tc.desc : Test Player state machine, invalid operation on prepared
3416 */
3417 HWTEST_F(PlayerUnitTest, Player_State_Machine_005, TestSize.Level0)
3418 {
3419 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3420 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3421 ASSERT_EQ(MSERR_OK, player_->PrepareAsync());
3422 sleep(1);
3423 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3424 int32_t duration = 0;
3425 ASSERT_EQ(MSERR_OK, player_->GetDuration(duration));
3426 ASSERT_EQ(MSERR_OK, player_->Seek(duration, PlayerSeekMode::SEEK_NEXT_SYNC));
3427 ASSERT_EQ(PlayerStates::PLAYER_PREPARED, player_->GetState());
3428 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Pause());
3429 sleep(1);
3430 ASSERT_EQ(false, player_->IsPlaying());
3431 ASSERT_EQ(MSERR_OK, player_->Stop());
3432 }
3433
3434 /**
3435 * @tc.name : Test Player state machine, invalid operation on playing
3436 * @tc.number: Player_State_Machine_006
3437 * @tc.desc : Test Player state machine, invalid operation on playing
3438 */
3439 HWTEST_F(PlayerUnitTest, Player_State_Machine_006, TestSize.Level0)
3440 {
3441 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3442 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3443 ASSERT_EQ(MSERR_OK, player_->PrepareAsync());
3444 ASSERT_EQ(MSERR_OK, player_->SetLooping(true));
3445 sleep(1);
3446 int32_t duration = 0;
3447 ASSERT_EQ(MSERR_OK, player_->GetDuration(duration));
3448 ASSERT_EQ(MSERR_OK, player_->Play());
3449 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3450 ASSERT_EQ(MSERR_OK, player_->Seek(duration, PlayerSeekMode::SEEK_NEXT_SYNC));
3451 sleep(1);
3452 ASSERT_EQ(true, player_->IsPlaying());
3453 ASSERT_EQ(MSERR_OK, player_->Stop());
3454 }
3455
3456 /**
3457 * @tc.name : Test Player state machine, invalid operation on completed
3458 * @tc.number: Player_State_Machine_007
3459 * @tc.desc : Test Player state machine, invalid operation on completed
3460 */
3461 HWTEST_F(PlayerUnitTest, Player_State_Machine_007, TestSize.Level0)
3462 {
3463 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3464 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3465 ASSERT_EQ(MSERR_OK, player_->PrepareAsync());
3466 sleep(1);
3467 int32_t duration = 0;
3468 ASSERT_EQ(MSERR_OK, player_->GetDuration(duration));
3469 ASSERT_EQ(MSERR_OK, player_->Seek(duration, PlayerSeekMode::SEEK_NEXT_SYNC));
3470 ASSERT_EQ(MSERR_OK, player_->Play());
3471 sleep(1);
3472 ASSERT_EQ(false, player_->IsPlaying());
3473 ASSERT_EQ(PlayerStates::PLAYER_PLAYBACK_COMPLETE, player_->GetState());
3474 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Pause());
3475 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->PrepareAsync());
3476 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3477 }
3478
3479 /**
3480 * @tc.name : Test Player state machine, invalid operation on paused
3481 * @tc.number: Player_State_Machine_008
3482 * @tc.desc : Test Player state machine, invalid operation on paused
3483 */
3484 HWTEST_F(PlayerUnitTest, Player_State_Machine_008, TestSize.Level0)
3485 {
3486 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3487 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3488 ASSERT_EQ(MSERR_OK, player_->PrepareAsync());
3489 sleep(1);
3490 int32_t duration = 0;
3491 ASSERT_EQ(MSERR_OK, player_->GetDuration(duration));
3492 ASSERT_EQ(MSERR_OK, player_->Play());
3493 ASSERT_EQ(MSERR_OK, player_->Pause());
3494 sleep(1);
3495 ASSERT_EQ(PlayerStates::PLAYER_PAUSED, player_->GetState());
3496 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3497 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->PrepareAsync());
3498 }
3499
3500 /**
3501 * @tc.name : Test SetPlayRange [0, 600]
3502 * @tc.number: Player_SetPlayRange_001
3503 * @tc.desc : Test Player SetPlayRange interface
3504 */
3505 HWTEST_F(PlayerUnitTest, Player_SetPlayRange_001, TestSize.Level0)
3506 {
3507 int32_t duration = 0;
3508 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3509 sptr<Surface> videoSurface = player_->GetVideoSurface();
3510 ASSERT_NE(nullptr, videoSurface);
3511 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3512 EXPECT_EQ(MSERR_OK, player_->SetPlayRange(0, 600));
3513 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3514 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
3515 EXPECT_EQ(MSERR_OK, player_->Play());
3516 EXPECT_TRUE(player_->IsPlaying());
3517 EXPECT_EQ(MSERR_OK, player_->Pause());
3518 EXPECT_EQ(MSERR_OK, player_->SetPlayRange(0, duration));
3519 EXPECT_EQ(MSERR_OK, player_->Play());
3520 EXPECT_EQ(MSERR_OK, player_->Pause());
3521 }
3522
3523 /**
3524 * @tc.name : Test SetPlayRange [0, 600]
3525 * @tc.number: Player_SetPlayRange_002
3526 * @tc.desc : Test Player SetPlayRange interface
3527 */
3528 HWTEST_F(PlayerUnitTest, Player_SetPlayRange_002, TestSize.Level0)
3529 {
3530 int32_t duration = 0;
3531 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3532 sptr<Surface> videoSurface = player_->GetVideoSurface();
3533 ASSERT_NE(nullptr, videoSurface);
3534 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3535 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3536 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
3537 EXPECT_EQ(MSERR_OK, player_->Play());
3538 EXPECT_TRUE(player_->IsPlaying());
3539 EXPECT_EQ(MSERR_OK, player_->Pause());
3540 EXPECT_EQ(MSERR_OK, player_->SetPlayRange(0, 600));
3541 EXPECT_EQ(MSERR_OK, player_->Play());
3542 EXPECT_EQ(MSERR_OK, player_->Pause());
3543 }
3544
3545 /**
3546 * @tc.name : Test SetPlayRange [-2, -1]
3547 * @tc.number: Player_SetPlayRange_003
3548 * @tc.desc : Test Player SetPlayRange interface
3549 */
3550 HWTEST_F(PlayerUnitTest, Player_SetPlayRange_003, TestSize.Level0)
3551 {
3552 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3553 sptr<Surface> videoSurface = player_->GetVideoSurface();
3554 ASSERT_NE(nullptr, videoSurface);
3555 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3556 ASSERT_NE(MSERR_OK, player_->SetPlayRange(-2, -1));
3557 }
3558
3559 /**
3560 * @tc.name : Test SetPlayRange [-1, -2]
3561 * @tc.number: Player_SetPlayRange_004
3562 * @tc.desc : Test Player SetPlayRange interface
3563 */
3564 HWTEST_F(PlayerUnitTest, Player_SetPlayRange_004, TestSize.Level0)
3565 {
3566 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3567 sptr<Surface> videoSurface = player_->GetVideoSurface();
3568 ASSERT_NE(nullptr, videoSurface);
3569 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3570 ASSERT_NE(MSERR_OK, player_->SetPlayRange(-1, -2));
3571 }
3572
3573 /**
3574 * @tc.name : Test SetPlayRange [-1, 0]
3575 * @tc.number: Player_SetPlayRange_005
3576 * @tc.desc : Test Player SetPlayRange interface
3577 */
3578 HWTEST_F(PlayerUnitTest, Player_SetPlayRange_005, TestSize.Level0)
3579 {
3580 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3581 sptr<Surface> videoSurface = player_->GetVideoSurface();
3582 ASSERT_NE(nullptr, videoSurface);
3583 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3584 ASSERT_NE(MSERR_OK, player_->SetPlayRange(-1, 0));
3585 }
3586
3587 /**
3588 * @tc.name : Test SetPlayRange [-1, -1]
3589 * @tc.number: Player_SetPlayRange_006
3590 * @tc.desc : Test Player SetPlayRange interface
3591 */
3592 HWTEST_F(PlayerUnitTest, Player_SetPlayRange_006, TestSize.Level0)
3593 {
3594 int32_t duration = 0;
3595 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3596 sptr<Surface> videoSurface = player_->GetVideoSurface();
3597 ASSERT_NE(nullptr, videoSurface);
3598 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3599 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3600 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
3601 EXPECT_EQ(MSERR_OK, player_->Play());
3602 EXPECT_TRUE(player_->IsPlaying());
3603 EXPECT_EQ(MSERR_OK, player_->Pause());
3604 EXPECT_EQ(MSERR_OK, player_->SetPlayRange(-1, 600));
3605 EXPECT_EQ(MSERR_OK, player_->SetPlayRange(-1, -1));
3606 EXPECT_EQ(MSERR_OK, player_->Play());
3607 EXPECT_EQ(MSERR_OK, player_->Pause());
3608 }
3609
3610 /**
3611 * @tc.name : Test SetPlayRange [100, 2]
3612 * @tc.number: Player_SetPlayRange_007
3613 * @tc.desc : Test Player SetPlayRange interface
3614 */
3615 HWTEST_F(PlayerUnitTest, Player_SetPlayRange_007, TestSize.Level0)
3616 {
3617 int32_t duration = 0;
3618 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3619 sptr<Surface> videoSurface = player_->GetVideoSurface();
3620 ASSERT_NE(nullptr, videoSurface);
3621 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3622 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3623 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
3624 EXPECT_EQ(MSERR_OK, player_->Play());
3625 EXPECT_TRUE(player_->IsPlaying());
3626 EXPECT_EQ(MSERR_OK, player_->Pause());
3627 ASSERT_NE(MSERR_OK, player_->SetPlayRange(100, 2));
3628 }
3629
3630 /**
3631 * @tc.name : Test SetPlayRange [duration + 1, duration + 2]
3632 * @tc.number: Player_SetPlayRange_008
3633 * @tc.desc : Test Player SetPlayRange interface
3634 */
3635 HWTEST_F(PlayerUnitTest, Player_SetPlayRange_008, TestSize.Level0)
3636 {
3637 int32_t duration = 0;
3638 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3639 sptr<Surface> videoSurface = player_->GetVideoSurface();
3640 ASSERT_NE(nullptr, videoSurface);
3641 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3642 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3643 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
3644 EXPECT_EQ(MSERR_OK, player_->Play());
3645 EXPECT_TRUE(player_->IsPlaying());
3646 EXPECT_EQ(MSERR_OK, player_->Pause());
3647 int32_t start = duration + 1;
3648 int32_t end = duration + 2;
3649 ASSERT_NE(MSERR_OK, player_->SetPlayRange(start, end));
3650 }
3651
3652 /**
3653 * @tc.name : Test SetPlayRange [100, duration + 1]
3654 * @tc.number: Player_SetPlayRange_009
3655 * @tc.desc : Test Player SetPlayRange interface
3656 */
3657 HWTEST_F(PlayerUnitTest, Player_SetPlayRange_009, TestSize.Level0)
3658 {
3659 int32_t duration = 0;
3660 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3661 sptr<Surface> videoSurface = player_->GetVideoSurface();
3662 ASSERT_NE(nullptr, videoSurface);
3663 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3664 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3665 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
3666 EXPECT_EQ(MSERR_OK, player_->Play());
3667 EXPECT_TRUE(player_->IsPlaying());
3668 EXPECT_EQ(MSERR_OK, player_->Pause());
3669 int32_t end = duration + 1;
3670 ASSERT_NE(MSERR_OK, player_->SetPlayRange(100, end));
3671 }
3672
3673 /**
3674 * @tc.name : Test SetPlayRange [10035, 10037]
3675 * @tc.number: Player_SetPlayRange_010
3676 * @tc.desc : Test Player SetPlayRange interface, duration 10034
3677 */
3678 HWTEST_F(PlayerUnitTest, Player_SetPlayRange_010, TestSize.Level0)
3679 {
3680 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3681 sptr<Surface> videoSurface = player_->GetVideoSurface();
3682 ASSERT_NE(nullptr, videoSurface);
3683 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3684 EXPECT_EQ(MSERR_OK, player_->SetPlayRange(10035, 10037));
3685 ASSERT_NE(MSERR_OK, player_->PrepareAsync());
3686 }
3687
3688 /**
3689 * @tc.name : Test SetPlayRange [100, 10037]
3690 * @tc.number: Player_SetPlayRange_011
3691 * @tc.desc : Test Player SetPlayRange interface, duration 10034
3692 */
3693 HWTEST_F(PlayerUnitTest, Player_SetPlayRange_011, TestSize.Level0)
3694 {
3695 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3696 sptr<Surface> videoSurface = player_->GetVideoSurface();
3697 ASSERT_NE(nullptr, videoSurface);
3698 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3699 EXPECT_EQ(MSERR_OK, player_->SetPlayRange(100, 10037));
3700 ASSERT_NE(MSERR_OK, player_->PrepareAsync());
3701 }
3702
3703 /**
3704 * @tc.name : Test SeekContinuous in prepared
3705 * @tc.number: Player_SeekContinuous_001
3706 * @tc.desc : Test Player SeekContinuous
3707 */
3708 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_001, TestSize.Level0)
3709 {
3710 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3711 sptr<Surface> videoSurface = player_->GetVideoSurface();
3712 ASSERT_NE(nullptr, videoSurface);
3713 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3714 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3715 for (int i = 0; i < 10; i++) {
3716 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
3717 usleep(SEEK_CONTINUOUS_WAIT_US);
3718 }
3719 EXPECT_EQ(MSERR_OK, player_->Play());
3720 }
3721
3722 /**
3723 * @tc.name : Test SeekContinuous in playing
3724 * @tc.number: Player_SeekContinuous_002
3725 * @tc.desc : Test Player SeekContinuous
3726 */
3727 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_002, TestSize.Level0)
3728 {
3729 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3730 sptr<Surface> videoSurface = player_->GetVideoSurface();
3731 ASSERT_NE(nullptr, videoSurface);
3732 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3733 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3734 EXPECT_EQ(MSERR_OK, player_->Play());
3735 sleep(PLAYING_TIME_2_SEC);
3736 for (int i = 0; i < 30; i++) {
3737 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
3738 usleep(SEEK_CONTINUOUS_WAIT_US);
3739 }
3740 EXPECT_EQ(MSERR_OK, player_->Play());
3741 EXPECT_EQ(MSERR_OK, player_->Stop());
3742 }
3743
3744 /**
3745 * @tc.name : Test SeekContinuous in paused
3746 * @tc.number: Player_SeekContinuous_003
3747 * @tc.desc : Test Player SeekContinuous
3748 */
3749 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_003, TestSize.Level0)
3750 {
3751 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3752 sptr<Surface> videoSurface = player_->GetVideoSurface();
3753 ASSERT_NE(nullptr, videoSurface);
3754 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3755 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3756 EXPECT_EQ(MSERR_OK, player_->Play());
3757 sleep(PLAYING_TIME_2_SEC);
3758 EXPECT_EQ(MSERR_OK, player_->Pause());
3759 for (int i = 0; i < 30; i++) {
3760 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
3761 usleep(SEEK_CONTINUOUS_WAIT_US);
3762 }
3763 EXPECT_EQ(MSERR_OK, player_->Play());
3764 EXPECT_EQ(MSERR_OK, player_->Stop());
3765 }
3766
3767 /**
3768 * @tc.name : Test SeekContinuous in completed
3769 * @tc.number: Player_SeekContinuous_004
3770 * @tc.desc : Test Player SeekContinuous
3771 */
3772 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_004, TestSize.Level0)
3773 {
3774 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3775 sptr<Surface> videoSurface = player_->GetVideoSurface();
3776 ASSERT_NE(nullptr, videoSurface);
3777 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3778 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3779 EXPECT_EQ(MSERR_OK, player_->Play());
3780 sleep(PLAYING_TIME_2_SEC);
3781 EXPECT_EQ(MSERR_OK, player_->Seek(9000, SEEK_PREVIOUS_SYNC));
3782 sleep(PLAYING_TIME_10_SEC);
3783 for (int i = 0; i < 30; i++) {
3784 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
3785 usleep(SEEK_CONTINUOUS_WAIT_US);
3786 }
3787 EXPECT_EQ(MSERR_OK, player_->Play());
3788 EXPECT_EQ(MSERR_OK, player_->Stop());
3789 }
3790
3791 /**
3792 * @tc.name : Test SeekContinuous backward
3793 * @tc.number: Player_SeekContinuous_005
3794 * @tc.desc : Test Player SeekContinuous
3795 */
3796 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_005, TestSize.Level0)
3797 {
3798 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3799 sptr<Surface> videoSurface = player_->GetVideoSurface();
3800 ASSERT_NE(nullptr, videoSurface);
3801 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3802 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3803 EXPECT_EQ(MSERR_OK, player_->Play());
3804 sleep(PLAYING_TIME_2_SEC);
3805 for (int i = 0; i < 30; i++) {
3806 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
3807 usleep(SEEK_CONTINUOUS_WAIT_US);
3808 }
3809 EXPECT_EQ(MSERR_OK, player_->Play());
3810 EXPECT_EQ(MSERR_OK, player_->Stop());
3811 }
3812
3813 /**
3814 * @tc.name : Test SeekContinuous forward and backward
3815 * @tc.number: Player_SeekContinuous_006
3816 * @tc.desc : Test Player SeekContinuous
3817 */
3818 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_006, TestSize.Level0)
3819 {
3820 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3821 sptr<Surface> videoSurface = player_->GetVideoSurface();
3822 ASSERT_NE(nullptr, videoSurface);
3823 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3824 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3825 EXPECT_EQ(MSERR_OK, player_->Play());
3826 sleep(PLAYING_TIME_2_SEC);
3827 for (int i = 0; i < 30; i++) {
3828 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
3829 usleep(SEEK_CONTINUOUS_WAIT_US);
3830 }
3831 for (int i = 0; i < 30; i++) {
3832 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
3833 usleep(SEEK_CONTINUOUS_WAIT_US);
3834 }
3835 EXPECT_EQ(MSERR_OK, player_->Play());
3836 EXPECT_EQ(MSERR_OK, player_->Stop());
3837 }
3838
3839 /**
3840 * @tc.name : Test SetPlaybackSpeed API
3841 * @tc.number: Player_SetPlaybackSpeed_006
3842 * @tc.desc : Test Player SetPlaybackSpeed SPEED_FORWARD_3_00_X
3843 */
3844 HWTEST_F(PlayerUnitTest, Player_SetPlaybackSpeed_006, TestSize.Level0)
3845 {
3846 PlaybackRateMode mode;
3847 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3848 sptr<Surface> videoSurface = player_->GetVideoSurface();
3849 ASSERT_NE(nullptr, videoSurface);
3850 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3851 EXPECT_EQ(MSERR_OK, player_->Prepare());
3852 EXPECT_EQ(MSERR_OK, player_->Play());
3853 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_3_00_X));
3854 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
3855 EXPECT_EQ(SPEED_FORWARD_3_00_X, mode);
3856 }
3857
3858 /**
3859 * @tc.name : Test SetMaxAmplitudeCbStatus API
3860 * @tc.number: Player_SetMaxAmplitudeCbStatus_001
3861 * @tc.desc : Test Player SetMaxAmplitudeCbStatus status on before prepare
3862 */
3863 HWTEST_F(PlayerUnitTest, Player_SetMaxAmplitudeCbStatus_001, TestSize.Level0)
3864 {
3865 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3866 sptr<Surface> videoSurface = player_->GetVideoSurface();
3867 ASSERT_NE(nullptr, videoSurface);
3868 EXPECT_EQ(MSERR_OK, player_->SetMaxAmplitudeCbStatus(true));
3869 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3870 EXPECT_EQ(MSERR_OK, player_->Prepare());
3871 EXPECT_EQ(MSERR_OK, player_->Play());
3872 }
3873
3874 /**
3875 * @tc.name : Test SetMaxAmplitudeCbStatus API
3876 * @tc.number: Player_SetMaxAmplitudeCbStatus_002
3877 * @tc.desc : Test Player SetMaxAmplitudeCbStatus status on after prepare
3878 */
3879 HWTEST_F(PlayerUnitTest, Player_SetMaxAmplitudeCbStatus_002, TestSize.Level0)
3880 {
3881 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3882 sptr<Surface> videoSurface = player_->GetVideoSurface();
3883 ASSERT_NE(nullptr, videoSurface);
3884 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3885 EXPECT_EQ(MSERR_OK, player_->Prepare());
3886 EXPECT_EQ(MSERR_OK, player_->SetMaxAmplitudeCbStatus(true));
3887 EXPECT_EQ(MSERR_OK, player_->Play());
3888 }
3889
3890 /**
3891 * @tc.name : Test SetMaxAmplitudeCbStatus API
3892 * @tc.number: Player_SetMaxAmplitudeCbStatus_003
3893 * @tc.desc : Test Player SetMaxAmplitudeCbStatus status off before prepare
3894 */
3895 HWTEST_F(PlayerUnitTest, Player_SetMaxAmplitudeCbStatus_003, TestSize.Level0)
3896 {
3897 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3898 sptr<Surface> videoSurface = player_->GetVideoSurface();
3899 ASSERT_NE(nullptr, videoSurface);
3900 EXPECT_EQ(MSERR_OK, player_->SetMaxAmplitudeCbStatus(false));
3901 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3902 EXPECT_EQ(MSERR_OK, player_->Prepare());
3903 EXPECT_EQ(MSERR_OK, player_->Play());
3904 }
3905
3906 /**
3907 * @tc.name : Test SetMaxAmplitudeCbStatus API
3908 * @tc.number: Player_SetMaxAmplitudeCbStatus_004
3909 * @tc.desc : Test Player SetMaxAmplitudeCbStatus status off after prepare
3910 */
3911 HWTEST_F(PlayerUnitTest, Player_SetMaxAmplitudeCbStatus_004, TestSize.Level0)
3912 {
3913 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3914 sptr<Surface> videoSurface = player_->GetVideoSurface();
3915 ASSERT_NE(nullptr, videoSurface);
3916 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3917 EXPECT_EQ(MSERR_OK, player_->Prepare());
3918 EXPECT_EQ(MSERR_OK, player_->SetMaxAmplitudeCbStatus(false));
3919 EXPECT_EQ(MSERR_OK, player_->Play());
3920 }
3921
3922 /**
3923 * @tc.name : Test SetDeviceChangeCbStatus API
3924 * @tc.number: Player_SetDeviceChangeCbStatus_001
3925 * @tc.desc : Test Player SetDeviceChangeCbStatus status on before prepare
3926 */
3927 HWTEST_F(PlayerUnitTest, Player_SetDeviceChangeCbStatus_001, TestSize.Level0)
3928 {
3929 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3930 sptr<Surface> videoSurface = player_->GetVideoSurface();
3931 ASSERT_NE(nullptr, videoSurface);
3932 EXPECT_EQ(MSERR_OK, player_->SetDeviceChangeCbStatus(true));
3933 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3934 EXPECT_EQ(MSERR_OK, player_->Prepare());
3935 EXPECT_EQ(MSERR_OK, player_->Play());
3936 }
3937
3938 /**
3939 * @tc.name : Test SetDeviceChangeCbStatus API
3940 * @tc.number: Player_SetDeviceChangeCbStatus_002
3941 * @tc.desc : Test Player SetDeviceChangeCbStatus status on after prepare
3942 */
3943 HWTEST_F(PlayerUnitTest, Player_SetDeviceChangeCbStatus_002, TestSize.Level0)
3944 {
3945 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3946 sptr<Surface> videoSurface = player_->GetVideoSurface();
3947 ASSERT_NE(nullptr, videoSurface);
3948 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3949 EXPECT_EQ(MSERR_OK, player_->Prepare());
3950 EXPECT_EQ(MSERR_OK, player_->SetDeviceChangeCbStatus(true));
3951 EXPECT_EQ(MSERR_OK, player_->Play());
3952 }
3953
3954 /**
3955 * @tc.name : Test SetDeviceChangeCbStatus API
3956 * @tc.number: Player_SetDeviceChangeCbStatus_003
3957 * @tc.desc : Test Player SetDeviceChangeCbStatus status off before prepare
3958 */
3959 HWTEST_F(PlayerUnitTest, Player_SetDeviceChangeCbStatus_003, TestSize.Level0)
3960 {
3961 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3962 sptr<Surface> videoSurface = player_->GetVideoSurface();
3963 ASSERT_NE(nullptr, videoSurface);
3964 EXPECT_EQ(MSERR_OK, player_->SetDeviceChangeCbStatus(false));
3965 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3966 EXPECT_EQ(MSERR_OK, player_->Prepare());
3967 EXPECT_EQ(MSERR_OK, player_->Play());
3968 }
3969
3970 /**
3971 * @tc.name : Test SetDeviceChangeCbStatus API
3972 * @tc.number: Player_SetDeviceChangeCbStatus_004
3973 * @tc.desc : Test Player SetDeviceChangeCbStatus status off after prepare
3974 */
3975 HWTEST_F(PlayerUnitTest, Player_SetDeviceChangeCbStatus_004, TestSize.Level0)
3976 {
3977 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3978 sptr<Surface> videoSurface = player_->GetVideoSurface();
3979 ASSERT_NE(nullptr, videoSurface);
3980 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3981 EXPECT_EQ(MSERR_OK, player_->Prepare());
3982 EXPECT_EQ(MSERR_OK, player_->SetDeviceChangeCbStatus(false));
3983 EXPECT_EQ(MSERR_OK, player_->Play());
3984 }
3985
3986 /**
3987 * @tc.name : Test SetPlaybackStrategy
3988 * @tc.number: Player_SetPlaybackStrategy_001
3989 * @tc.desc : Test Player SetPlaybackStrategy
3990 */
3991 HWTEST_F(PlayerUnitTest, Player_SetPlaybackStrategy_001, TestSize.Level0)
3992 {
3993 AVPlayStrategy playbackStrategy = {
3994 .mutedMediaType = OHOS::Media::MediaType::MEDIA_TYPE_AUD
3995 };
3996 ASSERT_NE(MSERR_OK, player_->SetPlaybackStrategy(playbackStrategy));
3997 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3998 ASSERT_EQ(MSERR_OK, player_->SetPlaybackStrategy(playbackStrategy));
3999 }
4000
4001 /**
4002 * @tc.name : Test SetPlaybackStrategy
4003 * @tc.number: Player_SetPlaybackStrategy_002
4004 * @tc.desc : Test Player SetPlaybackStrategy
4005 */
4006 HWTEST_F(PlayerUnitTest, Player_SetPlaybackStrategy_002, TestSize.Level0)
4007 {
4008 AVPlayStrategy playbackStrategy = {
4009 .showFirstFrameOnPrepare = true
4010 };
4011 ASSERT_NE(MSERR_OK, player_->SetPlaybackStrategy(playbackStrategy));
4012 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4013 ASSERT_EQ(MSERR_OK, player_->SetPlaybackStrategy(playbackStrategy));
4014 sptr<Surface> videoSurface = player_->GetVideoSurface();
4015 ASSERT_NE(nullptr, videoSurface);
4016 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4017 EXPECT_EQ(MSERR_OK, player_->Prepare());
4018 EXPECT_EQ(MSERR_OK, player_->Play());
4019 EXPECT_EQ(MSERR_OK, player_->Pause());
4020 }
4021
4022 /**
4023 * @tc.name : Test SetMediaMuted
4024 * @tc.number: Player_SetMediaMuted_001
4025 * @tc.desc : Test Player SetMediaMuted
4026 */
4027 HWTEST_F(PlayerUnitTest, Player_SetMediaMuted_001, TestSize.Level0)
4028 {
4029 ASSERT_NE(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_AUD, true));
4030 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4031 ASSERT_NE(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_AUD, true));
4032 ASSERT_EQ(MSERR_OK, player_->PrepareAsync());
4033 ASSERT_EQ(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_AUD, true));
4034 ASSERT_EQ(MSERR_OK, player_->Play());
4035 ASSERT_EQ(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_AUD, true));
4036 ASSERT_EQ(MSERR_OK, player_->Pause());
4037 ASSERT_EQ(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_AUD, true));
4038 ASSERT_EQ(MSERR_OK, player_->Stop());
4039 ASSERT_EQ(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_AUD, true));
4040 }
4041
4042 /**
4043 * @tc.name : Test SetMediaMuted
4044 * @tc.number: Player_SetMediaMuted_002
4045 * @tc.desc : Test Player SetMediaMuted
4046 */
4047 HWTEST_F(PlayerUnitTest, Player_SetMediaMuted_002, TestSize.Level0)
4048 {
4049 ASSERT_NE(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_VID, true));
4050 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4051 ASSERT_NE(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_VID, true));
4052 ASSERT_EQ(MSERR_OK, player_->PrepareAsync());
4053 ASSERT_NE(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_VID, true));
4054 ASSERT_EQ(MSERR_OK, player_->Play());
4055 ASSERT_NE(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_VID, true));
4056 ASSERT_EQ(MSERR_OK, player_->Stop());
4057 ASSERT_NE(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_VID, true));
4058 }
4059
4060 /**
4061 * @tc.name : Test SeekContinuous in prepared with seek -1
4062 * @tc.number: Player_SeekContinuous_007
4063 * @tc.desc : Test Player SeekContinuous
4064 */
4065 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_007, TestSize.Level0)
4066 {
4067 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4068 sptr<Surface> videoSurface = player_->GetVideoSurface();
4069 ASSERT_NE(nullptr, videoSurface);
4070 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4071 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4072 for (int i = 0; i < 10; i++) {
4073 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
4074 usleep(SEEK_CONTINUOUS_WAIT_US);
4075 }
4076 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
4077 EXPECT_EQ(MSERR_OK, player_->Play());
4078 }
4079
4080 /**
4081 * @tc.name : Test SeekContinuous in playing with seek -1
4082 * @tc.number: Player_SeekContinuous_008
4083 * @tc.desc : Test Player SeekContinuous
4084 */
4085 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_008, TestSize.Level0)
4086 {
4087 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4088 sptr<Surface> videoSurface = player_->GetVideoSurface();
4089 ASSERT_NE(nullptr, videoSurface);
4090 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4091 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4092 EXPECT_EQ(MSERR_OK, player_->Play());
4093 sleep(PLAYING_TIME_2_SEC);
4094 for (int i = 0; i < 30; i++) {
4095 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
4096 usleep(SEEK_CONTINUOUS_WAIT_US);
4097 }
4098 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
4099 EXPECT_EQ(MSERR_OK, player_->Stop());
4100 }
4101
4102 /**
4103 * @tc.name : Test SeekContinuous in paused with seek -1
4104 * @tc.number: Player_SeekContinuous_009
4105 * @tc.desc : Test Player SeekContinuous
4106 */
4107 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_009, TestSize.Level0)
4108 {
4109 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4110 sptr<Surface> videoSurface = player_->GetVideoSurface();
4111 ASSERT_NE(nullptr, videoSurface);
4112 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4113 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4114 EXPECT_EQ(MSERR_OK, player_->Play());
4115 sleep(PLAYING_TIME_2_SEC);
4116 EXPECT_EQ(MSERR_OK, player_->Pause());
4117 for (int i = 0; i < 30; i++) {
4118 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
4119 usleep(SEEK_CONTINUOUS_WAIT_US);
4120 }
4121 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
4122 EXPECT_EQ(MSERR_OK, player_->Play());
4123 EXPECT_EQ(MSERR_OK, player_->Stop());
4124 }
4125
4126 /**
4127 * @tc.name : Test SeekContinuous in completed with seek -1
4128 * @tc.number: Player_SeekContinuous_010
4129 * @tc.desc : Test Player SeekContinuous
4130 */
4131 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_010, TestSize.Level0)
4132 {
4133 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4134 sptr<Surface> videoSurface = player_->GetVideoSurface();
4135 ASSERT_NE(nullptr, videoSurface);
4136 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4137 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4138 EXPECT_EQ(MSERR_OK, player_->Play());
4139 sleep(PLAYING_TIME_2_SEC);
4140 EXPECT_EQ(MSERR_OK, player_->Seek(9000, SEEK_PREVIOUS_SYNC));
4141 sleep(PLAYING_TIME_10_SEC);
4142 for (int i = 0; i < 30; i++) {
4143 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
4144 usleep(SEEK_CONTINUOUS_WAIT_US);
4145 }
4146 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
4147 EXPECT_EQ(MSERR_OK, player_->Play());
4148 EXPECT_EQ(MSERR_OK, player_->Stop());
4149 }
4150
4151 /**
4152 * @tc.name : Test SeekContinuous backward with seek -1
4153 * @tc.number: Player_SeekContinuous_011
4154 * @tc.desc : Test Player SeekContinuous
4155 */
4156 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_011, TestSize.Level0)
4157 {
4158 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4159 sptr<Surface> videoSurface = player_->GetVideoSurface();
4160 ASSERT_NE(nullptr, videoSurface);
4161 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4162 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4163 EXPECT_EQ(MSERR_OK, player_->Play());
4164 sleep(PLAYING_TIME_2_SEC);
4165 for (int i = 0; i < 30; i++) {
4166 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
4167 usleep(SEEK_CONTINUOUS_WAIT_US);
4168 }
4169 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
4170 EXPECT_EQ(MSERR_OK, player_->Stop());
4171 }
4172
4173 /**
4174 * @tc.name : Test SeekContinuous forward and backward with seek -1
4175 * @tc.number: Player_SeekContinuous_012
4176 * @tc.desc : Test Player SeekContinuous
4177 */
4178 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_012, TestSize.Level0)
4179 {
4180 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4181 sptr<Surface> videoSurface = player_->GetVideoSurface();
4182 ASSERT_NE(nullptr, videoSurface);
4183 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4184 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4185 EXPECT_EQ(MSERR_OK, player_->Play());
4186 sleep(PLAYING_TIME_2_SEC);
4187 for (int i = 0; i < 30; i++) {
4188 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
4189 usleep(SEEK_CONTINUOUS_WAIT_US);
4190 }
4191 for (int i = 0; i < 30; i++) {
4192 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
4193 usleep(SEEK_CONTINUOUS_WAIT_US);
4194 }
4195 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
4196 EXPECT_EQ(MSERR_OK, player_->Stop());
4197 }
4198
4199 /**
4200 * @tc.name : Test SeekContinuous in prepared mkv
4201 * @tc.number: Player_SeekContinuous_013
4202 * @tc.desc : Test Player SeekContinuous
4203 */
4204 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_013, TestSize.Level0)
4205 {
4206 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
4207 sptr<Surface> videoSurface = player_->GetVideoSurface();
4208 ASSERT_NE(nullptr, videoSurface);
4209 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4210 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4211 for (int i = 0; i < 10; i++) {
4212 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
4213 usleep(SEEK_CONTINUOUS_WAIT_US);
4214 }
4215 EXPECT_EQ(MSERR_OK, player_->Play());
4216 }
4217
4218 /**
4219 * @tc.name : Test SeekContinuous in playing mkv
4220 * @tc.number: Player_SeekContinuous_014
4221 * @tc.desc : Test Player SeekContinuous
4222 */
4223 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_014, TestSize.Level0)
4224 {
4225 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
4226 sptr<Surface> videoSurface = player_->GetVideoSurface();
4227 ASSERT_NE(nullptr, videoSurface);
4228 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4229 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4230 EXPECT_EQ(MSERR_OK, player_->Play());
4231 sleep(PLAYING_TIME_2_SEC);
4232 for (int i = 0; i < 30; i++) {
4233 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
4234 usleep(SEEK_CONTINUOUS_WAIT_US);
4235 }
4236 EXPECT_EQ(MSERR_OK, player_->Play());
4237 EXPECT_EQ(MSERR_OK, player_->Stop());
4238 }
4239
4240 /**
4241 * @tc.name : Test SeekContinuous in paused mkv
4242 * @tc.number: Player_SeekContinuous_015
4243 * @tc.desc : Test Player SeekContinuous
4244 */
4245 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_015, TestSize.Level0)
4246 {
4247 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
4248 sptr<Surface> videoSurface = player_->GetVideoSurface();
4249 ASSERT_NE(nullptr, videoSurface);
4250 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4251 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4252 EXPECT_EQ(MSERR_OK, player_->Play());
4253 sleep(PLAYING_TIME_2_SEC);
4254 EXPECT_EQ(MSERR_OK, player_->Pause());
4255 for (int i = 0; i < 30; i++) {
4256 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
4257 usleep(SEEK_CONTINUOUS_WAIT_US);
4258 }
4259 EXPECT_EQ(MSERR_OK, player_->Play());
4260 EXPECT_EQ(MSERR_OK, player_->Stop());
4261 }
4262
4263 /**
4264 * @tc.name : Test SeekContinuous in completed mkv
4265 * @tc.number: Player_SeekContinuous_016
4266 * @tc.desc : Test Player SeekContinuous
4267 */
4268 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_016, TestSize.Level0)
4269 {
4270 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
4271 sptr<Surface> videoSurface = player_->GetVideoSurface();
4272 ASSERT_NE(nullptr, videoSurface);
4273 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4274 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4275 EXPECT_EQ(MSERR_OK, player_->Play());
4276 sleep(PLAYING_TIME_2_SEC);
4277 EXPECT_EQ(MSERR_OK, player_->Seek(9000, SEEK_PREVIOUS_SYNC));
4278 sleep(PLAYING_TIME_10_SEC);
4279 for (int i = 0; i < 30; i++) {
4280 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
4281 usleep(SEEK_CONTINUOUS_WAIT_US);
4282 }
4283 EXPECT_EQ(MSERR_OK, player_->Play());
4284 EXPECT_EQ(MSERR_OK, player_->Stop());
4285 }
4286
4287 /**
4288 * @tc.name : Test SeekContinuous backward
4289 * @tc.number: Player_SeekContinuous_017 mkv
4290 * @tc.desc : Test Player SeekContinuous
4291 */
4292 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_017, TestSize.Level0)
4293 {
4294 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
4295 sptr<Surface> videoSurface = player_->GetVideoSurface();
4296 ASSERT_NE(nullptr, videoSurface);
4297 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4298 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4299 EXPECT_EQ(MSERR_OK, player_->Play());
4300 sleep(PLAYING_TIME_2_SEC);
4301 for (int i = 0; i < 30; i++) {
4302 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
4303 usleep(SEEK_CONTINUOUS_WAIT_US);
4304 }
4305 EXPECT_EQ(MSERR_OK, player_->Play());
4306 EXPECT_EQ(MSERR_OK, player_->Stop());
4307 }
4308
4309 /**
4310 * @tc.name : Test SeekContinuous forward and backward mkv
4311 * @tc.number: Player_SeekContinuous_018
4312 * @tc.desc : Test Player SeekContinuous
4313 */
4314 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_018, TestSize.Level0)
4315 {
4316 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
4317 sptr<Surface> videoSurface = player_->GetVideoSurface();
4318 ASSERT_NE(nullptr, videoSurface);
4319 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4320 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4321 EXPECT_EQ(MSERR_OK, player_->Play());
4322 sleep(PLAYING_TIME_2_SEC);
4323 for (int i = 0; i < 30; i++) {
4324 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
4325 usleep(SEEK_CONTINUOUS_WAIT_US);
4326 }
4327 for (int i = 0; i < 30; i++) {
4328 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
4329 usleep(SEEK_CONTINUOUS_WAIT_US);
4330 }
4331 EXPECT_EQ(MSERR_OK, player_->Play());
4332 EXPECT_EQ(MSERR_OK, player_->Stop());
4333 }
4334
4335 /**
4336 * @tc.name : Test SeekContinuous in prepared mkv with seek -1
4337 * @tc.number: Player_SeekContinuous_019
4338 * @tc.desc : Test Player SeekContinuous
4339 */
4340 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_019, TestSize.Level0)
4341 {
4342 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
4343 sptr<Surface> videoSurface = player_->GetVideoSurface();
4344 ASSERT_NE(nullptr, videoSurface);
4345 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4346 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4347 for (int i = 0; i < 10; i++) {
4348 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
4349 usleep(SEEK_CONTINUOUS_WAIT_US);
4350 }
4351 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
4352 EXPECT_EQ(MSERR_OK, player_->Play());
4353 }
4354
4355 /**
4356 * @tc.name : Test SeekContinuous in playing mkv with seek -1
4357 * @tc.number: Player_SeekContinuous_020
4358 * @tc.desc : Test Player SeekContinuous
4359 */
4360 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_020, TestSize.Level0)
4361 {
4362 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
4363 sptr<Surface> videoSurface = player_->GetVideoSurface();
4364 ASSERT_NE(nullptr, videoSurface);
4365 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4366 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4367 EXPECT_EQ(MSERR_OK, player_->Play());
4368 sleep(PLAYING_TIME_2_SEC);
4369 for (int i = 0; i < 30; i++) {
4370 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
4371 usleep(SEEK_CONTINUOUS_WAIT_US);
4372 }
4373 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
4374 EXPECT_EQ(MSERR_OK, player_->Stop());
4375 }
4376
4377 /**
4378 * @tc.name : Test SeekContinuous in paused mkv with seek -1
4379 * @tc.number: Player_SeekContinuous_021
4380 * @tc.desc : Test Player SeekContinuous
4381 */
4382 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_021, TestSize.Level0)
4383 {
4384 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
4385 sptr<Surface> videoSurface = player_->GetVideoSurface();
4386 ASSERT_NE(nullptr, videoSurface);
4387 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4388 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4389 EXPECT_EQ(MSERR_OK, player_->Play());
4390 sleep(PLAYING_TIME_2_SEC);
4391 EXPECT_EQ(MSERR_OK, player_->Pause());
4392 for (int i = 0; i < 30; i++) {
4393 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
4394 usleep(SEEK_CONTINUOUS_WAIT_US);
4395 }
4396 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
4397 EXPECT_EQ(MSERR_OK, player_->Play());
4398 EXPECT_EQ(MSERR_OK, player_->Stop());
4399 }
4400
4401 /**
4402 * @tc.name : Test SeekContinuous in completed with seek -1
4403 * @tc.number: Player_SeekContinuous_022
4404 * @tc.desc : Test Player SeekContinuous
4405 */
4406 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_022, TestSize.Level0)
4407 {
4408 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
4409 sptr<Surface> videoSurface = player_->GetVideoSurface();
4410 ASSERT_NE(nullptr, videoSurface);
4411 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4412 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4413 EXPECT_EQ(MSERR_OK, player_->Play());
4414 sleep(PLAYING_TIME_2_SEC);
4415 EXPECT_EQ(MSERR_OK, player_->Seek(9000, SEEK_PREVIOUS_SYNC));
4416 sleep(PLAYING_TIME_10_SEC);
4417 for (int i = 0; i < 30; i++) {
4418 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
4419 usleep(SEEK_CONTINUOUS_WAIT_US);
4420 }
4421 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
4422 EXPECT_EQ(MSERR_OK, player_->Play());
4423 EXPECT_EQ(MSERR_OK, player_->Stop());
4424 }
4425
4426 /**
4427 * @tc.name : Test SeekContinuous backward mkv with seek -1
4428 * @tc.number: Player_SeekContinuous_023
4429 * @tc.desc : Test Player SeekContinuous
4430 */
4431 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_023, TestSize.Level0)
4432 {
4433 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
4434 sptr<Surface> videoSurface = player_->GetVideoSurface();
4435 ASSERT_NE(nullptr, videoSurface);
4436 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4437 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4438 EXPECT_EQ(MSERR_OK, player_->Play());
4439 sleep(PLAYING_TIME_2_SEC);
4440 for (int i = 0; i < 30; i++) {
4441 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
4442 usleep(SEEK_CONTINUOUS_WAIT_US);
4443 }
4444 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
4445 EXPECT_EQ(MSERR_OK, player_->Stop());
4446 }
4447
4448 /**
4449 * @tc.name : Test SeekContinuous forward and backward mkv with seek -1
4450 * @tc.number: Player_SeekContinuous_024
4451 * @tc.desc : Test Player SeekContinuous
4452 */
4453 HWTEST_F(PlayerUnitTest, Player_SeekContinuous_024, TestSize.Level0)
4454 {
4455 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
4456 sptr<Surface> videoSurface = player_->GetVideoSurface();
4457 ASSERT_NE(nullptr, videoSurface);
4458 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4459 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4460 EXPECT_EQ(MSERR_OK, player_->Play());
4461 sleep(PLAYING_TIME_2_SEC);
4462 for (int i = 0; i < 30; i++) {
4463 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
4464 usleep(SEEK_CONTINUOUS_WAIT_US);
4465 }
4466 for (int i = 0; i < 30; i++) {
4467 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
4468 usleep(SEEK_CONTINUOUS_WAIT_US);
4469 }
4470 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
4471 EXPECT_EQ(MSERR_OK, player_->Stop());
4472 }
4473
4474 /**
4475 * @tc.name : Test enable super resolution with SetPlaybackStrategy
4476 * @tc.number: Player_SeekContinuous_001
4477 * @tc.desc : Test Player SuperResolution
4478 */
4479 HWTEST_F(PlayerUnitTest, Player_SuperResolution_001, TestSize.Level0)
4480 {
4481 AVPlayStrategy playbackStrategy = {
4482 .enableSuperResolution = true
4483 };
4484 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4485 ASSERT_EQ(MSERR_OK, player_->SetPlaybackStrategy(playbackStrategy));
4486 sptr<Surface> videoSurface = player_->GetVideoSurface();
4487 ASSERT_NE(nullptr, videoSurface);
4488 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4489 EXPECT_EQ(MSERR_OK, player_->Prepare());
4490 EXPECT_EQ(MSERR_OK, player_->Play());
4491 sleep(PLAYING_TIME_2_SEC);
4492 EXPECT_EQ(MSERR_OK, player_->Stop());
4493 }
4494
4495 /**
4496 * @tc.name : Test SetSuperResolution(false) after enable super resolution
4497 * @tc.number: Player_SeekContinuous_002
4498 * @tc.desc : Test Player SuperResolution
4499 */
4500 HWTEST_F(PlayerUnitTest, Player_SuperResolution_002, TestSize.Level0)
4501 {
4502 AVPlayStrategy playbackStrategy = {
4503 .enableSuperResolution = true
4504 };
4505 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4506 ASSERT_EQ(MSERR_OK, player_->SetPlaybackStrategy(playbackStrategy));
4507 ASSERT_EQ(MSERR_OK, player_->SetSuperResolution(false));
4508 sptr<Surface> videoSurface = player_->GetVideoSurface();
4509 ASSERT_NE(nullptr, videoSurface);
4510 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4511 EXPECT_EQ(MSERR_OK, player_->Prepare());
4512 EXPECT_EQ(MSERR_OK, player_->Play());
4513 sleep(PLAYING_TIME_2_SEC);
4514 EXPECT_EQ(MSERR_OK, player_->Stop());
4515 }
4516
4517 /**
4518 * @tc.name : Test SetVideoWindowSize after enable super resolution
4519 * @tc.number: Player_SeekContinuous_003
4520 * @tc.desc : Test Player SuperResolution
4521 */
4522 HWTEST_F(PlayerUnitTest, Player_SuperResolution_003, TestSize.Level0)
4523 {
4524 AVPlayStrategy playbackStrategy = {
4525 .enableSuperResolution = true
4526 };
4527 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4528 ASSERT_EQ(MSERR_OK, player_->SetPlaybackStrategy(playbackStrategy));
4529 ASSERT_EQ(MSERR_OK, player_->SetVideoWindowSize(1080, 720));
4530 sptr<Surface> videoSurface = player_->GetVideoSurface();
4531 ASSERT_NE(nullptr, videoSurface);
4532 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4533 EXPECT_EQ(MSERR_OK, player_->Prepare());
4534 EXPECT_EQ(MSERR_OK, player_->Play());
4535 sleep(PLAYING_TIME_2_SEC);
4536 EXPECT_EQ(MSERR_OK, player_->Stop());
4537 }
4538
4539 /**
4540 * @tc.name : Test SetSuperResolution and SetVideoWindowSize without enable super resolution
4541 * @tc.number: Player_SeekContinuous_004
4542 * @tc.desc : Test Player SuperResolution
4543 */
4544 HWTEST_F(PlayerUnitTest, Player_SuperResolution_004, TestSize.Level0)
4545 {
4546 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4547 ASSERT_EQ(MSERR_SUPER_RESOLUTION_NOT_ENABLED, player_->SetSuperResolution(true));
4548 ASSERT_EQ(MSERR_SUPER_RESOLUTION_NOT_ENABLED, player_->SetVideoWindowSize(1080, 720));
4549 sptr<Surface> videoSurface = player_->GetVideoSurface();
4550 ASSERT_NE(nullptr, videoSurface);
4551 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4552 EXPECT_EQ(MSERR_OK, player_->Prepare());
4553 EXPECT_EQ(MSERR_OK, player_->Play());
4554 sleep(PLAYING_TIME_2_SEC);
4555 EXPECT_EQ(MSERR_OK, player_->Stop());
4556 }
4557 } // namespace Media
4558 } // namespace OHOS
4559