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