1 /*
2 * Copyright (c) 2023-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_service_proxy_fuzzer.h"
17 #include <iostream>
18 #include <fcntl.h>
19 #include <unistd.h>
20 #include "directory_ex.h"
21 #include "media_parcel.h"
22
23 namespace OHOS {
24 namespace Media {
25 namespace {
26 using Fuzzer = PlayerServiceProxyFuzzer;
27 using PlayerStubFunc = std::function<int32_t(Fuzzer*, uint8_t*, size_t, bool)>;
28 std::map<uint32_t, PlayerStubFunc> playerFuncs_ {
29 {Fuzzer::SET_LISTENER_OBJ, Fuzzer::SetListenerObjectStatic},
30 {Fuzzer::SET_SOURCE, Fuzzer::SetSourceStatic},
31 {Fuzzer::SET_MEDIA_DATA_SRC_OBJ, Fuzzer::SetMediaDataSourceStatic},
32 {Fuzzer::SET_FD_SOURCE, Fuzzer::SetFdSourceStatic},
33 {Fuzzer::ADD_SUB_SOURCE, Fuzzer::AddSubSourceStatic},
34 {Fuzzer::ADD_SUB_FD_SOURCE, Fuzzer::AddSubFdSourceStatic},
35 {Fuzzer::PLAY, Fuzzer::PlayStatic},
36 {Fuzzer::PREPARE, Fuzzer::PrepareStatic},
37 {Fuzzer::PREPAREASYNC, Fuzzer::PrepareAsyncStatic},
38 {Fuzzer::PAUSE, Fuzzer::PauseStatic},
39 {Fuzzer::STOP, Fuzzer::StopStatic},
40 {Fuzzer::RESET, Fuzzer::ResetStatic},
41 {Fuzzer::RELEASE, Fuzzer::ReleaseStatic},
42 {Fuzzer::SET_VOLUME, Fuzzer::SetVolumeStatic},
43 {Fuzzer::SEEK, Fuzzer::SeekStatic},
44 {Fuzzer::GET_CURRENT_TIME, Fuzzer::GetCurrentTimeStatic},
45 {Fuzzer::GET_PLAY_BACK_POSITION, Fuzzer::GetPlaybackPositionStatic},
46 {Fuzzer::GET_DURATION, Fuzzer::GetDurationStatic},
47 {Fuzzer::SET_PLAYERBACK_SPEED, Fuzzer::SetPlaybackSpeedStatic},
48 {Fuzzer::GET_PLAYERBACK_SPEED, Fuzzer::GetPlaybackSpeedStatic},
49 {Fuzzer::SET_VIDEO_SURFACE, Fuzzer::SetVideoSurfaceStatic},
50 {Fuzzer::IS_PLAYING, Fuzzer::IsPlayingStatic},
51 {Fuzzer::IS_LOOPING, Fuzzer::IsLoopingStatic},
52 {Fuzzer::SET_LOOPING, Fuzzer::SetLoopingStatic},
53 {Fuzzer::SET_RENDERER_DESC, Fuzzer::SetParameterStatic},
54 {Fuzzer::DESTROY, Fuzzer::DestroyStubStatic},
55 {Fuzzer::SET_CALLBACK, Fuzzer::SetPlayerCallbackStatic},
56 {Fuzzer::GET_VIDEO_TRACK_INFO, Fuzzer::GetVideoTrackInfoStatic},
57 {Fuzzer::GET_AUDIO_TRACK_INFO, Fuzzer::GetAudioTrackInfoStatic},
58 {Fuzzer::GET_SUBTITLE_TRACK_INFO, Fuzzer::GetSubtitleTrackInfoStatic},
59 {Fuzzer::GET_VIDEO_WIDTH, Fuzzer::GetVideoWidthStatic},
60 {Fuzzer::GET_VIDEO_HEIGHT, Fuzzer::GetVideoHeightStatic},
61 {Fuzzer::SELECT_BIT_RATE, Fuzzer::SelectBitRateStatic},
62 {Fuzzer::SELECT_TRACK, Fuzzer::SelectTrackStatic},
63 {Fuzzer::DESELECT_TRACK, Fuzzer::DeselectTrackStatic},
64 {Fuzzer::GET_CURRENT_TRACK, Fuzzer::GetCurrentTrackStatic},
65 };
66 }
PlayerServiceProxyFuzzer(const sptr<IRemoteObject> & impl)67 PlayerServiceProxyFuzzer::PlayerServiceProxyFuzzer(const sptr<IRemoteObject> &impl)
68 : IRemoteProxy<IStandardPlayerService>(impl)
69 {
70 }
71
Create()72 sptr<PlayerServiceProxyFuzzer> PlayerServiceProxyFuzzer::Create()
73 {
74 auto samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
75 sptr<IRemoteObject> object = samgr->GetSystemAbility(OHOS::PLAYER_DISTRIBUTED_SERVICE_ID);
76 if (object == nullptr) {
77 std::cout << "media object is nullptr." << std::endl;
78 return nullptr;
79 }
80 sptr<IStandardMediaService> mediaProxy = iface_cast<IStandardMediaService>(object);
81 if (mediaProxy == nullptr) {
82 std::cout << "mediaProxy is nullptr." << std::endl;
83 return nullptr;
84 }
85 sptr<IRemoteObject> listenerStub = new(std::nothrow) MediaListenerStubFuzzer();
86 sptr<IRemoteObject> playerObject = mediaProxy->GetSubSystemAbility(
87 IStandardMediaService::MediaSystemAbility::MEDIA_PLAYER, listenerStub);
88 if (playerObject == nullptr) {
89 std::cout << "playerObject is nullptr." << std::endl;
90 return nullptr;
91 }
92
93 sptr<PlayerServiceProxyFuzzer> playerProxy = iface_cast<PlayerServiceProxyFuzzer>(playerObject);
94 if (playerProxy == nullptr) {
95 std::cout << "playerProxy is nullptr." << std::endl;
96 return nullptr;
97 }
98 return playerProxy;
99 }
100
SendRequest(uint32_t code,uint8_t * inputData,size_t size,bool isFuzz)101 void PlayerServiceProxyFuzzer::SendRequest(uint32_t code, uint8_t *inputData, size_t size, bool isFuzz)
102 {
103 auto itFunc = playerFuncs_.find(code);
104 if (itFunc != playerFuncs_.end()) {
105 auto memberFunc = itFunc->second;
106 if (memberFunc != nullptr) {
107 memberFunc(this, inputData, size, isFuzz);
108 }
109 }
110 }
111
SetListenerObjectStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)112 int32_t PlayerServiceProxyFuzzer::SetListenerObjectStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
113 size_t size, bool isFuzz)
114 {
115 MessageParcel data;
116 MessageParcel reply;
117 MessageOption option;
118
119 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
120 if (!token) {
121 std::cout << "Failed to write descriptor!" << std::endl;
122 return false;
123 }
124 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
125 return ptr->SendRequest(SET_LISTENER_OBJ, data, reply, option);
126 }
127
SetSourceStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)128 int32_t PlayerServiceProxyFuzzer::SetSourceStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData, size_t size,
129 bool isFuzz)
130 {
131 MessageParcel data;
132 MessageParcel reply;
133 MessageOption option;
134
135 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
136 if (!token) {
137 std::cout << "Failed to write descriptor" << std::endl;
138 return false;
139 }
140 std::string urlStr(reinterpret_cast<const char *>(inputData), size);
141 (void)data.WriteString(urlStr);
142 return ptr->SendRequest(SET_SOURCE, data, reply, option);
143 }
144
SetMediaDataSourceStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)145 int32_t PlayerServiceProxyFuzzer::SetMediaDataSourceStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
146 size_t size, bool isFuzz)
147 {
148 (void)size;
149 (void)isFuzz;
150 MessageParcel data;
151 MessageParcel reply;
152 MessageOption option;
153
154 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
155 if (!token) {
156 std::cout << "SetMediaDataSource:Failed to write descriptor!" << std::endl;
157 return false;
158 }
159 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
160 return ptr->SendRequest(SET_MEDIA_DATA_SRC_OBJ, data, reply, option);
161 }
162
SetFdSourceStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)163 int32_t PlayerServiceProxyFuzzer::SetFdSourceStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
164 size_t size, bool isFuzz)
165 {
166 MessageParcel data;
167 MessageParcel reply;
168 MessageOption option;
169
170 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
171 if (!token) {
172 std::cout << "SetFdSource:Failed to write descriptor!" << std::endl;
173 return false;
174 }
175
176 int32_t fdValue;
177 int64_t offsetValue;
178 int64_t lengthValue;
179 if (isFuzz) {
180 fdValue = *reinterpret_cast<int32_t *>(inputData);
181 lengthValue = *reinterpret_cast<int64_t *>(inputData);
182 offsetValue = *reinterpret_cast<uint32_t *>(inputData) % *reinterpret_cast<int64_t *>(inputData);
183 (void)data.WriteFileDescriptor(fdValue);
184 (void)data.WriteInt64(offsetValue);
185 (void)data.WriteInt64(lengthValue);
186 return ptr->SendRequest(SET_FD_SOURCE, data, reply, option);
187 } else {
188 const std::string path = "/data/test/media/H264_AAC.mp4";
189 fdValue = open(path.c_str(), O_RDONLY);
190 offsetValue = 0;
191 if (fdValue < 0) {
192 std::cout << "Open file failed" << std::endl;
193 (void)close(fdValue);
194 return -1;
195 }
196
197 struct stat64 buffer;
198 if (fstat64(fdValue, &buffer) != 0) {
199 std::cout << "Get file state failed" << std::endl;
200 (void)close(fdValue);
201 return -1;
202 }
203 lengthValue = static_cast<int64_t>(buffer.st_size);
204 (void)data.WriteFileDescriptor(fdValue);
205 (void)data.WriteInt64(offsetValue);
206 (void)data.WriteInt64(lengthValue);
207 int32_t ret = ptr->SendRequest(SET_FD_SOURCE, data, reply, option);
208 (void)close(fdValue);
209 return ret;
210 }
211 }
212
AddSubSourceStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)213 int32_t PlayerServiceProxyFuzzer::AddSubSourceStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
214 size_t size, bool isFuzz)
215 {
216 (void)size;
217 (void)isFuzz;
218 MessageParcel data;
219 MessageParcel reply;
220 MessageOption option;
221
222 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
223 if (!token) {
224 std::cout << "AddSubSource:Failed to write descriptor!" << std::endl;
225 return false;
226 }
227 std::string url(reinterpret_cast<const char *>(inputData), size);
228 (void)data.WriteString(url);
229 return ptr->SendRequest(ADD_SUB_SOURCE, data, reply, option);
230 }
231
AddSubFdSourceStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)232 int32_t PlayerServiceProxyFuzzer::AddSubFdSourceStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
233 size_t size, bool isFuzz)
234 {
235 (void)size;
236 (void)isFuzz;
237 MessageParcel data;
238 MessageParcel reply;
239 MessageOption option;
240
241 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
242 if (!token) {
243 std::cout << "AddSubFdSource:Failed to write descriptor!" << std::endl;
244 return false;
245 }
246
247 int32_t fdValue = *reinterpret_cast<int32_t *>(inputData);
248 int64_t lengthValue = *reinterpret_cast<int64_t *>(inputData);
249 int64_t offsetValue = *reinterpret_cast<uint32_t *>(inputData) % *reinterpret_cast<int64_t *>(inputData);
250 (void)data.WriteFileDescriptor(fdValue);
251 (void)data.WriteInt64(offsetValue);
252 (void)data.WriteInt64(lengthValue);
253 return ptr->SendRequest(ADD_SUB_FD_SOURCE, data, reply, option);
254 }
255
PlayStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)256 int32_t PlayerServiceProxyFuzzer::PlayStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData, size_t size,
257 bool isFuzz)
258 {
259 (void)size;
260 (void)isFuzz;
261 MessageParcel data;
262 MessageParcel reply;
263 MessageOption option;
264
265 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
266 if (!token) {
267 std::cout << "Play:Failed to write descriptor!" << std::endl;
268 return false;
269 }
270 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
271 return ptr->SendRequest(PLAY, data, reply, option);
272 }
273
PrepareStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)274 int32_t PlayerServiceProxyFuzzer::PrepareStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData, size_t size,
275 bool isFuzz)
276 {
277 (void)size;
278 (void)isFuzz;
279 MessageParcel data;
280 MessageParcel reply;
281 MessageOption option;
282
283 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
284 if (!token) {
285 std::cout << "Prepare:Failed to write descriptor!" << std::endl;
286 return false;
287 }
288 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
289 return ptr->SendRequest(PREPARE, data, reply, option);
290 }
291
PrepareAsyncStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)292 int32_t PlayerServiceProxyFuzzer::PrepareAsyncStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
293 size_t size, bool isFuzz)
294 {
295 (void)size;
296 (void)isFuzz;
297 MessageParcel data;
298 MessageParcel reply;
299 MessageOption option;
300
301 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
302 if (!token) {
303 std::cout << "PrepareAsync:Failed to write descriptor!" << std::endl;
304 return false;
305 }
306 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
307 return ptr->SendRequest(PREPAREASYNC, data, reply, option);
308 }
309
PauseStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)310 int32_t PlayerServiceProxyFuzzer::PauseStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData, size_t size,
311 bool isFuzz)
312 {
313 (void)size;
314 (void)isFuzz;
315 MessageParcel data;
316 MessageParcel reply;
317 MessageOption option;
318
319 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
320 if (!token) {
321 std::cout << "Pause:Failed to write descriptor!" << std::endl;
322 return false;
323 }
324 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
325 return ptr->SendRequest(PAUSE, data, reply, option);
326 }
327
StopStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)328 int32_t PlayerServiceProxyFuzzer::StopStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData, size_t size,
329 bool isFuzz)
330 {
331 (void)size;
332 (void)isFuzz;
333 MessageParcel data;
334 MessageParcel reply;
335 MessageOption option;
336
337 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
338 if (!token) {
339 std::cout << "Stop:Failed to write descriptor!" << std::endl;
340 return false;
341 }
342 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
343 return ptr->SendRequest(STOP, data, reply, option);
344 }
345
ResetStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)346 int32_t PlayerServiceProxyFuzzer::ResetStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData, size_t size,
347 bool isFuzz)
348 {
349 (void)size;
350 (void)isFuzz;
351 MessageParcel data;
352 MessageParcel reply;
353 MessageOption option;
354
355 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
356 if (!token) {
357 std::cout << "Reset:Failed to write descriptor!" << std::endl;
358 return false;
359 }
360 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
361 return ptr->SendRequest(RESET, data, reply, option);
362 }
363
ReleaseStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)364 int32_t PlayerServiceProxyFuzzer::ReleaseStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData, size_t size,
365 bool isFuzz)
366 {
367 (void)size;
368 (void)isFuzz;
369 MessageParcel data;
370 MessageParcel reply;
371 MessageOption option;
372
373 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
374 if (!token) {
375 std::cout << "Release:Failed to write descriptor!" << std::endl;
376 return false;
377 }
378 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
379 return ptr->SendRequest(RELEASE, data, reply, option);
380 }
381
SetVolumeStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)382 int32_t PlayerServiceProxyFuzzer::SetVolumeStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData, size_t size,
383 bool isFuzz)
384 {
385 (void)size;
386 (void)isFuzz;
387 MessageParcel data;
388 MessageParcel reply;
389 MessageOption option;
390
391 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
392 if (!token) {
393 std::cout << "SetVolume:Failed to write descriptor!" << std::endl;
394 return false;
395 }
396
397 (void)data.WriteFloat(*reinterpret_cast<int32_t *>(inputData));
398 (void)data.WriteFloat(*reinterpret_cast<int32_t *>(inputData));
399 return ptr->SendRequest(SET_VOLUME, data, reply, option);
400 }
401
SeekStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)402 int32_t PlayerServiceProxyFuzzer::SeekStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData, size_t size,
403 bool isFuzz)
404 {
405 (void)size;
406 (void)isFuzz;
407 MessageParcel data;
408 MessageParcel reply;
409 MessageOption option;
410
411 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
412 if (!token) {
413 std::cout << "Seek:Failed to write descriptor!" << std::endl;
414 return false;
415 }
416
417 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
418 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
419 return ptr->SendRequest(SEEK, data, reply, option);
420 }
421
GetCurrentTimeStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)422 int32_t PlayerServiceProxyFuzzer::GetCurrentTimeStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
423 size_t size, bool isFuzz)
424 {
425 (void)size;
426 (void)isFuzz;
427 MessageParcel data;
428 MessageParcel reply;
429 MessageOption option;
430
431 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
432 if (!token) {
433 std::cout << "GetCurrentTime:Failed to write descriptor!" << std::endl;
434 return false;
435 }
436
437 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
438 return ptr->SendRequest(GET_CURRENT_TIME, data, reply, option);
439 }
440
GetPlaybackPositionStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)441 int32_t PlayerServiceProxyFuzzer::GetPlaybackPositionStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
442 size_t size, bool isFuzz)
443 {
444 (void)size;
445 (void)isFuzz;
446 MessageParcel data;
447 MessageParcel reply;
448 MessageOption option;
449
450 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
451 if (!token) {
452 std::cout << "GetPlaybackPosition:Failed to write descriptor!" << std::endl;
453 return false;
454 }
455
456 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
457 return ptr->SendRequest(GET_PLAY_BACK_POSITION, data, reply, option);
458 }
459
GetDurationStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)460 int32_t PlayerServiceProxyFuzzer::GetDurationStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
461 size_t size, bool isFuzz)
462 {
463 (void)size;
464 (void)isFuzz;
465 MessageParcel data;
466 MessageParcel reply;
467 MessageOption option;
468
469 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
470 if (!token) {
471 std::cout << "GetDuration:Failed to write descriptor!" << std::endl;
472 return false;
473 }
474
475 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
476 return ptr->SendRequest(GET_DURATION, data, reply, option);
477 }
478
SetPlaybackSpeedStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)479 int32_t PlayerServiceProxyFuzzer::SetPlaybackSpeedStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
480 size_t size, bool isFuzz)
481 {
482 (void)size;
483 (void)isFuzz;
484 MessageParcel data;
485 MessageParcel reply;
486 MessageOption option;
487
488 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
489 if (!token) {
490 std::cout << "SetPlaybackSpeed:Failed to write descriptor!" << std::endl;
491 return false;
492 }
493
494 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
495 return ptr->SendRequest(SET_PLAYERBACK_SPEED, data, reply, option);
496 }
497
GetPlaybackSpeedStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)498 int32_t PlayerServiceProxyFuzzer::GetPlaybackSpeedStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
499 size_t size, bool isFuzz)
500 {
501 (void)size;
502 (void)isFuzz;
503 MessageParcel data;
504 MessageParcel reply;
505 MessageOption option;
506
507 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
508 if (!token) {
509 std::cout << "GetPlaybackSpeed:Failed to write descriptor!" << std::endl;
510 return false;
511 }
512
513 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
514 return ptr->SendRequest(GET_PLAYERBACK_SPEED, data, reply, option);
515 }
516
SetVideoSurfaceStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)517 int32_t PlayerServiceProxyFuzzer::SetVideoSurfaceStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
518 size_t size, bool isFuzz)
519 {
520 (void)size;
521 (void)isFuzz;
522 MessageParcel data;
523 MessageParcel reply;
524 MessageOption option;
525
526 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
527 if (!token) {
528 std::cout << "SetVideoSurface:Failed to write descriptor!" << std::endl;
529 return false;
530 }
531
532 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
533 return ptr->SendRequest(SET_VIDEO_SURFACE, data, reply, option);
534 }
535
IsPlayingStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)536 int32_t PlayerServiceProxyFuzzer::IsPlayingStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData, size_t size,
537 bool isFuzz)
538 {
539 (void)size;
540 (void)isFuzz;
541 MessageParcel data;
542 MessageParcel reply;
543 MessageOption option;
544
545 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
546 if (!token) {
547 std::cout << "IsPlaying:Failed to write descriptor!" << std::endl;
548 return false;
549 }
550
551 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
552 return ptr->SendRequest(IS_PLAYING, data, reply, option);
553 }
554
IsLoopingStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)555 int32_t PlayerServiceProxyFuzzer::IsLoopingStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData, size_t size,
556 bool isFuzz)
557 {
558 (void)size;
559 (void)isFuzz;
560 MessageParcel data;
561 MessageParcel reply;
562 MessageOption option;
563
564 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
565 if (!token) {
566 std::cout << "IsLooping:Failed to write descriptor!" << std::endl;
567 return false;
568 }
569
570 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
571 return ptr->SendRequest(IS_LOOPING, data, reply, option);
572 }
573
SetLoopingStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)574 int32_t PlayerServiceProxyFuzzer::SetLoopingStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData, size_t size,
575 bool isFuzz)
576 {
577 (void)size;
578 (void)isFuzz;
579 MessageParcel data;
580 MessageParcel reply;
581 MessageOption option;
582
583 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
584 if (!token) {
585 std::cout << "SetLooping:Failed to write descriptor!" << std::endl;
586 return false;
587 }
588 (void)data.WriteBool(*reinterpret_cast<int32_t *>(inputData) % 2); // 2 true or false
589 return ptr->SendRequest(SET_LOOPING, data, reply, option);
590 }
591
SetParameterStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)592 int32_t PlayerServiceProxyFuzzer::SetParameterStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
593 size_t size, bool isFuzz)
594 {
595 (void)isFuzz;
596 MessageParcel data;
597 MessageParcel reply;
598 MessageOption option;
599
600 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
601 if (!token) {
602 std::cout << "Failed to write descriptor!" << std::endl;
603 return false;
604 }
605
606 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
607 return ptr->SendRequest(SET_RENDERER_DESC, data, reply, option);
608 }
609
DestroyStubStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)610 int32_t PlayerServiceProxyFuzzer::DestroyStubStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
611 size_t size, bool isFuzz)
612 {
613 (void)size;
614 MessageParcel data;
615 MessageParcel reply;
616 MessageOption option;
617
618 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
619 if (!token) {
620 std::cout << "Failed to write descriptor!" << std::endl;
621 return false;
622 }
623
624 if (isFuzz) {
625 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
626 }
627 return ptr->SendRequest(DESTROY, data, reply, option);
628 }
629
SetPlayerCallbackStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)630 int32_t PlayerServiceProxyFuzzer::SetPlayerCallbackStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
631 size_t size, bool isFuzz)
632 {
633 (void)size;
634 (void)isFuzz;
635 MessageParcel data;
636 MessageParcel reply;
637 MessageOption option;
638
639 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
640 if (!token) {
641 std::cout << "SetPlayerCallback:Failed to write descriptor!" << std::endl;
642 return false;
643 }
644
645 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
646 return ptr->SendRequest(SET_CALLBACK, data, reply, option);
647 }
648
GetVideoTrackInfoStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)649 int32_t PlayerServiceProxyFuzzer::GetVideoTrackInfoStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
650 size_t size, bool isFuzz)
651 {
652 (void)size;
653 (void)isFuzz;
654 MessageParcel data;
655 MessageParcel reply;
656 MessageOption option;
657
658 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
659 if (!token) {
660 std::cout << "GetVideoTrackInfo:Failed to write descriptor!" << std::endl;
661 return false;
662 }
663
664 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
665 return ptr->SendRequest(GET_VIDEO_TRACK_INFO, data, reply, option);
666 }
667
668
GetPlaybackInfoStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)669 int32_t PlayerServiceProxyFuzzer::GetPlaybackInfoStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
670 size_t size, bool isFuzz)
671 {
672 (void)size;
673 (void)isFuzz;
674 MessageParcel data;
675 MessageParcel reply;
676 MessageOption option;
677
678 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
679 if (!token) {
680 std::cout << "GetPlaybackInfo:Failed to write descriptor!" << std::endl;
681 return false;
682 }
683
684 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
685 return ptr->SendRequest(GET_PLAYBACK_INFO, data, reply, option);
686 }
687
GetAudioTrackInfoStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)688 int32_t PlayerServiceProxyFuzzer::GetAudioTrackInfoStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
689 size_t size, bool isFuzz)
690 {
691 (void)size;
692 (void)isFuzz;
693 MessageParcel data;
694 MessageParcel reply;
695 MessageOption option;
696
697 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
698 if (!token) {
699 std::cout << "GetAudioTrackInfo:Failed to write descriptor!" << std::endl;
700 return false;
701 }
702
703 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
704 return ptr->SendRequest(GET_AUDIO_TRACK_INFO, data, reply, option);
705 }
706
GetSubtitleTrackInfoStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)707 int32_t PlayerServiceProxyFuzzer::GetSubtitleTrackInfoStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
708 size_t size, bool isFuzz)
709 {
710 (void)size;
711 (void)isFuzz;
712 MessageParcel data;
713 MessageParcel reply;
714 MessageOption option;
715
716 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
717 if (!token) {
718 std::cout << "GetSubtitleTrackInfo:Failed to write descriptor!" << std::endl;
719 return false;
720 }
721
722 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
723 return ptr->SendRequest(GET_SUBTITLE_TRACK_INFO, data, reply, option);
724 }
725
GetVideoWidthStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)726 int32_t PlayerServiceProxyFuzzer::GetVideoWidthStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
727 size_t size, bool isFuzz)
728 {
729 (void)size;
730 (void)isFuzz;
731 MessageParcel data;
732 MessageParcel reply;
733 MessageOption option;
734
735 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
736 if (!token) {
737 std::cout << "GetVideoWidth:Failed to write descriptor!" << std::endl;
738 return false;
739 }
740
741 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
742 return ptr->SendRequest(GET_VIDEO_WIDTH, data, reply, option);
743 }
744
GetVideoHeightStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)745 int32_t PlayerServiceProxyFuzzer::GetVideoHeightStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
746 size_t size, bool isFuzz)
747 {
748 (void)size;
749 (void)isFuzz;
750 MessageParcel data;
751 MessageParcel reply;
752 MessageOption option;
753
754 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
755 if (!token) {
756 std::cout << "GetVideoHeight:Failed to write descriptor!" << std::endl;
757 return false;
758 }
759
760 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
761 return ptr->SendRequest(GET_VIDEO_HEIGHT, data, reply, option);
762 }
763
SelectBitRateStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)764 int32_t PlayerServiceProxyFuzzer::SelectBitRateStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
765 size_t size, bool isFuzz)
766 {
767 (void)size;
768 (void)isFuzz;
769 MessageParcel data;
770 MessageParcel reply;
771 MessageOption option;
772
773 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
774 if (!token) {
775 std::cout << "SelectBitRate:Failed to write descriptor!" << std::endl;
776 return false;
777 }
778
779 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
780 return ptr->SendRequest(SELECT_BIT_RATE, data, reply, option);
781 }
782
SelectTrackStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)783 int32_t PlayerServiceProxyFuzzer::SelectTrackStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
784 size_t size, bool isFuzz)
785 {
786 (void)size;
787 (void)isFuzz;
788 MessageParcel data;
789 MessageParcel reply;
790 MessageOption option;
791
792 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
793 if (!token) {
794 std::cout << "SelectTrack:Failed to write descriptor!" << std::endl;
795 return false;
796 }
797
798 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
799 return ptr->SendRequest(SELECT_TRACK, data, reply, option);
800 }
801
DeselectTrackStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)802 int32_t PlayerServiceProxyFuzzer::DeselectTrackStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
803 size_t size, bool isFuzz)
804 {
805 (void)size;
806 (void)isFuzz;
807 MessageParcel data;
808 MessageParcel reply;
809 MessageOption option;
810
811 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
812 if (!token) {
813 std::cout << "DeselectTrack:Failed to write descriptor!" << std::endl;
814 return false;
815 }
816
817 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
818 return ptr->SendRequest(DESELECT_TRACK, data, reply, option);
819 }
820
GetCurrentTrackStatic(PlayerServiceProxyFuzzer * ptr,uint8_t * inputData,size_t size,bool isFuzz)821 int32_t PlayerServiceProxyFuzzer::GetCurrentTrackStatic(PlayerServiceProxyFuzzer* ptr, uint8_t *inputData,
822 size_t size, bool isFuzz)
823 {
824 (void)size;
825 (void)isFuzz;
826 MessageParcel data;
827 MessageParcel reply;
828 MessageOption option;
829
830 bool token = data.WriteInterfaceToken(PlayerServiceProxyFuzzer::GetDescriptor());
831 if (!token) {
832 std::cout << "GetCurrentTrack:Failed to write descriptor!" << std::endl;
833 return false;
834 }
835
836 (void)data.WriteInt32(*reinterpret_cast<int32_t *>(inputData));
837 return ptr->SendRequest(GET_CURRENT_TRACK, data, reply, option);
838 }
839
SendRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)840 int32_t PlayerServiceProxyFuzzer::SendRequest(uint32_t code,
841 MessageParcel &data, MessageParcel &reply, MessageOption &option)
842 {
843 return Remote()->SendRequest(code, data, reply, option);
844 }
845 }
846 }