• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 }