1 /* 2 * Copyright (c) 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 #ifndef DEMUXER_SAMPLE_H 17 #define DEMUXER_SAMPLE_H 18 19 #include "native_avdemuxer.h" 20 #include "native_avformat.h" 21 #include "native_avsource.h" 22 #include "native_avmemory.h" 23 24 namespace OHOS { 25 struct Params { 26 int64_t time; 27 int64_t setTrackType; 28 long setDuration; 29 float setHeight; 30 double setFrameRate; 31 int64_t setCodecConfigSize; 32 int32_t sampleRate; 33 int32_t channelCount; 34 int32_t setVideoHeight; 35 int32_t setVideoWidth; 36 }; 37 namespace Media { 38 class DemuxerSample { 39 public: 40 DemuxerSample() = default; 41 ~DemuxerSample(); 42 const char *filePath = "/data/test/fuzz_create.mp4"; 43 void RunNormalDemuxer(); 44 private: 45 void ResetFlag(); 46 int CreateDemuxer(); 47 int32_t gWidth = 3840; 48 int32_t gHeight = 2160; 49 int gTrackType = 0; 50 int32_t gTrackCount; 51 OH_AVCodecBufferAttr attr; 52 bool gReadEnd = false; 53 int fd; 54 OH_AVFormat *sourceFormat; 55 OH_AVFormat *format; 56 OH_AVFormat *audioFormat; 57 OH_AVFormat *videoFormat; 58 OH_AVSource *source; 59 OH_AVSource *uriSource; 60 OH_AVDemuxer *demuxer; 61 OH_AVMemory *memory; 62 OH_AVBuffer *buffer; 63 }; 64 } // namespace Media 65 } // namespace OHOS 66 67 #endif // DEMUXER_SAMPLE_H 68