1 /*
2 * Copyright (c) 2024-2025 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_server_unit_test.h"
17 #include <unistd.h>
18 #include <securec.h>
19 #include "media_errors.h"
20 #include "audio_effect.h"
21 #include "av_common.h"
22 #include "meta/video_types.h"
23
24 using namespace std;
25 using namespace testing::ext;
26 using namespace OHOS::Media::PlayerTestParam;
27
28 namespace OHOS {
29 namespace Media {
30 namespace {
31 using ErrorMessageFunc = std::function<std::string(const std::string& param1, const std::string& param2)>;
32 const std::map<MediaServiceErrCode, std::string> MSERRCODE_INFOS = {
33 {MSERR_OK, "success"},
34 {MSERR_NO_MEMORY, "no memory"},
35 {MSERR_INVALID_OPERATION, "operation not be permitted"},
36 {MSERR_INVALID_VAL, "invalid argument"},
37 {MSERR_UNKNOWN, "unkown error"},
38 {MSERR_MANDATORY_PARAMETER_UNSPECIFIED, "mandatory parameters are left unspecified"},
39 {MSERR_INCORRECT_PARAMETER_TYPE, "Incorrect parameter types"},
40 {MSERR_PARAMETER_VERIFICATION_FAILED, "Parameter verification failed"},
41 {MSERR_SERVICE_DIED, "media service died"},
42 {MSERR_CREATE_REC_ENGINE_FAILED, "create recorder engine failed"},
43 {MSERR_CREATE_PLAYER_ENGINE_FAILED, "create player engine failed"},
44 {MSERR_CREATE_AVMETADATAHELPER_ENGINE_FAILED, "create avmetadatahelper engine failed"},
45 {MSERR_INVALID_STATE, "the state is not support this operation"},
46 {MSERR_UNSUPPORT, "unsupport interface"},
47 {MSERR_UNSUPPORT_AUD_SRC_TYPE, "unsupport audio source type"},
48 {MSERR_UNSUPPORT_AUD_SAMPLE_RATE, "unsupport audio sample rate"},
49 {MSERR_UNSUPPORT_AUD_CHANNEL_NUM, "unsupport audio channel"},
50 {MSERR_UNSUPPORT_AUD_ENC_TYPE, "unsupport audio encoder type"},
51 {MSERR_UNSUPPORT_AUD_PARAMS, "unsupport audio params(other params)"},
52 {MSERR_UNSUPPORT_VID_SRC_TYPE, "unsupport video source type"},
53 {MSERR_UNSUPPORT_VID_ENC_TYPE, "unsupport video encoder type"},
54 {MSERR_UNSUPPORT_VID_PARAMS, "unsupport video params(other params)"},
55 {MSERR_UNSUPPORT_CONTAINER_TYPE, "unsupport container format type"},
56 {MSERR_UNSUPPORT_PROTOCOL_TYPE, "unsupport protocol type"},
57 {MSERR_UNSUPPORT_VID_DEC_TYPE, "unsupport video decoder type"},
58 {MSERR_UNSUPPORT_AUD_DEC_TYPE, "unsupport audio decoder type"},
59 {MSERR_UNSUPPORT_STREAM, "internal data stream error"},
60 {MSERR_UNSUPPORT_FILE, "this appears to be a text file"},
61 {MSERR_UNSUPPORT_SOURCE, "unsupport source type"},
62 {MSERR_VID_RESIZE_FAILED, "video resize failed"},
63 {MSERR_AUD_ENC_FAILED, "audio encode failed"},
64 {MSERR_AUD_RENDER_FAILED, "audio render failed"},
65 {MSERR_VID_ENC_FAILED, "video encode failed"},
66 {MSERR_AUD_DEC_FAILED, "audio decode failed"},
67 {MSERR_VID_DEC_FAILED, "video decode failed"},
68 {MSERR_MUXER_FAILED, "stream avmuxer failed"},
69 {MSERR_DEMUXER_FAILED, "stream demuxer or parser failed"},
70 {MSERR_OPEN_FILE_FAILED, "open file failed"},
71 {MSERR_FILE_ACCESS_FAILED, "read or write file failed"},
72 {MSERR_START_FAILED, "audio or video start failed"},
73 {MSERR_PAUSE_FAILED, "audio or video pause failed"},
74 {MSERR_STOP_FAILED, "audio or video stop failed"},
75 {MSERR_SEEK_FAILED, "audio or video seek failed"},
76 {MSERR_NETWORK_TIMEOUT, "network timeout"},
77 {MSERR_NOT_FIND_CONTAINER, "not find a demuxer"},
78 {MSERR_EXTEND_START, "extend start error code"},
79 {MSERR_AUD_INTERRUPT, "audio interrupted"},
80 {MSERR_USER_NO_PERMISSION, "user no permission"},
81 {MSERR_DATA_SOURCE_ERROR_UNKNOWN, "media data source error unknow"},
82 {MSERR_DATA_SOURCE_IO_ERROR, "media data source IO failed"},
83 {MSERR_DRM_VERIFICATION_FAILED, "DRM verification failed"},
84 {MSERR_UNSUPPORT_WATER_MARK, "unsupported water mark"},
85 {MSERR_DEMUXER_BUFFER_NO_MEMORY, "demuxer cache data reached its limit"},
86 {MSERR_IO_CANNOT_FIND_HOST, "IO can not find host"},
87 {MSERR_IO_CONNECTION_TIMEOUT, "IO connection timeout"},
88 {MSERR_IO_NETWORK_ABNORMAL, "IO network abnormal"},
89 {MSERR_IO_NETWORK_UNAVAILABLE, "IO network unavailable"},
90 {MSERR_IO_NO_PERMISSION, "IO no permission"},
91 {MSERR_IO_NETWORK_ACCESS_DENIED, "IO request denied"},
92 {MSERR_IO_RESOURE_NOT_FOUND, "IO resource not found"},
93 {MSERR_IO_SSL_CLIENT_CERT_NEEDED, "IO SSL client cert needed"},
94 {MSERR_IO_SSL_CONNECT_FAIL, "IO SSL connect fail"},
95 {MSERR_IO_SSL_SERVER_CERT_UNTRUSTED, "IO SSL server cert untrusted"},
96 {MSERR_IO_UNSUPPORTTED_REQUEST, "IO unsupported request"},
97 {MSERR_SEEK_CONTINUOUS_UNSUPPORTED, "seek continonous is unsupported for this source"},
98 {MSERR_SUPER_RESOLUTION_UNSUPPORTED, "super resolution not supported"},
99 {MSERR_SUPER_RESOLUTION_NOT_ENABLED, "super resolution not enabled"},
100 {MSERR_GET_INPUT_SURFACE_FAILED, "video encoder or resize get input surface failed"},
101 {MSERR_SET_OUTPUT_SURFACE_FAILED, "video decoder or resize set output surface failed"},
102 {MSERR_DSS_THREAD_CREATION_FAILED, "DSS of the LPP thread creation failed"},
103 {MSERR_DSS_TASK_CREATION_FAILED, "DSS of the LPP task creation failed"},
104 {MSERR_DSS_STRAT_FAILED, "DSS of the LPP start failed"},
105 {MSERR_SHB_THREAD_CREATION_FAILED, "SHB of the LPP thread creation failed"},
106 {MSERR_SHB_INIT_FAILED, "SHB of the LPP init failed"},
107 {MSERR_SHB_MSG_QUE_CREATION_FAILED, "SHB of the LPP message queue creation failed"},
108 {MSERR_SHB_NO_MEMORY, "SHB of the LPP failed to allocate memory."},
109 {MSERR_SHB_CRASH_ERROR, "SHB of the LPP crash happend."},
110 {MSERR_RS_INIT_FAILED, "RS of the LPP init failed"},
111 {MSERR_RS_DATA_FALLBACK_FAILED, "RS of the LPP data fallback failed"},
112 {MSERR_LPP_INSTANCE_EXCEED_LIMIT, "LPP instance limit exceeded"},
113 {MSERR_HARDWARE_ERROR, "underlying hardware error happened"},
114 };
115
116 const std::map<MediaServiceErrCode, MediaServiceExtErrCode> MSERRCODE_TO_EXTERRORCODE = {
117 {MSERR_OK, MSERR_EXT_OK},
118 {MSERR_NO_MEMORY, MSERR_EXT_NO_MEMORY},
119 {MSERR_DEMUXER_BUFFER_NO_MEMORY, MSERR_EXT_IO},
120 {MSERR_INVALID_OPERATION, MSERR_EXT_OPERATE_NOT_PERMIT},
121 {MSERR_INVALID_VAL, MSERR_EXT_INVALID_VAL},
122 {MSERR_UNKNOWN, MSERR_EXT_UNKNOWN},
123 {MSERR_SERVICE_DIED, MSERR_EXT_SERVICE_DIED},
124 {MSERR_CREATE_REC_ENGINE_FAILED, MSERR_EXT_UNKNOWN},
125 {MSERR_CREATE_PLAYER_ENGINE_FAILED, MSERR_EXT_UNKNOWN},
126 {MSERR_INVALID_STATE, MSERR_EXT_INVALID_STATE},
127 {MSERR_UNSUPPORT, MSERR_EXT_UNSUPPORT},
128 {MSERR_UNSUPPORT_AUD_SRC_TYPE, MSERR_EXT_UNSUPPORT},
129 {MSERR_UNSUPPORT_AUD_SAMPLE_RATE, MSERR_EXT_UNSUPPORT},
130 {MSERR_UNSUPPORT_AUD_CHANNEL_NUM, MSERR_EXT_UNSUPPORT},
131 {MSERR_UNSUPPORT_AUD_ENC_TYPE, MSERR_EXT_UNSUPPORT},
132 {MSERR_UNSUPPORT_AUD_PARAMS, MSERR_EXT_UNSUPPORT},
133 {MSERR_UNSUPPORT_VID_SRC_TYPE, MSERR_EXT_UNSUPPORT},
134 {MSERR_UNSUPPORT_VID_ENC_TYPE, MSERR_EXT_UNSUPPORT},
135 {MSERR_UNSUPPORT_VID_PARAMS, MSERR_EXT_UNSUPPORT},
136 {MSERR_UNSUPPORT_CONTAINER_TYPE, MSERR_EXT_UNSUPPORT},
137 {MSERR_UNSUPPORT_PROTOCOL_TYPE, MSERR_EXT_UNSUPPORT},
138 {MSERR_UNSUPPORT_VID_DEC_TYPE, MSERR_EXT_UNSUPPORT},
139 {MSERR_UNSUPPORT_AUD_DEC_TYPE, MSERR_EXT_UNSUPPORT},
140 {MSERR_UNSUPPORT_STREAM, MSERR_EXT_UNSUPPORT},
141 {MSERR_UNSUPPORT_FILE, MSERR_EXT_UNSUPPORT},
142 {MSERR_UNSUPPORT_SOURCE, MSERR_EXT_UNSUPPORT},
143 {MSERR_AUD_RENDER_FAILED, MSERR_EXT_UNSUPPORT},
144 {MSERR_VID_RESIZE_FAILED, MSERR_EXT_UNKNOWN},
145 {MSERR_AUD_ENC_FAILED, MSERR_EXT_UNKNOWN},
146 {MSERR_VID_ENC_FAILED, MSERR_EXT_UNKNOWN},
147 {MSERR_AUD_DEC_FAILED, MSERR_EXT_UNKNOWN},
148 {MSERR_VID_DEC_FAILED, MSERR_EXT_UNKNOWN},
149 {MSERR_MUXER_FAILED, MSERR_EXT_UNKNOWN},
150 {MSERR_DEMUXER_FAILED, MSERR_EXT_UNKNOWN},
151 {MSERR_OPEN_FILE_FAILED, MSERR_EXT_UNKNOWN},
152 {MSERR_FILE_ACCESS_FAILED, MSERR_EXT_UNKNOWN},
153 {MSERR_START_FAILED, MSERR_EXT_UNKNOWN},
154 {MSERR_PAUSE_FAILED, MSERR_EXT_UNKNOWN},
155 {MSERR_STOP_FAILED, MSERR_EXT_UNKNOWN},
156 {MSERR_SEEK_FAILED, MSERR_EXT_UNKNOWN},
157 {MSERR_NETWORK_TIMEOUT, MSERR_EXT_TIMEOUT},
158 {MSERR_NOT_FIND_CONTAINER, MSERR_EXT_UNSUPPORT},
159 {MSERR_EXTEND_START, MSERR_EXT_EXTEND_START},
160 {MSERR_IO_CANNOT_FIND_HOST, MSERR_EXT_IO},
161 {MSERR_IO_CONNECTION_TIMEOUT, MSERR_EXT_IO},
162 {MSERR_IO_NETWORK_ABNORMAL, MSERR_EXT_IO},
163 {MSERR_IO_NETWORK_UNAVAILABLE, MSERR_EXT_IO},
164 {MSERR_IO_NO_PERMISSION, MSERR_EXT_IO},
165 {MSERR_IO_NETWORK_ACCESS_DENIED, MSERR_EXT_IO},
166 {MSERR_IO_RESOURE_NOT_FOUND, MSERR_EXT_IO},
167 {MSERR_IO_SSL_CLIENT_CERT_NEEDED, MSERR_EXT_IO},
168 {MSERR_IO_SSL_CONNECT_FAIL, MSERR_EXT_IO},
169 {MSERR_IO_SSL_SERVER_CERT_UNTRUSTED, MSERR_EXT_IO},
170 {MSERR_IO_UNSUPPORTTED_REQUEST, MSERR_EXT_IO},
171 {MSERR_SUPER_RESOLUTION_UNSUPPORTED, MSERR_EXT_UNSUPPORT},
172 {MSERR_SUPER_RESOLUTION_NOT_ENABLED, MSERR_EXT_UNKNOWN},
173 {MSERR_GET_INPUT_SURFACE_FAILED, MSERR_EXT_UNKNOWN},
174 {MSERR_SET_OUTPUT_SURFACE_FAILED, MSERR_EXT_UNKNOWN},
175 {MSERR_DSS_THREAD_CREATION_FAILED, MSERR_EXT_UNKNOWN},
176 {MSERR_DSS_TASK_CREATION_FAILED, MSERR_EXT_UNKNOWN},
177 {MSERR_DSS_STRAT_FAILED, MSERR_EXT_EXTEND_START},
178 {MSERR_SHB_THREAD_CREATION_FAILED, MSERR_EXT_UNKNOWN},
179 {MSERR_SHB_INIT_FAILED, MSERR_EXT_UNKNOWN},
180 {MSERR_SHB_MSG_QUE_CREATION_FAILED, MSERR_EXT_UNKNOWN},
181 {MSERR_SHB_NO_MEMORY, MSERR_EXT_NO_MEMORY},
182 {MSERR_SHB_CRASH_ERROR, MSERR_EXT_SERVICE_DIED},
183 {MSERR_RS_INIT_FAILED, MSERR_EXT_UNKNOWN},
184 {MSERR_RS_DATA_FALLBACK_FAILED, MSERR_EXT_UNKNOWN},
185 {MSERR_LPP_INSTANCE_EXCEED_LIMIT, MSERR_EXT_UNKNOWN},
186 {MSERR_HARDWARE_ERROR, MSERR_EXT_UNKNOWN},
187 };
188
189 const std::map<MediaServiceExtErrCode, std::string> MSEXTERRCODE_INFOS = {
190 {MSERR_EXT_OK, "success"},
191 {MSERR_EXT_NO_MEMORY, "no memory"},
192 {MSERR_EXT_OPERATE_NOT_PERMIT, "operation not be permitted"},
193 {MSERR_EXT_INVALID_VAL, "invalid argument"},
194 {MSERR_EXT_IO, "IO error"},
195 {MSERR_EXT_TIMEOUT, "network timeout"},
196 {MSERR_EXT_UNKNOWN, "unkown error"},
197 {MSERR_EXT_SERVICE_DIED, "media service died"},
198 {MSERR_EXT_INVALID_STATE, "the state is not support this operation"},
199 {MSERR_EXT_UNSUPPORT, "unsupport interface"},
200 {MSERR_EXT_EXTEND_START, "extend err start"},
201 };
202
203 const std::map<MediaServiceErrCode, MediaServiceExtErrCodeAPI9> MSERRCODE_TO_EXTERRORCODEAPI9 = {
204 {MSERR_OK, MSERR_EXT_API9_OK},
205 {MSERR_NO_MEMORY, MSERR_EXT_API9_NO_MEMORY},
206 {MSERR_INVALID_OPERATION, MSERR_EXT_API9_OPERATE_NOT_PERMIT},
207 {MSERR_INVALID_VAL, MSERR_EXT_API9_INVALID_PARAMETER},
208 {MSERR_MANDATORY_PARAMETER_UNSPECIFIED, MSERR_EXT_API9_INVALID_PARAMETER},
209 {MSERR_INCORRECT_PARAMETER_TYPE, MSERR_EXT_API9_INVALID_PARAMETER},
210 {MSERR_PARAMETER_VERIFICATION_FAILED, MSERR_EXT_API9_INVALID_PARAMETER},
211 {MSERR_SERVICE_DIED, MSERR_EXT_API9_SERVICE_DIED},
212 {MSERR_CREATE_REC_ENGINE_FAILED, MSERR_EXT_API9_NO_MEMORY},
213 {MSERR_CREATE_PLAYER_ENGINE_FAILED, MSERR_EXT_API9_NO_MEMORY},
214 {MSERR_INVALID_STATE, MSERR_EXT_API9_OPERATE_NOT_PERMIT},
215 {MSERR_UNSUPPORT, MSERR_EXT_API9_UNSUPPORT_FORMAT},
216 {MSERR_UNSUPPORT_AUD_SRC_TYPE, MSERR_EXT_API9_UNSUPPORT_FORMAT},
217 {MSERR_UNSUPPORT_AUD_SAMPLE_RATE, MSERR_EXT_API9_UNSUPPORT_FORMAT},
218 {MSERR_UNSUPPORT_AUD_CHANNEL_NUM, MSERR_EXT_API9_UNSUPPORT_FORMAT},
219 {MSERR_UNSUPPORT_AUD_ENC_TYPE, MSERR_EXT_API9_UNSUPPORT_FORMAT},
220 {MSERR_UNSUPPORT_AUD_PARAMS, MSERR_EXT_API9_UNSUPPORT_FORMAT},
221 {MSERR_UNSUPPORT_VID_SRC_TYPE, MSERR_EXT_API9_UNSUPPORT_FORMAT},
222 {MSERR_UNSUPPORT_VID_ENC_TYPE, MSERR_EXT_API9_UNSUPPORT_FORMAT},
223 {MSERR_UNSUPPORT_VID_PARAMS, MSERR_EXT_API9_UNSUPPORT_FORMAT},
224 {MSERR_UNSUPPORT_CONTAINER_TYPE, MSERR_EXT_API9_UNSUPPORT_FORMAT},
225 {MSERR_UNSUPPORT_PROTOCOL_TYPE, MSERR_EXT_API9_UNSUPPORT_FORMAT},
226 {MSERR_UNSUPPORT_VID_DEC_TYPE, MSERR_EXT_API9_UNSUPPORT_FORMAT},
227 {MSERR_UNSUPPORT_AUD_DEC_TYPE, MSERR_EXT_API9_UNSUPPORT_FORMAT},
228 {MSERR_UNSUPPORT_STREAM, MSERR_EXT_API9_UNSUPPORT_FORMAT},
229 {MSERR_UNSUPPORT_FILE, MSERR_EXT_API9_UNSUPPORT_FORMAT},
230 {MSERR_UNSUPPORT_SOURCE, MSERR_EXT_API9_UNSUPPORT_FORMAT},
231 {MSERR_VID_RESIZE_FAILED, MSERR_EXT_API9_IO},
232 {MSERR_AUD_RENDER_FAILED, MSERR_EXT_API9_IO},
233 {MSERR_AUD_ENC_FAILED, MSERR_EXT_API9_IO},
234 {MSERR_VID_ENC_FAILED, MSERR_EXT_API9_IO},
235 {MSERR_AUD_DEC_FAILED, MSERR_EXT_API9_IO},
236 {MSERR_VID_DEC_FAILED, MSERR_EXT_API9_IO},
237 {MSERR_MUXER_FAILED, MSERR_EXT_API9_UNSUPPORT_FORMAT},
238 {MSERR_DEMUXER_FAILED, MSERR_EXT_API9_UNSUPPORT_FORMAT},
239 {MSERR_OPEN_FILE_FAILED, MSERR_EXT_API9_IO},
240 {MSERR_FILE_ACCESS_FAILED, MSERR_EXT_API9_IO},
241 {MSERR_START_FAILED, MSERR_EXT_API9_OPERATE_NOT_PERMIT},
242 {MSERR_PAUSE_FAILED, MSERR_EXT_API9_OPERATE_NOT_PERMIT},
243 {MSERR_STOP_FAILED, MSERR_EXT_API9_OPERATE_NOT_PERMIT},
244 {MSERR_SEEK_FAILED, MSERR_EXT_API9_OPERATE_NOT_PERMIT},
245 {MSERR_DRM_VERIFICATION_FAILED, MSERR_EXT_API9_OPERATE_NOT_PERMIT},
246 {MSERR_NETWORK_TIMEOUT, MSERR_EXT_API9_TIMEOUT},
247 {MSERR_NOT_FIND_CONTAINER, MSERR_EXT_API9_UNSUPPORT_FORMAT},
248 {MSERR_UNKNOWN, MSERR_EXT_API9_IO},
249 {MSERR_DATA_SOURCE_IO_ERROR, MSERR_EXT_API9_IO},
250 {MSERR_DATA_SOURCE_ERROR_UNKNOWN, MSERR_EXT_API9_IO},
251 {MSERR_AUD_INTERRUPT, MSERR_EXT_API9_AUDIO_INTERRUPTED},
252 {MSERR_USER_NO_PERMISSION, MSERR_EXT_API9_NO_PERMISSION},
253 {MSERR_UNSUPPORT_WATER_MARK, MSERR_EXT_API9_UNSUPPORT_CAPABILITY},
254 {MSERR_DEMUXER_BUFFER_NO_MEMORY, MSERR_EXT_API9_IO},
255 {MSERR_IO_CANNOT_FIND_HOST, MSERR_EXT_API14_IO_CANNOT_FIND_HOST},
256 {MSERR_IO_CONNECTION_TIMEOUT, MSERR_EXT_API14_IO_CONNECTION_TIMEOUT},
257 {MSERR_IO_NETWORK_ABNORMAL, MSERR_EXT_API14_IO_NETWORK_ABNORMAL},
258 {MSERR_IO_NETWORK_UNAVAILABLE, MSERR_EXT_API14_IO_NETWORK_UNAVAILABLE},
259 {MSERR_IO_NO_PERMISSION, MSERR_EXT_API14_IO_NO_PERMISSION},
260 {MSERR_IO_NETWORK_ACCESS_DENIED, MSERR_EXT_API14_IO_NETWORK_ACCESS_DENIED},
261 {MSERR_IO_RESOURE_NOT_FOUND, MSERR_EXT_API14_IO_RESOURE_NOT_FOUND},
262 {MSERR_IO_SSL_CLIENT_CERT_NEEDED, MSERR_EXT_API14_IO_SSL_CLIENT_CERT_NEEDED},
263 {MSERR_IO_SSL_CONNECT_FAIL, MSERR_EXT_API14_IO_SSL_CONNECT_FAIL},
264 {MSERR_IO_SSL_SERVER_CERT_UNTRUSTED, MSERR_EXT_API14_IO_SSL_SERVER_CERT_UNTRUSTED},
265 {MSERR_IO_UNSUPPORTTED_REQUEST, MSERR_EXT_API14_IO_UNSUPPORTTED_REQUEST},
266 {MSERR_SEEK_CONTINUOUS_UNSUPPORTED, MSERR_EXT_API16_SEEK_CONTINUOUS_UNSUPPORTED},
267 {MSERR_SUPER_RESOLUTION_UNSUPPORTED, MSERR_EXT_API16_SUPER_RESOLUTION_UNSUPPORTED},
268 {MSERR_SUPER_RESOLUTION_NOT_ENABLED, MSERR_EXT_API16_SUPER_RESOLUTION_NOT_ENABLED},
269 {MSERR_GET_INPUT_SURFACE_FAILED, MSERR_EXT_API9_IO},
270 {MSERR_SET_OUTPUT_SURFACE_FAILED, MSERR_EXT_API9_IO},
271 {MSERR_DSS_THREAD_CREATION_FAILED, MSERR_EXT_API20_HARDWARE_FAILED},
272 {MSERR_DSS_TASK_CREATION_FAILED, MSERR_EXT_API20_HARDWARE_FAILED},
273 {MSERR_DSS_STRAT_FAILED, MSERR_EXT_API20_HARDWARE_FAILED},
274 {MSERR_SHB_THREAD_CREATION_FAILED, MSERR_EXT_API20_HARDWARE_FAILED},
275 {MSERR_SHB_INIT_FAILED, MSERR_EXT_API20_HARDWARE_FAILED},
276 {MSERR_SHB_MSG_QUE_CREATION_FAILED, MSERR_EXT_API20_HARDWARE_FAILED},
277 {MSERR_SHB_NO_MEMORY, MSERR_EXT_API9_NO_MEMORY},
278 {MSERR_SHB_CRASH_ERROR, MSERR_EXT_API20_HARDWARE_FAILED},
279 {MSERR_RS_INIT_FAILED, MSERR_EXT_API20_HARDWARE_FAILED},
280 {MSERR_RS_DATA_FALLBACK_FAILED, MSERR_EXT_API20_HARDWARE_FAILED},
281 {MSERR_LPP_INSTANCE_EXCEED_LIMIT, MSERR_EXT_API20_HARDWARE_FAILED},
282 {MSERR_HARDWARE_ERROR, MSERR_EXT_API20_HARDWARE_FAILED},
283 };
284
285 const std::map<MediaServiceExtErrCodeAPI9, std::string> MSEXTERRCODE_API9_INFOS = {
286 {MSERR_EXT_API9_OK, "Success: "},
287 {MSERR_EXT_API9_NO_PERMISSION, "No Permission: "},
288 {MSERR_EXT_API9_PERMISSION_DENIED, "Permission Denied"},
289 {MSERR_EXT_API9_INVALID_PARAMETER, "Invalid Parameter: "},
290 {MSERR_EXT_API9_UNSUPPORT_CAPABILITY, "Unsupport Capability: "},
291 {MSERR_EXT_API9_NO_MEMORY, "No Memory: "},
292 {MSERR_EXT_API9_OPERATE_NOT_PERMIT, "Operate Not Permit: "},
293 {MSERR_EXT_API9_IO, "IO Error: "},
294 {MSERR_EXT_API9_TIMEOUT, "Network Timeout: "},
295 {MSERR_EXT_API9_SERVICE_DIED, "Service Died: "},
296 {MSERR_EXT_API9_UNSUPPORT_FORMAT, "Unsupported Format: "},
297 {MSERR_EXT_API9_AUDIO_INTERRUPTED, "Audio Interruped: "},
298 {MSERR_EXT_API14_IO_CANNOT_FIND_HOST, "IO Cannot Find Host: "},
299 {MSERR_EXT_API14_IO_CONNECTION_TIMEOUT, "IO Connection Timeout: "},
300 {MSERR_EXT_API14_IO_NETWORK_ABNORMAL, "IO Network Abnormal: "},
301 {MSERR_EXT_API14_IO_NETWORK_UNAVAILABLE, "IO Network Unavailable: "},
302 {MSERR_EXT_API14_IO_NO_PERMISSION, "IO No Permission: "},
303 {MSERR_EXT_API14_IO_NETWORK_ACCESS_DENIED, "IO Request Denied: "},
304 {MSERR_EXT_API14_IO_RESOURE_NOT_FOUND, "IO Resource Not Found: "},
305 {MSERR_EXT_API14_IO_SSL_CLIENT_CERT_NEEDED, "IO SSL Client Cert Needed: "},
306 {MSERR_EXT_API14_IO_SSL_CONNECT_FAIL, "IO SSL Connect Fail: "},
307 {MSERR_EXT_API14_IO_SSL_SERVER_CERT_UNTRUSTED, "IO SSL Server Cert Untrusted: "},
308 {MSERR_EXT_API14_IO_UNSUPPORTTED_REQUEST, "IO Unsupported Request: "},
309 {MSERR_EXT_API20_HARDWARE_FAILED, "Hardware failed: "}
310 };
311
ErrorMessageOk(const std::string & param1,const std::string & param2)312 std::string ErrorMessageOk(const std::string& param1, const std::string& param2)
313 {
314 (void)param1;
315 (void)param2;
316 return "success";
317 }
318
ErrorMessageNoPermission(const std::string & param1,const std::string & param2)319 std::string ErrorMessageNoPermission(const std::string& param1, const std::string& param2)
320 {
321 std::string message = "Try to do " + param1 + " failed. User should request permission " + param2 +" first.";
322 return message;
323 }
324
ErrorMessageInvalidParameter(const std::string & param1,const std::string & param2)325 std::string ErrorMessageInvalidParameter(const std::string& param1, const std::string& param2)
326 {
327 (void)param2;
328 std::string message = "The Parameter " + param1 + " is invalid. Please check the type and range.";
329 return message;
330 }
331
ErrorMessageUnsupportCapability(const std::string & param1,const std::string & param2)332 std::string ErrorMessageUnsupportCapability(const std::string& param1, const std::string& param2)
333 {
334 (void)param2;
335 std::string message = "Function " + param1 + " can not work correctly due to limited device capability.";
336 return message;
337 }
338
ErrorMessageNoMemory(const std::string & param1,const std::string & param2)339 std::string ErrorMessageNoMemory(const std::string& param1, const std::string& param2)
340 {
341 (void)param2;
342 std::string message = "Create " + param1 + " failed due to system memory.";
343 return message;
344 }
345
ErrorMessageOperateNotPermit(const std::string & param1,const std::string & param2)346 std::string ErrorMessageOperateNotPermit(const std::string& param1, const std::string& param2)
347 {
348 (void)param2;
349 std::string message = "The operate " + param1 + " failed due to not permit in current state.";
350 return message;
351 }
352
ErrorMessageIO(const std::string & param1,const std::string & param2)353 std::string ErrorMessageIO(const std::string& param1, const std::string& param2)
354 {
355 (void)param2;
356 std::string message = "IO error happened due to " + param1 + ".";
357 return message;
358 }
359
ErrorMessageTimeout(const std::string & param1,const std::string & param2)360 std::string ErrorMessageTimeout(const std::string& param1, const std::string& param2)
361 {
362 std::string message = "Timeout happend when " + param1 + " due to " + param2 + ".";
363 return message;
364 }
365
ErrorMessageServiceDied(const std::string & param1,const std::string & param2)366 std::string ErrorMessageServiceDied(const std::string& param1, const std::string& param2)
367 {
368 (void)param1;
369 (void)param2;
370 std::string message = "Media Serviced Died.";
371 return message;
372 }
373
ErrorMessageUnsupportFormat(const std::string & param1,const std::string & param2)374 std::string ErrorMessageUnsupportFormat(const std::string& param1, const std::string& param2)
375 {
376 (void)param2;
377 std::string message = "The format " + param1 + " is not support.";
378 return message;
379 }
380
ErrorMessageAudioInterruped(const std::string & param1,const std::string & param2)381 std::string ErrorMessageAudioInterruped(const std::string & param1, const std::string& param2)
382 {
383 (void)param1;
384 (void)param2;
385 std::string message = "Audio Interrupted by other process.";
386 return message;
387 }
388
389 const std::map<MediaServiceExtErrCodeAPI9, ErrorMessageFunc> MSEXTERRAPI9CODE_FUNCS = {
390 {MSERR_EXT_API9_OK, &ErrorMessageOk},
391 {MSERR_EXT_API9_NO_PERMISSION, &ErrorMessageNoPermission},
392 {MSERR_EXT_API9_INVALID_PARAMETER, &ErrorMessageInvalidParameter},
393 {MSERR_EXT_API9_UNSUPPORT_CAPABILITY, &ErrorMessageUnsupportCapability},
394 {MSERR_EXT_API9_NO_MEMORY, &ErrorMessageNoMemory},
395 {MSERR_EXT_API9_OPERATE_NOT_PERMIT, &ErrorMessageOperateNotPermit},
396 {MSERR_EXT_API9_IO, &ErrorMessageIO},
397 {MSERR_EXT_API9_TIMEOUT, &ErrorMessageTimeout},
398 {MSERR_EXT_API9_SERVICE_DIED, &ErrorMessageServiceDied},
399 {MSERR_EXT_API9_UNSUPPORT_FORMAT, &ErrorMessageUnsupportFormat},
400 {MSERR_EXT_API9_AUDIO_INTERRUPTED, &ErrorMessageAudioInterruped},
401 };
402 }
403
SetUpTestCase(void)404 void PlayerServerUnitTest::SetUpTestCase(void)
405 {
406 }
407
TearDownTestCase(void)408 void PlayerServerUnitTest::TearDownTestCase(void)
409 {
410 std::cout << "sleep one second to protect PlayerEngine safely exit." << endl;
411 sleep(1); //let PlayEngine safe exit.
412 }
413
SetUp(void)414 void PlayerServerUnitTest::SetUp(void)
415 {
416 callback_ = std::make_shared<PlayerCallbackTest>();
417 ASSERT_NE(nullptr, callback_);
418 player_ = std::make_shared<PlayerServerMock>(callback_);
419 ASSERT_NE(nullptr, player_);
420 EXPECT_TRUE(player_->CreatePlayer());
421 EXPECT_EQ(MSERR_OK, player_->SetPlayerCallback(callback_));
422 }
423
TearDown(void)424 void PlayerServerUnitTest::TearDown(void)
425 {
426 if (player_ != nullptr) {
427 player_->Release();
428 }
429 }
430
PlayFunTest(const std::string & protocol)431 void PlayerServerUnitTest::PlayFunTest(const std::string &protocol)
432 {
433 int32_t duration = 0;
434 float playbackRate = 2.5f;
435 if (player_ != nullptr) {
436 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
437 EXPECT_EQ(MSERR_OK, player_->Play());
438 EXPECT_TRUE(player_->IsPlaying());
439 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
440 EXPECT_EQ(MSERR_OK, player_->Pause());
441 int32_t time;
442 EXPECT_EQ(MSERR_OK, player_->GetCurrentTime(time));
443 std::vector<Format> videoTrack;
444 std::vector<Format> audioTrack;
445 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
446 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
447 PlaybackRateMode mode;
448 player_->SetPlaybackRate(playbackRate);
449 player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X);
450 player_->GetPlaybackSpeed(mode);
451 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
452 EXPECT_EQ(true, player_->IsLooping());
453 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_NEXT_SYNC));
454 EXPECT_EQ(MSERR_OK, player_->Play());
455 sleep(PLAYING_TIME_2_SEC);
456 if (protocol == PlayerTestParam::HLS_PLAY) {
457 EXPECT_EQ(MSERR_OK, player_->SelectBitRate(200000)); // 200000:bitrate
458 sleep(PLAYING_TIME_2_SEC);
459 }
460 EXPECT_EQ(MSERR_OK, player_->SetLooping(false));
461 EXPECT_EQ(false, player_->IsLooping());
462 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
463 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
464 EXPECT_EQ(MSERR_OK, player_->Stop());
465 EXPECT_EQ(MSERR_OK, player_->Reset());
466 }
467 }
468
GetSetParaFunTest()469 void PlayerServerUnitTest::GetSetParaFunTest()
470 {
471 if (player_ != nullptr) {
472 int32_t duration = 0;
473 int32_t time = 0;
474 float playbackRate = 2.0f;
475 PlaybackRateMode mode;
476 std::vector<Format> videoTrack;
477 std::vector<Format> audioTrack;
478 player_->GetVideoTrackInfo(videoTrack);
479 player_->GetAudioTrackInfo(audioTrack);
480 player_->GetCurrentTime(time);
481 player_->GetDuration(duration);
482 player_->SetPlaybackRate(playbackRate);
483 player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X);
484 player_->GetPlaybackSpeed(mode);
485 player_->SetLooping(true);
486 player_->IsLooping();
487 player_->SetVolume(1, 1);
488 }
489 }
490
MediaServiceErrCodeTest(MediaServiceErrCode code)491 void PlayerServerUnitTest::MediaServiceErrCodeTest(MediaServiceErrCode code)
492 {
493 if (MSERRCODE_INFOS.count(code) != 0) {
494 EXPECT_EQ(MSERRCODE_INFOS.at(code), MSErrorToString(code));
495 } else if (code > MSERR_EXTEND_START) {
496 EXPECT_EQ("extend error:" + std::to_string(static_cast<int32_t>(code - MSERR_EXTEND_START)),
497 MSErrorToString(code));
498 } else {
499 EXPECT_EQ("invalid error code:" + std::to_string(static_cast<int32_t>(code)), MSErrorToString(code));
500 }
501
502 if (MSERRCODE_INFOS.count(code) != 0 && MSERRCODE_TO_EXTERRORCODE.count(code) != 0 &&
503 MSEXTERRCODE_INFOS.count(MSERRCODE_TO_EXTERRORCODE.at(code)) != 0) {
504 EXPECT_EQ(MSEXTERRCODE_INFOS.at(MSERRCODE_TO_EXTERRORCODE.at(code)), MSErrorToExtErrorString(code));
505 } else {
506 EXPECT_EQ("unkown error", MSErrorToExtErrorString(code));
507 }
508
509 if (MSERRCODE_INFOS.count(code) != 0 && MSERRCODE_TO_EXTERRORCODE.count(code) != 0) {
510 EXPECT_EQ(MSERRCODE_TO_EXTERRORCODE.at(code), MSErrorToExtError(code));
511 } else {
512 EXPECT_EQ(MSERR_EXT_UNKNOWN, MSErrorToExtError(code));
513 }
514
515 if (MSERRCODE_INFOS.count(code) != 0 && MSERRCODE_TO_EXTERRORCODEAPI9.count(code) != 0 &&
516 MSEXTERRAPI9CODE_FUNCS.count(MSERRCODE_TO_EXTERRORCODEAPI9.at(code)) != 0) {
517 EXPECT_EQ(MSEXTERRAPI9CODE_FUNCS.at(MSERRCODE_TO_EXTERRORCODEAPI9.at(code))("test1", "test2"),
518 MSErrorToExtErrorAPI9String(code, "test1", "test2"));
519 } else {
520 EXPECT_EQ("unkown error", MSErrorToExtErrorAPI9String(code, "test1", "test2"));
521 }
522
523 if (MSERRCODE_INFOS.count(code) != 0 && MSERRCODE_TO_EXTERRORCODEAPI9.count(code) != 0) {
524 EXPECT_EQ(MSERRCODE_TO_EXTERRORCODEAPI9.at(code), MSErrorToExtErrorAPI9(code));
525 } else {
526 EXPECT_EQ(MSERR_EXT_API9_IO, MSErrorToExtErrorAPI9(code));
527 }
528 }
529
MediaServiceExtErrCodeAPI9Test(MediaServiceExtErrCodeAPI9 code)530 void PlayerServerUnitTest::MediaServiceExtErrCodeAPI9Test(MediaServiceExtErrCodeAPI9 code)
531 {
532 if (MSEXTERRAPI9CODE_FUNCS.count(code) != 0) {
533 EXPECT_EQ(MSEXTERRAPI9CODE_FUNCS.at(code)("test1", "test2"),
534 MSExtErrorAPI9ToString(code, "test1", "test2"));
535 } else {
536 EXPECT_EQ("invalid error code:" + std::to_string(code), MSExtErrorAPI9ToString(code, "test1", "test2"));
537 }
538
539 if (MSEXTERRCODE_API9_INFOS.count(code) != 0) {
540 EXPECT_EQ(MSEXTERRCODE_API9_INFOS.at(code), MSExtAVErrorToString(code));
541 } else {
542 EXPECT_EQ("invalid error code:", MSExtAVErrorToString(code));
543 }
544 }
545
546 /**
547 * @tc.name : Test Player SetMediaSource API
548 * @tc.number: Player_SetMediaSource_001
549 * @tc.desc : Test Player SetMediaSource interface
550 */
551 HWTEST_F(PlayerServerUnitTest, Player_SetMediaSource_001, TestSize.Level1)
552 {
553 std::map<std::string, std::string> header = {
554 {"key1", "value1"},
555 {"key2", "value2"},
556 };
557 struct AVPlayStrategy strategy = {1080, 920, 10000, false};
558 std::shared_ptr<AVMediaSource> mediaSource = std::make_shared<AVMediaSource>(VIDEO_FILE1, header);
559 int32_t ret = player_->SetMediaSource(mediaSource, strategy);
560 EXPECT_EQ(MSERR_OK, ret);
561 }
562
563 /**
564 * @tc.name : Test Player SetMediaSource API
565 * @tc.number: Player_SetMediaSource_002
566 * @tc.desc : Test Player SetMediaSource interface
567 */
568 HWTEST_F(PlayerServerUnitTest, Player_SetMediaSource_002, TestSize.Level1)
569 {
570 struct AVPlayStrategy strategy = {1080, 920, 10000, false};
571 int32_t ret = player_->SetMediaSource(nullptr, strategy);
572 EXPECT_NE(MSERR_OK, ret);
573 }
574
575 /**
576 * @tc.name : Test Player SetMediaSource API
577 * @tc.number: Player_SetMediaSource_003
578 * @tc.desc : Test Player SetMediaSource interface
579 */
580 HWTEST_F(PlayerServerUnitTest, Player_SetMediaSource_003, TestSize.Level1)
581 {
582 std::map<std::string, std::string> header = {
583 {"key1", "value1"},
584 {"key2", "value2"},
585 };
586 struct AVPlayStrategy strategy = {1080, 920, 10000, false};
587 std::shared_ptr<AVMediaSource> mediaSource = std::make_shared<AVMediaSource>(MEDIA_ROOT + "error.mp4", header);
588 int32_t ret = player_->SetMediaSource(mediaSource, strategy);
589 EXPECT_EQ(MSERR_OK, ret);
590 EXPECT_NE(MSERR_OK, player_->PrepareAsync());
591 }
592
593 /**
594 * @tc.name : Test Player SetMediaSource API
595 * @tc.number: Player_SetMediaSource_004
596 * @tc.desc : Test Player SetMediaSource interface
597 */
598 HWTEST_F(PlayerServerUnitTest, Player_SetMediaSource_004, TestSize.Level1)
599 {
600 std::map<std::string, std::string> header = {
601 {"key1", "value1"},
602 {"key2", "value2"},
603 };
604 struct AVPlayStrategy strategy = {1080, 920, 10000, false};
605 std::shared_ptr<AVMediaSource> mediaSource = std::make_shared<AVMediaSource>(MEDIA_ROOT + "error.mp4", header);
606 int32_t ret = player_->SetMediaSource(mediaSource, strategy);
607 EXPECT_EQ(MSERR_OK, ret);
608 EXPECT_NE(MSERR_OK, player_->PrepareAsync());
609 EXPECT_NE(MSERR_OK, player_->Prepare());
610 }
611
612 /**
613 * @tc.name : Test Player SetMediaSource API
614 * @tc.number: Player_SetMediaSource_005
615 * @tc.desc : Test Player SetMediaSource interface
616 */
617 HWTEST_F(PlayerServerUnitTest, Player_SetMediaSource_005, TestSize.Level1)
618 {
619 std::map<std::string, std::string> header = {
620 {"key1", "value1"},
621 {"key2", "value2"},
622 };
623 struct AVPlayStrategy strategy = {1080, 920, 10000, false};
624 std::shared_ptr<AVMediaSource> mediaSource = std::make_shared<AVMediaSource>(MEDIA_ROOT + "error.mp4", header);
625 int32_t ret = player_->SetMediaSource(mediaSource, strategy);
626 EXPECT_EQ(MSERR_OK, ret);
627 EXPECT_NE(MSERR_OK, player_->Play());
628 EXPECT_EQ(false, player_->IsPlaying());
629 }
630
631 /**
632 * @tc.name : Test Player SetMediaSource API
633 * @tc.number: Player_SetMediaSource_006
634 * @tc.desc : Test Player SetMediaSource interface
635 */
636 HWTEST_F(PlayerServerUnitTest, Player_SetMediaSource_006, TestSize.Level1)
637 {
638 std::map<std::string, std::string> header = {
639 };
640 struct AVPlayStrategy strategy = {1080, 920, 10000, false};
641 std::shared_ptr<AVMediaSource> mediaSource = std::make_shared<AVMediaSource>(MEDIA_ROOT + "error.mp4", header);
642 int32_t ret = player_->SetMediaSource(mediaSource, strategy);
643 EXPECT_EQ(MSERR_OK, ret);
644 EXPECT_NE(MSERR_OK, player_->Play());
645 EXPECT_EQ(false, player_->IsPlaying());
646 }
647
648 /**
649 * @tc.name : Test Player StrToInt API
650 * @tc.number: Player_StrToInt_001
651 * @tc.desc : Test Player StrToInt interface
652 */
653 HWTEST_F(PlayerServerUnitTest, Player_StrToInt_001, TestSize.Level1)
654 {
655 std::string str = "123";
656 int32_t fd = -1;
657 int32_t num = 123;
658 auto res = StrToInt(str, fd);
659 EXPECT_EQ(res, true);
660 EXPECT_EQ(fd, num);
661 }
662
663 /**
664 * @tc.name : Test Player StrToInt API
665 * @tc.number: Player_StrToInt_002
666 * @tc.desc : Test Player StrToInt interface
667 */
668 HWTEST_F(PlayerServerUnitTest, Player_StrToInt_002, TestSize.Level1)
669 {
670 std::string str = "12a3";
671 int32_t fd = -1;
672 auto res = StrToInt(str, fd);
673 EXPECT_EQ(res, false);
674 }
675
676 /**
677 * @tc.name : Test Player StrToInt API
678 * @tc.number: Player_StrToInt_003
679 * @tc.desc : Test Player StrToInt interface
680 */
681 HWTEST_F(PlayerServerUnitTest, Player_StrToInt_003, TestSize.Level1)
682 {
683 std::string str = "9223372036854775809";
684 int32_t fd = -1;
685 auto res = StrToInt(str, fd);
686 EXPECT_EQ(res, false);
687 }
688
689 /**
690 * @tc.name : Test Player SetSource API
691 * @tc.number: Player_SetSource_001
692 * @tc.desc : Test Player SetSource interface
693 */
694 HWTEST_F(PlayerServerUnitTest, Player_SetSource_001, TestSize.Level1)
695 {
696 int32_t ret = player_->SetSource(VIDEO_FILE1);
697 EXPECT_EQ(MSERR_OK, ret);
698 }
699
700 /**
701 * @tc.name : Test Player SetSource API
702 * @tc.number: Player_SetSource_002
703 * @tc.desc : Test Player SetSource interface with invalid path
704 */
705 HWTEST_F(PlayerServerUnitTest, Player_SetSource_002, TestSize.Level1)
706 {
707 int32_t ret = player_->SetSource(MEDIA_ROOT + "kong.mp4");
708 EXPECT_NE(MSERR_OK, ret);
709 }
710
711 /**
712 * @tc.name : Test Player SetSource API
713 * @tc.number: Player_SetSource_003
714 * @tc.desc : Test Player SetSource interface with wrong mp3
715 */
716 HWTEST_F(PlayerServerUnitTest, Player_SetSource_003, TestSize.Level2)
717 {
718 system("param set sys.media.player.buffering.enable TRUE");
719 PlaybackRateMode mode;
720 int32_t time = 0;
721 int32_t duration = 0;
722 float playbackRate = 1.5f;
723 std::vector<Format> videoTrack;
724 std::vector<Format> audioTrack;
725 int32_t ret = player_->SetSource(MEDIA_ROOT + "1kb.mp3");
726 EXPECT_EQ(MSERR_OK, ret);
727 sptr<Surface> videoSurface = player_->GetVideoSurface();
728 ASSERT_NE(nullptr, videoSurface);
729 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
730 EXPECT_NE(MSERR_OK, player_->PrepareAsync());
731 EXPECT_NE(MSERR_OK, player_->Prepare());
732 Format format;
733 format.PutIntValue(PlayerKeys::VIDEO_SCALE_TYPE,
734 static_cast<int32_t>(Plugins::VideoScaleType::VIDEO_SCALE_TYPE_FIT));
735 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
736 EXPECT_NE(MSERR_OK, player_->SetVolume(1, 1));
737 EXPECT_NE(MSERR_OK, player_->Play());
738 EXPECT_EQ(false, player_->IsPlaying());
739 EXPECT_NE(MSERR_OK, player_->Pause());
740 EXPECT_NE(MSERR_OK, player_->Seek(0, SEEK_CLOSEST));
741 EXPECT_NE(MSERR_OK, player_->SetLooping(true));
742 EXPECT_EQ(false, player_->IsLooping());
743 EXPECT_NE(MSERR_OK, player_->SetVolume(1, 1));
744 EXPECT_NE(MSERR_OK, player_->SetPlaybackRate(playbackRate));
745 EXPECT_NE(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
746 EXPECT_NE(MSERR_OK, player_->GetPlaybackSpeed(mode));
747 EXPECT_NE(MSERR_OK, player_->GetCurrentTime(time));
748 EXPECT_NE(MSERR_OK, player_->GetDuration(duration));
749 EXPECT_NE(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
750 EXPECT_NE(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
751 EXPECT_NE(480, player_->GetVideoHeight());
752 EXPECT_NE(720, player_->GetVideoWidth());
753 EXPECT_NE(MSERR_OK, player_->Stop());
754 EXPECT_EQ(MSERR_OK, player_->Reset());
755 system("param set sys.media.player.buffering.enable FALSE");
756 }
757
758 /**
759 * @tc.name : Test Player SetSource API
760 * @tc.number: Player_SetSource_004
761 * @tc.desc : Test Player SetSource interface with txt
762 */
763 HWTEST_F(PlayerServerUnitTest, Player_SetSource_004, TestSize.Level2)
764 {
765 int32_t ret = player_->SetSource(MEDIA_ROOT + "error.mp4");
766 EXPECT_EQ(MSERR_OK, ret);
767 EXPECT_NE(MSERR_OK, player_->PrepareAsync());
768 }
769
770 /**
771 * @tc.name : Test Player SetSource
772 * @tc.number: Player_SetSource_005
773 * @tc.desc : Test Player SetSource interface
774 */
775 HWTEST_F(PlayerServerUnitTest, Player_SetSource_005, TestSize.Level3)
776 {
777 PlaybackRateMode mode;
778 int32_t duration = 0;
779 float playbackRate = 1.5f;
780 std::vector<Format> videoTrack;
781 std::vector<Format> audioTrack;
782 Format format;
783 format.PutIntValue(PlayerKeys::VIDEO_SCALE_TYPE,
784 static_cast<int32_t>(Plugins::VideoScaleType::VIDEO_SCALE_TYPE_FIT));
785 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
786 sptr<Surface> videoSurface = player_->GetVideoSurface();
787 ASSERT_NE(nullptr, videoSurface);
788 EXPECT_NE(MSERR_OK, player_->SetVideoSurface(videoSurface));
789 EXPECT_NE(MSERR_OK, player_->PrepareAsync());
790 EXPECT_NE(MSERR_OK, player_->Prepare());
791 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
792 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
793 EXPECT_NE(MSERR_OK, player_->Play());
794 EXPECT_NE(MSERR_OK, player_->Pause());
795 EXPECT_NE(MSERR_OK, player_->Seek(0, SEEK_CLOSEST));
796 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
797 EXPECT_EQ(true, player_->IsLooping());
798 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
799 EXPECT_NE(MSERR_OK, player_->SetPlaybackRate(playbackRate));
800 EXPECT_NE(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
801 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
802 EXPECT_EQ(SPEED_FORWARD_1_00_X, mode);
803 EXPECT_NE(MSERR_OK, player_->GetDuration(duration));
804 EXPECT_NE(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
805 EXPECT_NE(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
806 EXPECT_NE(480, player_->GetVideoHeight());
807 EXPECT_NE(720, player_->GetVideoWidth());
808 EXPECT_NE(MSERR_OK, player_->Stop());
809 EXPECT_NE(MSERR_OK, player_->Reset());
810 }
811
812 /**
813 * @tc.name : Test Player SetSource API
814 * @tc.number: Player_SetSource_006
815 * @tc.desc : Test Player SetSource interface
816 */
817 HWTEST_F(PlayerServerUnitTest, Player_SetSource_006, TestSize.Level2)
818 {
819 int32_t ret = player_->SetSource(VIDEO_FILE1);
820 EXPECT_EQ(MSERR_OK, ret);
821 EXPECT_EQ(MSERR_OK, player_->Reset());
822 EXPECT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
823 }
824
825 /**
826 * @tc.name : Test Player SetSource API
827 * @tc.number: Player_SetSource_007
828 * @tc.desc : Test Player SetSource interface
829 */
830 HWTEST_F(PlayerServerUnitTest, Player_SetSource_007, TestSize.Level2)
831 {
832 EXPECT_NE(MSERR_OK, player_->SetSource(INVALID_FILE));
833 }
834
835 /**
836 * @tc.name : Test Player SetSource API
837 * @tc.number: Player_SetSource_009
838 * @tc.desc : Test Player SetSource interface
839 */
840 HWTEST_F(PlayerServerUnitTest, Player_SetSource_009, TestSize.Level2)
841 {
842 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
843 sptr<Surface> videoSurface = player_->GetVideoSurface();
844 ASSERT_NE(nullptr, videoSurface);
845 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
846 int32_t ret = player_->PrepareAsync();
847 ASSERT_NE(MSERR_OK, player_->SetSource(MEDIA_ROOT + "AVC_Baseline@L1.2_81.0Kbps_320x240.mp4"));
848 if (ret == MSERR_OK) {
849 PlayFunTest(LOCAL_PLAY);
850 }
851 }
852
853 /**
854 * @tc.name : Test Player SetSource API
855 * @tc.number: Player_SetSource_012
856 * @tc.desc : Test Player SetSource interface
857 */
858 HWTEST_F(PlayerServerUnitTest, Player_SetSource_012, TestSize.Level2)
859 {
860 int32_t ret = player_->SetSource(VIDEO_FILE1, 0, 0);
861 ASSERT_EQ(MSERR_OK, ret);
862 }
863
864 /**
865 * @tc.name : Test Player Local
866 * @tc.number: Player_Local_001
867 * @tc.desc : Test Player Local source
868 */
869 HWTEST_F(PlayerServerUnitTest, Player_Local_001, TestSize.Level2)
870 {
871 int32_t ret = player_->SetSource(MEDIA_ROOT + "AVC_Baseline@L1.2_81.0Kbps_320x240.mp4");
872 EXPECT_EQ(MSERR_OK, ret);
873 sptr<Surface> videoSurface = player_->GetVideoSurface();
874 ASSERT_NE(nullptr, videoSurface);
875 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
876 ret = player_->PrepareAsync();
877 if (ret == MSERR_OK) {
878 PlayFunTest(LOCAL_PLAY);
879 }
880 }
881
882 /**
883 * @tc.name : Test Player Local
884 * @tc.number: Player_Local_003
885 * @tc.desc : Test Player Local source
886 */
887 HWTEST_F(PlayerServerUnitTest, Player_Local_003, TestSize.Level2)
888 {
889 int32_t ret = player_->SetSource(MEDIA_ROOT + "H264_MP3.mp4");
890 EXPECT_EQ(MSERR_OK, ret);
891 sptr<Surface> videoSurface = player_->GetVideoSurface();
892 ASSERT_NE(nullptr, videoSurface);
893 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
894 ret = player_->PrepareAsync();
895 if (ret == MSERR_OK) {
896 PlayFunTest(LOCAL_PLAY);
897 }
898 }
899
900 /**
901 * @tc.name : Test Player Local
902 * @tc.number: Player_Local_008
903 * @tc.desc : Test Player Local source
904 */
905 HWTEST_F(PlayerServerUnitTest, Player_Local_008, TestSize.Level2)
906 {
907 int32_t ret = player_->SetSource(MEDIA_ROOT + "out_170_170.mp4");
908 EXPECT_EQ(MSERR_OK, ret);
909 sptr<Surface> videoSurface = player_->GetVideoSurface();
910 ASSERT_NE(nullptr, videoSurface);
911 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
912 ret = player_->PrepareAsync();
913 if (ret == MSERR_OK) {
914 PlayFunTest(LOCAL_PLAY);
915 }
916 }
917
918 /**
919 * @tc.name : Test Player Local
920 * @tc.number: Player_Local_009
921 * @tc.desc : Test Player Local source
922 */
923 HWTEST_F(PlayerServerUnitTest, Player_Local_009, TestSize.Level2)
924 {
925 int32_t ret = player_->SetSource(MEDIA_ROOT + "H264_AAC_320x240.mp4");
926 EXPECT_EQ(MSERR_OK, ret);
927 sptr<Surface> videoSurface = player_->GetVideoSurface();
928 ASSERT_NE(nullptr, videoSurface);
929 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
930 ret = player_->PrepareAsync();
931 if (ret == MSERR_OK) {
932 PlayFunTest(LOCAL_PLAY);
933 }
934 }
935
936 /**
937 * @tc.name : Test Player Local
938 * @tc.number: Player_Local_010
939 * @tc.desc : Test Player Local source
940 */
941 HWTEST_F(PlayerServerUnitTest, Player_Local_010, TestSize.Level2)
942 {
943 int32_t ret = player_->SetSource(MEDIA_ROOT + "aac_44100Hz_143kbs_stereo.aac");
944 EXPECT_EQ(MSERR_OK, ret);
945 sptr<Surface> videoSurface = player_->GetVideoSurface();
946 ASSERT_NE(nullptr, videoSurface);
947 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
948 ret = player_->PrepareAsync();
949 if (ret == MSERR_OK) {
950 PlayFunTest(LOCAL_PLAY);
951 }
952 }
953
954 /**
955 * @tc.name : Test Player Local
956 * @tc.number: Player_Local_011
957 * @tc.desc : Test Player Local source
958 */
959 HWTEST_F(PlayerServerUnitTest, Player_Local_011, TestSize.Level2)
960 {
961 int32_t ret = player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3");
962 EXPECT_EQ(MSERR_OK, ret);
963 sptr<Surface> videoSurface = player_->GetVideoSurface();
964 ASSERT_NE(nullptr, videoSurface);
965 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
966 ret = player_->PrepareAsync();
967 if (ret == MSERR_OK) {
968 PlayFunTest(LOCAL_PLAY);
969 }
970 }
971
972 /**
973 * @tc.name : Test Player Local
974 * @tc.number: Player_Local_013
975 * @tc.desc : Test Player Local source
976 */
977 HWTEST_F(PlayerServerUnitTest, Player_Local_013, TestSize.Level2)
978 {
979 int32_t ret = player_->SetSource(MEDIA_ROOT + "pcm_s16le_48000Hz_768kbs_mono.wav");
980 EXPECT_EQ(MSERR_OK, ret);
981 sptr<Surface> videoSurface = player_->GetVideoSurface();
982 ASSERT_NE(nullptr, videoSurface);
983 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
984 ret = player_->PrepareAsync();
985 if (ret == MSERR_OK) {
986 PlayFunTest(LOCAL_PLAY);
987 }
988 }
989
990 /**
991 * @tc.name : Test Player Local
992 * @tc.number: Player_Local_014
993 * @tc.desc : Test Player Local source
994 */
995 HWTEST_F(PlayerServerUnitTest, Player_Local_014, TestSize.Level2)
996 {
997 int32_t ret = player_->SetSource(MEDIA_ROOT + "vorbis_48000Hz_80kbs_mono.ogg");
998 EXPECT_EQ(MSERR_OK, ret);
999 sptr<Surface> videoSurface = player_->GetVideoSurface();
1000 ASSERT_NE(nullptr, videoSurface);
1001 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1002 ret = player_->PrepareAsync();
1003 if (ret == MSERR_OK) {
1004 PlayFunTest(LOCAL_PLAY);
1005 }
1006 }
1007
1008 /**
1009 * @tc.name : Test Player Local
1010 * @tc.number: Player_Local_015
1011 * @tc.desc : Test Player Local source
1012 */
1013 HWTEST_F(PlayerServerUnitTest, Player_Local_015, TestSize.Level2)
1014 {
1015 int32_t ret = player_->SetSource(MEDIA_ROOT + "aac_48000Hz_70kbs_mono.m4a");
1016 EXPECT_EQ(MSERR_OK, ret);
1017 sptr<Surface> videoSurface = player_->GetVideoSurface();
1018 ASSERT_NE(nullptr, videoSurface);
1019 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1020 ret = player_->PrepareAsync();
1021 if (ret == MSERR_OK) {
1022 PlayFunTest(LOCAL_PLAY);
1023 }
1024 }
1025
1026 #ifdef SUBSCRIBE_HISTREAMER_EXT
1027 /**
1028 * @tc.name : Test Player Local
1029 * @tc.number: Player_Local_016
1030 * @tc.desc : Test Player Local source
1031 */
1032 HWTEST_F(PlayerServerUnitTest, Player_Local_016, TestSize.Level2)
1033 {
1034 int32_t ret = player_->SetSource(MEDIA_ROOT + "H265_AAC.mp4");
1035 EXPECT_EQ(MSERR_OK, ret);
1036 sptr<Surface> videoSurface = player_->GetVideoSurface();
1037 ASSERT_NE(nullptr, videoSurface);
1038 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1039 ret = player_->PrepareAsync();
1040 if (ret == MSERR_OK) {
1041 PlayFunTest(LOCAL_PLAY);
1042 }
1043 }
1044 #endif
1045
1046 /**
1047 * @tc.name : Test Player Local
1048 * @tc.number: Player_Local_017
1049 * @tc.desc : Test Player Local source
1050 */
1051 HWTEST_F(PlayerServerUnitTest, Player_Local_017, TestSize.Level2)
1052 {
1053 int32_t ret = player_->SetSource(MEDIA_ROOT + "amr_nb_8ksr_7400kbr_1ch.amr");
1054 EXPECT_EQ(MSERR_OK, ret);
1055 sptr<Surface> videoSurface = player_->GetVideoSurface();
1056 ASSERT_NE(nullptr, videoSurface);
1057 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1058 ret = player_->PrepareAsync();
1059 if (ret == MSERR_OK) {
1060 PlayFunTest(LOCAL_PLAY);
1061 }
1062 }
1063
1064 /**
1065 * @tc.name : Test Player SetPlayerCallback API
1066 * @tc.number: Player_SetPlayerCallback_001
1067 * @tc.desc : Test Player SetPlayerCallback interface
1068 */
1069 HWTEST_F(PlayerServerUnitTest, Player_SetPlayerCallback_001, TestSize.Level1)
1070 {
1071 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1072 sptr<Surface> videoSurface = player_->GetVideoSurface();
1073 ASSERT_NE(nullptr, videoSurface);
1074 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1075 EXPECT_EQ(MSERR_OK, player_->Prepare());
1076 std::shared_ptr<PlayerCallbackTest> callback = std::make_shared<PlayerCallbackTest>();
1077 ASSERT_NE(nullptr, callback);
1078 EXPECT_NE(MSERR_OK, player_->SetPlayerCallback(callback));
1079 player_->Reset();
1080 player_->SetPlayerCallback(callback);
1081 }
1082
1083 /**
1084 * @tc.name : Test Player Prepare API
1085 * @tc.number: Player_Prepare_001
1086 * @tc.desc : Test Player Prepare interface
1087 */
1088 HWTEST_F(PlayerServerUnitTest, Player_Prepare_001, TestSize.Level1)
1089 {
1090 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1091 sptr<Surface> videoSurface = player_->GetVideoSurface();
1092 ASSERT_NE(nullptr, videoSurface);
1093 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1094 EXPECT_EQ(MSERR_OK, player_->Prepare());
1095 }
1096
1097 /**
1098 * @tc.name : Test Player Prepare API
1099 * @tc.number: Player_Prepare_002
1100 * @tc.desc : Test Player Prepare->Prepare
1101 */
1102 HWTEST_F(PlayerServerUnitTest, Player_Prepare_002, TestSize.Level2)
1103 {
1104 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1105 sptr<Surface> videoSurface = player_->GetVideoSurface();
1106 ASSERT_NE(nullptr, videoSurface);
1107 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1108 EXPECT_EQ(MSERR_OK, player_->Prepare());
1109 EXPECT_NE(MSERR_OK, player_->Prepare());
1110 }
1111
1112 /**
1113 * @tc.name : Test Player Prepare API
1114 * @tc.number: Player_Prepare_003
1115 * @tc.desc : Test Player SetVolume/SetLooping/SetPlaybackSpeed->Prepare
1116 */
1117 HWTEST_F(PlayerServerUnitTest, Player_Prepare_003, TestSize.Level2)
1118 {
1119 float playbackRate = 1.5f;
1120 PlaybackRateMode rateMode;
1121 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1122 sptr<Surface> renderSurface = player_->GetVideoSurface();
1123 ASSERT_NE(nullptr, renderSurface);
1124 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(renderSurface));
1125 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
1126 bool ret = player_->IsLooping();
1127 EXPECT_EQ(true, ret);
1128 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1129 EXPECT_NE(MSERR_OK, player_->SetPlaybackRate(playbackRate));
1130 EXPECT_NE(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
1131 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(rateMode));
1132 EXPECT_NE(SPEED_FORWARD_2_00_X, rateMode);
1133 EXPECT_EQ(MSERR_OK, player_->Prepare());
1134 EXPECT_EQ(true, player_->IsLooping());
1135 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(rateMode));
1136 EXPECT_NE(SPEED_FORWARD_2_00_X, rateMode);
1137 }
1138
1139 /**
1140 * @tc.name : Test Player Prepare API
1141 * @tc.number: Player_Prepare_004
1142 * @tc.desc : Test Player Stop->Prepare
1143 */
1144 HWTEST_F(PlayerServerUnitTest, Player_Prepare_004, TestSize.Level2)
1145 {
1146 float playbackRate = 1.5f;
1147 PlaybackRateMode mode;
1148 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1149 sptr<Surface> videoSurface = player_->GetVideoSurface();
1150 ASSERT_NE(nullptr, videoSurface);
1151 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1152 EXPECT_EQ(MSERR_OK, player_->Prepare());
1153 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
1154 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1155 EXPECT_EQ(MSERR_OK, player_->SetPlaybackRate(playbackRate));
1156 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
1157 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
1158 EXPECT_EQ(mode, SPEED_FORWARD_2_00_X);
1159 EXPECT_EQ(MSERR_OK, player_->Stop());
1160 EXPECT_EQ(MSERR_OK, player_->Prepare());
1161 EXPECT_EQ(true, player_->IsLooping());
1162 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
1163 EXPECT_EQ(mode, SPEED_FORWARD_2_00_X);
1164 }
1165
1166 /**
1167 * @tc.name : Test Player Prepare API
1168 * @tc.number: Player_Prepare_005
1169 * @tc.desc : Test Player Play->Prepare
1170 */
1171 HWTEST_F(PlayerServerUnitTest, Player_Prepare_005, TestSize.Level2)
1172 {
1173 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1174 sptr<Surface> videoSurface = player_->GetVideoSurface();
1175 ASSERT_NE(nullptr, videoSurface);
1176 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1177 EXPECT_EQ(MSERR_OK, player_->Prepare());
1178 EXPECT_EQ(MSERR_OK, player_->Play());
1179 EXPECT_NE(MSERR_OK, player_->Prepare());
1180 }
1181
1182 /**
1183 * @tc.name : Test Player PrepareAsync API
1184 * @tc.number: Player_PrepareAsync_001
1185 * @tc.desc : Test Player PrepareAsync interface
1186 */
1187 HWTEST_F(PlayerServerUnitTest, Player_PrepareAsync_001, TestSize.Level1)
1188 {
1189 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1190 sptr<Surface> videoSurface = player_->GetVideoSurface();
1191 ASSERT_NE(nullptr, videoSurface);
1192 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1193 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
1194 }
1195
1196 /**
1197 * @tc.name : Test Player PrepareAsync API
1198 * @tc.number: Player_PrepareAsync_002
1199 * @tc.desc : Test Player PrepareAsync->PrepareAsync
1200 */
1201 HWTEST_F(PlayerServerUnitTest, Player_PrepareAsync_002, TestSize.Level2)
1202 {
1203 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1204 sptr<Surface> videoSurface = player_->GetVideoSurface();
1205 ASSERT_NE(nullptr, videoSurface);
1206 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1207 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
1208 EXPECT_NE(MSERR_OK, player_->PrepareAsync());
1209 }
1210
1211 /**
1212 * @tc.name : Test Player PrepareAsync API
1213 * @tc.number: Player_PrepareAsync_003
1214 * @tc.desc : Test Player SetVolume/SetLooping/SetPlaybackSpeed->PrepareAsync
1215 */
1216 HWTEST_F(PlayerServerUnitTest, Player_PrepareAsync_003, TestSize.Level2)
1217 {
1218 PlaybackRateMode mode;
1219 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1220 sptr<Surface> videoSurface = player_->GetVideoSurface();
1221 ASSERT_NE(nullptr, videoSurface);
1222 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1223 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
1224 EXPECT_EQ(true, player_->IsLooping());
1225 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1226 EXPECT_NE(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
1227 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
1228 EXPECT_NE(SPEED_FORWARD_2_00_X, mode);
1229 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
1230 EXPECT_EQ(true, player_->IsLooping());
1231 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
1232 EXPECT_NE(SPEED_FORWARD_2_00_X, mode);
1233 }
1234
1235 /**
1236 * @tc.name : Test Player PrepareAsync API
1237 * @tc.number: Player_PrepareAsync1_003
1238 * @tc.desc : Test Player SetVolume/SetLooping/SetPlaybackRate->PrepareAsync
1239 */
1240 HWTEST_F(PlayerServerUnitTest, Player_PrepareAsync1_003, TestSize.Level2)
1241 {
1242 float playbackRate = 2.0f;
1243 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1244 sptr<Surface> videoSurface = player_->GetVideoSurface();
1245 ASSERT_NE(nullptr, videoSurface);
1246 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1247 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
1248 EXPECT_EQ(true, player_->IsLooping());
1249 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1250 EXPECT_NE(MSERR_OK, player_->SetPlaybackRate(playbackRate));
1251 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
1252 EXPECT_EQ(true, player_->IsLooping());
1253 }
1254
1255 /**
1256 * @tc.name : Test Player PrepareAsync API
1257 * @tc.number: Player_PrepareAsync_004
1258 * @tc.desc : Test Player Stop->PrepareAsync
1259 */
1260 HWTEST_F(PlayerServerUnitTest, Player_PrepareAsync_004, TestSize.Level2)
1261 {
1262 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1263 sptr<Surface> videoSurface = player_->GetVideoSurface();
1264 ASSERT_NE(nullptr, videoSurface);
1265 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1266 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
1267 EXPECT_EQ(MSERR_OK, player_->Stop());
1268 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
1269 }
1270
1271 /**
1272 * @tc.name : Test Player PrepareAsync API
1273 * @tc.number: Player_PrepareAsync_005
1274 * @tc.desc : Test Player Play->PrepareAsync
1275 */
1276 HWTEST_F(PlayerServerUnitTest, Player_PrepareAsync_005, TestSize.Level2)
1277 {
1278 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1279 sptr<Surface> videoSurface = player_->GetVideoSurface();
1280 ASSERT_NE(nullptr, videoSurface);
1281 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1282 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
1283 EXPECT_EQ(MSERR_OK, player_->Play());
1284 EXPECT_NE(MSERR_OK, player_->PrepareAsync());
1285 }
1286
1287 /**
1288 * @tc.name : Test Player PrepareAsync API
1289 * @tc.number: Player_PrepareAsync_006
1290 * @tc.desc : Test Player Play->PrepareAsync
1291 */
1292 HWTEST_F(PlayerServerUnitTest, Player_PrepareAsync_006, TestSize.Level2)
1293 {
1294 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "H264_AAC_DRM.ts"));
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_->PrepareAsync());
1299 }
1300
1301 /**
1302 * @tc.name : Test Player SetVideoSurface API
1303 * @tc.number: Player_SetVideoSurface_001
1304 * @tc.desc : Test Player SetVideoSurface interface
1305 */
1306 HWTEST_F(PlayerServerUnitTest, Player_SetVideoSurface_001, TestSize.Level1)
1307 {
1308 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1309 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(player_->GetVideoSurface()));
1310 }
1311
1312 /**
1313 * @tc.name : Test Player SetVideoSurface API
1314 * @tc.number: Player_SetVideoSurface_002
1315 * @tc.desc : Test Player PrepareAsync->SetVideoSurface
1316 */
1317 HWTEST_F(PlayerServerUnitTest, Player_SetVideoSurface_002, TestSize.Level2)
1318 {
1319 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1320 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
1321 sptr<Surface> videoSurface = player_->GetVideoSurface();
1322 ASSERT_NE(nullptr, videoSurface);
1323 EXPECT_NE(MSERR_OK, player_->SetVideoSurface(videoSurface));
1324 }
1325
1326 /**
1327 * @tc.name : Test Player SetVideoSurface API
1328 * @tc.number: Player_SetVideoSurface_003
1329 * @tc.desc : Test Player SetVideoSurface interface
1330 */
1331 HWTEST_F(PlayerServerUnitTest, Player_SetVideoSurface_003, TestSize.Level1)
1332 {
1333 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1334 EXPECT_EQ(MSERR_OK, player_->Prepare());
1335 sptr<Surface> videoSurface = player_->GetVideoSurface();
1336 ASSERT_NE(nullptr, videoSurface);
1337 EXPECT_NE(MSERR_OK, player_->SetVideoSurface(videoSurface));
1338 }
1339
1340 /**
1341 * @tc.name : Test Player Play API
1342 * @tc.number: Player_Play_001
1343 * @tc.desc : Test Player Play interface
1344 */
1345 HWTEST_F(PlayerServerUnitTest, Player_Play_001, TestSize.Level1)
1346 {
1347 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1348 sptr<Surface> videoSurface = player_->GetVideoSurface();
1349 ASSERT_NE(nullptr, videoSurface);
1350 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1351 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
1352 EXPECT_EQ(MSERR_OK, player_->Play());
1353 EXPECT_TRUE(player_->IsPlaying());
1354 EXPECT_EQ(MSERR_OK, player_->Pause());
1355 EXPECT_EQ(MSERR_OK, player_->Play());
1356 }
1357
1358 /**
1359 * @tc.name : Test Player Play API
1360 * @tc.number: Player_Play_002
1361 * @tc.desc : Test Player Reset->Play
1362 */
1363 HWTEST_F(PlayerServerUnitTest, Player_Play_002, TestSize.Level2)
1364 {
1365 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1366 sptr<Surface> videoSurface = player_->GetVideoSurface();
1367 ASSERT_NE(nullptr, videoSurface);
1368 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1369 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
1370 EXPECT_EQ(MSERR_OK, player_->Play());
1371 EXPECT_TRUE(player_->IsPlaying());
1372 EXPECT_EQ(MSERR_OK, player_->Reset());
1373 EXPECT_NE(MSERR_OK, player_->Play());
1374 }
1375
1376 /**
1377 * @tc.name : Test Player Play API
1378 * @tc.number: Player_Play_003
1379 * @tc.desc : Test Player complete->Play
1380 */
1381 HWTEST_F(PlayerServerUnitTest, Player_Play_003, TestSize.Level2)
1382 {
1383 int32_t duration = 0;
1384 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1385 sptr<Surface> videoSurface = player_->GetVideoSurface();
1386 ASSERT_NE(nullptr, videoSurface);
1387 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1388 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
1389 EXPECT_EQ(MSERR_OK, player_->Play());
1390 EXPECT_TRUE(player_->IsPlaying());
1391 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1392 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
1393 sleep(PLAYING_TIME_2_SEC);
1394 EXPECT_EQ(MSERR_OK, player_->Play());
1395 }
1396
1397 /**
1398 * @tc.name : Test Player Play API
1399 * @tc.number: Player_Play_004
1400 * @tc.desc : Test Player Play->Play
1401 */
1402 HWTEST_F(PlayerServerUnitTest, Player_Play_004, TestSize.Level2)
1403 {
1404 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1405 sptr<Surface> videoSurface = player_->GetVideoSurface();
1406 ASSERT_NE(nullptr, videoSurface);
1407 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1408 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
1409 EXPECT_EQ(MSERR_OK, player_->Play());
1410 EXPECT_TRUE(player_->IsPlaying());
1411 EXPECT_NE(MSERR_OK, player_->Play());
1412 }
1413
1414 /**
1415 * @tc.name : Test Player Stop API
1416 * @tc.number: Player_Stop_001
1417 * @tc.desc : Test Player Stop Play->Stop
1418 */
1419 HWTEST_F(PlayerServerUnitTest, Player_Stop_001, TestSize.Level1)
1420 {
1421 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1, 0, 0));
1422 sptr<Surface> videoSurface = player_->GetVideoSurface();
1423 ASSERT_NE(nullptr, videoSurface);
1424 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1425 EXPECT_EQ(MSERR_OK, player_->Prepare());
1426 EXPECT_EQ(MSERR_OK, player_->Play());
1427 EXPECT_TRUE(player_->IsPlaying());
1428 EXPECT_EQ(MSERR_OK, player_->Stop());
1429 }
1430
1431 /**
1432 * @tc.name : Test Player Stop API
1433 * @tc.number: Player_Stop_002
1434 * @tc.desc : Test Player Stop Prepare->Stop
1435 */
1436 HWTEST_F(PlayerServerUnitTest, Player_Stop_002, TestSize.Level2)
1437 {
1438 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1, 0, 0));
1439 sptr<Surface> videoSurface = player_->GetVideoSurface();
1440 ASSERT_NE(nullptr, videoSurface);
1441 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1442 EXPECT_EQ(MSERR_OK, player_->Prepare());
1443 EXPECT_EQ(MSERR_OK, player_->Stop());
1444 }
1445
1446 /**
1447 * @tc.name : Test Player Stop API
1448 * @tc.number: Player_Stop_003
1449 * @tc.desc : Test Player Stop complete/stop->Stop
1450 */
1451 HWTEST_F(PlayerServerUnitTest, Player_Stop_003, TestSize.Level2)
1452 {
1453 int32_t duration = 0;
1454 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1, 0, 0));
1455 sptr<Surface> videoSurface = player_->GetVideoSurface();
1456 ASSERT_NE(nullptr, videoSurface);
1457 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1458 EXPECT_EQ(MSERR_OK, player_->Prepare());
1459 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1460 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
1461 sleep(PLAYING_TIME_2_SEC);
1462 EXPECT_EQ(MSERR_OK, player_->Stop());
1463 EXPECT_NE(MSERR_OK, player_->Stop());
1464 }
1465
1466 /**
1467 * @tc.name : Test Player Stop API
1468 * @tc.number: Player_Stop_004
1469 * @tc.desc : Test Player Stop Reset->Stop
1470 */
1471 HWTEST_F(PlayerServerUnitTest, Player_Stop_004, TestSize.Level2)
1472 {
1473 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1, 0, 0));
1474 sptr<Surface> videoSurface = player_->GetVideoSurface();
1475 ASSERT_NE(nullptr, videoSurface);
1476 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1477 EXPECT_EQ(MSERR_OK, player_->Prepare());
1478 EXPECT_EQ(MSERR_OK, player_->Play());
1479 EXPECT_EQ(MSERR_OK, player_->Reset());
1480 EXPECT_NE(MSERR_OK, player_->Stop());
1481 }
1482
1483 /**
1484 * @tc.name : Test Player Stop API
1485 * @tc.number: Player_Stop_005
1486 * @tc.desc : Test Player Reset->Stop
1487 */
1488 HWTEST_F(PlayerServerUnitTest, Player_Stop_005, TestSize.Level2)
1489 {
1490 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1, 0, 0));
1491 sptr<Surface> videoSurface = player_->GetVideoSurface();
1492 ASSERT_NE(nullptr, videoSurface);
1493 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1494 EXPECT_EQ(MSERR_OK, player_->Prepare());
1495 EXPECT_EQ(MSERR_OK, player_->Play());
1496 EXPECT_TRUE(player_->IsPlaying());
1497 EXPECT_EQ(MSERR_OK, player_->Reset());
1498 EXPECT_NE(MSERR_OK, player_->Stop());
1499 }
1500
1501 /**
1502 * @tc.name : Test Player Pause API
1503 * @tc.number: Player_Pause_001
1504 * @tc.desc : Test Player Pause interface
1505 */
1506 HWTEST_F(PlayerServerUnitTest, Player_Pause_001, TestSize.Level1)
1507 {
1508 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1509 sptr<Surface> videoSurface = player_->GetVideoSurface();
1510 ASSERT_NE(nullptr, videoSurface);
1511 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1512 EXPECT_EQ(MSERR_OK, player_->Prepare());
1513 EXPECT_EQ(MSERR_OK, player_->Play());
1514 EXPECT_TRUE(player_->IsPlaying());
1515 EXPECT_EQ(MSERR_OK, player_->Pause());
1516 EXPECT_FALSE(player_->IsPlaying());
1517 EXPECT_EQ(MSERR_OK, player_->Pause());
1518 }
1519
1520 /**
1521 * @tc.name : Test Player Pause API
1522 * @tc.number: Player_Pause_002
1523 * @tc.desc : Test Player Pause interface
1524 */
1525 HWTEST_F(PlayerServerUnitTest, Player_Pause_002, TestSize.Level2)
1526 {
1527 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1528 sptr<Surface> videoSurface = player_->GetVideoSurface();
1529 ASSERT_NE(nullptr, videoSurface);
1530 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1531 EXPECT_EQ(MSERR_OK, player_->Prepare());
1532 EXPECT_NE(MSERR_OK, player_->Pause());
1533 }
1534
1535 /**
1536 * @tc.name : Test Player Pause API
1537 * @tc.number: Player_Pause_003
1538 * @tc.desc : Test Player Pause interface, Stop -> Pause
1539 */
1540 HWTEST_F(PlayerServerUnitTest, Player_Pause_003, TestSize.Level2)
1541 {
1542 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1543 sptr<Surface> videoSurface = player_->GetVideoSurface();
1544 ASSERT_NE(nullptr, videoSurface);
1545 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1546 EXPECT_EQ(MSERR_OK, player_->Prepare());
1547 EXPECT_EQ(MSERR_OK, player_->Stop());
1548 EXPECT_NE(MSERR_OK, player_->Pause());
1549 }
1550
1551 /**
1552 * @tc.name : Test Player Reset API
1553 * @tc.number: Player_Reset_001
1554 * @tc.desc : Test Player Reset interface
1555 */
1556 HWTEST_F(PlayerServerUnitTest, Player_Reset_001, TestSize.Level1)
1557 {
1558 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1559 sptr<Surface> videoSurface = player_->GetVideoSurface();
1560 ASSERT_NE(nullptr, videoSurface);
1561 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1562 EXPECT_EQ(MSERR_OK, player_->Prepare());
1563 EXPECT_EQ(MSERR_OK, player_->Reset());
1564 EXPECT_NE(MSERR_OK, player_->Reset());
1565 }
1566
1567 /**
1568 * @tc.name : Test Player Seek API
1569 * @tc.number: Player_Seek_001
1570 * @tc.desc : Test Player Seek interface with valid parameters
1571 */
1572 HWTEST_F(PlayerServerUnitTest, Player_Seek_001, TestSize.Level1)
1573 {
1574 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1575 sptr<Surface> videoSurface = player_->GetVideoSurface();
1576 ASSERT_NE(nullptr, videoSurface);
1577 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1578 EXPECT_EQ(MSERR_OK, player_->Prepare());
1579 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_4_SEC, SEEK_NEXT_SYNC));
1580 EXPECT_EQ(MSERR_OK, player_->Play());
1581 EXPECT_TRUE(player_->IsPlaying());
1582 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_4_SEC, SEEK_CLOSEST));
1583 int32_t time = 0;
1584 EXPECT_EQ(MSERR_OK, player_->GetCurrentTime(time));
1585 EXPECT_NEAR(SEEK_TIME_4_SEC, time, DELTA_TIME);
1586 EXPECT_EQ(MSERR_OK, player_->Pause());
1587 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_4_SEC, SEEK_NEXT_SYNC));
1588 }
1589
1590 /**
1591 * @tc.name : Test Player Seek API
1592 * @tc.number: Player_Seek_002
1593 * @tc.desc : Test Player Seek interface with seek mode
1594 */
1595 HWTEST_F(PlayerServerUnitTest, Player_Seek_002, TestSize.Level1)
1596 {
1597 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1598 sptr<Surface> videoSurface = player_->GetVideoSurface();
1599 ASSERT_NE(nullptr, videoSurface);
1600 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1601 EXPECT_EQ(MSERR_OK, player_->Prepare());
1602 EXPECT_EQ(MSERR_OK, player_->Seek(0, SEEK_NEXT_SYNC));
1603 EXPECT_EQ(MSERR_OK, player_->Seek(0, SEEK_PREVIOUS_SYNC));
1604 EXPECT_EQ(MSERR_OK, player_->Seek(0, SEEK_CLOSEST_SYNC));
1605 EXPECT_EQ(MSERR_OK, player_->Play());
1606 EXPECT_TRUE(player_->IsPlaying());
1607 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1608 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC));
1609 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_CLOSEST_SYNC));
1610 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, (PlayerSeekMode)5));
1611 }
1612
1613 /**
1614 * @tc.name : Test Player Seek API
1615 * @tc.number: Player_Seek_002
1616 * @tc.desc : Test Player Seek out of duration
1617 */
1618 HWTEST_F(PlayerServerUnitTest, Player_Seek_003, TestSize.Level2)
1619 {
1620 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1621 sptr<Surface> videoSurface = player_->GetVideoSurface();
1622 ASSERT_NE(nullptr, videoSurface);
1623 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1624 EXPECT_EQ(MSERR_OK, player_->Prepare());
1625 EXPECT_EQ(MSERR_OK, player_->Play());
1626 EXPECT_TRUE(player_->IsPlaying());
1627 EXPECT_EQ(MSERR_OK, player_->Seek(1000000, SEEK_NEXT_SYNC));
1628 }
1629
1630 /**
1631 * @tc.name : Test Seek API
1632 * @tc.number: Player_Seek_004
1633 * @tc.desc : Test Player Seek
1634 */
1635 HWTEST_F(PlayerServerUnitTest, Player_Seek_004, TestSize.Level2)
1636 {
1637 int32_t duration = 0;
1638 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1639 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1640 sptr<Surface> videoSurface = player_->GetVideoSurface();
1641 ASSERT_NE(nullptr, videoSurface);
1642 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1643 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1644 EXPECT_EQ(MSERR_OK, player_->Prepare());
1645 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1646 EXPECT_EQ(MSERR_OK, player_->Play());
1647 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1648 EXPECT_EQ(MSERR_OK, player_->Pause());
1649 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1650 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1651 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
1652 EXPECT_EQ(MSERR_OK, player_->Play());
1653 sleep(PLAYING_TIME_2_SEC);
1654 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1655 EXPECT_EQ(MSERR_OK, player_->Stop());
1656 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1657 EXPECT_EQ(MSERR_OK, player_->Reset());
1658 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1659 }
1660
1661 /**
1662 * @tc.name : Test Player Seek API
1663 * @tc.number: Player_Seek_005
1664 * @tc.desc : Test Player Seek interface
1665 */
1666 HWTEST_F(PlayerServerUnitTest, Player_Seek_005, TestSize.Level1)
1667 {
1668 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1669 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC));
1670 sptr<Surface> videoSurface = player_->GetVideoSurface();
1671 ASSERT_NE(nullptr, videoSurface);
1672 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1673 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC));
1674 EXPECT_EQ(MSERR_OK, player_->Prepare());
1675 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC));
1676 }
1677
1678 /**
1679 * @tc.name : Test Player Seek API
1680 * @tc.number: Player_Seek_006
1681 * @tc.desc : Test Player Seek interface
1682 */
1683 HWTEST_F(PlayerServerUnitTest, Player_Seek_006, TestSize.Level1)
1684 {
1685 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1686 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_CLOSEST));
1687 sptr<Surface> videoSurface = player_->GetVideoSurface();
1688 ASSERT_NE(nullptr, videoSurface);
1689 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1690 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_CLOSEST));
1691 EXPECT_EQ(MSERR_OK, player_->Prepare());
1692 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_CLOSEST));
1693 }
1694
1695 /**
1696 * @tc.name : Test Player Seek API
1697 * @tc.number: Player_Seek_007
1698 * @tc.desc : Test Player Seek interface
1699 */
1700 HWTEST_F(PlayerServerUnitTest, Player_Seek_007, TestSize.Level1)
1701 {
1702 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1703 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1704 sptr<Surface> videoSurface = player_->GetVideoSurface();
1705 ASSERT_NE(nullptr, videoSurface);
1706 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1707 EXPECT_NE(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1708 EXPECT_EQ(MSERR_OK, player_->Prepare());
1709 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1710 }
1711
1712 /**
1713 * @tc.name : Test Player Seek API
1714 * @tc.number: Player_Seek_008
1715 * @tc.desc : Test Player Seek interface
1716 */
1717 HWTEST_F(PlayerServerUnitTest, Player_Seek_008, TestSize.Level1)
1718 {
1719 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1720 sptr<Surface> videoSurface = player_->GetVideoSurface();
1721 ASSERT_NE(nullptr, videoSurface);
1722 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1723 EXPECT_EQ(MSERR_OK, player_->Prepare());
1724 EXPECT_EQ(MSERR_OK, player_->Play());
1725 EXPECT_EQ(MSERR_OK, player_->Seek(0, SEEK_CLOSEST));
1726 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_CLOSEST));
1727 int32_t duration = 0;
1728 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1729 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
1730 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_CLOSEST));
1731 EXPECT_EQ(MSERR_OK, player_->Seek(0, SEEK_CLOSEST));
1732 }
1733
1734 /**
1735 * @tc.name : Test Player Seek API
1736 * @tc.number: Player_Seek_009
1737 * @tc.desc : Test Player Seek interface
1738 */
1739 HWTEST_F(PlayerServerUnitTest, Player_Seek_009, TestSize.Level1)
1740 {
1741 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1742 sptr<Surface> videoSurface = player_->GetVideoSurface();
1743 ASSERT_NE(nullptr, videoSurface);
1744 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1745 EXPECT_EQ(MSERR_OK, player_->Prepare());
1746 EXPECT_EQ(MSERR_OK, player_->Play());
1747 EXPECT_EQ(MSERR_OK, player_->Seek(0, SEEK_PREVIOUS_SYNC));
1748 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC));
1749 int32_t duration = 0;
1750 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1751 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_PREVIOUS_SYNC));
1752 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC));
1753 EXPECT_EQ(MSERR_OK, player_->Seek(0, SEEK_PREVIOUS_SYNC));
1754 }
1755
1756 /**
1757 * @tc.name : Test Player Seek API
1758 * @tc.number: Player_Seek_010
1759 * @tc.desc : Test Player Seek interface
1760 */
1761 HWTEST_F(PlayerServerUnitTest, Player_Seek_010, TestSize.Level1)
1762 {
1763 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1764 sptr<Surface> videoSurface = player_->GetVideoSurface();
1765 ASSERT_NE(nullptr, videoSurface);
1766 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1767 EXPECT_EQ(MSERR_OK, player_->Prepare());
1768 EXPECT_EQ(MSERR_OK, player_->Play());
1769 EXPECT_EQ(MSERR_OK, player_->Seek(0, SEEK_NEXT_SYNC));
1770 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1771 int32_t duration = 0;
1772 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1773 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_NEXT_SYNC));
1774 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_NEXT_SYNC));
1775 EXPECT_EQ(MSERR_OK, player_->Seek(0, SEEK_NEXT_SYNC));
1776 }
1777
1778 /**
1779 * @tc.name : Test GetVideoTrackInfo API
1780 * @tc.number: Player_GetVideoTrackInfo_001
1781 * @tc.desc : Test Player GetVideoTrackInfo
1782 */
1783 HWTEST_F(PlayerServerUnitTest, Player_GetVideoTrackInfo_001, TestSize.Level1)
1784 {
1785 std::vector<Format> videoTrack;
1786 std::vector<Format> audioTrack;
1787 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1788 sptr<Surface> videoSurface = player_->GetVideoSurface();
1789 ASSERT_NE(nullptr, videoSurface);
1790 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1791 EXPECT_EQ(MSERR_OK, player_->Prepare());
1792 EXPECT_EQ(MSERR_OK, player_->Play());
1793 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
1794 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1795 }
1796
1797 /**
1798 * @tc.name : Test GetVideoTrackInfo API
1799 * @tc.number: Player_GetVideoTrackInfo_002
1800 * @tc.desc : Test Player GetVideoTrackInfo
1801 */
1802 HWTEST_F(PlayerServerUnitTest, Player_GetVideoTrackInfo_002, TestSize.Level2)
1803 {
1804 std::vector<Format> videoTrack;
1805 std::vector<Format> audioTrack;
1806 int32_t duration = 0;
1807 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1808 EXPECT_NE(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
1809 EXPECT_NE(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1810 sptr<Surface> videoSurface = player_->GetVideoSurface();
1811 ASSERT_NE(nullptr, videoSurface);
1812 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1813 EXPECT_NE(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
1814 EXPECT_NE(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1815 EXPECT_EQ(MSERR_OK, player_->Prepare());
1816 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
1817 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1818 EXPECT_EQ(MSERR_OK, player_->Play());
1819 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
1820 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1821 EXPECT_EQ(MSERR_OK, player_->Pause());
1822 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
1823 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1824 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1825 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
1826 EXPECT_EQ(MSERR_OK, player_->Play());
1827 sleep(PLAYING_TIME_2_SEC);
1828 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
1829 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1830 EXPECT_EQ(MSERR_OK, player_->Stop());
1831 EXPECT_NE(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
1832 EXPECT_NE(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1833 EXPECT_EQ(MSERR_OK, player_->Reset());
1834 EXPECT_NE(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
1835 EXPECT_NE(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1836 }
1837
1838 /**
1839 * @tc.name : Test GetAudioTrackInfo API
1840 * @tc.number: Player_GetAudioTrackInfo_001
1841 * @tc.desc : Test Player GetAudioTrackInfo
1842 */
1843 HWTEST_F(PlayerServerUnitTest, Player_GetAudioTrackInfo_001, TestSize.Level2)
1844 {
1845 std::vector<Format> audioTrack;
1846 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1847 EXPECT_EQ(MSERR_OK, player_->Prepare());
1848 EXPECT_EQ(MSERR_OK, player_->Play());
1849 sleep(PLAYING_TIME_2_SEC);
1850 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1851 EXPECT_EQ(1, audioTrack.size());
1852 Format audioTrackFormat = audioTrack.front();
1853 int32_t sampleDepth;
1854 audioTrackFormat.GetIntValue("sample_depth", sampleDepth);
1855 EXPECT_EQ(16, sampleDepth);
1856 }
1857
1858 /**
1859 * @tc.name : Test SelectTrack and DeselectTrack API
1860 * @tc.number: Player_SelectTrack_001
1861 * @tc.desc : Test Player SelectTrack and DeselectTrack
1862 */
1863 HWTEST_F(PlayerServerUnitTest, Player_SelectTrack_001, TestSize.Level1)
1864 {
1865 bool trackChange = false;
1866 std::vector<Format> audioTrack;
1867 std::vector<int32_t> audioTrackIds;
1868 int32_t currentAudioTrackIndex = -1;
1869 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE2));
1870 EXPECT_EQ(MSERR_OK, player_->Prepare());
1871 EXPECT_EQ(MSERR_OK, player_->Play());
1872 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1873 sleep(PLAYING_TIME_2_SEC);
1874 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_AUD, currentAudioTrackIndex));
1875 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1876 for (Format audioTrackFormat: audioTrack) {
1877 int32_t trackIndex = -1;
1878 audioTrackFormat.GetIntValue("track_index", trackIndex);
1879 audioTrackIds.push_back(trackIndex);
1880 }
1881 for (int32_t trackIndex: audioTrackIds) {
1882 if (trackIndex != currentAudioTrackIndex) {
1883 trackChange = false;
1884 EXPECT_EQ(MSERR_OK, player_->SelectTrack(trackIndex, trackChange));
1885 EXPECT_EQ(trackChange, true);
1886 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_AUD, currentAudioTrackIndex));
1887 sleep(PLAYING_TIME_2_SEC);
1888 trackChange = false;
1889 EXPECT_EQ(MSERR_OK, player_->DeselectTrack(currentAudioTrackIndex, trackChange));
1890 EXPECT_EQ(trackChange, true);
1891 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_AUD, currentAudioTrackIndex));
1892 sleep(PLAYING_TIME_2_SEC);
1893 }
1894 }
1895 EXPECT_EQ(MSERR_OK, player_->Stop());
1896 }
1897
1898 /**
1899 * @tc.name : Test SelectTrack API
1900 * @tc.number: Player_SelectTrack_002
1901 * @tc.desc : Test Player SelectTrack invalid trackId
1902 */
1903 HWTEST_F(PlayerServerUnitTest, Player_SelectTrack_002, TestSize.Level1)
1904 {
1905 bool trackChange = false;
1906 int32_t currentAudioTrackIndex = -1;
1907 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE2));
1908 EXPECT_EQ(MSERR_OK, player_->Prepare());
1909 EXPECT_EQ(MSERR_OK, player_->Play());
1910 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1911 sleep(PLAYING_TIME_2_SEC);
1912 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_AUD, currentAudioTrackIndex));
1913 EXPECT_NE(MSERR_OK, player_->SelectTrack(currentAudioTrackIndex, trackChange));
1914 sleep(PLAYING_TIME_2_SEC);
1915 EXPECT_EQ(MSERR_OK, player_->Stop());
1916 }
1917
1918 /**
1919 * @tc.name : Test DeselectTrack API
1920 * @tc.number: Player_DeselectTrack_001
1921 * @tc.desc : Test Player DeselectTrack invalid trackId
1922 */
1923 HWTEST_F(PlayerServerUnitTest, Player_DeselectTrack_001, TestSize.Level1)
1924 {
1925 std::vector<Format> audioTrack;
1926 std::vector<int32_t> audioTrackIds;
1927 int32_t defaultAudioTrackIndex = -1;
1928 bool trackChange = false;
1929 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE2));
1930 EXPECT_EQ(MSERR_OK, player_->Prepare());
1931 EXPECT_EQ(MSERR_OK, player_->Play());
1932 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
1933 sleep(PLAYING_TIME_2_SEC);
1934 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
1935 EXPECT_GT(audioTrack.size(), 0);
1936 audioTrack[0].GetIntValue("track_index", defaultAudioTrackIndex);
1937 EXPECT_GT(defaultAudioTrackIndex, -1);
1938 EXPECT_NE(MSERR_OK, player_->DeselectTrack(defaultAudioTrackIndex, trackChange));
1939 sleep(PLAYING_TIME_2_SEC);
1940 EXPECT_EQ(MSERR_OK, player_->Stop());
1941 }
1942
1943 /**
1944 * @tc.name : Test GetVideoHeight API
1945 * @tc.number: Player_GetVideoHeight_001
1946 * @tc.desc : Test Player GetVideoHeight
1947 */
1948 HWTEST_F(PlayerServerUnitTest, Player_GetVideoHeight_001, TestSize.Level1)
1949 {
1950 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1951 sptr<Surface> videoSurface = player_->GetVideoSurface();
1952 ASSERT_NE(nullptr, videoSurface);
1953 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1954 EXPECT_EQ(MSERR_OK, player_->Prepare());
1955 EXPECT_EQ(MSERR_OK, player_->Play());
1956 EXPECT_EQ(480, player_->GetVideoHeight());
1957 EXPECT_EQ(720, player_->GetVideoWidth());
1958 }
1959
1960 /**
1961 * @tc.name : Test GetVideoHeight API
1962 * @tc.number: Player_GetVideoHeight_002
1963 * @tc.desc : Test Player GetVideoHeight
1964 */
1965 HWTEST_F(PlayerServerUnitTest, Player_GetVideoHeight_002, TestSize.Level2)
1966 {
1967 int32_t duration = 0;
1968 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
1969 EXPECT_NE(480, player_->GetVideoHeight());
1970 EXPECT_NE(720, player_->GetVideoWidth());
1971 sptr<Surface> videoSurface = player_->GetVideoSurface();
1972 ASSERT_NE(nullptr, videoSurface);
1973 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
1974 EXPECT_NE(480, player_->GetVideoHeight());
1975 EXPECT_NE(720, player_->GetVideoWidth());
1976 EXPECT_EQ(MSERR_OK, player_->Prepare());
1977 EXPECT_EQ(480, player_->GetVideoHeight());
1978 EXPECT_EQ(720, player_->GetVideoWidth());
1979 EXPECT_EQ(MSERR_OK, player_->Play());
1980 EXPECT_EQ(480, player_->GetVideoHeight());
1981 EXPECT_EQ(720, player_->GetVideoWidth());
1982 EXPECT_EQ(MSERR_OK, player_->Pause());
1983 EXPECT_EQ(480, player_->GetVideoHeight());
1984 EXPECT_EQ(720, player_->GetVideoWidth());
1985 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
1986 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
1987 EXPECT_EQ(MSERR_OK, player_->Play());
1988 sleep(PLAYING_TIME_2_SEC);
1989 EXPECT_EQ(480, player_->GetVideoHeight());
1990 EXPECT_EQ(720, player_->GetVideoWidth());
1991 EXPECT_EQ(MSERR_OK, player_->Stop());
1992 EXPECT_EQ(480, player_->GetVideoHeight());
1993 EXPECT_EQ(720, player_->GetVideoWidth());
1994 EXPECT_EQ(MSERR_OK, player_->Reset());
1995 EXPECT_NE(480, player_->GetVideoHeight());
1996 EXPECT_NE(720, player_->GetVideoWidth());
1997 }
1998
1999 /**
2000 * @tc.name : Test GetDuration API
2001 * @tc.number: Player_GetDuration_001
2002 * @tc.desc : Test Player GetDuration
2003 */
2004 HWTEST_F(PlayerServerUnitTest, Player_GetDuration_001, TestSize.Level1)
2005 {
2006 int32_t duration = 0;
2007 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2008 sptr<Surface> videoSurface = player_->GetVideoSurface();
2009 ASSERT_NE(nullptr, videoSurface);
2010 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2011 EXPECT_EQ(MSERR_OK, player_->Prepare());
2012 EXPECT_EQ(MSERR_OK, player_->Play());
2013 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
2014 EXPECT_NEAR(10000, duration, DELTA_TIME); // duration 10000ms
2015 }
2016
2017 /**
2018 * @tc.name : Test GetDuration API
2019 * @tc.number: Player_GetDuration_002
2020 * @tc.desc : Test Player GetDuration
2021 */
2022 HWTEST_F(PlayerServerUnitTest, Player_GetDuration_002, TestSize.Level2)
2023 {
2024 int32_t duration = 0;
2025 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2026 EXPECT_NE(MSERR_OK, player_->GetDuration(duration));
2027 sptr<Surface> videoSurface = player_->GetVideoSurface();
2028 ASSERT_NE(nullptr, videoSurface);
2029 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2030 EXPECT_NE(MSERR_OK, player_->GetDuration(duration));
2031 EXPECT_EQ(MSERR_OK, player_->Prepare());
2032 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
2033 EXPECT_EQ(MSERR_OK, player_->Play());
2034 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
2035 EXPECT_EQ(MSERR_OK, player_->Pause());
2036 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
2037 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
2038 EXPECT_EQ(MSERR_OK, player_->Play());
2039 sleep(PLAYING_TIME_2_SEC);
2040 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
2041 EXPECT_EQ(MSERR_OK, player_->Stop());
2042 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
2043 EXPECT_EQ(MSERR_OK, player_->Reset());
2044 EXPECT_NE(MSERR_OK, player_->GetDuration(duration));
2045 }
2046
2047 /**
2048 * @tc.name : Test SetPlaybackSpeed API
2049 * @tc.number: Player_SetPlaybackSpeed_001
2050 * @tc.desc : Test Player SetPlaybackSpeed
2051 */
2052 HWTEST_F(PlayerServerUnitTest, Player_SetPlaybackSpeed_001, TestSize.Level1)
2053 {
2054 PlaybackRateMode mode;
2055 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2056 sptr<Surface> videoSurface = player_->GetVideoSurface();
2057 ASSERT_NE(nullptr, videoSurface);
2058 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2059 EXPECT_EQ(MSERR_OK, player_->Prepare());
2060 EXPECT_EQ(MSERR_OK, player_->Play());
2061 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
2062 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
2063 EXPECT_EQ(SPEED_FORWARD_2_00_X, mode);
2064 }
2065 /**
2066 * @tc.name : Test SetPlaybackRate API
2067 * @tc.number: Player_SetPlaybackRate_001
2068 * @tc.desc : Test Player SetPlaybackRate
2069 */
2070 HWTEST_F(PlayerServerUnitTest, Player_SetPlaybackRate_001, TestSize.Level1)
2071 {
2072 float playbackRate = 2.0f;
2073 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2074 sptr<Surface> videoSurface = player_->GetVideoSurface();
2075 ASSERT_NE(nullptr, videoSurface);
2076 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2077 EXPECT_EQ(MSERR_OK, player_->Prepare());
2078 EXPECT_EQ(MSERR_OK, player_->Play());
2079 EXPECT_EQ(MSERR_OK, player_->SetPlaybackRate(playbackRate));
2080 }
2081
2082 /**
2083 * @tc.name : Test SetPlaybackSpeed API
2084 * @tc.number: Player_SetPlaybackSpeed_002
2085 * @tc.desc : Test Player SetPlaybackSpeed
2086 */
2087 HWTEST_F(PlayerServerUnitTest, Player_SetPlaybackSpeed_002, TestSize.Level2)
2088 {
2089 int32_t duration = 0;
2090 PlaybackRateMode mode;
2091 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2092 EXPECT_NE(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
2093 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
2094 sptr<Surface> videoSurface = player_->GetVideoSurface();
2095 ASSERT_NE(nullptr, videoSurface);
2096 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2097 EXPECT_NE(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
2098 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
2099 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2100 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
2101 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
2102 EXPECT_EQ(MSERR_OK, player_->Play());
2103 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
2104 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
2105 EXPECT_EQ(MSERR_OK, player_->Pause());
2106 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_1_75_X));
2107 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
2108 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
2109 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
2110 EXPECT_EQ(MSERR_OK, player_->Play());
2111 sleep(PLAYING_TIME_2_SEC);
2112 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_0_75_X));
2113 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
2114 EXPECT_EQ(MSERR_OK, player_->Stop());
2115 EXPECT_NE(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_1_25_X));
2116 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
2117 EXPECT_EQ(MSERR_OK, player_->Reset());
2118 EXPECT_NE(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
2119 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
2120 }
2121
2122 /**
2123 * @tc.name : Test SetPlaybackRate API
2124 * @tc.number: Player_SetPlaybackRate_002
2125 * @tc.desc : Test Player SetPlaybackRate
2126 */
2127 HWTEST_F(PlayerServerUnitTest, Player_SetPlaybackRate_002, TestSize.Level2)
2128 {
2129 int32_t duration = 0;
2130 float playbackRate1 = 2.0f;
2131 float playbackRate2 = 1.75f;
2132 float playbackRate3 = 1.25f;
2133 float playbackRate4 = 0.75f;
2134 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2135 EXPECT_NE(MSERR_OK, player_->SetPlaybackRate(playbackRate1));
2136 sptr<Surface> videoSurface = player_->GetVideoSurface();
2137 ASSERT_NE(nullptr, videoSurface);
2138 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2139 EXPECT_NE(MSERR_OK, player_->SetPlaybackRate(playbackRate1));
2140 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2141 EXPECT_EQ(MSERR_OK, player_->SetPlaybackRate(playbackRate1));
2142 EXPECT_EQ(MSERR_OK, player_->Play());
2143 EXPECT_EQ(MSERR_OK, player_->SetPlaybackRate(playbackRate1));
2144 EXPECT_EQ(MSERR_OK, player_->Pause());
2145 EXPECT_EQ(MSERR_OK, player_->SetPlaybackRate(playbackRate2));
2146 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
2147 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
2148 EXPECT_EQ(MSERR_OK, player_->Play());
2149 sleep(PLAYING_TIME_2_SEC);
2150 EXPECT_EQ(MSERR_OK, player_->SetPlaybackRate(playbackRate4));
2151 EXPECT_EQ(MSERR_OK, player_->Stop());
2152 EXPECT_NE(MSERR_OK, player_->SetPlaybackRate(playbackRate3));
2153 EXPECT_EQ(MSERR_OK, player_->Reset());
2154 EXPECT_NE(MSERR_OK, player_->SetPlaybackRate(playbackRate1));
2155 }
2156
2157 /**
2158 * @tc.name : Test SetLooping API
2159 * @tc.number: Player_SetLooping_001
2160 * @tc.desc : Test Player SetLooping
2161 */
2162 HWTEST_F(PlayerServerUnitTest, Player_SetLooping_001, TestSize.Level1)
2163 {
2164 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2165 sptr<Surface> videoSurface = player_->GetVideoSurface();
2166 ASSERT_NE(nullptr, videoSurface);
2167 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2168 EXPECT_EQ(MSERR_OK, player_->Prepare());
2169 EXPECT_EQ(MSERR_OK, player_->Play());
2170 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
2171 EXPECT_EQ(true, player_->IsLooping());
2172 EXPECT_EQ(MSERR_OK, player_->SetLooping(false));
2173 EXPECT_EQ(false, player_->IsLooping());
2174 }
2175
2176 /**
2177 * @tc.name : Test SetLooping API
2178 * @tc.number: Player_SetLooping_002
2179 * @tc.desc : Test Player SetLooping liveStream
2180 */
2181 HWTEST_F(PlayerServerUnitTest, Player_SetLooping_002, TestSize.Level0)
2182 {
2183 std::shared_ptr<PlayerServer> server = std::make_shared<PlayerServer>();
2184 server->isLiveStream_ = true;
2185 EXPECT_EQ(MSERR_INVALID_OPERATION, server->SetLooping(true));
2186 }
2187
2188 /**
2189 * @tc.name : Test SetLooping API
2190 * @tc.number: Player_SetLooping_003
2191 * @tc.desc : Test Player SetLooping invalid playerEngine
2192 */
2193 HWTEST_F(PlayerServerUnitTest, Player_SetLooping_003, TestSize.Level0)
2194 {
2195 std::shared_ptr<PlayerServer> server = std::make_shared<PlayerServer>();
2196 server->lastOpStatus_ = PLAYER_STARTED;
2197 EXPECT_EQ(MSERR_OK, server->SetLooping(true));
2198 }
2199
2200 /**
2201 * @tc.name : Test SetVolume API
2202 * @tc.number: Player_SetVolume_001
2203 * @tc.desc : Test Player SetVolume
2204 */
2205 HWTEST_F(PlayerServerUnitTest, Player_SetVolume_001, TestSize.Level1)
2206 {
2207 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2208 sptr<Surface> videoSurface = player_->GetVideoSurface();
2209 ASSERT_NE(nullptr, videoSurface);
2210 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2211 EXPECT_EQ(MSERR_OK, player_->Prepare());
2212 EXPECT_EQ(MSERR_OK, player_->Play());
2213 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
2214 }
2215
2216 /**
2217 * @tc.name : Test SetVolume API
2218 * @tc.number: Player_SetVolume_002
2219 * @tc.desc : Test Player SetVolume
2220 */
2221 HWTEST_F(PlayerServerUnitTest, Player_SetVolume_002, TestSize.Level1)
2222 {
2223 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2224 sptr<Surface> videoSurface = player_->GetVideoSurface();
2225 ASSERT_NE(nullptr, videoSurface);
2226 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2227 EXPECT_EQ(MSERR_OK, player_->Prepare());
2228 EXPECT_EQ(MSERR_OK, player_->Play());
2229 EXPECT_NE(MSERR_OK, player_->SetVolume(1.1, 0.1));
2230 EXPECT_NE(MSERR_OK, player_->SetVolume(0.1, 1.1));
2231 EXPECT_NE(MSERR_OK, player_->SetVolume(1.1, 1.1));
2232 EXPECT_NE(MSERR_OK, player_->SetVolume(-0.1, 0.1));
2233 EXPECT_NE(MSERR_OK, player_->SetVolume(0.1, -0.1));
2234 EXPECT_NE(MSERR_OK, player_->SetVolume(-0.1, -0.1));
2235 }
2236
2237 /**
2238 * @tc.name : Test SetVolume API
2239 * @tc.number: Player_SetVolume_003
2240 * @tc.desc : Test Player SetVolume
2241 */
2242 HWTEST_F(PlayerServerUnitTest, Player_SetVolume_003, TestSize.Level2)
2243 {
2244 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2245 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
2246 sptr<Surface> videoSurface = player_->GetVideoSurface();
2247 ASSERT_NE(nullptr, videoSurface);
2248 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2249 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
2250 EXPECT_EQ(MSERR_OK, player_->Prepare());
2251 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
2252 EXPECT_EQ(MSERR_OK, player_->Play());
2253 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
2254 EXPECT_EQ(MSERR_OK, player_->Pause());
2255 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
2256 EXPECT_EQ(MSERR_OK, player_->Stop());
2257 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
2258 EXPECT_EQ(MSERR_OK, player_->Reset());
2259 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
2260 }
2261
2262 /**
2263 * @tc.name : Test SetVolume API
2264 * @tc.number: Player_SetVolume_004
2265 * @tc.desc : Test Player SetVolume
2266 */
2267 HWTEST_F(PlayerServerUnitTest, Player_SetVolume_004, TestSize.Level2)
2268 {
2269 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2270 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1));
2271 sptr<Surface> videoSurface = player_->GetVideoSurface();
2272 ASSERT_NE(nullptr, videoSurface);
2273 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2274 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2275 EXPECT_EQ(MSERR_OK, player_->Play());
2276 EXPECT_EQ(MSERR_OK, player_->SetVolume(1e-7, 1));
2277 EXPECT_EQ(MSERR_OK, player_->SetVolume(1, 1e-7));
2278 EXPECT_EQ(MSERR_OK, player_->SetVolume(1e-7, 1e-7));
2279 }
2280
2281 /**
2282 * @tc.name : Test SetVideoScaleType API
2283 * @tc.number: Player_SetVideoScaleType_001
2284 * @tc.desc : Test Player SetVideoScaleType
2285 */
2286 HWTEST_F(PlayerServerUnitTest, Player_SetVideoScaleType_001, TestSize.Level1)
2287 {
2288 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2289 sptr<Surface> videoSurface = player_->GetVideoSurface();
2290 ASSERT_NE(nullptr, videoSurface);
2291 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2292 EXPECT_EQ(MSERR_OK, player_->Prepare());
2293 EXPECT_EQ(MSERR_OK, player_->Play());
2294 Format format;
2295 format.PutIntValue(PlayerKeys::VIDEO_SCALE_TYPE,
2296 static_cast<int32_t>(Plugins::VideoScaleType::VIDEO_SCALE_TYPE_FIT));
2297 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
2298 format.PutIntValue(PlayerKeys::VIDEO_SCALE_TYPE,
2299 static_cast<int32_t>(Plugins::VideoScaleType::VIDEO_SCALE_TYPE_FIT_CROP));
2300 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
2301 }
2302
2303 /**
2304 * @tc.name : Test SetRendererInfo API
2305 * @tc.number: Player_SetRendererInfo_001
2306 * @tc.desc : Test Player SetRendererInfo
2307 */
2308 HWTEST_F(PlayerServerUnitTest, Player_SetRendererInfo_001, TestSize.Level1)
2309 {
2310 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2311 Format format;
2312 sptr<Surface> videoSurface = player_->GetVideoSurface();
2313 ASSERT_NE(nullptr, videoSurface);
2314 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2315 int32_t contentType = 1;
2316 int32_t streamUsage = 1;
2317 int32_t rendererFlags = 0;
2318 (void)format.PutIntValue(PlayerKeys::CONTENT_TYPE, contentType);
2319 (void)format.PutIntValue(PlayerKeys::STREAM_USAGE, streamUsage);
2320 (void)format.PutIntValue(PlayerKeys::RENDERER_FLAG, rendererFlags);
2321 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
2322 EXPECT_EQ(MSERR_OK, player_->Prepare());
2323 EXPECT_EQ(MSERR_OK, player_->Play());
2324 }
2325
2326 /**
2327 * @tc.name : Test SetVolumeMode API
2328 * @tc.number: Player_SetVolumeMode_001
2329 * @tc.desc : Test Player SetVolumeMode
2330 */
2331 HWTEST_F(PlayerServerUnitTest, Player_SetVolumeMode_001, TestSize.Level1)
2332 {
2333 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2334 Format format;
2335 sptr<Surface> videoSurface = player_->GetVideoSurface();
2336 ASSERT_NE(nullptr, videoSurface);
2337 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2338 int32_t contentType = 1;
2339 int32_t streamUsage = 1;
2340 int32_t rendererFlags = 0;
2341 int32_t mode = 1;
2342 (void)format.PutIntValue(PlayerKeys::CONTENT_TYPE, contentType);
2343 (void)format.PutIntValue(PlayerKeys::STREAM_USAGE, streamUsage);
2344 (void)format.PutIntValue(PlayerKeys::RENDERER_FLAG, rendererFlags);
2345 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
2346 EXPECT_EQ(MSERR_OK, player_->SetVolumeMode(mode));
2347 EXPECT_EQ(MSERR_OK, player_->Prepare());
2348 EXPECT_EQ(MSERR_OK, player_->Play());
2349 }
2350
2351 /**
2352 * @tc.name : Test SetInterrupt API
2353 * @tc.number: Player_SetInterrupt_001
2354 * @tc.desc : Test Player SetInterrupt
2355 */
2356 HWTEST_F(PlayerServerUnitTest, Player_SetInterrupt_001, TestSize.Level1)
2357 {
2358 Format format;
2359 int32_t mode = 1;
2360 int32_t type = 1;
2361 std::shared_ptr<PlayerServerMock> player = nullptr;
2362 std::shared_ptr<PlayerCallbackTest> callback = nullptr;
2363 callback = std::make_shared<PlayerCallbackTest>();
2364 ASSERT_NE(nullptr, callback);
2365 player = std::make_shared<PlayerServerMock>(callback);
2366 ASSERT_NE(nullptr, player);
2367 EXPECT_TRUE(player->CreatePlayer());
2368 EXPECT_EQ(MSERR_OK, player->SetPlayerCallback(callback));
2369 ASSERT_EQ(MSERR_OK, player->SetSource(MEDIA_ROOT + "01.mp3"));
2370 EXPECT_EQ(MSERR_OK, player->Prepare());
2371
2372 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2373 EXPECT_EQ(MSERR_OK, player_->Prepare());
2374 (void)format.PutIntValue(PlayerKeys::AUDIO_INTERRUPT_MODE, mode);
2375 (void)format.PutIntValue(PlayerKeys::AUDIO_INTERRUPT_TYPE, type);
2376 EXPECT_EQ(MSERR_OK, player->SetParameter(format));
2377 EXPECT_EQ(MSERR_OK, player->Play());
2378 sleep(PLAYING_TIME_2_SEC);
2379 EXPECT_EQ(MSERR_OK, player_->Play());
2380 sleep(PLAYING_TIME_2_SEC);
2381 EXPECT_EQ(MSERR_OK, player->ReleaseSync());
2382 }
2383
2384 /**
2385 * @tc.name : Test Player SelectBitRate API
2386 * @tc.number: Player_SelectBitRate_001
2387 * @tc.desc : Test Player SelectBitRate interface
2388 */
2389 HWTEST_F(PlayerServerUnitTest, Player_SelectBitRate_001, TestSize.Level1)
2390 {
2391 EXPECT_EQ(MSERR_OK, player_->SelectBitRate(0));
2392 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2393 sptr<Surface> videoSurface = player_->GetVideoSurface();
2394 ASSERT_NE(nullptr, videoSurface);
2395 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2396 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2397 EXPECT_EQ(MSERR_OK, player_->Play());
2398 EXPECT_EQ(MSERR_OK, player_->SelectBitRate(0));
2399 }
2400
2401 /**
2402 * @tc.name: Player_Performance_Prepared_001
2403 * @tc.desc: test player start
2404 * @tc.type: PERFORMANCE
2405 * @tc.require: issueI5NYBJ
2406 */
2407 HWTEST_F(PlayerServerUnitTest, Player_Performance_Prepared_001, TestSize.Level1)
2408 {
2409 struct timeval startTime = {};
2410 struct timeval finishTime = {};
2411 int32_t runTimes = 10;
2412 float timeConv = 1000;
2413 float deltaTime = 0;
2414 sptr<Surface> videoSurface = player_->GetVideoSurface();
2415 ASSERT_NE(nullptr, videoSurface);
2416 for (int32_t i = 0; i < runTimes; i++) {
2417 EXPECT_EQ(MSERR_OK, gettimeofday(&startTime, nullptr));
2418 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2419 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2420 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2421 EXPECT_EQ(MSERR_OK, gettimeofday(&finishTime, nullptr));
2422 EXPECT_EQ(MSERR_OK, player_->Play());
2423 deltaTime += (finishTime.tv_sec - startTime.tv_sec) * timeConv +
2424 (finishTime.tv_usec - startTime.tv_usec) / timeConv;
2425 EXPECT_EQ(MSERR_OK, player_->Reset());
2426 }
2427 EXPECT_LE(deltaTime / runTimes, 1000); // less than 1000 ms
2428 }
2429
2430 /**
2431 * @tc.name : Test Player Play mp4 with rotation
2432 * @tc.number: Player_Rotate_001
2433 * @tc.desc : Test Player Play interface
2434 */
2435 HWTEST_F(PlayerServerUnitTest, Player_Rotate_001, TestSize.Level1)
2436 {
2437 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "MP4_ROTATE_90.mp4"));
2438 sptr<Surface> videoSurface = player_->GetVideoSurface();
2439 ASSERT_NE(nullptr, videoSurface);
2440 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2441 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2442 EXPECT_EQ(MSERR_OK, player_->Play());
2443 EXPECT_TRUE(player_->IsPlaying());
2444 }
2445
2446 /**
2447 * @tc.name : Test Player Dump Dot
2448 * @tc.number: Player_Dump_Dot_001
2449 * @tc.desc : Test Player Dump Dot
2450 */
2451 HWTEST_F(PlayerServerUnitTest, Player_Dump_Dot_001, TestSize.Level1)
2452 {
2453 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "MP4_ROTATE_90.mp4"));
2454 sptr<Surface> videoSurface = player_->GetVideoSurface();
2455 ASSERT_NE(nullptr, videoSurface);
2456 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2457 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2458 EXPECT_EQ(MSERR_OK, player_->Play());
2459 system("param set sys.media.dump.dot.path /data/test/media");
2460 EXPECT_TRUE(player_->IsPlaying());
2461 EXPECT_EQ(MSERR_OK, player_->Pause());
2462 EXPECT_EQ(MSERR_OK, player_->Play());
2463 }
2464
2465 /**
2466 * @tc.name : Test Player Dump Dot
2467 * @tc.number: Player_Dump_Dot_002
2468 * @tc.desc : Test Player Dump Dot
2469 */
2470 HWTEST_F(PlayerServerUnitTest, Player_Dump_Dot_002, TestSize.Level1)
2471 {
2472 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "MP4_ROTATE_90.mp4"));
2473 sptr<Surface> videoSurface = player_->GetVideoSurface();
2474 ASSERT_NE(nullptr, videoSurface);
2475 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2476 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2477 EXPECT_EQ(MSERR_OK, player_->Play());
2478 system("param set sys.media.dump.dot.path /xx");
2479 EXPECT_TRUE(player_->IsPlaying());
2480 EXPECT_EQ(MSERR_OK, player_->Pause());
2481 EXPECT_EQ(MSERR_OK, player_->Play());
2482 }
2483
2484 /**
2485 * @tc.name : Test Player Dump GlibMem
2486 * @tc.number: Player_Dump_GlibMem_001
2487 * @tc.desc : Test Player Dump GlibMem
2488 */
2489 HWTEST_F(PlayerServerUnitTest, Player_Dump_GlibMem_001, TestSize.Level1)
2490 {
2491 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "MP4_ROTATE_90.mp4"));
2492 sptr<Surface> videoSurface = player_->GetVideoSurface();
2493 ASSERT_NE(nullptr, videoSurface);
2494 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2495 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2496 EXPECT_EQ(MSERR_OK, player_->Play());
2497 system("hidumper -s 3002 -a glibmem");
2498 system("param set sys.media.dump.codec.vdec ALL");
2499 EXPECT_TRUE(player_->IsPlaying());
2500 EXPECT_EQ(MSERR_OK, player_->Pause());
2501 }
2502
2503 /**
2504 * @tc.name : Test Player Dump GlibPool
2505 * @tc.number: Player_Dump_GlibPool_001
2506 * @tc.desc : Test Player Dump GlibPool
2507 */
2508 HWTEST_F(PlayerServerUnitTest, Player_Dump_GlibPool_001, TestSize.Level1)
2509 {
2510 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "MP4_ROTATE_90.mp4"));
2511 sptr<Surface> videoSurface = player_->GetVideoSurface();
2512 ASSERT_NE(nullptr, videoSurface);
2513 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2514 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2515 system("param set sys.media.dump.frame.enable true");
2516 system("param set sys.media.set.mute TRUE");
2517 system("param set sys.media.kpi.avsync.log.enable true");
2518 system("param set sys.media.kpi.opt.renderdelay.enable true");
2519 EXPECT_EQ(MSERR_OK, player_->Play());
2520 system("hidumper -s 3002 -a glibpool");
2521 system("param set sys.media.dump.codec.vdec ALL");
2522 EXPECT_TRUE(player_->IsPlaying());
2523 EXPECT_EQ(MSERR_OK, player_->Pause());
2524 }
2525
2526 /**
2527 * @tc.name : Test Player Dump Log
2528 * @tc.number: Player_Dump_Log_001
2529 * @tc.desc : Test Player Dump Log
2530 */
2531 HWTEST_F(PlayerServerUnitTest, Player_Dump_Log_001, TestSize.Level1)
2532 {
2533 system("mkdir /data/media/log");
2534 system("chmod 777 -R /data/media");
2535 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2536 sptr<Surface> videoSurface = player_->GetVideoSurface();
2537 ASSERT_NE(nullptr, videoSurface);
2538 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2539 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2540 system("param set sys.media.log.level *:l,multiqueue,decodecbin:,tsdemux:D,multiqueue:D,hlsdemux:D,souphttpsrc:W");
2541 system("param set sys.media.log.level *:l,basesrcmmmbasesrcmmmbasesrcmmmbasesrcmmmbasesrcmmmbasesrcmmmbasesrcmmm" \
2542 "basesrcmmmbasesrcmmmbasesrcmmmbasesrcmmmbasesrcmmmbasesrcmmm:D");
2543 system("param set sys.media.dump.frame.enable false");
2544 system("param set sys.media.set.mute FALSE");
2545 system("param set sys.media.kpi.avsync.log.enable false");
2546 system("param set sys.media.kpi.opt.renderdelay.enable false");
2547 EXPECT_EQ(MSERR_OK, player_->Play());
2548 system("param set sys.media.dump.codec.vdec NULL");
2549 EXPECT_TRUE(player_->IsPlaying());
2550 EXPECT_EQ(MSERR_OK, player_->Pause());
2551 system("rm -rf /data/media/log");
2552 }
2553
2554 /**
2555 * @tc.name : Test Player Dump gstbuffer
2556 * @tc.number: Player_Dump_GstBuffer_001
2557 * @tc.desc : Test Player Dump gstbuffer
2558 */
2559 HWTEST_F(PlayerServerUnitTest, Player_Dump_GstBuffer_001, TestSize.Level1)
2560 {
2561 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2562 sptr<Surface> videoSurface = player_->GetVideoSurface();
2563 ASSERT_NE(nullptr, videoSurface);
2564 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2565 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2566 system("param set sys.media.dump.gstbuffer 1");
2567 system("param set sys.media.set.mute null");
2568 EXPECT_EQ(MSERR_OK, player_->Play());
2569 EXPECT_TRUE(player_->IsPlaying());
2570 EXPECT_EQ(MSERR_OK, player_->Pause());
2571 system("param set sys.media.dump.gstbuffer 0");
2572 }
2573
2574 /**
2575 * @tc.name : Test Player With Not Performance
2576 * @tc.number: Player_Not_Performance_001
2577 * @tc.desc : Test Player Not Performance
2578 */
2579 HWTEST_F(PlayerServerUnitTest, Player_Not_Performance_001, TestSize.Level2)
2580 {
2581 system("param set sys.media.player.performance.enable FALSE");
2582 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
2583 sptr<Surface> videoSurface = player_->GetVideoSurface();
2584 ASSERT_NE(nullptr, videoSurface);
2585 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2586 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
2587 system("param set sys.media.player.performance.enable TRUE");
2588 }
2589
2590 /**
2591 * @tc.name : Test Player Mem Recycle
2592 * @tc.number: Player_Mem_Recycle_001
2593 * @tc.desc : Test Player Mem Recycle
2594 */
2595 HWTEST_F(PlayerServerUnitTest, Player_Mem_Recycle_001, TestSize.Level1)
2596 {
2597 sptr<Surface> renderSurface = player_->GetVideoSurface();
2598 ASSERT_NE(nullptr, renderSurface);
2599 std::vector<std::string> srcVector = {MEDIA_ROOT + "H264_MP3.mp4"};
2600 for (int32_t i = 0; i < static_cast<int32_t>(srcVector.size()); i++) {
2601 if (srcVector[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2602 system("param set sys.media.player.resource.type NetWork");
2603 }
2604 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVector[i]));
2605 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(renderSurface));
2606 char text[100]; // 100: text len
2607 sprintf_s(text, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", 0, 0, 4);
2608 system(text);
2609 sprintf_s(text, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), 0, 4);
2610 system(text);
2611 system("hidumper -s 1909 -a \"-t 6\"");
2612 system("hidumper -s 1909 -a \"-t 3\"");
2613 int32_t ret = player_->Prepare();
2614 EXPECT_EQ(MSERR_OK, ret);
2615 EXPECT_EQ(MSERR_OK, player_->Reset());
2616 system("param set sys.media.player.resource.type Local");
2617 }
2618 }
2619
2620 /**
2621 * @tc.name : Test Player Mem Recycle
2622 * @tc.number: Player_Mem_Recycle_002
2623 * @tc.desc : Test Player Mem Recycle
2624 */
2625 HWTEST_F(PlayerServerUnitTest, Player_Mem_Recycle_002, TestSize.Level1)
2626 {
2627 sptr<Surface> vSurface = player_->GetVideoSurface();
2628 ASSERT_NE(nullptr, vSurface);
2629 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2630 for (uint32_t i = 0; i < srcVec.size(); i++) {
2631 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2632 system("param set sys.media.player.resource.type NetWork");
2633 }
2634 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2635 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(vSurface));
2636 EXPECT_EQ(MSERR_OK, player_->Prepare());
2637 char str[100]; // 100: str len
2638 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2639 system(str);
2640 system("hidumper -s 1909 -a \"-t 3\"");
2641 EXPECT_EQ(MSERR_OK, player_->Play());
2642 EXPECT_EQ(MSERR_OK, player_->Reset());
2643 system("param set sys.media.player.resource.type Local");
2644 }
2645 }
2646
2647 /**
2648 * @tc.name : Test Player Mem Recycle
2649 * @tc.number: Player_Mem_Recycle_003
2650 * @tc.desc : Test Player Mem Recycle
2651 */
2652 HWTEST_F(PlayerServerUnitTest, Player_Mem_Recycle_003, TestSize.Level1)
2653 {
2654 sptr<Surface> videoSurface = player_->GetVideoSurface();
2655 ASSERT_NE(nullptr, videoSurface);
2656 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2657 for (uint32_t i = 0; i < srcVec.size(); i++) {
2658 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2659 system("param set sys.media.player.resource.type NetWork");
2660 }
2661 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2662 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2663 EXPECT_EQ(MSERR_OK, player_->Prepare());
2664 EXPECT_EQ(MSERR_OK, player_->Play());
2665 sleep(15);
2666 char str[100]; // 100: str len
2667 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2668 system(str);
2669 system("hidumper -s 1909 -a \"-t 3\"");
2670 EXPECT_EQ(MSERR_OK, player_->Play());
2671 EXPECT_EQ(MSERR_OK, player_->Reset());
2672 system("param set sys.media.player.resource.type Local");
2673 }
2674 }
2675
2676 /**
2677 * @tc.name : Test Player Mem Recycle
2678 * @tc.number: Player_Mem_Recycle_004
2679 * @tc.desc : Test Player Mem Recycle
2680 */
2681 HWTEST_F(PlayerServerUnitTest, Player_Mem_Recycle_004, TestSize.Level1)
2682 {
2683 sptr<Surface> videoSurface = player_->GetVideoSurface();
2684 ASSERT_NE(nullptr, videoSurface);
2685 std::vector<std::string> vec = {MEDIA_ROOT + "H264_MP3.mp4"};
2686 for (uint32_t i = 0; i < vec.size(); i++) {
2687 if (vec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2688 system("param set sys.media.player.resource.type NetWork");
2689 }
2690 const auto ret = MSERR_OK;
2691 ASSERT_EQ(ret, player_->SetSource(vec[i]));
2692 EXPECT_EQ(ret, player_->SetVideoSurface(videoSurface));
2693 EXPECT_EQ(ret, player_->Prepare());
2694 EXPECT_EQ(ret, player_->Play());
2695 EXPECT_EQ(ret, player_->Pause());
2696 char str[100]; // 100: str len
2697 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2698 system(str);
2699 system("hidumper -s 1909 -a \"-t 3\"");
2700 int32_t currentTime = 0;
2701 std::vector<Format> videoTrack;
2702 std::vector<Format> audioTrack;
2703 int32_t duration = 0;
2704 PlaybackRateMode mode;
2705 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
2706 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
2707 EXPECT_EQ(MSERR_OK, player_->GetCurrentTime(currentTime));
2708 EXPECT_NE(0, player_->GetVideoWidth());
2709 EXPECT_NE(0, player_->GetVideoHeight());
2710 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
2711 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
2712 int32_t index;
2713 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_AUD, index));
2714 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_VID, index));
2715 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_SUBTITLE, index));
2716 EXPECT_NE(MSERR_OK, player_->GetCurrentTrack(100, index));
2717 EXPECT_EQ(false, player_->IsPlaying());
2718 EXPECT_EQ(false, player_->IsLooping());
2719 EXPECT_EQ(MSERR_OK, player_->Seek(1000, SEEK_NEXT_SYNC));
2720 EXPECT_EQ(MSERR_OK, player_->Reset());
2721 system("param set sys.media.player.resource.type Local");
2722 }
2723 }
2724
2725 /**
2726 * @tc.name : Test Player Mem Recycle
2727 * @tc.number: Player_Mem_Recycle_005
2728 * @tc.desc : Test Player Mem Recycle
2729 */
2730 HWTEST_F(PlayerServerUnitTest, Player_Mem_Recycle_005, TestSize.Level1)
2731 {
2732 sptr<Surface> videoSurface = player_->GetVideoSurface();
2733 ASSERT_NE(nullptr, videoSurface);
2734 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2735 for (uint32_t i = 0; i < srcVec.size(); i++) {
2736 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2737 system("param set sys.media.player.resource.type NetWork");
2738 }
2739 const auto result = MSERR_OK;
2740 ASSERT_EQ(result, player_->SetSource(srcVec[i]));
2741 EXPECT_EQ(result, player_->SetVideoSurface(videoSurface));
2742 EXPECT_EQ(result, player_->Prepare());
2743 EXPECT_EQ(result, player_->Play());
2744 EXPECT_EQ(result, player_->Pause());
2745 char str[100]; // 100: str len
2746 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2747 system(str);
2748 system("hidumper -s 1909 -a \"-t 3\"");
2749 EXPECT_EQ(result, player_->Reset());
2750 system("param set sys.media.player.resource.type Local");
2751 }
2752 }
2753
2754 /**
2755 * @tc.name : Test Player Mem Recycle
2756 * @tc.number: Player_Mem_Recycle_006
2757 * @tc.desc : Test Player Mem Recycle
2758 */
2759 HWTEST_F(PlayerServerUnitTest, Player_Mem_Recycle_006, TestSize.Level1)
2760 {
2761 sptr<Surface> videoSurface = player_->GetVideoSurface();
2762 ASSERT_NE(nullptr, videoSurface);
2763 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2764 for (uint32_t i = 0; i < srcVec.size(); i++) {
2765 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2766 system("param set sys.media.player.resource.type NetWork");
2767 }
2768 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2769 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2770 EXPECT_EQ(MSERR_OK, player_->Prepare());
2771 EXPECT_EQ(MSERR_OK, player_->Play());
2772 EXPECT_EQ(MSERR_OK, player_->Pause());
2773 char str[100]; // 100: str len
2774 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2775 system(str);
2776 system("hidumper -s 1909 -a \"-t 3\"");
2777 EXPECT_EQ(MSERR_OK, player_->Reset());
2778 system("param set sys.media.player.resource.type Local");
2779 }
2780 }
2781
2782 /**
2783 * @tc.name : Test Player Mem Recycle
2784 * @tc.number: Player_Mem_Recycle_007
2785 * @tc.desc : Test Player Mem Recycle
2786 */
2787 HWTEST_F(PlayerServerUnitTest, Player_Mem_Recycle_007, TestSize.Level1)
2788 {
2789 sptr<Surface> videoSurface = player_->GetVideoSurface();
2790 ASSERT_NE(nullptr, videoSurface);
2791 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2792 std::vector<PlaybackRateMode> speedMode = {SPEED_FORWARD_2_00_X, SPEED_FORWARD_1_25_X};
2793 for (uint32_t i = 0; i < srcVec.size(); i++) {
2794 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2795 system("param set sys.media.player.resource.type NetWork");
2796 }
2797 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2798 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2799 EXPECT_EQ(MSERR_OK, player_->Prepare());
2800 EXPECT_EQ(MSERR_OK, player_->Play());
2801 EXPECT_EQ(MSERR_OK, player_->Pause());
2802 char str[100]; // 100: str len
2803 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2804 system(str);
2805 system("hidumper -s 1909 -a \"-t 3\"");
2806 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(speedMode[i]));
2807 EXPECT_EQ(MSERR_OK, player_->Reset());
2808 system("param set sys.media.player.resource.type Local");
2809 }
2810 }
2811
2812 /**
2813 * @tc.name : Test Player Mem Recycle
2814 * @tc.number: Player_Mem_Recycle_008
2815 * @tc.desc : Test Player Mem Recycle
2816 */
2817 HWTEST_F(PlayerServerUnitTest, Player_Mem_Recycle_008, TestSize.Level1)
2818 {
2819 sptr<Surface> videoSurface = player_->GetVideoSurface();
2820 ASSERT_NE(nullptr, videoSurface);
2821 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2822 for (uint32_t i = 0; i < srcVec.size(); i++) {
2823 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2824 system("param set sys.media.player.resource.type NetWork");
2825 }
2826 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2827 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2828 EXPECT_EQ(MSERR_OK, player_->Prepare());
2829 EXPECT_EQ(MSERR_OK, player_->Play());
2830 EXPECT_EQ(MSERR_OK, player_->Pause());
2831 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
2832 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
2833 EXPECT_EQ(MSERR_OK, player_->SetVolume(0.5, 0.5));
2834 char str[100]; // 100: str len
2835 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2836 system(str);
2837 system("hidumper -s 1909 -a \"-t 3\"");
2838 EXPECT_EQ(MSERR_OK, player_->SetLooping(false));
2839 EXPECT_EQ(MSERR_OK, player_->Reset());
2840 system("param set sys.media.player.resource.type Local");
2841 }
2842 }
2843
2844 /**
2845 * @tc.name : Test Player Mem Recycle
2846 * @tc.number: Player_Mem_Recycle_009
2847 * @tc.desc : Test Player Mem Recycle
2848 */
2849 HWTEST_F(PlayerServerUnitTest, Player_Mem_Recycle_009, TestSize.Level1)
2850 {
2851 sptr<Surface> videoSurface = player_->GetVideoSurface();
2852 ASSERT_NE(nullptr, videoSurface);
2853 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2854 for (uint32_t i = 0; i < srcVec.size(); i++) {
2855 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2856 system("param set sys.media.player.resource.type NetWork");
2857 }
2858 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2859 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2860 EXPECT_EQ(MSERR_OK, player_->Prepare());
2861 EXPECT_EQ(MSERR_OK, player_->Play());
2862 EXPECT_EQ(MSERR_OK, player_->Pause());
2863 char str[100]; // 100: str len
2864 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2865 system(str);
2866 system("hidumper -s 1909 -a \"-t 3\"");
2867 EXPECT_EQ(MSERR_OK, player_->SelectBitRate(0));
2868 EXPECT_EQ(MSERR_OK, player_->Reset());
2869 system("param set sys.media.player.resource.type Local");
2870 }
2871 }
2872
2873 /**
2874 * @tc.name : Test Player Mem Recycle
2875 * @tc.number: Player_Mem_Recycle_010
2876 * @tc.desc : Test Player Mem Recycle
2877 */
2878 HWTEST_F(PlayerServerUnitTest, Player_Mem_Recycle_010, TestSize.Level1)
2879 {
2880 sptr<Surface> videoSurface = player_->GetVideoSurface();
2881 ASSERT_NE(nullptr, videoSurface);
2882 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2883 for (uint32_t i = 0; i < srcVec.size(); i++) {
2884 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2885 system("param set sys.media.player.resource.type NetWork");
2886 }
2887 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2888 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2889 EXPECT_EQ(MSERR_OK, player_->Prepare());
2890 EXPECT_EQ(MSERR_OK, player_->Play());
2891 EXPECT_EQ(MSERR_OK, player_->Stop());
2892 char str[100]; // 100: str len
2893 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2894 system(str);
2895 system("hidumper -s 1909 -a \"-t 3\"");
2896 EXPECT_EQ(MSERR_OK, player_->Reset());
2897 system("param set sys.media.player.resource.type Local");
2898 }
2899 }
2900
2901 /**
2902 * @tc.name : Test Player Mem Recycle
2903 * @tc.number: Player_Mem_Recycle_011
2904 * @tc.desc : Test Player Mem Recycle
2905 */
2906 HWTEST_F(PlayerServerUnitTest, Player_Mem_Recycle_011, TestSize.Level1)
2907 {
2908 sptr<Surface> videoSurface = player_->GetVideoSurface();
2909 ASSERT_NE(nullptr, videoSurface);
2910 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2911 for (uint32_t i = 0; i < srcVec.size(); i++) {
2912 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2913 system("param set sys.media.player.resource.type NetWork");
2914 }
2915 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2916 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2917 EXPECT_EQ(MSERR_OK, player_->Prepare());
2918 EXPECT_EQ(MSERR_OK, player_->Play());
2919 EXPECT_EQ(MSERR_OK, player_->Pause());
2920 char str[100]; // 100: str len
2921 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2922 system(str);
2923 system("hidumper -s 1909 -a \"-t 2\"");
2924 EXPECT_EQ(MSERR_OK, player_->Reset());
2925 system("param set sys.media.player.resource.type Local");
2926 }
2927 }
2928
2929 /**
2930 * @tc.name : Test Player Mem Recycle
2931 * @tc.number: Player_Mem_Recycle_012
2932 * @tc.desc : Test Player Mem Recycle
2933 */
2934 HWTEST_F(PlayerServerUnitTest, Player_Mem_Recycle_012, TestSize.Level1)
2935 {
2936 sptr<Surface> videoSurface = player_->GetVideoSurface();
2937 ASSERT_NE(nullptr, videoSurface);
2938 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2939 for (uint32_t i = 0; i < srcVec.size(); i++) {
2940 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2941 system("param set sys.media.player.resource.type NetWork");
2942 }
2943 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2944 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2945 EXPECT_EQ(MSERR_OK, player_->Prepare());
2946 EXPECT_EQ(MSERR_OK, player_->Play());
2947 EXPECT_EQ(MSERR_OK, player_->Pause());
2948 char str[100]; // 100: str len
2949 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2950 system(str);
2951 system("hidumper -s 1909 -a \"-t 4\"");
2952 EXPECT_EQ(MSERR_OK, player_->Reset());
2953 system("param set sys.media.player.resource.type Local");
2954 }
2955 }
2956
2957 /**
2958 * @tc.name : Test Player Mem Recycle
2959 * @tc.number: Player_Mem_Recycle_013
2960 * @tc.desc : Test Player Mem Recycle
2961 */
2962 HWTEST_F(PlayerServerUnitTest, Player_Mem_Recycle_013, TestSize.Level1)
2963 {
2964 sptr<Surface> videoSurface = player_->GetVideoSurface();
2965 ASSERT_NE(nullptr, videoSurface);
2966 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_MP3.mp4"};
2967 for (uint32_t i = 0; i < srcVec.size(); i++) {
2968 if (srcVec[i] == MEDIA_ROOT + "H264_MP3.mp4") {
2969 system("param set sys.media.player.resource.type NetWork");
2970 }
2971 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
2972 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
2973 EXPECT_EQ(MSERR_OK, player_->Prepare());
2974 EXPECT_EQ(MSERR_OK, player_->Play());
2975 EXPECT_EQ(MSERR_OK, player_->Pause());
2976 char str[100]; // 100: str len
2977 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
2978 system(str);
2979 system("hidumper -s 1909 -a \"-f 3\"");
2980 EXPECT_EQ(MSERR_OK, player_->Reset());
2981 system("param set sys.media.player.resource.type Local");
2982 system("killall memmgrservice");
2983 sleep(1);
2984 }
2985 }
2986
2987 /**
2988 * @tc.name : Test Player Mem Recycle
2989 * @tc.number: Player_Mem_Recycle_014
2990 * @tc.desc : Test Player Mem Recycle
2991 */
2992 HWTEST_F(PlayerServerUnitTest, Player_Mem_Recycle_014, TestSize.Level1)
2993 {
2994 sptr<Surface> videoSurface = player_->GetVideoSurface();
2995 ASSERT_NE(nullptr, videoSurface);
2996 std::vector<std::string> srcVector = {MEDIA_ROOT + "H264_AAC.mp4"};
2997 for (uint32_t i = 0; i < srcVector.size(); i++) {
2998 if (srcVector[i] == MEDIA_ROOT + "H264_AAC.mp4") {
2999 system("param set sys.media.player.resource.type NetWork");
3000 }
3001 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVector[i]));
3002 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3003 EXPECT_EQ(MSERR_OK, player_->Prepare());
3004 char str[100]; // 100: str len
3005 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
3006 system(str);
3007 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 2);
3008 system(str);
3009 sleep(30);
3010 EXPECT_EQ(MSERR_OK, player_->Play());
3011 EXPECT_EQ(MSERR_OK, player_->Reset());
3012 system("param set sys.media.player.resource.type Local");
3013 }
3014 }
3015
3016 /**
3017 * @tc.name : Test Player Mem Recycle
3018 * @tc.number: Player_Mem_Recycle_015
3019 * @tc.desc : Test Player Mem Recycle
3020 */
3021 HWTEST_F(PlayerServerUnitTest, Player_Mem_Recycle_015, TestSize.Level1)
3022 {
3023 sptr<Surface> videoSurface = player_->GetVideoSurface();
3024 ASSERT_NE(nullptr, videoSurface);
3025 std::vector<std::string> srcVec = {MEDIA_ROOT + "H264_AAC.mp4"};
3026 for (uint32_t i = 0; i < srcVec.size(); i++) {
3027 if (srcVec[i] == MEDIA_ROOT + "H264_AAC.mp4") {
3028 system("param set sys.media.player.resource.type NetWork");
3029 }
3030 ASSERT_EQ(MSERR_OK, player_->SetSource(srcVec[i]));
3031 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3032 EXPECT_EQ(MSERR_OK, player_->Prepare());
3033 char str[100]; // 100: str len
3034 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
3035 system(str);
3036 system("hidumper -s 3002 -a \"player\"");
3037 sleep(30);
3038 system("hidumper -s 3002 -a \"player\"");
3039 EXPECT_EQ(MSERR_OK, player_->Play());
3040 EXPECT_EQ(MSERR_OK, player_->Stop());
3041 EXPECT_EQ(MSERR_OK, player_->Reset());
3042 system("param set sys.media.player.resource.type Local");
3043 }
3044 }
3045
3046 /**
3047 * @tc.name : Test Player Mem Recycle
3048 * @tc.number: Player_Mem_Recycle_016
3049 * @tc.desc : Test Player Mem Recycle
3050 */
3051 HWTEST_F(PlayerServerUnitTest, Player_Mem_Recycle_016, TestSize.Level1)
3052 {
3053 int32_t duration = 0;
3054 std::vector<Format> videoTrack;
3055 std::vector<Format> audioTrack;
3056 PlaybackRateMode mode;
3057 int32_t index = 0;
3058 EXPECT_EQ(MSERR_OK, player_->SetVolume(0.9, 0.9));
3059 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1, 0, 0));
3060 sptr<Surface> videoSurface = player_->GetVideoSurface();
3061 ASSERT_NE(nullptr, videoSurface);
3062 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3063 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
3064 EXPECT_EQ(true, player_->IsLooping());
3065 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3066 char str[100]; // 100: str len
3067 sprintf_s(str, 100, "hidumper -s 1909 -a \"-d %d %d %d\"", getpid(), getuid(), 4);
3068 system(str);
3069 system("hidumper -s 1909 -a \"-t 4\"");
3070 EXPECT_EQ(720, player_->GetVideoWidth());
3071 EXPECT_EQ(480, player_->GetVideoHeight());
3072 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
3073 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
3074 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
3075 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
3076 EXPECT_EQ(SPEED_FORWARD_1_00_X, mode);
3077 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_0_50_X));
3078 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
3079 EXPECT_EQ(SPEED_FORWARD_0_50_X, mode);
3080 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_2_00_X));
3081 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
3082 EXPECT_EQ(SPEED_FORWARD_2_00_X, mode);
3083
3084 EXPECT_EQ(false, player_->IsPlaying());
3085 EXPECT_EQ(true, player_->IsLooping());
3086
3087 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_AUD, index));
3088 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_VID, index));
3089 EXPECT_EQ(MSERR_OK, player_->GetCurrentTrack(MediaType::MEDIA_TYPE_SUBTITLE, index));
3090 EXPECT_NE(MSERR_OK, player_->GetCurrentTrack(100, index));
3091
3092 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
3093 EXPECT_EQ(MSERR_OK, player_->Seek(duration, PlayerSeekMode::SEEK_PREVIOUS_SYNC));
3094 EXPECT_EQ(MSERR_OK, player_->Reset());
3095 EXPECT_EQ(MSERR_OK, player_->Release());
3096 }
3097
3098 /**
3099 * @tc.name : Test SetEffect API
3100 * @tc.number: Player_SetEffect_001
3101 * @tc.desc : Test Player SetEffect state machine
3102 */
3103 HWTEST_F(PlayerServerUnitTest, Player_SetEffect_001, TestSize.Level1)
3104 {
3105 Format format;
3106 const float FLOAT_VALUE = 1.0;
3107 const double DOUBLE_VALUE = 2.5;
3108 const std::string STRING_VALUE = "player_test";
3109 const int32_t INT_VALUE = 1;
3110 (void)format.PutIntValue(PlayerKeys::AUDIO_EFFECT_MODE, OHOS::AudioStandard::AudioEffectMode::EFFECT_NONE);
3111 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
3112 (void)format.PutFloatValue(PlayerKeys::AUDIO_EFFECT_MODE, FLOAT_VALUE);
3113 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
3114 (void)format.PutDoubleValue(PlayerKeys::AUDIO_EFFECT_MODE, DOUBLE_VALUE);
3115 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
3116 (void)format.PutStringValue(PlayerKeys::AUDIO_EFFECT_MODE, STRING_VALUE);
3117 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
3118 (void)format.PutIntValue(PlayerKeys::AUDIO_EFFECT_MODE, INT_VALUE);
3119 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
3120
3121 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "01.mp3"));
3122 sptr<Surface> videoSurface = player_->GetVideoSurface();
3123 ASSERT_NE(nullptr, videoSurface);
3124 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3125
3126 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
3127 EXPECT_EQ(MSERR_OK, player_->Prepare());
3128 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
3129 EXPECT_EQ(MSERR_OK, player_->Play());
3130 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
3131 EXPECT_EQ(MSERR_OK, player_->Pause());
3132 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
3133 EXPECT_EQ(MSERR_OK, player_->Stop());
3134 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
3135 EXPECT_EQ(MSERR_OK, player_->Prepare());
3136 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
3137 EXPECT_EQ(MSERR_OK, player_->Reset());
3138 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
3139 EXPECT_EQ(MSERR_OK, player_->Release());
3140 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
3141 }
3142
3143 /**
3144 * @tc.name : Test SetEffect API
3145 * @tc.number: Player_SetEffect_002
3146 * @tc.desc : Test Player SetEffect param
3147 */
3148 HWTEST_F(PlayerServerUnitTest, Player_SetEffect_002, TestSize.Level1)
3149 {
3150 Format format;
3151 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "01.mp3"));
3152 sptr<Surface> videoSurface = player_->GetVideoSurface();
3153 ASSERT_NE(nullptr, videoSurface);
3154 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3155 EXPECT_EQ(MSERR_OK, player_->Prepare());
3156
3157 (void)format.PutIntValue(PlayerKeys::AUDIO_EFFECT_MODE, OHOS::AudioStandard::AudioEffectMode::EFFECT_DEFAULT);
3158 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
3159 (void)format.PutIntValue(PlayerKeys::AUDIO_EFFECT_MODE, OHOS::AudioStandard::AudioEffectMode::EFFECT_NONE);
3160 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
3161 (void)format.PutIntValue(PlayerKeys::AUDIO_EFFECT_MODE, 100); // 100 is an invalid parameter.
3162 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
3163 (void)format.PutIntValue(PlayerKeys::AUDIO_EFFECT_MODE, -1); // -1 is an invalid parameter.
3164 EXPECT_NE(MSERR_OK, player_->SetParameter(format));
3165
3166 EXPECT_EQ(MSERR_OK, player_->Release());
3167 }
3168
3169 /**
3170 * @tc.name : Test media error
3171 * @tc.number: Player_Media_Error
3172 * @tc.desc : Test Player Media Error
3173 */
3174 HWTEST_F(PlayerServerUnitTest, Player_Media_Error, TestSize.Level0)
3175 {
3176 std::array<MediaServiceErrCode, 5> errCodes = {MSERR_OK, MSERR_NO_MEMORY, MSERR_INVALID_OPERATION,
3177 MSERR_INVALID_VAL, MSERR_UNKNOWN};
3178 for (const auto& code : errCodes) {
3179 MediaServiceErrCodeTest(code);
3180 }
3181 for (MediaServiceErrCode code = MSERR_SERVICE_DIED; code < MSERR_EXTEND_START;
3182 code = (MediaServiceErrCode)(code + 1)) {
3183 MediaServiceErrCodeTest(code);
3184 }
3185 MediaServiceErrCodeTest(MSERR_EXTEND_START);
3186
3187 for (auto code = MSERR_EXT_OK; code <= MSERR_EXT_UNSUPPORT; code = (MediaServiceExtErrCode)(code + 1)) {
3188 EXPECT_EQ(MSEXTERRCODE_INFOS.at(code), MSExtErrorToString(code));
3189 }
3190 EXPECT_EQ(MSEXTERRCODE_INFOS.at(MSERR_EXT_EXTEND_START), MSExtErrorToString(MSERR_EXT_EXTEND_START));
3191
3192 std::array<MediaServiceExtErrCodeAPI9, 5> errCodesAPI9 = {MSERR_EXT_API9_OK, MSERR_EXT_API9_NO_PERMISSION,
3193 MSERR_EXT_API9_PERMISSION_DENIED, MSERR_EXT_API9_INVALID_PARAMETER, MSERR_EXT_API9_UNSUPPORT_CAPABILITY};
3194 for (const auto& errCodeApi9 : errCodesAPI9) {
3195 MediaServiceExtErrCodeAPI9Test(errCodeApi9);
3196 }
3197 for (auto code = MSERR_EXT_API9_NO_MEMORY;
3198 code <= MSERR_EXT_API9_AUDIO_INTERRUPTED; code = (MediaServiceExtErrCodeAPI9)(code + 1)) {
3199 MediaServiceExtErrCodeAPI9Test(code);
3200 }
3201 }
3202
3203 /**
3204 * @tc.name : Test ChangeSurface
3205 * @tc.number: Player_ChangeSurface_001
3206 * @tc.desc : Test video player change surface in idle state
3207 */
3208 HWTEST_F(PlayerServerUnitTest, Player_ChangeSurface_001, TestSize.Level1)
3209 {
3210 sptr<Surface> videoSurface = player_->GetVideoSurface();
3211 ASSERT_NE(nullptr, videoSurface);
3212 EXPECT_NE(MSERR_OK, player_->SetVideoSurface(videoSurface));
3213 }
3214
3215 /**
3216 * @tc.name : Test ChangeSurface
3217 * @tc.number: Player_ChangeSurface_002
3218 * @tc.desc : Test video player change surface in released state
3219 */
3220 HWTEST_F(PlayerServerUnitTest, Player_ChangeSurface_002, TestSize.Level1)
3221 {
3222 sptr<Surface> videoSurface = player_->GetVideoSurface();
3223 ASSERT_NE(nullptr, videoSurface);
3224 player_->Release();
3225 EXPECT_NE(MSERR_OK, player_->SetVideoSurface(videoSurface));
3226 }
3227
3228 /**
3229 * @tc.name : Test ChangeSurface
3230 * @tc.number: Player_ChangeSurface_003
3231 * @tc.desc : Test video player change surface in error state
3232 */
3233 HWTEST_F(PlayerServerUnitTest, Player_ChangeSurface_003, TestSize.Level1)
3234 {
3235 int32_t ret = player_->SetSource(MEDIA_ROOT + "error.mp4");
3236 EXPECT_EQ(MSERR_OK, ret);
3237 sptr<Surface> videoSurface = player_->GetVideoSurface();
3238 ASSERT_NE(nullptr, videoSurface);
3239 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3240 EXPECT_NE(MSERR_OK, player_->PrepareAsync());
3241 sleep(PLAYING_TIME_2_SEC);
3242 sptr<Surface> nextVideoSurface = player_->GetVideoSurfaceNext();
3243 ASSERT_NE(nullptr, nextVideoSurface);
3244 EXPECT_NE(MSERR_OK, player_->SetVideoSurface(nextVideoSurface));
3245 }
3246
3247 /**
3248 * @tc.name : Test ChangeSurface
3249 * @tc.number: Player_ChangeSurface_004
3250 * @tc.desc : Test video player change surface in initialized state
3251 */
3252 HWTEST_F(PlayerServerUnitTest, Player_ChangeSurface_004, TestSize.Level1)
3253 {
3254 int32_t ret = player_->SetSource(VIDEO_FILE1);
3255 EXPECT_EQ(MSERR_OK, ret);
3256 sptr<Surface> videoSurface = player_->GetVideoSurface();
3257 ASSERT_NE(nullptr, videoSurface);
3258 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3259 sptr<Surface> nextVideoSurface = player_->GetVideoSurfaceNext();
3260 ASSERT_NE(nullptr, nextVideoSurface);
3261 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(nextVideoSurface));
3262 }
3263
3264 /**
3265 * @tc.name : Test ChangeSurface
3266 * @tc.number: Player_ChangeSurface_005
3267 * @tc.desc : Test video player change surface in prepared state
3268 */
3269 HWTEST_F(PlayerServerUnitTest, Player_ChangeSurface_005, TestSize.Level1)
3270 {
3271 int32_t ret = player_->SetSource(VIDEO_FILE1);
3272 EXPECT_EQ(MSERR_OK, ret);
3273 sptr<Surface> videoSurface = player_->GetVideoSurface();
3274 ASSERT_NE(nullptr, videoSurface);
3275 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3276 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3277 sleep(PLAYING_TIME_2_SEC);
3278 sptr<Surface> nextVideoSurface = player_->GetVideoSurfaceNext();
3279 ASSERT_NE(nullptr, nextVideoSurface);
3280 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(nextVideoSurface));
3281 }
3282
3283 /**
3284 * @tc.name : Test ChangeSurface
3285 * @tc.number: Player_ChangeSurface_006
3286 * @tc.desc : Test video player change surface in playing state
3287 */
3288 HWTEST_F(PlayerServerUnitTest, Player_ChangeSurface_006, TestSize.Level1)
3289 {
3290 int32_t ret = player_->SetSource(VIDEO_FILE1);
3291 EXPECT_EQ(MSERR_OK, ret);
3292 sptr<Surface> videoSurface = player_->GetVideoSurface();
3293 ASSERT_NE(nullptr, videoSurface);
3294 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3295 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3296 sleep(PLAYING_TIME_2_SEC);
3297 EXPECT_EQ(MSERR_OK, player_->Play());
3298 sleep(PLAYING_TIME_2_SEC);
3299 sptr<Surface> nextVideoSurface = player_->GetVideoSurfaceNext();
3300 ASSERT_NE(nullptr, nextVideoSurface);
3301 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(nextVideoSurface));
3302 }
3303
3304 /**
3305 * @tc.name : Test ChangeSurface
3306 * @tc.number: Player_ChangeSurface_007
3307 * @tc.desc : Test video player change surface in paused state
3308 */
3309 HWTEST_F(PlayerServerUnitTest, Player_ChangeSurface_007, TestSize.Level1)
3310 {
3311 int32_t ret = player_->SetSource(VIDEO_FILE1);
3312 EXPECT_EQ(MSERR_OK, ret);
3313 sptr<Surface> videoSurface = player_->GetVideoSurface();
3314 ASSERT_NE(nullptr, videoSurface);
3315 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3316 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3317 sleep(PLAYING_TIME_2_SEC);
3318 EXPECT_EQ(MSERR_OK, player_->Play());
3319 sleep(PLAYING_TIME_2_SEC);
3320 EXPECT_EQ(MSERR_OK, player_->Pause());
3321 sleep(PLAYING_TIME_2_SEC);
3322 sptr<Surface> nextVideoSurface = player_->GetVideoSurfaceNext();
3323 ASSERT_NE(nullptr, nextVideoSurface);
3324 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(nextVideoSurface));
3325 }
3326
3327 /**
3328 * @tc.name : Test ChangeSurface
3329 * @tc.number: Player_ChangeSurface_008
3330 * @tc.desc : Test video player change surface in stopped state
3331 */
3332 HWTEST_F(PlayerServerUnitTest, Player_ChangeSurface_008, TestSize.Level1)
3333 {
3334 int32_t ret = player_->SetSource(VIDEO_FILE1);
3335 EXPECT_EQ(MSERR_OK, ret);
3336 sptr<Surface> videoSurface = player_->GetVideoSurface();
3337 ASSERT_NE(nullptr, videoSurface);
3338 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3339 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3340 sleep(PLAYING_TIME_2_SEC);
3341 EXPECT_EQ(MSERR_OK, player_->Play());
3342 sleep(PLAYING_TIME_2_SEC);
3343 EXPECT_EQ(MSERR_OK, player_->Stop());
3344 sleep(PLAYING_TIME_2_SEC);
3345 sptr<Surface> nextVideoSurface = player_->GetVideoSurfaceNext();
3346 ASSERT_NE(nullptr, nextVideoSurface);
3347 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(nextVideoSurface));
3348 }
3349
3350 /**
3351 * @tc.name : Test ChangeSurface
3352 * @tc.number: Player_ChangeSurface_009
3353 * @tc.desc : Test video player change surface in completed state
3354 */
3355 HWTEST_F(PlayerServerUnitTest, Player_ChangeSurface_009, TestSize.Level1)
3356 {
3357 int32_t ret = player_->SetSource(VIDEO_FILE1);
3358 EXPECT_EQ(MSERR_OK, ret);
3359 sptr<Surface> videoSurface = player_->GetVideoSurface();
3360 ASSERT_NE(nullptr, videoSurface);
3361 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3362 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3363 sleep(PLAYING_TIME_2_SEC);
3364 EXPECT_EQ(MSERR_OK, player_->Play());
3365 int32_t duration = 0;
3366 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
3367 sleep(PLAYING_TIME_10_SEC);
3368 sptr<Surface> nextVideoSurface = player_->GetVideoSurfaceNext();
3369 ASSERT_NE(nullptr, nextVideoSurface);
3370 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(nextVideoSurface));
3371 }
3372
3373 /**
3374 * @tc.name : Test SetPlaybackSpeed API
3375 * @tc.number: Player_SetPlaybackSpeed_003
3376 * @tc.desc : Test Player SetPlaybackSpeed SPEED_FORWARD_0_50_X
3377 */
3378 HWTEST_F(PlayerServerUnitTest, Player_SetPlaybackSpeed_003, TestSize.Level1)
3379 {
3380 PlaybackRateMode mode;
3381 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3382 sptr<Surface> videoSurface = player_->GetVideoSurface();
3383 ASSERT_NE(nullptr, videoSurface);
3384 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3385 EXPECT_EQ(MSERR_OK, player_->Prepare());
3386 EXPECT_EQ(MSERR_OK, player_->Play());
3387 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_0_50_X));
3388 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
3389 EXPECT_EQ(SPEED_FORWARD_0_50_X, mode);
3390 }
3391
3392 /**
3393 * @tc.name : Test SetPlaybackRate API
3394 * @tc.number: Player_SetPlaybackRate_003
3395 * @tc.desc : Test Player SetPlaybacRate SPEED_FORWARD_0_50_X
3396 */
3397 HWTEST_F(PlayerServerUnitTest, Player_SetPlaybackRate_003, TestSize.Level1)
3398 {
3399 float playbackRate = 0.5f;
3400 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3401 sptr<Surface> videoSurface = player_->GetVideoSurface();
3402 ASSERT_NE(nullptr, videoSurface);
3403 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3404 EXPECT_EQ(MSERR_OK, player_->Prepare());
3405 EXPECT_EQ(MSERR_OK, player_->Play());
3406 EXPECT_EQ(MSERR_OK, player_->SetPlaybackRate(playbackRate));
3407 }
3408
3409 /**
3410 * @tc.name : Test SetPlaybackSpeed API
3411 * @tc.number: Player_SetPlaybackSpeed_004
3412 * @tc.desc : Test Player SetPlaybackSpeed SPEED_FORWARD_1_50_X
3413 */
3414 HWTEST_F(PlayerServerUnitTest, Player_SetPlaybackSpeed_004, TestSize.Level1)
3415 {
3416 PlaybackRateMode mode;
3417 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3418 sptr<Surface> videoSurface = player_->GetVideoSurface();
3419 ASSERT_NE(nullptr, videoSurface);
3420 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3421 EXPECT_EQ(MSERR_OK, player_->Prepare());
3422 EXPECT_EQ(MSERR_OK, player_->Play());
3423 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_1_50_X));
3424 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
3425 EXPECT_EQ(SPEED_FORWARD_1_50_X, mode);
3426 }
3427
3428 /**
3429 * @tc.name : Test SetPlaybackRate API
3430 * @tc.number: Player_SetPlaybackRate_004
3431 * @tc.desc : Test Player SetPlaybackRate SPEED_FORWARD_1_50_X
3432 */
3433 HWTEST_F(PlayerServerUnitTest, Player_SetPlaybackRate_004, TestSize.Level1)
3434 {
3435 float playbackRate = 1.5f;
3436 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3437 sptr<Surface> videoSurface = player_->GetVideoSurface();
3438 ASSERT_NE(nullptr, videoSurface);
3439 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3440 EXPECT_EQ(MSERR_OK, player_->Prepare());
3441 EXPECT_EQ(MSERR_OK, player_->Play());
3442 EXPECT_EQ(MSERR_OK, player_->SetPlaybackRate(playbackRate));
3443 }
3444
3445 /**
3446 * @tc.name : Test SetPlaybackSpeed API
3447 * @tc.number: Player_SetPlaybackSpeed_005
3448 * @tc.desc : Test Player SetPlaybackSpeed SPEED_FORWARD_1_50_X
3449 */
3450 HWTEST_F(PlayerServerUnitTest, Player_SetPlaybackSpeed_005, TestSize.Level1)
3451 {
3452 PlaybackRateMode mode;
3453 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3454 sptr<Surface> videoSurface = player_->GetVideoSurface();
3455 ASSERT_NE(nullptr, videoSurface);
3456 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3457 EXPECT_EQ(MSERR_OK, player_->Prepare());
3458 EXPECT_EQ(MSERR_OK, player_->Play());
3459 int32_t speed = -1;
3460 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(static_cast<OHOS::Media::PlaybackRateMode>(speed)));
3461 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
3462 EXPECT_EQ(-1, mode);
3463 }
3464
3465 /**
3466 * @tc.name : Test SetPlaybackRate API
3467 * @tc.number: Player_SetPlaybackRate_005
3468 * @tc.desc : Test Player SetPlaybackRate Unvalid Value
3469 */
3470 HWTEST_F(PlayerServerUnitTest, Player_SetPlaybackRate_005, TestSize.Level1)
3471 {
3472 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3473 sptr<Surface> videoSurface = player_->GetVideoSurface();
3474 ASSERT_NE(nullptr, videoSurface);
3475 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3476 EXPECT_EQ(MSERR_OK, player_->Prepare());
3477 EXPECT_EQ(MSERR_OK, player_->Play());
3478 float playbackRate = -1;
3479 EXPECT_NE(MSERR_OK, player_->SetPlaybackRate(playbackRate));
3480 }
3481
3482 /**
3483 * @tc.name : Test SetSurface API
3484 * @tc.number: Player_SetSurface_001
3485 * @tc.desc : Test Player SetSurface->SetSurface
3486 */
3487 HWTEST_F(PlayerServerUnitTest, Player_SetSurface_001, TestSize.Level1)
3488 {
3489 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3490 sptr<Surface> videoSurface = player_->GetVideoSurface();
3491 ASSERT_NE(nullptr, videoSurface);
3492 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3493 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3494 int32_t ret = player_->PrepareAsync();
3495 if (ret == MSERR_OK) {
3496 PlayFunTest(LOCAL_PLAY);
3497 }
3498 }
3499
3500 /**
3501 * @tc.name : Test AddSubSource
3502 * @tc.number: Player_AddSubSource_001
3503 * @tc.desc : Test Player AddSubSource state machine
3504 */
3505 HWTEST_F(PlayerServerUnitTest, Player_AddSubSource_001, TestSize.Level1)
3506 {
3507 ASSERT_NE(MSERR_OK, player_->AddSubSource(SUBTITLE_SRT_FIELE, 0, 0));
3508 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "AVC_Baseline@L1.2_81.0Kbps_320x240.mp4", 0, 0));
3509 sptr<Surface> videoSurface = player_->GetVideoSurface();
3510 ASSERT_NE(nullptr, videoSurface);
3511 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3512 EXPECT_NE(MSERR_OK, player_->AddSubSource(SUBTITLE_SRT_FIELE)); // Illegal state machine
3513 EXPECT_EQ(MSERR_OK, player_->Prepare());
3514 EXPECT_EQ(MSERR_OK, player_->Play());
3515 EXPECT_NE(SUBTITLE_0_SEC, player_->GetSubtitleText(SUBTITLE_0_SEC));
3516 EXPECT_EQ(MSERR_OK, player_->Pause());
3517 EXPECT_EQ(MSERR_OK, player_->Stop());
3518 EXPECT_EQ(MSERR_OK, player_->Reset());
3519 EXPECT_EQ(MSERR_OK, player_->Release());
3520 }
3521
3522 /**
3523 * @tc.name : Test AddSubSource
3524 * @tc.number: Player_AddSubSource_002
3525 * @tc.desc : Test Player AddSubSource behavior
3526 */
3527 HWTEST_F(PlayerServerUnitTest, Player_AddSubSource_002, TestSize.Level1)
3528 {
3529 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "H264_AAC.mp4", 0, 0));
3530 sptr<Surface> videoSurface = player_->GetVideoSurface();
3531 ASSERT_NE(nullptr, videoSurface);
3532 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3533 EXPECT_NE(MSERR_OK, player_->AddSubSource(SUBTITLE_SRT_FIELE, 0, 0));
3534 EXPECT_EQ(MSERR_OK, player_->Prepare());
3535 EXPECT_EQ(MSERR_OK, player_->Play());
3536 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_5_SEC, SEEK_CLOSEST));
3537 EXPECT_EQ("", player_->GetSubtitleText(""));
3538 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_2_SEC, SEEK_CLOSEST));
3539 EXPECT_EQ("", player_->GetSubtitleText(""));
3540 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_5_SEC, SEEK_NEXT_SYNC));
3541 EXPECT_EQ("", player_->GetSubtitleText(""));
3542 EXPECT_EQ(MSERR_OK, player_->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC));
3543 EXPECT_EQ("", player_->GetSubtitleText(""));
3544 int duration = 0;
3545 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
3546 EXPECT_EQ(MSERR_OK, player_->Play());
3547 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
3548 EXPECT_EQ("", player_->GetSubtitleText(""));
3549 }
3550
3551 /**
3552 * @tc.name : Test PlayerServer Stop
3553 * @tc.number: PlayerServer_Stop_001
3554 * @tc.desc : Test PlayerServer Stop on different status
3555 */
3556 HWTEST_F(PlayerServerUnitTest, PlayerServer_Stop_001, TestSize.Level1)
3557 {
3558 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "H264_AAC.mp4", 0, 0));
3559 sptr<Surface> videoSurface = player_->GetVideoSurface();
3560 ASSERT_NE(nullptr, videoSurface);
3561 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3562 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3563 EXPECT_EQ(MSERR_OK, player_->Stop());
3564 }
3565
3566 /**
3567 * @tc.name : Test PlayerServer Stop
3568 * @tc.number: PlayerServer_Stop_002
3569 * @tc.desc : Test PlayerServer Stop on different status
3570 */
3571 HWTEST_F(PlayerServerUnitTest, PlayerServer_Stop_002, TestSize.Level1)
3572 {
3573 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "H264_AAC.mp4", 0, 0));
3574 sptr<Surface> videoSurface = player_->GetVideoSurface();
3575 ASSERT_NE(nullptr, videoSurface);
3576 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3577 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3578 EXPECT_EQ(MSERR_OK, player_->Play());
3579 EXPECT_TRUE(player_->IsPlaying());
3580 EXPECT_EQ(MSERR_OK, player_->Stop());
3581 }
3582
3583 /**
3584 * @tc.name : Test PlayerServer Stop
3585 * @tc.number: PlayerServer_Stop_003
3586 * @tc.desc : Test PlayerServer Stop on different status
3587 */
3588 HWTEST_F(PlayerServerUnitTest, PlayerServer_Stop_003, TestSize.Level1)
3589 {
3590 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "H264_AAC.mp4", 0, 0));
3591 sptr<Surface> videoSurface = player_->GetVideoSurface();
3592 int32_t duration = 0;
3593 ASSERT_NE(nullptr, videoSurface);
3594 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3595 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3596 EXPECT_EQ(MSERR_OK, player_->Play());
3597 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
3598 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_NEXT_SYNC));
3599 EXPECT_TRUE(player_->IsPlaying());
3600 sleep(PLAYING_TIME_2_SEC);
3601 EXPECT_EQ(MSERR_OK, player_->Stop());
3602 }
3603
3604 /**
3605 * @tc.name : Test PlayerServer Stop
3606 * @tc.number: PlayerServer_Stop_004
3607 * @tc.desc : Test PlayerServer Stop on different status
3608 */
3609 HWTEST_F(PlayerServerUnitTest, PlayerServer_Stop_004, TestSize.Level1)
3610 {
3611 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "H264_AAC.mp4", 0, 0));
3612 sptr<Surface> videoSurface = player_->GetVideoSurface();
3613 ASSERT_NE(nullptr, videoSurface);
3614 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3615 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3616 EXPECT_EQ(MSERR_OK, player_->Play());
3617 EXPECT_TRUE(player_->IsPlaying());
3618 EXPECT_EQ(MSERR_OK, player_->Pause());
3619 EXPECT_EQ(MSERR_OK, player_->Stop());
3620 }
3621
3622 /**
3623 * @tc.name : Test PlayerServer Stop
3624 * @tc.number: PlayerServer_Stop_005
3625 * @tc.desc : Test PlayerServer Stop on different status
3626 */
3627 HWTEST_F(PlayerServerUnitTest, PlayerServer_Stop_005, TestSize.Level1)
3628 {
3629 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "H264_AAC.mp4", 0, 0));
3630 sptr<Surface> videoSurface = player_->GetVideoSurface();
3631 ASSERT_NE(nullptr, videoSurface);
3632 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3633 EXPECT_NE(MSERR_OK, player_->Stop());
3634 }
3635
3636 /**
3637 * @tc.name : Test SetParameter Stop
3638 * @tc.number: Player_SetParameter_001
3639 * @tc.desc : Test Player SetParameter
3640 */
3641 HWTEST_F(PlayerServerUnitTest, Player_SetParameter_001, TestSize.Level1)
3642 {
3643 std::vector<Format> videoTrack;
3644 std::vector<Format> audioTrack;
3645 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3646 sptr<Surface> videoSurface = player_->GetVideoSurface();
3647 ASSERT_NE(nullptr, videoSurface);
3648 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3649 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3650 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
3651 Format format;
3652 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
3653 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
3654 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
3655 }
3656
3657 /**
3658 * @tc.name : Test SetParameter Stop
3659 * @tc.number: Player_SetParameter_002
3660 * @tc.desc : Test Player SetParameter
3661 */
3662 HWTEST_F(PlayerServerUnitTest, Player_SetParameter_002, TestSize.Level1)
3663 {
3664 std::vector<Format> videoTrack;
3665 std::vector<Format> audioTrack;
3666 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3667 sptr<Surface> videoSurface = player_->GetVideoSurface();
3668 ASSERT_NE(nullptr, videoSurface);
3669 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3670 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3671 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
3672 Format format;
3673 int32_t contentType = 1;
3674 int32_t scaleType = 1;
3675 int32_t streamUsage = 1;
3676 int32_t rendererFlags = 1;
3677 int32_t audioInterruptMode = 1;
3678 format.PutIntValue(PlayerKeys::VIDEO_SCALE_TYPE, scaleType);
3679 format.PutIntValue(PlayerKeys::CONTENT_TYPE, contentType);
3680 format.PutIntValue(PlayerKeys::STREAM_USAGE, streamUsage);
3681 format.PutIntValue(PlayerKeys::RENDERER_FLAG, rendererFlags);
3682 format.PutIntValue(PlayerKeys::AUDIO_INTERRUPT_MODE, audioInterruptMode);
3683 EXPECT_EQ(MSERR_OK, player_->SetParameter(format));
3684 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
3685 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
3686 }
3687
3688 /**
3689 * @tc.name : Test SetParameter Stop
3690 * @tc.number: Player_SetParameter_003
3691 * @tc.desc : Test Player SetParameter
3692 */
3693 HWTEST_F(PlayerServerUnitTest, Player_SetParameter_003, TestSize.Level1)
3694 {
3695 Format formatScaleType;
3696 Format formatContentType;
3697 Format formatStreamUsage;
3698 Format formatStreamUsageAndContentType;
3699 Format formatInterruptMode;
3700 std::vector<Format> videoTrack;
3701 std::vector<Format> audioTrack;
3702 int32_t contentType = 1;
3703 int32_t scaleType = 1;
3704 int32_t streamUsage = 1;
3705 int32_t audioInterruptMode = 1;
3706 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3707 sptr<Surface> videoSurface = player_->GetVideoSurface();
3708 ASSERT_NE(nullptr, videoSurface);
3709 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3710 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3711 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
3712
3713 formatScaleType.PutIntValue(PlayerKeys::VIDEO_SCALE_TYPE, scaleType);
3714 EXPECT_EQ(MSERR_OK, player_->SetParameter(formatScaleType));
3715
3716 formatContentType.PutIntValue(PlayerKeys::CONTENT_TYPE, contentType);
3717 EXPECT_EQ(MSERR_OK, player_->SetParameter(formatContentType));
3718
3719 formatStreamUsage.PutIntValue(PlayerKeys::STREAM_USAGE, streamUsage);
3720 EXPECT_EQ(MSERR_OK, player_->SetParameter(formatStreamUsage));
3721
3722 formatStreamUsageAndContentType.PutIntValue(PlayerKeys::CONTENT_TYPE, contentType);
3723 formatStreamUsageAndContentType.PutIntValue(PlayerKeys::STREAM_USAGE, streamUsage);
3724 EXPECT_EQ(MSERR_OK, player_->SetParameter(formatStreamUsageAndContentType));
3725
3726 formatInterruptMode.PutIntValue(PlayerKeys::AUDIO_INTERRUPT_MODE, audioInterruptMode);
3727 EXPECT_EQ(MSERR_OK, player_->SetParameter(formatInterruptMode));
3728
3729 EXPECT_EQ(MSERR_OK, player_->GetVideoTrackInfo(videoTrack));
3730 EXPECT_EQ(MSERR_OK, player_->GetAudioTrackInfo(audioTrack));
3731 }
3732
3733 /**
3734 * @tc.name : Test Player state machine, invalid operation on stopped
3735 * @tc.number: Player_State_Machine_001
3736 * @tc.desc : Test Player state machine, invalid operation on stopped
3737 */
3738 HWTEST_F(PlayerServerUnitTest, Player_State_Machine_001, TestSize.Level1)
3739 {
3740 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3741 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3742 ASSERT_EQ(MSERR_OK, player_->PrepareAsync());
3743 sleep(1);
3744 ASSERT_EQ(PlayerStates::PLAYER_PREPARED, player_->GetState());
3745 int32_t duration = 0;
3746 ASSERT_EQ(MSERR_OK, player_->GetDuration(duration));
3747 ASSERT_EQ(MSERR_OK, player_->Play());
3748 sleep(1);
3749 ASSERT_EQ(true, player_->IsPlaying());
3750 ASSERT_EQ(PlayerStates::PLAYER_STARTED, player_->GetState());
3751 ASSERT_EQ(MSERR_OK, player_->Stop());
3752 sleep(1);
3753 ASSERT_EQ(PlayerStates::PLAYER_STOPPED, player_->GetState());
3754 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Pause());
3755 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Play());
3756 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3757 }
3758
3759 /**
3760 * @tc.name : Test Player state machine, invalid operation on error
3761 * @tc.number: Player_State_Machine_002
3762 * @tc.desc : Test Player state machine, invalid operation on error
3763 */
3764 HWTEST_F(PlayerServerUnitTest, Player_State_Machine_002, TestSize.Level1)
3765 {
3766 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3767 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "1kb.mp3"));
3768 ASSERT_NE(MSERR_OK, player_->PrepareAsync());
3769 sleep(1);
3770 ASSERT_EQ(PlayerStates::PLAYER_STATE_ERROR, player_->GetState());
3771 int32_t duration = 0;
3772 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->GetDuration(duration));
3773 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Seek(0, PlayerSeekMode::SEEK_NEXT_SYNC));
3774 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Play());
3775 sleep(1);
3776 ASSERT_EQ(false, player_->IsPlaying());
3777 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Stop());
3778 sleep(1);
3779 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Pause());
3780 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Play());
3781 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3782 ASSERT_EQ(MSERR_OK, player_->Reset());
3783 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3784 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Reset());
3785 }
3786
3787 /**
3788 * @tc.name : Test Player state machine, invalid operation on idle
3789 * @tc.number: Player_State_Machine_003
3790 * @tc.desc : Test Player state machine, invalid operation on idle
3791 */
3792 HWTEST_F(PlayerServerUnitTest, Player_State_Machine_003, TestSize.Level1)
3793 {
3794 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3795 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->PrepareAsync());
3796 sleep(1);
3797 int32_t duration = 0;
3798 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->GetDuration(duration));
3799 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Play());
3800 sleep(1);
3801 ASSERT_EQ(false, player_->IsPlaying());
3802 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3803 ASSERT_EQ(MSERR_NO_MEMORY, player_->Seek(0, PlayerSeekMode::SEEK_NEXT_SYNC));
3804 sleep(1);
3805 ASSERT_EQ(false, player_->IsPlaying());
3806 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Pause());
3807 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Stop());
3808 }
3809
3810 /**
3811 * @tc.name : Test Player state machine, invalid operation on initialized
3812 * @tc.number: Player_State_Machine_004
3813 * @tc.desc : Test Player state machine, invalid operation on initialized
3814 */
3815 HWTEST_F(PlayerServerUnitTest, Player_State_Machine_004, TestSize.Level1)
3816 {
3817 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3818 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3819 sleep(1);
3820 int32_t duration = 0;
3821 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->GetDuration(duration));
3822 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Seek(duration, PlayerSeekMode::SEEK_NEXT_SYNC));
3823 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Play());
3824 sleep(1);
3825 ASSERT_EQ(false, player_->IsPlaying());
3826 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Stop());
3827 sleep(1);
3828 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Pause());
3829 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Play());
3830 }
3831
3832 /**
3833 * @tc.name : Test Player state machine, invalid operation on prepared
3834 * @tc.number: Player_State_Machine_005
3835 * @tc.desc : Test Player state machine, invalid operation on prepared
3836 */
3837 HWTEST_F(PlayerServerUnitTest, Player_State_Machine_005, TestSize.Level1)
3838 {
3839 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3840 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3841 ASSERT_EQ(MSERR_OK, player_->PrepareAsync());
3842 sleep(1);
3843 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3844 int32_t duration = 0;
3845 ASSERT_EQ(MSERR_OK, player_->GetDuration(duration));
3846 ASSERT_EQ(MSERR_OK, player_->Seek(duration, PlayerSeekMode::SEEK_NEXT_SYNC));
3847 ASSERT_EQ(PlayerStates::PLAYER_PREPARED, player_->GetState());
3848 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Pause());
3849 sleep(1);
3850 ASSERT_EQ(false, player_->IsPlaying());
3851 ASSERT_EQ(MSERR_OK, player_->Stop());
3852 }
3853
3854 /**
3855 * @tc.name : Test Player state machine, invalid operation on playing
3856 * @tc.number: Player_State_Machine_006
3857 * @tc.desc : Test Player state machine, invalid operation on playing
3858 */
3859 HWTEST_F(PlayerServerUnitTest, Player_State_Machine_006, TestSize.Level1)
3860 {
3861 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3862 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3863 ASSERT_EQ(MSERR_OK, player_->PrepareAsync());
3864 ASSERT_EQ(MSERR_OK, player_->SetLooping(true));
3865 sleep(1);
3866 int32_t duration = 0;
3867 ASSERT_EQ(MSERR_OK, player_->GetDuration(duration));
3868 ASSERT_EQ(MSERR_OK, player_->Play());
3869 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3870 ASSERT_EQ(MSERR_OK, player_->Seek(duration, PlayerSeekMode::SEEK_NEXT_SYNC));
3871 sleep(1);
3872 ASSERT_EQ(true, player_->IsPlaying());
3873 ASSERT_EQ(MSERR_OK, player_->Stop());
3874 }
3875
3876 /**
3877 * @tc.name : Test Player state machine, invalid operation on completed
3878 * @tc.number: Player_State_Machine_007
3879 * @tc.desc : Test Player state machine, invalid operation on completed
3880 */
3881 HWTEST_F(PlayerServerUnitTest, Player_State_Machine_007, TestSize.Level1)
3882 {
3883 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3884 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3885 ASSERT_EQ(MSERR_OK, player_->PrepareAsync());
3886 sleep(1);
3887 int32_t duration = 0;
3888 ASSERT_EQ(MSERR_OK, player_->GetDuration(duration));
3889 ASSERT_EQ(MSERR_OK, player_->Seek(duration, PlayerSeekMode::SEEK_NEXT_SYNC));
3890 ASSERT_EQ(MSERR_OK, player_->Play());
3891 sleep(1);
3892 ASSERT_EQ(false, player_->IsPlaying());
3893 ASSERT_EQ(PlayerStates::PLAYER_PLAYBACK_COMPLETE, player_->GetState());
3894 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->Pause());
3895 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->PrepareAsync());
3896 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3897 }
3898
3899 /**
3900 * @tc.name : Test Player state machine, invalid operation on paused
3901 * @tc.number: Player_State_Machine_008
3902 * @tc.desc : Test Player state machine, invalid operation on paused
3903 */
3904 HWTEST_F(PlayerServerUnitTest, Player_State_Machine_008, TestSize.Level1)
3905 {
3906 ASSERT_EQ(PlayerStates::PLAYER_IDLE, player_->GetState());
3907 ASSERT_EQ(MSERR_OK, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3908 ASSERT_EQ(MSERR_OK, player_->PrepareAsync());
3909 sleep(1);
3910 int32_t duration = 0;
3911 ASSERT_EQ(MSERR_OK, player_->GetDuration(duration));
3912 ASSERT_EQ(MSERR_OK, player_->Play());
3913 ASSERT_EQ(MSERR_OK, player_->Pause());
3914 sleep(1);
3915 ASSERT_EQ(PlayerStates::PLAYER_PAUSED, player_->GetState());
3916 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->SetSource(MEDIA_ROOT + "mp3_48000Hz_64kbs_mono.mp3"));
3917 ASSERT_EQ(MSERR_INVALID_OPERATION, player_->PrepareAsync());
3918 }
3919
3920 /**
3921 * @tc.name : Test SetPlayRange [0, 600]
3922 * @tc.number: Player_SetPlayRange_001
3923 * @tc.desc : Test Player SetPlayRange interface
3924 */
3925 HWTEST_F(PlayerServerUnitTest, Player_SetPlayRange_001, TestSize.Level1)
3926 {
3927 int32_t duration = 0;
3928 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3929 sptr<Surface> videoSurface = player_->GetVideoSurface();
3930 ASSERT_NE(nullptr, videoSurface);
3931 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3932 EXPECT_EQ(MSERR_OK, player_->SetPlayRange(0, 600));
3933 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3934 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
3935 EXPECT_EQ(MSERR_OK, player_->Play());
3936 EXPECT_TRUE(player_->IsPlaying());
3937 EXPECT_EQ(MSERR_OK, player_->Pause());
3938 EXPECT_EQ(MSERR_OK, player_->SetPlayRange(0, duration));
3939 EXPECT_EQ(MSERR_OK, player_->Play());
3940 EXPECT_EQ(MSERR_OK, player_->Pause());
3941 }
3942
3943 /**
3944 * @tc.name : Test SetPlayRange [0, 600]
3945 * @tc.number: Player_SetPlayRange_002
3946 * @tc.desc : Test Player SetPlayRange interface
3947 */
3948 HWTEST_F(PlayerServerUnitTest, Player_SetPlayRange_002, TestSize.Level1)
3949 {
3950 int32_t duration = 0;
3951 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3952 sptr<Surface> videoSurface = player_->GetVideoSurface();
3953 ASSERT_NE(nullptr, videoSurface);
3954 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3955 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
3956 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
3957 EXPECT_EQ(MSERR_OK, player_->Play());
3958 EXPECT_TRUE(player_->IsPlaying());
3959 EXPECT_EQ(MSERR_OK, player_->Pause());
3960 EXPECT_EQ(MSERR_OK, player_->SetPlayRange(0, 600));
3961 EXPECT_EQ(MSERR_OK, player_->Play());
3962 EXPECT_EQ(MSERR_OK, player_->Pause());
3963 }
3964
3965 /**
3966 * @tc.name : Test SetPlayRange [-2, -1]
3967 * @tc.number: Player_SetPlayRange_003
3968 * @tc.desc : Test Player SetPlayRange interface
3969 */
3970 HWTEST_F(PlayerServerUnitTest, Player_SetPlayRange_003, TestSize.Level1)
3971 {
3972 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3973 sptr<Surface> videoSurface = player_->GetVideoSurface();
3974 ASSERT_NE(nullptr, videoSurface);
3975 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3976 ASSERT_NE(MSERR_OK, player_->SetPlayRange(-2, -1));
3977 }
3978
3979 /**
3980 * @tc.name : Test SetPlayRange [-1, -2]
3981 * @tc.number: Player_SetPlayRange_004
3982 * @tc.desc : Test Player SetPlayRange interface
3983 */
3984 HWTEST_F(PlayerServerUnitTest, Player_SetPlayRange_004, TestSize.Level1)
3985 {
3986 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
3987 sptr<Surface> videoSurface = player_->GetVideoSurface();
3988 ASSERT_NE(nullptr, videoSurface);
3989 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
3990 ASSERT_NE(MSERR_OK, player_->SetPlayRange(-1, -2));
3991 }
3992
3993 /**
3994 * @tc.name : Test SetPlayRange [-1, 0]
3995 * @tc.number: Player_SetPlayRange_005
3996 * @tc.desc : Test Player SetPlayRange interface
3997 */
3998 HWTEST_F(PlayerServerUnitTest, Player_SetPlayRange_005, TestSize.Level1)
3999 {
4000 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4001 sptr<Surface> videoSurface = player_->GetVideoSurface();
4002 ASSERT_NE(nullptr, videoSurface);
4003 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4004 ASSERT_NE(MSERR_OK, player_->SetPlayRange(-1, 0));
4005 }
4006
4007 /**
4008 * @tc.name : Test SetPlayRange [-1, -1]
4009 * @tc.number: Player_SetPlayRange_006
4010 * @tc.desc : Test Player SetPlayRange interface
4011 */
4012 HWTEST_F(PlayerServerUnitTest, Player_SetPlayRange_006, TestSize.Level1)
4013 {
4014 int32_t duration = 0;
4015 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4016 sptr<Surface> videoSurface = player_->GetVideoSurface();
4017 ASSERT_NE(nullptr, videoSurface);
4018 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4019 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4020 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
4021 EXPECT_EQ(MSERR_OK, player_->Play());
4022 EXPECT_TRUE(player_->IsPlaying());
4023 EXPECT_EQ(MSERR_OK, player_->Pause());
4024 EXPECT_EQ(MSERR_OK, player_->SetPlayRange(-1, 600));
4025 EXPECT_EQ(MSERR_OK, player_->SetPlayRange(-1, -1));
4026 EXPECT_EQ(MSERR_OK, player_->Play());
4027 EXPECT_EQ(MSERR_OK, player_->Pause());
4028 }
4029
4030 /**
4031 * @tc.name : Test SetPlayRange [100, 2]
4032 * @tc.number: Player_SetPlayRange_007
4033 * @tc.desc : Test Player SetPlayRange interface
4034 */
4035 HWTEST_F(PlayerServerUnitTest, Player_SetPlayRange_007, TestSize.Level1)
4036 {
4037 int32_t duration = 0;
4038 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4039 sptr<Surface> videoSurface = player_->GetVideoSurface();
4040 ASSERT_NE(nullptr, videoSurface);
4041 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4042 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4043 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
4044 EXPECT_EQ(MSERR_OK, player_->Play());
4045 EXPECT_TRUE(player_->IsPlaying());
4046 EXPECT_EQ(MSERR_OK, player_->Pause());
4047 ASSERT_NE(MSERR_OK, player_->SetPlayRange(100, 2));
4048 }
4049
4050 /**
4051 * @tc.name : Test SetPlayRange [duration + 1, duration + 2]
4052 * @tc.number: Player_SetPlayRange_008
4053 * @tc.desc : Test Player SetPlayRange interface
4054 */
4055 HWTEST_F(PlayerServerUnitTest, Player_SetPlayRange_008, TestSize.Level1)
4056 {
4057 int32_t duration = 0;
4058 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4059 sptr<Surface> videoSurface = player_->GetVideoSurface();
4060 ASSERT_NE(nullptr, videoSurface);
4061 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4062 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4063 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
4064 EXPECT_EQ(MSERR_OK, player_->Play());
4065 EXPECT_TRUE(player_->IsPlaying());
4066 EXPECT_EQ(MSERR_OK, player_->Pause());
4067 int32_t start = duration + 1;
4068 int32_t end = duration + 2;
4069 ASSERT_NE(MSERR_OK, player_->SetPlayRange(start, end));
4070 }
4071
4072 /**
4073 * @tc.name : Test SetPlayRange [100, duration + 1]
4074 * @tc.number: Player_SetPlayRange_009
4075 * @tc.desc : Test Player SetPlayRange interface
4076 */
4077 HWTEST_F(PlayerServerUnitTest, Player_SetPlayRange_009, TestSize.Level1)
4078 {
4079 int32_t duration = 0;
4080 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4081 sptr<Surface> videoSurface = player_->GetVideoSurface();
4082 ASSERT_NE(nullptr, videoSurface);
4083 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4084 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4085 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
4086 EXPECT_EQ(MSERR_OK, player_->Play());
4087 EXPECT_TRUE(player_->IsPlaying());
4088 EXPECT_EQ(MSERR_OK, player_->Pause());
4089 int32_t end = duration + 1;
4090 ASSERT_NE(MSERR_OK, player_->SetPlayRange(100, end));
4091 }
4092
4093 /**
4094 * @tc.name : Test SetPlayRange [10035, 10037]
4095 * @tc.number: Player_SetPlayRange_010
4096 * @tc.desc : Test Player SetPlayRange interface, duration 10034
4097 */
4098 HWTEST_F(PlayerServerUnitTest, Player_SetPlayRange_010, TestSize.Level1)
4099 {
4100 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4101 sptr<Surface> videoSurface = player_->GetVideoSurface();
4102 ASSERT_NE(nullptr, videoSurface);
4103 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4104 EXPECT_EQ(MSERR_OK, player_->SetPlayRange(10035, 10037));
4105 ASSERT_NE(MSERR_OK, player_->PrepareAsync());
4106 }
4107
4108 /**
4109 * @tc.name : Test SetPlayRange [100, 10037]
4110 * @tc.number: Player_SetPlayRange_011
4111 * @tc.desc : Test Player SetPlayRange interface, duration 10034
4112 */
4113 HWTEST_F(PlayerServerUnitTest, Player_SetPlayRange_011, TestSize.Level1)
4114 {
4115 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4116 sptr<Surface> videoSurface = player_->GetVideoSurface();
4117 ASSERT_NE(nullptr, videoSurface);
4118 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4119 EXPECT_EQ(MSERR_OK, player_->SetPlayRange(100, 10037));
4120 ASSERT_NE(MSERR_OK, player_->PrepareAsync());
4121 }
4122
4123 /**
4124 * @tc.name : Test SetPlayRange
4125 * @tc.number: Player_SetPlayRange_012
4126 * @tc.desc : Test Player SetPlayRange invalid state
4127 */
4128 HWTEST_F(PlayerServerUnitTest, Player_SetPlayRange_012, TestSize.Level0)
4129 {
4130 EXPECT_NE(MSERR_OK, player_->SetPlayRange(100, 10037));
4131 }
4132
4133 /**
4134 * @tc.name : Test SetPlayRange
4135 * @tc.number: Player_SetPlayRange_013
4136 * @tc.desc : Test Player SetPlayRange invalid playerEngine
4137 */
4138 HWTEST_F(PlayerServerUnitTest, Player_SetPlayRange_013, TestSize.Level0)
4139 {
4140 std::shared_ptr<PlayerServer> server = std::make_shared<PlayerServer>();
4141 server->lastOpStatus_ = PLAYER_INITIALIZED;
4142 EXPECT_EQ(MSERR_OK, server->SetPlayRange(100, 10037));
4143 }
4144
4145 /**
4146 * @tc.name : Test SeekContinuous in prepared
4147 * @tc.number: Player_SeekContinuous_001
4148 * @tc.desc : Test Player SeekContinuous
4149 */
4150 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_001, TestSize.Level1)
4151 {
4152 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4153 sptr<Surface> videoSurface = player_->GetVideoSurface();
4154 ASSERT_NE(nullptr, videoSurface);
4155 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4156 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4157 for (int i = 0; i < 10; i++) {
4158 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
4159 usleep(SEEK_CONTINUOUS_WAIT_US);
4160 }
4161 EXPECT_EQ(MSERR_OK, player_->Play());
4162 }
4163
4164 /**
4165 * @tc.name : Test SeekContinuous in playing
4166 * @tc.number: Player_SeekContinuous_002
4167 * @tc.desc : Test Player SeekContinuous
4168 */
4169 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_002, TestSize.Level1)
4170 {
4171 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4172 sptr<Surface> videoSurface = player_->GetVideoSurface();
4173 ASSERT_NE(nullptr, videoSurface);
4174 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4175 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4176 EXPECT_EQ(MSERR_OK, player_->Play());
4177 sleep(PLAYING_TIME_2_SEC);
4178 for (int i = 0; i < 30; i++) {
4179 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
4180 usleep(SEEK_CONTINUOUS_WAIT_US);
4181 }
4182 EXPECT_EQ(MSERR_OK, player_->Play());
4183 EXPECT_EQ(MSERR_OK, player_->Stop());
4184 }
4185
4186 /**
4187 * @tc.name : Test SeekContinuous in paused
4188 * @tc.number: Player_SeekContinuous_003
4189 * @tc.desc : Test Player SeekContinuous
4190 */
4191 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_003, TestSize.Level1)
4192 {
4193 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4194 sptr<Surface> videoSurface = player_->GetVideoSurface();
4195 ASSERT_NE(nullptr, videoSurface);
4196 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4197 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4198 EXPECT_EQ(MSERR_OK, player_->Play());
4199 sleep(PLAYING_TIME_2_SEC);
4200 EXPECT_EQ(MSERR_OK, player_->Pause());
4201 for (int i = 0; i < 30; i++) {
4202 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
4203 usleep(SEEK_CONTINUOUS_WAIT_US);
4204 }
4205 EXPECT_EQ(MSERR_OK, player_->Play());
4206 EXPECT_EQ(MSERR_OK, player_->Stop());
4207 }
4208
4209 /**
4210 * @tc.name : Test SeekContinuous in completed
4211 * @tc.number: Player_SeekContinuous_004
4212 * @tc.desc : Test Player SeekContinuous
4213 */
4214 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_004, TestSize.Level1)
4215 {
4216 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4217 sptr<Surface> videoSurface = player_->GetVideoSurface();
4218 ASSERT_NE(nullptr, videoSurface);
4219 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4220 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4221 EXPECT_EQ(MSERR_OK, player_->Play());
4222 sleep(PLAYING_TIME_2_SEC);
4223 EXPECT_EQ(MSERR_OK, player_->Seek(9, SEEK_PREVIOUS_SYNC));
4224 sleep(PLAYING_TIME_10_SEC);
4225 for (int i = 0; i < 30; i++) {
4226 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
4227 usleep(SEEK_CONTINUOUS_WAIT_US);
4228 }
4229 EXPECT_EQ(MSERR_OK, player_->Play());
4230 EXPECT_EQ(MSERR_OK, player_->Stop());
4231 }
4232
4233 /**
4234 * @tc.name : Test SeekContinuous backward
4235 * @tc.number: Player_SeekContinuous_005
4236 * @tc.desc : Test Player SeekContinuous
4237 */
4238 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_005, TestSize.Level1)
4239 {
4240 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4241 sptr<Surface> videoSurface = player_->GetVideoSurface();
4242 ASSERT_NE(nullptr, videoSurface);
4243 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4244 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4245 EXPECT_EQ(MSERR_OK, player_->Play());
4246 sleep(PLAYING_TIME_2_SEC);
4247 for (int i = 0; i < 30; i++) {
4248 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
4249 usleep(SEEK_CONTINUOUS_WAIT_US);
4250 }
4251 EXPECT_EQ(MSERR_OK, player_->Play());
4252 EXPECT_EQ(MSERR_OK, player_->Stop());
4253 }
4254
4255 /**
4256 * @tc.name : Test SeekContinuous forward and backward
4257 * @tc.number: Player_SeekContinuous_006
4258 * @tc.desc : Test Player SeekContinuous
4259 */
4260 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_006, TestSize.Level1)
4261 {
4262 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4263 sptr<Surface> videoSurface = player_->GetVideoSurface();
4264 ASSERT_NE(nullptr, videoSurface);
4265 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4266 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4267 EXPECT_EQ(MSERR_OK, player_->Play());
4268 sleep(PLAYING_TIME_2_SEC);
4269 for (int i = 0; i < 30; i++) {
4270 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
4271 usleep(SEEK_CONTINUOUS_WAIT_US);
4272 }
4273 for (int i = 0; i < 30; i++) {
4274 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
4275 usleep(SEEK_CONTINUOUS_WAIT_US);
4276 }
4277 EXPECT_EQ(MSERR_OK, player_->Play());
4278 EXPECT_EQ(MSERR_OK, player_->Stop());
4279 }
4280
4281 /**
4282 * @tc.name : Test SetPlaybackSpeed API
4283 * @tc.number: Player_SetPlaybackSpeed_006
4284 * @tc.desc : Test Player SetPlaybackSpeed SPEED_FORWARD_3_00_X
4285 */
4286 HWTEST_F(PlayerServerUnitTest, Player_SetPlaybackSpeed_006, TestSize.Level1)
4287 {
4288 float playbackSpeed = 3.0f;
4289 PlaybackRateMode mode;
4290 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4291 sptr<Surface> videoSurface = player_->GetVideoSurface();
4292 ASSERT_NE(nullptr, videoSurface);
4293 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4294 EXPECT_EQ(MSERR_OK, player_->Prepare());
4295 EXPECT_EQ(MSERR_OK, player_->Play());
4296 EXPECT_EQ(MSERR_OK, player_->SetPlaybackRate(playbackSpeed));
4297 EXPECT_EQ(MSERR_OK, player_->SetPlaybackSpeed(SPEED_FORWARD_3_00_X));
4298 EXPECT_EQ(MSERR_OK, player_->GetPlaybackSpeed(mode));
4299 EXPECT_EQ(SPEED_FORWARD_3_00_X, mode);
4300 }
4301
4302 /**
4303 * @tc.name : Test SetMaxAmplitudeCbStatus API
4304 * @tc.number: Player_SetMaxAmplitudeCbStatus_001
4305 * @tc.desc : Test Player SetMaxAmplitudeCbStatus status on before prepare
4306 */
4307 HWTEST_F(PlayerServerUnitTest, Player_SetMaxAmplitudeCbStatus_001, TestSize.Level1)
4308 {
4309 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4310 sptr<Surface> videoSurface = player_->GetVideoSurface();
4311 ASSERT_NE(nullptr, videoSurface);
4312 EXPECT_EQ(MSERR_OK, player_->SetMaxAmplitudeCbStatus(true));
4313 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4314 EXPECT_EQ(MSERR_OK, player_->Prepare());
4315 EXPECT_EQ(MSERR_OK, player_->Play());
4316 }
4317
4318 /**
4319 * @tc.name : Test SetMaxAmplitudeCbStatus API
4320 * @tc.number: Player_SetMaxAmplitudeCbStatus_002
4321 * @tc.desc : Test Player SetMaxAmplitudeCbStatus status on after prepare
4322 */
4323 HWTEST_F(PlayerServerUnitTest, Player_SetMaxAmplitudeCbStatus_002, TestSize.Level1)
4324 {
4325 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4326 sptr<Surface> videoSurface = player_->GetVideoSurface();
4327 ASSERT_NE(nullptr, videoSurface);
4328 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4329 EXPECT_EQ(MSERR_OK, player_->Prepare());
4330 EXPECT_EQ(MSERR_OK, player_->SetMaxAmplitudeCbStatus(true));
4331 EXPECT_EQ(MSERR_OK, player_->Play());
4332 }
4333
4334 /**
4335 * @tc.name : Test SetMaxAmplitudeCbStatus API
4336 * @tc.number: Player_SetMaxAmplitudeCbStatus_003
4337 * @tc.desc : Test Player SetMaxAmplitudeCbStatus status off before prepare
4338 */
4339 HWTEST_F(PlayerServerUnitTest, Player_SetMaxAmplitudeCbStatus_003, TestSize.Level1)
4340 {
4341 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4342 sptr<Surface> videoSurface = player_->GetVideoSurface();
4343 ASSERT_NE(nullptr, videoSurface);
4344 EXPECT_EQ(MSERR_OK, player_->SetMaxAmplitudeCbStatus(false));
4345 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4346 EXPECT_EQ(MSERR_OK, player_->Prepare());
4347 EXPECT_EQ(MSERR_OK, player_->Play());
4348 }
4349
4350 /**
4351 * @tc.name : Test SetMaxAmplitudeCbStatus API
4352 * @tc.number: Player_SetMaxAmplitudeCbStatus_004
4353 * @tc.desc : Test Player SetMaxAmplitudeCbStatus status off after prepare
4354 */
4355 HWTEST_F(PlayerServerUnitTest, Player_SetMaxAmplitudeCbStatus_004, TestSize.Level1)
4356 {
4357 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4358 sptr<Surface> videoSurface = player_->GetVideoSurface();
4359 ASSERT_NE(nullptr, videoSurface);
4360 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4361 EXPECT_EQ(MSERR_OK, player_->Prepare());
4362 EXPECT_EQ(MSERR_OK, player_->SetMaxAmplitudeCbStatus(false));
4363 EXPECT_EQ(MSERR_OK, player_->Play());
4364 }
4365
4366 /**
4367 * @tc.name : Test SetDeviceChangeCbStatus API
4368 * @tc.number: Player_SetDeviceChangeCbStatus_001
4369 * @tc.desc : Test Player SetDeviceChangeCbStatus status on before prepare
4370 */
4371 HWTEST_F(PlayerServerUnitTest, Player_SetDeviceChangeCbStatus_001, TestSize.Level1)
4372 {
4373 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4374 sptr<Surface> videoSurface = player_->GetVideoSurface();
4375 ASSERT_NE(nullptr, videoSurface);
4376 EXPECT_EQ(MSERR_OK, player_->SetDeviceChangeCbStatus(true));
4377 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4378 EXPECT_EQ(MSERR_OK, player_->Prepare());
4379 EXPECT_EQ(MSERR_OK, player_->Play());
4380 }
4381
4382 /**
4383 * @tc.name : Test SetDeviceChangeCbStatus API
4384 * @tc.number: Player_SetDeviceChangeCbStatus_002
4385 * @tc.desc : Test Player SetDeviceChangeCbStatus status on after prepare
4386 */
4387 HWTEST_F(PlayerServerUnitTest, Player_SetDeviceChangeCbStatus_002, TestSize.Level1)
4388 {
4389 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4390 sptr<Surface> videoSurface = player_->GetVideoSurface();
4391 ASSERT_NE(nullptr, videoSurface);
4392 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4393 EXPECT_EQ(MSERR_OK, player_->Prepare());
4394 EXPECT_EQ(MSERR_OK, player_->SetDeviceChangeCbStatus(true));
4395 EXPECT_EQ(MSERR_OK, player_->Play());
4396 }
4397
4398 /**
4399 * @tc.name : Test SetDeviceChangeCbStatus API
4400 * @tc.number: Player_SetDeviceChangeCbStatus_003
4401 * @tc.desc : Test Player SetDeviceChangeCbStatus status off before prepare
4402 */
4403 HWTEST_F(PlayerServerUnitTest, Player_SetDeviceChangeCbStatus_003, TestSize.Level1)
4404 {
4405 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4406 sptr<Surface> videoSurface = player_->GetVideoSurface();
4407 ASSERT_NE(nullptr, videoSurface);
4408 EXPECT_EQ(MSERR_OK, player_->SetDeviceChangeCbStatus(false));
4409 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4410 EXPECT_EQ(MSERR_OK, player_->Prepare());
4411 EXPECT_EQ(MSERR_OK, player_->Play());
4412 }
4413
4414 /**
4415 * @tc.name : Test SetDeviceChangeCbStatus API
4416 * @tc.number: Player_SetDeviceChangeCbStatus_004
4417 * @tc.desc : Test Player SetDeviceChangeCbStatus status off after prepare
4418 */
4419 HWTEST_F(PlayerServerUnitTest, Player_SetDeviceChangeCbStatus_004, TestSize.Level1)
4420 {
4421 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4422 sptr<Surface> videoSurface = player_->GetVideoSurface();
4423 ASSERT_NE(nullptr, videoSurface);
4424 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4425 EXPECT_EQ(MSERR_OK, player_->Prepare());
4426 EXPECT_EQ(MSERR_OK, player_->SetDeviceChangeCbStatus(false));
4427 EXPECT_EQ(MSERR_OK, player_->Play());
4428 }
4429
4430 /**
4431 * @tc.name : Test SetPlaybackStrategy
4432 * @tc.number: Player_SetPlaybackStrategy_001
4433 * @tc.desc : Test Player SetPlaybackStrategy
4434 */
4435 HWTEST_F(PlayerServerUnitTest, Player_SetPlaybackStrategy_001, TestSize.Level1)
4436 {
4437 AVPlayStrategy playbackStrategy = {
4438 .mutedMediaType = OHOS::Media::MediaType::MEDIA_TYPE_AUD
4439 };
4440 ASSERT_NE(MSERR_OK, player_->SetPlaybackStrategy(playbackStrategy));
4441 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4442 ASSERT_EQ(MSERR_OK, player_->SetPlaybackStrategy(playbackStrategy));
4443 }
4444
4445 HWTEST_F(PlayerServerUnitTest, Player_SetPlaybackStrategy_002, TestSize.Level1)
4446 {
4447 AVPlayStrategy playbackStrategy = {
4448 .mutedMediaType = OHOS::Media::MediaType::MEDIA_TYPE_VID,
4449 .keepDecodingOnMute = false
4450 };
4451 ASSERT_NE(MSERR_OK, player_->SetPlaybackStrategy(playbackStrategy));
4452 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4453 ASSERT_EQ(MSERR_OK, player_->SetPlaybackStrategy(playbackStrategy));
4454 }
4455
4456 /**
4457 * @tc.name : Test SetMediaMuted
4458 * @tc.number: Player_SetMediaMuted_001
4459 * @tc.desc : Test Player SetMediaMuted
4460 */
4461 HWTEST_F(PlayerServerUnitTest, Player_SetMediaMuted_001, TestSize.Level1)
4462 {
4463 ASSERT_NE(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_AUD, true));
4464 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4465 ASSERT_EQ(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_AUD, true));
4466 ASSERT_EQ(MSERR_OK, player_->PrepareAsync());
4467 ASSERT_EQ(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_AUD, true));
4468 ASSERT_EQ(MSERR_OK, player_->Play());
4469 ASSERT_EQ(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_AUD, true));
4470 ASSERT_EQ(MSERR_OK, player_->Pause());
4471 ASSERT_EQ(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_AUD, true));
4472 ASSERT_EQ(MSERR_OK, player_->Stop());
4473 ASSERT_EQ(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_AUD, true));
4474 }
4475
4476 /**
4477 * @tc.name : Test SetMediaMuted
4478 * @tc.number: Player_SetMediaMuted_002
4479 * @tc.desc : Test Player SetMediaMuted
4480 */
4481 HWTEST_F(PlayerServerUnitTest, Player_SetMediaMuted_002, TestSize.Level1)
4482 {
4483 ASSERT_NE(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_VID, true));
4484 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4485 ASSERT_EQ(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_VID, true));
4486 ASSERT_EQ(MSERR_OK, player_->PrepareAsync());
4487 ASSERT_EQ(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_VID, true));
4488 ASSERT_EQ(MSERR_OK, player_->Play());
4489 ASSERT_EQ(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_VID, true));
4490 ASSERT_EQ(MSERR_OK, player_->Stop());
4491 ASSERT_EQ(MSERR_OK, player_->SetMediaMuted(OHOS::Media::MediaType::MEDIA_TYPE_VID, true));
4492 }
4493
4494 /**
4495 * @tc.name : Test GetCurrentTime
4496 * @tc.number: Player_GetCurrentTime_001
4497 * @tc.desc : Test GetCurrentTime interface with invalid parameters
4498 */
4499 HWTEST_F(PlayerServerUnitTest, Player_GetCurrentTime_001, TestSize.Level0)
4500 {
4501 int32_t time = 0;
4502 int32_t duration = 0;
4503 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4504 EXPECT_EQ(MSERR_OK, player_->GetCurrentTime(time));
4505 sptr<Surface> videoSurface = player_->GetVideoSurface();
4506 ASSERT_NE(nullptr, videoSurface);
4507 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4508 EXPECT_EQ(MSERR_OK, player_->GetCurrentTime(time));
4509 EXPECT_EQ(MSERR_OK, player_->Prepare());
4510 EXPECT_EQ(MSERR_OK, player_->GetCurrentTime(time));
4511 EXPECT_EQ(MSERR_OK, player_->Play());
4512 EXPECT_EQ(MSERR_OK, player_->GetCurrentTime(time));
4513 EXPECT_EQ(MSERR_OK, player_->Pause());
4514 EXPECT_EQ(MSERR_OK, player_->GetCurrentTime(time));
4515 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
4516 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
4517 EXPECT_EQ(MSERR_OK, player_->Play());
4518 sleep(PLAYING_TIME_2_SEC);
4519 EXPECT_EQ(MSERR_OK, player_->GetCurrentTime(time));
4520 EXPECT_EQ(MSERR_OK, player_->Stop());
4521 EXPECT_EQ(MSERR_OK, player_->GetCurrentTime(time));
4522 EXPECT_EQ(MSERR_OK, player_->Reset());
4523 EXPECT_NE(MSERR_OK, player_->GetCurrentTime(time));
4524 }
4525
4526 /**
4527 * @tc.name : Test GetCurrentTime
4528 * @tc.number: Player_GetCurrentTime_002
4529 * @tc.desc : Test GetCurrentTime interface with invalid parameters
4530 */
4531 HWTEST_F(PlayerServerUnitTest, Player_GetCurrentTime_002, TestSize.Level0)
4532 {
4533 std::shared_ptr<PlayerServer> server = std::make_shared<PlayerServer>();
4534 int32_t time = 0;
4535 server->lastOpStatus_ = PLAYER_INITIALIZED;
4536 server->isLiveStream_ = true;
4537 EXPECT_EQ(MSERR_OK, server->GetCurrentTime(time));
4538 }
4539
4540 /**
4541 * @tc.name : Test GetPlaybackInfo API
4542 * @tc.number: Player_GetPlaybackInfo_001
4543 * @tc.desc : Test Player GetPlaybackInfo
4544 */
4545 HWTEST_F(PlayerServerUnitTest, Player_GetPlaybackInfo_001, TestSize.Level0)
4546 {
4547 Format playbackInfo;
4548 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
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 EXPECT_EQ(MSERR_OK, player_->GetPlaybackInfo(playbackInfo));
4555 }
4556
4557 /**
4558 * @tc.name : Test GetPlaybackInfo API
4559 * @tc.number: Player_GetPlaybackInfo_002
4560 * @tc.desc : Test Player GetPlaybackInfo
4561 */
4562 HWTEST_F(PlayerServerUnitTest, Player_GetPlaybackInfo_002, TestSize.Level2)
4563 {
4564 Format playbackInfo;
4565 int32_t duration = 0;
4566 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4567 EXPECT_NE(MSERR_OK, player_->GetPlaybackInfo(playbackInfo));
4568 sptr<Surface> videoSurface = player_->GetVideoSurface();
4569 ASSERT_NE(nullptr, videoSurface);
4570 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4571 EXPECT_NE(MSERR_OK, player_->GetPlaybackInfo(playbackInfo));
4572 EXPECT_EQ(MSERR_OK, player_->Prepare());
4573 EXPECT_EQ(MSERR_OK, player_->GetPlaybackInfo(playbackInfo));
4574 EXPECT_EQ(MSERR_OK, player_->Play());
4575 EXPECT_EQ(MSERR_OK, player_->GetPlaybackInfo(playbackInfo));
4576 EXPECT_EQ(MSERR_OK, player_->Pause());
4577 EXPECT_EQ(MSERR_OK, player_->GetPlaybackInfo(playbackInfo));
4578 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
4579 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
4580 EXPECT_EQ(MSERR_OK, player_->Play());
4581 sleep(PLAYING_TIME_2_SEC);
4582 EXPECT_EQ(MSERR_OK, player_->GetPlaybackInfo(playbackInfo));
4583 EXPECT_EQ(MSERR_OK, player_->Stop());
4584 EXPECT_NE(MSERR_OK, player_->GetPlaybackInfo(playbackInfo));
4585 EXPECT_EQ(MSERR_OK, player_->Reset());
4586 EXPECT_NE(MSERR_OK, player_->GetPlaybackInfo(playbackInfo));
4587 }
4588
4589 /**
4590 * @tc.name : Test GetSubtitleTrackInfo API
4591 * @tc.number: Player_GetSubtitleTrackInfo_001
4592 * @tc.desc : Test Player GetSubtitleTrackInfo
4593 */
4594 HWTEST_F(PlayerServerUnitTest, Player_GetSubtitleTrackInfo_001, TestSize.Level0)
4595 {
4596 std::vector<Format> subtitleTrackInfo;
4597 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4598 sptr<Surface> videoSurface = player_->GetVideoSurface();
4599 ASSERT_NE(nullptr, videoSurface);
4600 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4601 EXPECT_EQ(MSERR_OK, player_->Prepare());
4602 EXPECT_EQ(MSERR_OK, player_->Play());
4603 EXPECT_EQ(MSERR_OK, player_->GetSubtitleTrackInfo(subtitleTrackInfo));
4604 }
4605
4606 /**
4607 * @tc.name : Test GetSubtitleTrackInfo API
4608 * @tc.number: Player_GetSubtitleTrackInfo_002
4609 * @tc.desc : Test Player GetSubtitleTrackInfo
4610 */
4611 HWTEST_F(PlayerServerUnitTest, Player_GetSubtitleTrackInfo_002, TestSize.Level2)
4612 {
4613 std::vector<Format> subtitleTrackInfo;
4614 int32_t duration = 0;
4615 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4616 EXPECT_NE(MSERR_OK, player_->GetSubtitleTrackInfo(subtitleTrackInfo));
4617 sptr<Surface> videoSurface = player_->GetVideoSurface();
4618 ASSERT_NE(nullptr, videoSurface);
4619 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4620 EXPECT_NE(MSERR_OK, player_->GetSubtitleTrackInfo(subtitleTrackInfo));
4621 EXPECT_EQ(MSERR_OK, player_->Prepare());
4622 EXPECT_EQ(MSERR_OK, player_->GetSubtitleTrackInfo(subtitleTrackInfo));
4623 EXPECT_EQ(MSERR_OK, player_->Play());
4624 EXPECT_EQ(MSERR_OK, player_->GetSubtitleTrackInfo(subtitleTrackInfo));
4625 EXPECT_EQ(MSERR_OK, player_->Pause());
4626 EXPECT_EQ(MSERR_OK, player_->GetSubtitleTrackInfo(subtitleTrackInfo));
4627 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
4628 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_CLOSEST));
4629 EXPECT_EQ(MSERR_OK, player_->Play());
4630 sleep(PLAYING_TIME_2_SEC);
4631 EXPECT_EQ(MSERR_OK, player_->GetSubtitleTrackInfo(subtitleTrackInfo));
4632 EXPECT_EQ(MSERR_OK, player_->Stop());
4633 EXPECT_NE(MSERR_OK, player_->GetSubtitleTrackInfo(subtitleTrackInfo));
4634 EXPECT_EQ(MSERR_OK, player_->Reset());
4635 EXPECT_NE(MSERR_OK, player_->GetSubtitleTrackInfo(subtitleTrackInfo));
4636 }
4637
4638 /**
4639 * @tc.name : Test SetRenderFirstFrame API
4640 * @tc.number: Player_SetRenderFirstFrame_001
4641 * @tc.desc : Test Player SetRenderFirstFrame
4642 */
4643 HWTEST_F(PlayerServerUnitTest, Player_SetRenderFirstFrame_001, TestSize.Level0)
4644 {
4645 bool display = false;
4646 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE2));
4647 EXPECT_EQ(MSERR_OK, player_->SetRenderFirstFrame(display));
4648 EXPECT_EQ(MSERR_OK, player_->Prepare());
4649 EXPECT_NE(MSERR_OK, player_->SetRenderFirstFrame(display));
4650 EXPECT_EQ(MSERR_OK, player_->Play());
4651 EXPECT_NE(MSERR_OK, player_->SetRenderFirstFrame(display));
4652 EXPECT_EQ(MSERR_OK, player_->Reset());
4653 display = true;
4654 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE2));
4655 EXPECT_EQ(MSERR_OK, player_->SetRenderFirstFrame(display));
4656 EXPECT_EQ(MSERR_OK, player_->Prepare());
4657 EXPECT_NE(MSERR_OK, player_->SetRenderFirstFrame(display));
4658 EXPECT_EQ(MSERR_OK, player_->Play());
4659 EXPECT_NE(MSERR_OK, player_->SetRenderFirstFrame(display));
4660 }
4661
4662 /**
4663 * @tc.name : Test SetRenderFirstFrame API
4664 * @tc.number: Player_SetRenderFirstFrame_002
4665 * @tc.desc : Test Player SetRenderFirstFrame invalid playerEngine
4666 */
4667 HWTEST_F(PlayerServerUnitTest, Player_SetRenderFirstFrame_002, TestSize.Level0)
4668 {
4669 bool display = false;
4670 std::shared_ptr<PlayerServer> server = std::make_shared<PlayerServer>();
4671 server->lastOpStatus_ = PLAYER_INITIALIZED;
4672 EXPECT_EQ(MSERR_OK, server->SetRenderFirstFrame(display));
4673 }
4674
4675 /**
4676 * @tc.name : Test PreparedHandleEos API
4677 * @tc.number: Player_PreparedHandleEos_001
4678 * @tc.desc : Test Player PreparedHandleEos
4679 */
4680 HWTEST_F(PlayerServerUnitTest, Player_PreparedHandleEos_001, TestSize.Level0)
4681 {
4682 std::shared_ptr<PlayerServer> server = std::make_shared<PlayerServer>();
4683 (void)server->Init();
4684 ASSERT_EQ(MSERR_OK, server->SetSource(VIDEO_FILE1));
4685 EXPECT_EQ(MSERR_OK, server->Prepare());
4686 EXPECT_EQ(MSERR_OK, server->Play());
4687 EXPECT_EQ(MSERR_OK, server->SetLooping(true));
4688 EXPECT_EQ(true, server->IsLooping());
4689 server->PreparedHandleEos();
4690 EXPECT_NE(server->lastOpStatus_, PLAYER_PLAYBACK_COMPLETE);
4691 EXPECT_EQ(MSERR_OK, server->SetLooping(false));
4692 EXPECT_EQ(false, server->IsLooping());
4693 server->PreparedHandleEos();
4694 EXPECT_EQ(server->lastOpStatus_, PLAYER_PLAYBACK_COMPLETE);
4695 server->Release();
4696 }
4697
4698 /**
4699 * @tc.name : Test HandleEos API
4700 * @tc.number: Player_HandleEos_001
4701 * @tc.desc : Test Player HandleEos
4702 */
4703 HWTEST_F(PlayerServerUnitTest, Player_HandleEos_001, TestSize.Level0)
4704 {
4705 std::shared_ptr<PlayerServer> server = std::make_shared<PlayerServer>();
4706 server->HandleEos();
4707 EXPECT_EQ(server->disableNextSeekDone_, false);
4708 }
4709
4710 /**
4711 * @tc.name : Test HandleInterruptEvent API
4712 * @tc.number: Player_HandleInterruptEvent_001
4713 * @tc.desc : Test Player HandleInterruptEvent
4714 */
4715 HWTEST_F(PlayerServerUnitTest, Player_HandleInterruptEvent_001, TestSize.Level0)
4716 {
4717 std::shared_ptr<PlayerServer> server = std::make_shared<PlayerServer>();
4718 server->interruptEventState_ = PLAYER_PREPARING;
4719 Format infoBody;
4720 infoBody.PutIntValue(PlayerKeys::AUDIO_INTERRUPT_TYPE, -1);
4721 infoBody.PutIntValue(PlayerKeys::AUDIO_INTERRUPT_FORCE, -1);
4722 infoBody.PutIntValue(PlayerKeys::AUDIO_INTERRUPT_HINT, -1);
4723 server->HandleInterruptEvent(infoBody);
4724 EXPECT_EQ(server->interruptEventState_, PLAYER_PREPARING);
4725
4726 infoBody.PutIntValue(PlayerKeys::AUDIO_INTERRUPT_FORCE, OHOS::AudioStandard::INTERRUPT_FORCE);
4727 server->HandleInterruptEvent(infoBody);
4728 EXPECT_EQ(server->interruptEventState_, PLAYER_PREPARING);
4729 }
4730
4731 /**
4732 * @tc.name : Test BackGroundChangeState API
4733 * @tc.number: Player_BackGroundChangeState_001
4734 * @tc.desc : Test Player BackGroundChangeState
4735 */
4736 HWTEST_F(PlayerServerUnitTest, Player_BackGroundChangeState_001, TestSize.Level0)
4737 {
4738 std::shared_ptr<PlayerServer> server = std::make_shared<PlayerServer>();
4739 (void)server->Init();
4740 ASSERT_EQ(MSERR_OK, server->SetSource(VIDEO_FILE1));
4741 EXPECT_EQ(MSERR_OK, server->Prepare());
4742 EXPECT_EQ(MSERR_OK, server->Play());
4743 EXPECT_EQ(MSERR_OK, server->BackGroundChangeState(PLAYER_PAUSED, true));
4744 EXPECT_EQ(MSERR_OK, server->BackGroundChangeState(PLAYER_STARTED, true));
4745 EXPECT_EQ(MSERR_OK, server->Stop());
4746 EXPECT_NE(MSERR_OK, server->BackGroundChangeState(PLAYER_STOPPED, true));
4747 }
4748
4749 /**
4750 * @tc.name : Test PlayerState API
4751 * @tc.number: Player_PlayerState_001
4752 * @tc.desc : Test Player PlayerState
4753 */
4754 HWTEST_F(PlayerServerUnitTest, Player_PlayerState_001, TestSize.Level0)
4755 {
4756 std::shared_ptr<PlayerServer> server_ = std::make_shared<PlayerServer>();
4757 (void)server_->Init();
4758 server_->lastOpStatus_ = PLAYER_STATE_ERROR;
4759 EXPECT_EQ(false, server_->IsCompleted());
4760 EXPECT_EQ(false, server_->IsPrepared());
4761 EXPECT_EQ(false, server_->IsPlaying());
4762
4763 server_->lastOpStatus_ = PLAYER_PLAYBACK_COMPLETE;
4764 EXPECT_EQ(true, server_->IsCompleted());
4765 EXPECT_EQ(false, server_->IsPrepared());
4766 EXPECT_EQ(false, server_->IsPlaying());
4767
4768 server_->lastOpStatus_ = PLAYER_STARTED;
4769 EXPECT_EQ(false, server_->IsCompleted());
4770 EXPECT_EQ(false, server_->IsPrepared());
4771 EXPECT_EQ(true, server_->IsPlaying());
4772 }
4773
4774 /**
4775 * @tc.name : Test AddSubSource API
4776 * @tc.number: Player_AddSubSource_003
4777 * @tc.desc : Test Player AddSubSource
4778 */
4779 HWTEST_F(PlayerServerUnitTest, Player_AddSubSource_003, TestSize.Level0)
4780 {
4781 std::shared_ptr<PlayerServer> server_ = std::make_shared<PlayerServer>();
4782 (void)server_->Init();
4783 server_->subtitleTrackNum_ = 10;
4784 EXPECT_NE(MSERR_OK, server_->AddSubSource(SUBTITLE_SRT_FIELE));
4785 EXPECT_NE(MSERR_OK, server_->AddSubSource(0, 0, 0));
4786 }
4787
4788 /**
4789 * @tc.name : Test AddSubSource API
4790 * @tc.number: Player_AddSubSource_004
4791 * @tc.desc : Test Player AddSubSource invalid subtitleTrackNum
4792 */
4793 HWTEST_F(PlayerServerUnitTest, Player_AddSubSource_004, TestSize.Level0)
4794 {
4795 std::shared_ptr<PlayerServer> server = std::make_shared<PlayerServer>();
4796 ASSERT_EQ(MSERR_OK, server->SetSource(VIDEO_FILE1));
4797 server->subtitleTrackNum_ = 10;
4798 EXPECT_NE(MSERR_OK, server->AddSubSource(SUBTITLE_SRT_FIELE));
4799 EXPECT_NE(MSERR_OK, server->AddSubSource(0, 0, 0));
4800 }
4801
4802 /**
4803 * @tc.name : Test PrepareInReleasing API
4804 * @tc.number: Player_PrepareInReleasing_001
4805 * @tc.desc : Test Player PrepareInReleasing
4806 */
4807 HWTEST_F(PlayerServerUnitTest, Player_PrepareInReleasing_001, TestSize.Level0)
4808 {
4809 std::shared_ptr<PlayerServer> server_ = std::make_shared<PlayerServer>();
4810 (void)server_->Init();
4811 ASSERT_EQ(MSERR_OK, server_->SetSource(VIDEO_FILE1));
4812 EXPECT_EQ(MSERR_OK, server_->Prepare());
4813 EXPECT_EQ(MSERR_OK, server_->Play());
4814 EXPECT_EQ(MSERR_OK, server_->Stop());
4815 server_->inReleasing_ = true;
4816 EXPECT_NE(MSERR_OK, server_->Prepare());
4817 EXPECT_NE(MSERR_OK, server_->PrepareAsync());
4818 }
4819
4820 /**
4821 * @tc.name : Test media error
4822 * @tc.number: Player_Media_Error_002
4823 * @tc.desc : Test Player Media Error
4824 */
4825 HWTEST_F(PlayerServerUnitTest, Player_Media_Error_002, TestSize.Level1)
4826 {
4827 for (MediaServiceErrCode code = MSERR_IO_CANNOT_FIND_HOST; code <= MSERR_IO_UNSUPPORTTED_REQUEST;
4828 code = (MediaServiceErrCode)(code + 1)) {
4829 MediaServiceErrCodeTest(code);
4830 }
4831 MediaServiceErrCodeTest(MSERR_EXTEND_START);
4832
4833 for (auto code = MSERR_EXT_API14_IO_CANNOT_FIND_HOST;
4834 code <= MSERR_EXT_API14_IO_UNSUPPORTTED_REQUEST; code = (MediaServiceExtErrCodeAPI9)(code + 1)) {
4835 EXPECT_EQ(MSEXTERRCODE_API9_INFOS.at(code), MSExtAVErrorToString(code));
4836 MediaServiceExtErrCodeAPI9Test(code);
4837 }
4838 }
4839
4840 /**
4841 * @tc.name : Test SetPlayRangeWithMode
4842 * @tc.number: Player_SetPlayRangeWithMode_001
4843 * @tc.desc : Test Player SetPlayRangeWithMode interface
4844 */
4845 HWTEST_F(PlayerServerUnitTest, Player_SetPlayRangeWithMode_001, TestSize.Level0)
4846 {
4847 int32_t duration = 0;
4848 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4849 sptr<Surface> videoSurface = player_->GetVideoSurface();
4850 ASSERT_NE(nullptr, videoSurface);
4851 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4852 EXPECT_EQ(MSERR_OK, player_->SetPlayRange(0, 600));
4853 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4854 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
4855 EXPECT_EQ(MSERR_OK, player_->Play());
4856 EXPECT_TRUE(player_->IsPlaying());
4857 EXPECT_EQ(MSERR_OK, player_->Pause());
4858 EXPECT_EQ(MSERR_OK, player_->SetPlayRangeWithMode(0, duration, SEEK_PREVIOUS_SYNC));
4859 EXPECT_EQ(MSERR_OK, player_->Play());
4860 EXPECT_EQ(MSERR_OK, player_->Pause());
4861 }
4862
4863 /**
4864 * @tc.name : Test SetPlayRangeWithMode
4865 * @tc.number: Player_SetPlayRangeWithMode_002
4866 * @tc.desc : Test Player SetPlayRangeWithMode interface
4867 */
4868 HWTEST_F(PlayerServerUnitTest, Player_SetPlayRangeWithMode_002, TestSize.Level0)
4869 {
4870 int32_t duration = 0;
4871 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4872 sptr<Surface> videoSurface = player_->GetVideoSurface();
4873 ASSERT_NE(nullptr, videoSurface);
4874 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4875 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4876 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
4877 EXPECT_EQ(MSERR_OK, player_->Play());
4878 EXPECT_TRUE(player_->IsPlaying());
4879 EXPECT_EQ(MSERR_OK, player_->Pause());
4880 EXPECT_EQ(MSERR_OK, player_->SetPlayRangeWithMode(0, duration, SEEK_CLOSEST_SYNC));
4881 EXPECT_EQ(MSERR_OK, player_->Play());
4882 EXPECT_EQ(MSERR_OK, player_->Pause());
4883 }
4884
4885 /**
4886 * @tc.name : Test SetPlayRangeWithMode
4887 * @tc.number: Player_SetPlayRangeWithMode_003
4888 * @tc.desc : Test Player SetPlayRangeWithMode interface
4889 */
4890 HWTEST_F(PlayerServerUnitTest, Player_SetPlayRangeWithMode_003, TestSize.Level0)
4891 {
4892 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4893 sptr<Surface> videoSurface = player_->GetVideoSurface();
4894 ASSERT_NE(nullptr, videoSurface);
4895 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4896 EXPECT_EQ(MSERR_OK, player_->SetPlayRangeWithMode(0, 600, SEEK_CONTINOUS));
4897 ASSERT_NE(MSERR_OK, player_->PrepareAsync());
4898 EXPECT_EQ(MSERR_INVALID_OPERATION, player_->Play());
4899 EXPECT_EQ(MSERR_INVALID_OPERATION, player_->Pause());
4900 EXPECT_EQ(MSERR_INVALID_OPERATION, player_->SetPlayRangeWithMode(0, 600, SEEK_CONTINOUS));
4901 }
4902
4903 /**
4904 * @tc.name : Test SetPlayRangeWithMode
4905 * @tc.number: Player_SetPlayRangeWithMode_004
4906 * @tc.desc : Test Player SetPlayRangeWithMode interface
4907 */
4908 HWTEST_F(PlayerServerUnitTest, Player_SetPlayRangeWithMode_004, TestSize.Level0)
4909 {
4910 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
4911 sptr<Surface> videoSurface = player_->GetVideoSurface();
4912 ASSERT_NE(nullptr, videoSurface);
4913 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
4914 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
4915 EXPECT_EQ(MSERR_OK, player_->SetPlayRangeWithMode(0, 600, SEEK_CONTINOUS));
4916 }
4917
4918 /**
4919 * @tc.name : Test InnerOnInfo
4920 * @tc.number: Player_InnerOnInfo_001
4921 * @tc.desc : Test Player InnerOnInfo interface
4922 */
4923 HWTEST_F(PlayerServerUnitTest, Player_InnerOnInfo_001, TestSize.Level0)
4924 {
4925 std::shared_ptr<PlayerServer> server = std::make_shared<PlayerServer>();
4926 Format infoBody;
4927 PlayerOnInfoType type = INFO_TYPE_IS_LIVE_STREAM;
4928 server->InnerOnInfo(type, 0, infoBody, 0);
4929 EXPECT_EQ(server->isLiveStream_, true);
4930 }
4931
4932 /**
4933 * @tc.name : Test InnerOnInfo
4934 * @tc.number: Player_InnerOnInfo_002
4935 * @tc.desc : Test Player InnerOnInfo interface
4936 */
4937 HWTEST_F(PlayerServerUnitTest, Player_InnerOnInfo_002, TestSize.Level0)
4938 {
4939 std::shared_ptr<PlayerServer> server = std::make_shared<PlayerServer>();
4940 Format infoBody;
4941 PlayerOnInfoType type = INFO_TYPE_DEFAULTTRACK;
4942 server->InnerOnInfo(type, 1, infoBody, 0);
4943 EXPECT_NE(server->isLiveStream_, true);
4944 type = INFO_TYPE_TRACK_DONE;
4945 server->InnerOnInfo(type, 1, infoBody, 0);
4946 EXPECT_NE(server->isLiveStream_, true);
4947 type = INFO_TYPE_ADD_SUBTITLE_DONE;
4948 server->InnerOnInfo(type, 1, infoBody, 0);
4949 EXPECT_NE(server->isLiveStream_, true);
4950 }
4951
4952 /**
4953 * @tc.name : Test InnerOnInfo
4954 * @tc.number: Player_InnerOnInfo_003
4955 * @tc.desc : Test Player InnerOnInfo interface
4956 */
4957 HWTEST_F(PlayerServerUnitTest, Player_InnerOnInfo_003, TestSize.Level0)
4958 {
4959 std::shared_ptr<PlayerServer> server = std::make_shared<PlayerServer>();
4960 std::shared_ptr<PlayerCallbackTest> callback = std::make_shared<PlayerCallbackTest>();
4961 server->SetPlayerCallback(callback);
4962 Format infoBody;
4963 PlayerOnInfoType type = INFO_TYPE_SEEKDONE;
4964 server->InnerOnInfo(type, 0, infoBody, 0);
4965 EXPECT_EQ(callback->seekDoneFlag_, true);
4966
4967 server->isBackgroundChanged_ = true;
4968 callback->seekDoneFlag_ = false;
4969 server->InnerOnInfo(type, 0, infoBody, 0);
4970 EXPECT_EQ(callback->seekDoneFlag_, true);
4971
4972 type = INFO_TYPE_STATE_CHANGE;
4973 server->InnerOnInfo(type, 2, infoBody, 0);
4974 EXPECT_EQ(callback->state_, PLAYER_INITIALIZED);
4975
4976 server->isBackgroundCb_ = true;
4977 server->isBackgroundChanged_ = true;
4978 server->InnerOnInfo(type, 1, infoBody, 0);
4979 EXPECT_FALSE(server->isBackgroundCb_);
4980 }
4981
4982 /**
4983 * @tc.name : Test GetStatusDescription
4984 * @tc.number: Player_GetStatusDescription_001
4985 * @tc.desc : Test Player GetStatusDescription interface
4986 */
4987 HWTEST_F(PlayerServerUnitTest, Player_GetStatusDescription_001, TestSize.Level0)
4988 {
4989 std::shared_ptr<PlayerServer> server = std::make_shared<PlayerServer>();
4990 EXPECT_EQ(server->GetStatusDescription(-1), "PLAYER_STATUS_ILLEGAL");
4991 EXPECT_EQ(server->GetStatusDescription(10), "PLAYER_STATUS_ILLEGAL");
4992 }
4993
4994 /**
4995 * @tc.name : Test ChangeState
4996 * @tc.number: Player_ChangeState_001
4997 * @tc.desc : Test Player ChangeState interface
4998 */
4999 HWTEST_F(PlayerServerUnitTest, Player_ChangeState_001, TestSize.Level0)
5000 {
5001 std::shared_ptr<PlayerServer> server = std::make_shared<PlayerServer>();
5002 std::shared_ptr<PlayerServerState> state = nullptr;
5003 server->ChangeState(state);
5004 EXPECT_EQ(server->currState_, state);
5005 }
5006
5007 /**
5008 * @tc.name : Test CheckSeek
5009 * @tc.number: Player_CheckSeek_001
5010 * @tc.desc : Test Player CheckSeek interface
5011 */
5012 HWTEST_F(PlayerServerUnitTest, Player_CheckSeek_001, TestSize.Level0)
5013 {
5014 std::shared_ptr<PlayerServer> server = std::make_shared<PlayerServer>();
5015 server->SetSource(VIDEO_FILE1);
5016 server->lastOpStatus_ = PLAYER_PREPARING;
5017 PlayerSeekMode mode = SEEK_PREVIOUS_SYNC;
5018 server->isLiveStream_ = true;
5019 EXPECT_EQ(server->CheckSeek(0, mode), MSERR_INVALID_OPERATION);
5020 }
5021
5022
5023 /**
5024 * @tc.name : Test SeekContinuous in prepared with seek -1
5025 * @tc.number: Player_SeekContinuous_007
5026 * @tc.desc : Test Player SeekContinuous
5027 */
5028 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_007, TestSize.Level1)
5029 {
5030 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
5031 sptr<Surface> videoSurface = player_->GetVideoSurface();
5032 ASSERT_NE(nullptr, videoSurface);
5033 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5034 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
5035 for (int i = 0; i < 10; i++) {
5036 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
5037 usleep(SEEK_CONTINUOUS_WAIT_US);
5038 }
5039 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
5040 EXPECT_EQ(MSERR_OK, player_->Play());
5041 }
5042
5043 /**
5044 * @tc.name : Test SeekContinuous in playing with seek -1
5045 * @tc.number: Player_SeekContinuous_008
5046 * @tc.desc : Test Player SeekContinuous
5047 */
5048 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_008, TestSize.Level1)
5049 {
5050 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
5051 sptr<Surface> videoSurface = player_->GetVideoSurface();
5052 ASSERT_NE(nullptr, videoSurface);
5053 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5054 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
5055 EXPECT_EQ(MSERR_OK, player_->Play());
5056 sleep(PLAYING_TIME_2_SEC);
5057 for (int i = 0; i < 30; i++) {
5058 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
5059 usleep(SEEK_CONTINUOUS_WAIT_US);
5060 }
5061 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
5062 EXPECT_EQ(MSERR_OK, player_->Stop());
5063 }
5064
5065 /**
5066 * @tc.name : Test SeekContinuous in paused with seek -1
5067 * @tc.number: Player_SeekContinuous_009
5068 * @tc.desc : Test Player SeekContinuous
5069 */
5070 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_009, TestSize.Level1)
5071 {
5072 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
5073 sptr<Surface> videoSurface = player_->GetVideoSurface();
5074 ASSERT_NE(nullptr, videoSurface);
5075 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5076 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
5077 EXPECT_EQ(MSERR_OK, player_->Play());
5078 sleep(PLAYING_TIME_2_SEC);
5079 EXPECT_EQ(MSERR_OK, player_->Pause());
5080 for (int i = 0; i < 30; i++) {
5081 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
5082 usleep(SEEK_CONTINUOUS_WAIT_US);
5083 }
5084 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
5085 EXPECT_EQ(MSERR_OK, player_->Play());
5086 EXPECT_EQ(MSERR_OK, player_->Stop());
5087 }
5088
5089 /**
5090 * @tc.name : Test SeekContinuous in completed with seek -1
5091 * @tc.number: Player_SeekContinuous_010
5092 * @tc.desc : Test Player SeekContinuous
5093 */
5094 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_010, TestSize.Level1)
5095 {
5096 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
5097 sptr<Surface> videoSurface = player_->GetVideoSurface();
5098 ASSERT_NE(nullptr, videoSurface);
5099 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5100 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
5101 EXPECT_EQ(MSERR_OK, player_->Play());
5102 sleep(PLAYING_TIME_2_SEC);
5103 EXPECT_EQ(MSERR_OK, player_->Seek(9000, SEEK_PREVIOUS_SYNC));
5104 sleep(PLAYING_TIME_10_SEC);
5105 for (int i = 0; i < 30; i++) {
5106 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
5107 usleep(SEEK_CONTINUOUS_WAIT_US);
5108 }
5109 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
5110 EXPECT_EQ(MSERR_OK, player_->Play());
5111 EXPECT_EQ(MSERR_OK, player_->Stop());
5112 }
5113
5114 /**
5115 * @tc.name : Test SeekContinuous backward with seek -1
5116 * @tc.number: Player_SeekContinuous_011
5117 * @tc.desc : Test Player SeekContinuous
5118 */
5119 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_011, TestSize.Level1)
5120 {
5121 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
5122 sptr<Surface> videoSurface = player_->GetVideoSurface();
5123 ASSERT_NE(nullptr, videoSurface);
5124 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5125 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
5126 EXPECT_EQ(MSERR_OK, player_->Play());
5127 sleep(PLAYING_TIME_2_SEC);
5128 for (int i = 0; i < 30; i++) {
5129 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
5130 usleep(SEEK_CONTINUOUS_WAIT_US);
5131 }
5132 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
5133 EXPECT_EQ(MSERR_OK, player_->Stop());
5134 }
5135
5136 /**
5137 * @tc.name : Test SeekContinuous forward and backward with seek -1
5138 * @tc.number: Player_SeekContinuous_012
5139 * @tc.desc : Test Player SeekContinuous
5140 */
5141 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_012, TestSize.Level1)
5142 {
5143 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
5144 sptr<Surface> videoSurface = player_->GetVideoSurface();
5145 ASSERT_NE(nullptr, videoSurface);
5146 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5147 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
5148 EXPECT_EQ(MSERR_OK, player_->Play());
5149 sleep(PLAYING_TIME_2_SEC);
5150 for (int i = 0; i < 30; i++) {
5151 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
5152 usleep(SEEK_CONTINUOUS_WAIT_US);
5153 }
5154 for (int i = 0; i < 30; i++) {
5155 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
5156 usleep(SEEK_CONTINUOUS_WAIT_US);
5157 }
5158 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
5159 EXPECT_EQ(MSERR_OK, player_->Stop());
5160 }
5161
5162 /**
5163 * @tc.name : Test SeekContinuous in prepared mkv
5164 * @tc.number: Player_SeekContinuous_013
5165 * @tc.desc : Test Player SeekContinuous
5166 */
5167 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_013, TestSize.Level1)
5168 {
5169 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
5170 sptr<Surface> videoSurface = player_->GetVideoSurface();
5171 ASSERT_NE(nullptr, videoSurface);
5172 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5173 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
5174 for (int i = 0; i < 10; i++) {
5175 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
5176 usleep(SEEK_CONTINUOUS_WAIT_US);
5177 }
5178 EXPECT_EQ(MSERR_OK, player_->Play());
5179 }
5180
5181 /**
5182 * @tc.name : Test SeekContinuous in playing mkv
5183 * @tc.number: Player_SeekContinuous_014
5184 * @tc.desc : Test Player SeekContinuous
5185 */
5186 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_014, TestSize.Level1)
5187 {
5188 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
5189 sptr<Surface> videoSurface = player_->GetVideoSurface();
5190 ASSERT_NE(nullptr, videoSurface);
5191 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5192 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
5193 EXPECT_EQ(MSERR_OK, player_->Play());
5194 sleep(PLAYING_TIME_2_SEC);
5195 for (int i = 0; i < 30; i++) {
5196 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
5197 usleep(SEEK_CONTINUOUS_WAIT_US);
5198 }
5199 EXPECT_EQ(MSERR_OK, player_->Play());
5200 EXPECT_EQ(MSERR_OK, player_->Stop());
5201 }
5202
5203 /**
5204 * @tc.name : Test SeekContinuous in paused mkv
5205 * @tc.number: Player_SeekContinuous_015
5206 * @tc.desc : Test Player SeekContinuous
5207 */
5208 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_015, TestSize.Level1)
5209 {
5210 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
5211 sptr<Surface> videoSurface = player_->GetVideoSurface();
5212 ASSERT_NE(nullptr, videoSurface);
5213 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5214 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
5215 EXPECT_EQ(MSERR_OK, player_->Play());
5216 sleep(PLAYING_TIME_2_SEC);
5217 EXPECT_EQ(MSERR_OK, player_->Pause());
5218 for (int i = 0; i < 30; i++) {
5219 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
5220 usleep(SEEK_CONTINUOUS_WAIT_US);
5221 }
5222 EXPECT_EQ(MSERR_OK, player_->Play());
5223 EXPECT_EQ(MSERR_OK, player_->Stop());
5224 }
5225
5226 /**
5227 * @tc.name : Test SeekContinuous in completed mkv
5228 * @tc.number: Player_SeekContinuous_016
5229 * @tc.desc : Test Player SeekContinuous
5230 */
5231 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_016, TestSize.Level1)
5232 {
5233 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
5234 sptr<Surface> videoSurface = player_->GetVideoSurface();
5235 ASSERT_NE(nullptr, videoSurface);
5236 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5237 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
5238 EXPECT_EQ(MSERR_OK, player_->Play());
5239 sleep(PLAYING_TIME_2_SEC);
5240 EXPECT_EQ(MSERR_OK, player_->Seek(9000, SEEK_PREVIOUS_SYNC));
5241 sleep(PLAYING_TIME_10_SEC);
5242 for (int i = 0; i < 30; i++) {
5243 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
5244 usleep(SEEK_CONTINUOUS_WAIT_US);
5245 }
5246 EXPECT_EQ(MSERR_OK, player_->Play());
5247 EXPECT_EQ(MSERR_OK, player_->Stop());
5248 }
5249
5250 /**
5251 * @tc.name : Test SeekContinuous backward
5252 * @tc.number: Player_SeekContinuous_017 mkv
5253 * @tc.desc : Test Player SeekContinuous
5254 */
5255 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_017, TestSize.Level1)
5256 {
5257 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
5258 sptr<Surface> videoSurface = player_->GetVideoSurface();
5259 ASSERT_NE(nullptr, videoSurface);
5260 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5261 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
5262 EXPECT_EQ(MSERR_OK, player_->Play());
5263 sleep(PLAYING_TIME_2_SEC);
5264 for (int i = 0; i < 30; i++) {
5265 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
5266 usleep(SEEK_CONTINUOUS_WAIT_US);
5267 }
5268 EXPECT_EQ(MSERR_OK, player_->Play());
5269 EXPECT_EQ(MSERR_OK, player_->Stop());
5270 }
5271
5272 /**
5273 * @tc.name : Test SeekContinuous forward and backward mkv
5274 * @tc.number: Player_SeekContinuous_018
5275 * @tc.desc : Test Player SeekContinuous
5276 */
5277 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_018, TestSize.Level1)
5278 {
5279 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
5280 sptr<Surface> videoSurface = player_->GetVideoSurface();
5281 ASSERT_NE(nullptr, videoSurface);
5282 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5283 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
5284 EXPECT_EQ(MSERR_OK, player_->Play());
5285 sleep(PLAYING_TIME_2_SEC);
5286 for (int i = 0; i < 30; i++) {
5287 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
5288 usleep(SEEK_CONTINUOUS_WAIT_US);
5289 }
5290 for (int i = 0; i < 30; i++) {
5291 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
5292 usleep(SEEK_CONTINUOUS_WAIT_US);
5293 }
5294 EXPECT_EQ(MSERR_OK, player_->Play());
5295 EXPECT_EQ(MSERR_OK, player_->Stop());
5296 }
5297
5298 /**
5299 * @tc.name : Test SeekContinuous in prepared mkv with seek -1
5300 * @tc.number: Player_SeekContinuous_019
5301 * @tc.desc : Test Player SeekContinuous
5302 */
5303 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_019, TestSize.Level1)
5304 {
5305 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
5306 sptr<Surface> videoSurface = player_->GetVideoSurface();
5307 ASSERT_NE(nullptr, videoSurface);
5308 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5309 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
5310 for (int i = 0; i < 10; i++) {
5311 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
5312 usleep(SEEK_CONTINUOUS_WAIT_US);
5313 }
5314 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
5315 EXPECT_EQ(MSERR_OK, player_->Play());
5316 }
5317
5318 /**
5319 * @tc.name : Test SeekContinuous in playing mkv with seek -1
5320 * @tc.number: Player_SeekContinuous_020
5321 * @tc.desc : Test Player SeekContinuous
5322 */
5323 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_020, TestSize.Level1)
5324 {
5325 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
5326 sptr<Surface> videoSurface = player_->GetVideoSurface();
5327 ASSERT_NE(nullptr, videoSurface);
5328 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5329 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
5330 EXPECT_EQ(MSERR_OK, player_->Play());
5331 sleep(PLAYING_TIME_2_SEC);
5332 for (int i = 0; i < 30; i++) {
5333 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
5334 usleep(SEEK_CONTINUOUS_WAIT_US);
5335 }
5336 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
5337 EXPECT_EQ(MSERR_OK, player_->Stop());
5338 }
5339
5340 /**
5341 * @tc.name : Test SeekContinuous in paused mkv with seek -1
5342 * @tc.number: Player_SeekContinuous_021
5343 * @tc.desc : Test Player SeekContinuous
5344 */
5345 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_021, TestSize.Level1)
5346 {
5347 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
5348 sptr<Surface> videoSurface = player_->GetVideoSurface();
5349 ASSERT_NE(nullptr, videoSurface);
5350 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5351 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
5352 EXPECT_EQ(MSERR_OK, player_->Play());
5353 sleep(PLAYING_TIME_2_SEC);
5354 EXPECT_EQ(MSERR_OK, player_->Pause());
5355 for (int i = 0; i < 30; i++) {
5356 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
5357 usleep(SEEK_CONTINUOUS_WAIT_US);
5358 }
5359 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
5360 EXPECT_EQ(MSERR_OK, player_->Play());
5361 EXPECT_EQ(MSERR_OK, player_->Stop());
5362 }
5363
5364 /**
5365 * @tc.name : Test SeekContinuous in completed with seek -1
5366 * @tc.number: Player_SeekContinuous_022
5367 * @tc.desc : Test Player SeekContinuous
5368 */
5369 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_022, TestSize.Level1)
5370 {
5371 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
5372 sptr<Surface> videoSurface = player_->GetVideoSurface();
5373 ASSERT_NE(nullptr, videoSurface);
5374 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5375 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
5376 EXPECT_EQ(MSERR_OK, player_->Play());
5377 sleep(PLAYING_TIME_2_SEC);
5378 EXPECT_EQ(MSERR_OK, player_->Seek(9000, SEEK_PREVIOUS_SYNC));
5379 sleep(PLAYING_TIME_10_SEC);
5380 for (int i = 0; i < 30; i++) {
5381 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(i * 100));
5382 usleep(SEEK_CONTINUOUS_WAIT_US);
5383 }
5384 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
5385 EXPECT_EQ(MSERR_OK, player_->Play());
5386 EXPECT_EQ(MSERR_OK, player_->Stop());
5387 }
5388
5389 /**
5390 * @tc.name : Test SeekContinuous backward mkv with seek -1
5391 * @tc.number: Player_SeekContinuous_023
5392 * @tc.desc : Test Player SeekContinuous
5393 */
5394 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_023, TestSize.Level1)
5395 {
5396 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
5397 sptr<Surface> videoSurface = player_->GetVideoSurface();
5398 ASSERT_NE(nullptr, videoSurface);
5399 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5400 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
5401 EXPECT_EQ(MSERR_OK, player_->Play());
5402 sleep(PLAYING_TIME_2_SEC);
5403 for (int i = 0; i < 30; i++) {
5404 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
5405 usleep(SEEK_CONTINUOUS_WAIT_US);
5406 }
5407 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
5408 EXPECT_EQ(MSERR_OK, player_->Stop());
5409 }
5410
5411 /**
5412 * @tc.name : Test SeekContinuous forward and backward mkv with seek -1
5413 * @tc.number: Player_SeekContinuous_024
5414 * @tc.desc : Test Player SeekContinuous
5415 */
5416 HWTEST_F(PlayerServerUnitTest, Player_SeekContinuous_024, TestSize.Level1)
5417 {
5418 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE3));
5419 sptr<Surface> videoSurface = player_->GetVideoSurface();
5420 ASSERT_NE(nullptr, videoSurface);
5421 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5422 EXPECT_EQ(MSERR_OK, player_->PrepareAsync());
5423 EXPECT_EQ(MSERR_OK, player_->Play());
5424 sleep(PLAYING_TIME_2_SEC);
5425 for (int i = 0; i < 30; i++) {
5426 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
5427 usleep(SEEK_CONTINUOUS_WAIT_US);
5428 }
5429 for (int i = 0; i < 30; i++) {
5430 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(9000 - i * 100));
5431 usleep(SEEK_CONTINUOUS_WAIT_US);
5432 }
5433 EXPECT_EQ(MSERR_OK, player_->SeekContinuous(-1));
5434 EXPECT_EQ(MSERR_OK, player_->Stop());
5435 }
5436
5437 /**
5438 * @tc.name : Test EnableReportMediaProgress API
5439 * @tc.number: Player_EnableReportMediaProgress_001
5440 * @tc.desc : Test Player EnableReportMediaProgress on before playing
5441 */
5442 HWTEST_F(PlayerServerUnitTest, Player_EnableReportMediaProgress_001, TestSize.Level1)
5443 {
5444 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
5445 sptr<Surface> videoSurface = player_->GetVideoSurface();
5446 ASSERT_NE(nullptr, videoSurface);
5447 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5448 EXPECT_EQ(MSERR_OK, player_->Prepare());
5449 EXPECT_EQ(MSERR_OK, player_->EnableReportMediaProgress(true));
5450 EXPECT_EQ(MSERR_OK, player_->Play());
5451 }
5452
5453 /**
5454 * @tc.name : Test EnableReportMediaProgress API
5455 * @tc.number: Player_EnableReportMediaProgress_002
5456 * @tc.desc : Test Player EnableReportMediaProgress during playing
5457 */
5458 HWTEST_F(PlayerServerUnitTest, Player_EnableReportMediaProgress_002, TestSize.Level1)
5459 {
5460 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
5461 sptr<Surface> videoSurface = player_->GetVideoSurface();
5462 ASSERT_NE(nullptr, videoSurface);
5463 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5464 EXPECT_EQ(MSERR_OK, player_->Prepare());
5465 EXPECT_EQ(MSERR_OK, player_->Play());
5466 EXPECT_EQ(MSERR_OK, player_->EnableReportMediaProgress(true));
5467 EXPECT_EQ(MSERR_OK, player_->Pause());
5468 EXPECT_EQ(MSERR_OK, player_->Play());
5469 ASSERT_EQ(MSERR_OK, player_->EnableReportMediaProgress(false));
5470 }
5471
5472 /**
5473 * @tc.name : Test EnableReportMediaProgress API
5474 * @tc.number: Player_EnableReportMediaProgress_003
5475 * @tc.desc : Test Player EnableReportMediaProgress when seek in playing
5476 */
5477 HWTEST_F(PlayerServerUnitTest, Player_EnableReportMediaProgress_003, TestSize.Level1)
5478 {
5479 int32_t duration = 0;
5480 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
5481 sptr<Surface> videoSurface = player_->GetVideoSurface();
5482 ASSERT_NE(nullptr, videoSurface);
5483 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5484 EXPECT_EQ(MSERR_OK, player_->Prepare());
5485 EXPECT_EQ(MSERR_OK, player_->Play());
5486 EXPECT_EQ(MSERR_OK, player_->GetDuration(duration));
5487 EXPECT_EQ(MSERR_OK, player_->Pause());
5488 EXPECT_EQ(MSERR_OK, player_->Seek(duration, SEEK_NEXT_SYNC));
5489 ASSERT_EQ(MSERR_OK, player_->EnableReportMediaProgress(true));
5490 EXPECT_EQ(MSERR_OK, player_->Play());
5491 }
5492
5493 /**
5494 * @tc.name : Test EnableReportMediaProgress API
5495 * @tc.number: Player_EnableReportMediaProgress_004
5496 * @tc.desc : Test Player EnableReportMediaProgress when playing is looping
5497 */
5498 HWTEST_F(PlayerServerUnitTest, Player_EnableReportMediaProgress_004, TestSize.Level1)
5499 {
5500 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
5501 sptr<Surface> videoSurface = player_->GetVideoSurface();
5502 ASSERT_NE(nullptr, videoSurface);
5503 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5504 EXPECT_EQ(MSERR_OK, player_->Prepare());
5505 EXPECT_EQ(MSERR_OK, player_->SetLooping(true));
5506 EXPECT_EQ(true, player_->IsLooping());
5507 ASSERT_EQ(MSERR_OK, player_->EnableReportMediaProgress(true));
5508 EXPECT_EQ(MSERR_OK, player_->Play());
5509 }
5510
5511 /**
5512 * @tc.name : Test Freeze API
5513 * @tc.number: Player_Freeze_001
5514 * @tc.desc : Test Player Freeze
5515 */
5516 HWTEST_F(PlayerServerUnitTest, Player_Freeze_001, TestSize.Level1)
5517 {
5518 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
5519 EXPECT_EQ(MSERR_OK, player_->Freeze());
5520 }
5521
5522 /**
5523 * @tc.name : Test Freeze API
5524 * @tc.number: Player_Freeze_002
5525 * @tc.desc : Test Player Freeze
5526 */
5527 HWTEST_F(PlayerServerUnitTest, Player_Freeze_002, TestSize.Level1)
5528 {
5529 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
5530 sptr<Surface> videoSurface = player_->GetVideoSurface();
5531 ASSERT_NE(nullptr, videoSurface);
5532 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5533 EXPECT_EQ(MSERR_OK, player_->Prepare());
5534 EXPECT_EQ(MSERR_OK, player_->Play());
5535 EXPECT_EQ(MSERR_OK, player_->Freeze());
5536 sleep(1);
5537 }
5538
5539 /**
5540 * @tc.name : Test UnFreeze API
5541 * @tc.number: Player_UnFreeze_001
5542 * @tc.desc : Test Player UnFreeze
5543 */
5544 HWTEST_F(PlayerServerUnitTest, Player_UnFreeze_001, TestSize.Level1)
5545 {
5546 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
5547 EXPECT_EQ(MSERR_OK, player_->UnFreeze());
5548 }
5549
5550 /**
5551 * @tc.name : Test Freeze API
5552 * @tc.number: Player_UnFreeze_002
5553 * @tc.desc : Test Player UnFreeze
5554 */
5555 HWTEST_F(PlayerServerUnitTest, Player_UnFreeze_002, TestSize.Level1)
5556 {
5557 ASSERT_EQ(MSERR_OK, player_->SetSource(VIDEO_FILE1));
5558 sptr<Surface> videoSurface = player_->GetVideoSurface();
5559 ASSERT_NE(nullptr, videoSurface);
5560 EXPECT_EQ(MSERR_OK, player_->SetVideoSurface(videoSurface));
5561 EXPECT_EQ(MSERR_OK, player_->Prepare());
5562 EXPECT_EQ(MSERR_OK, player_->Play());
5563 EXPECT_EQ(MSERR_OK, player_->Freeze());
5564 sleep(1);
5565 EXPECT_EQ(MSERR_OK, player_->UnFreeze());
5566 sleep(1);
5567 }
5568 } // namespace Media
5569 } // namespace OHOS
5570