1 /* 2 * Copyright (C) 2022 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 ENUM_NATIVE_MOCK_H 17 #define ENUM_NATIVE_MOCK_H 18 19 #include "avcodec_mock.h" 20 #include "enum_mock.h" 21 #include "media_description.h" 22 #include "av_common.h" 23 #include "avcodec_info.h" 24 25 namespace OHOS { 26 namespace Media { 27 const std::map<MediaDescriptionKeyMock, std::string_view>MEDIA_DESCRIPTION_KEY_INFOS = { 28 {MOCK_MD_KEY_TRACK_INDEX, MediaDescriptionKey::MD_KEY_TRACK_INDEX}, 29 {MOCK_MD_KEY_TRACK_TYPE, MediaDescriptionKey::MD_KEY_TRACK_TYPE}, 30 {MOCK_MD_KEY_CODEC_MIME, MediaDescriptionKey::MD_KEY_CODEC_MIME}, 31 {MOCK_MD_KEY_DURATION, MediaDescriptionKey::MD_KEY_DURATION}, 32 {MOCK_MD_KEY_BITRATE, MediaDescriptionKey::MD_KEY_BITRATE}, 33 {MOCK_MD_KEY_WIDTH, MediaDescriptionKey::MD_KEY_WIDTH}, 34 {MOCK_MD_KEY_HEIGHT, MediaDescriptionKey::MD_KEY_HEIGHT}, 35 {MOCK_MD_KEY_PIXEL_FORMAT, MediaDescriptionKey::MD_KEY_PIXEL_FORMAT}, 36 {MOCK_MD_KEY_FRAME_RATE, MediaDescriptionKey::MD_KEY_FRAME_RATE}, 37 {MOCK_MD_KEY_CHANNEL_COUNT, MediaDescriptionKey::MD_KEY_CHANNEL_COUNT}, 38 {MOCK_MD_KEY_SAMPLE_RATE, MediaDescriptionKey::MD_KEY_SAMPLE_RATE}, 39 }; 40 41 const std::map<VideoPixelFormatMock, VideoPixelFormat> VIDEO_PIXEL_FORMAT_INFOS = { 42 {MOCK_YUVI420, YUVI420}, 43 {MOCK_NV12, NV12}, 44 {MOCK_NV21, NV21}, 45 {MOCK_SURFACE_FORMAT, SURFACE_FORMAT}, 46 {MOCK_RGBA, RGBA}, 47 }; 48 49 const std::map<CodecMimeTypeMock, std::string_view> CODEC_MIME_INFOS = { 50 {VIDEO_H263, CodecMimeType::VIDEO_H263}, 51 {VIDEO_AVC, CodecMimeType::VIDEO_AVC}, 52 {VIDEO_MPEG2, CodecMimeType::VIDEO_MPEG2}, 53 {VIDEO_HEVC, CodecMimeType::VIDEO_HEVC}, 54 {VIDEO_MPEG4, CodecMimeType::VIDEO_MPEG4}, 55 {VIDEO_VP8, CodecMimeType::VIDEO_VP8}, 56 {VIDEO_VP9, CodecMimeType::VIDEO_VP9}, 57 {AUDIO_AMR_NB, CodecMimeType::AUDIO_AMR_NB}, 58 {AUDIO_AMR_WB, CodecMimeType::AUDIO_AMR_WB}, 59 {AUDIO_MPEG, CodecMimeType::AUDIO_MPEG}, 60 {AUDIO_AAC, CodecMimeType::AUDIO_AAC}, 61 {AUDIO_VORBIS, CodecMimeType::AUDIO_VORBIS}, 62 {AUDIO_OPUS, CodecMimeType::AUDIO_OPUS}, 63 {AUDIO_FLAC, CodecMimeType::AUDIO_FLAC}, 64 {AUDIO_RAW, CodecMimeType::AUDIO_RAW}, 65 }; 66 67 class EnumNativeMock : public EnumMock { 68 public: 69 EnumNativeMock() = default; 70 std::string GetMediaDescriptionKey(const MediaDescriptionKeyMock &key) const override; 71 int32_t GetVideoPixelFormat(const VideoPixelFormatMock &key) const override; 72 std::string GetCodecMimeType(const CodecMimeTypeMock &key) const override; 73 }; 74 } // Media 75 } // OHOS 76 #endif // ENUM_NATIVE_MOCK_H