• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 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.vivid";
43     void RunNormalDemuxer(uint32_t createSize, const char *uri, const char *setLanguage, Params params);
44     void RunNormalDemuxerApi11(uint32_t createSize, const char *uri, const char *setLanguage, Params params);
45     void GetAndSetFormat(const char *setLanguage, Params params);
46 private:
47     void ResetFlag();
48     int CreateDemuxer();
49     int32_t gWidth = 3840;
50     int32_t gHeight = 2160;
51     int gTrackType = 0;
52     int32_t gTrackCount;
53     OH_AVCodecBufferAttr attr;
54     bool gReadEnd = false;
55     int fd;
56     OH_AVFormat *sourceFormat;
57     OH_AVFormat *format;
58     OH_AVFormat *audioFormat;
59     OH_AVFormat *videoFormat;
60     OH_AVSource *source;
61     OH_AVSource *uriSource;
62     OH_AVDemuxer *demuxer;
63     OH_AVMemory *memory;
64     OH_AVBuffer *buffer;
65 };
66 } // namespace Media
67 } // namespace OHOS
68 
69 #endif // DEMUXER_SAMPLE_H
70