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