1 /* 2 * Copyright 2020 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef FUZZER_MEDIAMIMETYPES_H_ 18 #define FUZZER_MEDIAMIMETYPES_H_ 19 20 #include <media/stagefright/foundation/MediaDefs.h> 21 #include <unordered_map> 22 23 namespace android { 24 25 static const std::vector<const char*> kMimeTypes { 26 MEDIA_MIMETYPE_IMAGE_JPEG, 27 MEDIA_MIMETYPE_IMAGE_ANDROID_HEIC, 28 MEDIA_MIMETYPE_VIDEO_VP8, 29 MEDIA_MIMETYPE_VIDEO_VP9, 30 MEDIA_MIMETYPE_VIDEO_AV1, 31 MEDIA_MIMETYPE_VIDEO_AVC, 32 MEDIA_MIMETYPE_VIDEO_HEVC, 33 MEDIA_MIMETYPE_VIDEO_MPEG4, 34 MEDIA_MIMETYPE_VIDEO_H263, 35 MEDIA_MIMETYPE_VIDEO_MPEG2, 36 MEDIA_MIMETYPE_VIDEO_RAW, 37 MEDIA_MIMETYPE_VIDEO_DOLBY_VISION, 38 MEDIA_MIMETYPE_VIDEO_SCRAMBLED, 39 MEDIA_MIMETYPE_VIDEO_DIVX, 40 MEDIA_MIMETYPE_VIDEO_DIVX3, 41 MEDIA_MIMETYPE_VIDEO_XVID, 42 MEDIA_MIMETYPE_VIDEO_MJPEG, 43 MEDIA_MIMETYPE_AUDIO_AMR_NB, 44 MEDIA_MIMETYPE_AUDIO_AMR_WB, 45 MEDIA_MIMETYPE_AUDIO_MPEG, 46 MEDIA_MIMETYPE_AUDIO_MPEG_LAYER_I, 47 MEDIA_MIMETYPE_AUDIO_MPEG_LAYER_II, 48 MEDIA_MIMETYPE_AUDIO_MIDI, 49 MEDIA_MIMETYPE_AUDIO_AAC, 50 MEDIA_MIMETYPE_AUDIO_QCELP, 51 MEDIA_MIMETYPE_AUDIO_VORBIS, 52 MEDIA_MIMETYPE_AUDIO_OPUS, 53 MEDIA_MIMETYPE_AUDIO_G711_ALAW, 54 MEDIA_MIMETYPE_AUDIO_G711_MLAW, 55 MEDIA_MIMETYPE_AUDIO_RAW, 56 MEDIA_MIMETYPE_AUDIO_FLAC, 57 MEDIA_MIMETYPE_AUDIO_AAC_ADTS, 58 MEDIA_MIMETYPE_AUDIO_MSGSM, 59 MEDIA_MIMETYPE_AUDIO_AC3, 60 MEDIA_MIMETYPE_AUDIO_EAC3, 61 MEDIA_MIMETYPE_AUDIO_EAC3_JOC, 62 MEDIA_MIMETYPE_AUDIO_AC4, 63 MEDIA_MIMETYPE_AUDIO_SCRAMBLED, 64 MEDIA_MIMETYPE_AUDIO_ALAC, 65 MEDIA_MIMETYPE_AUDIO_WMA, 66 MEDIA_MIMETYPE_AUDIO_MS_ADPCM, 67 MEDIA_MIMETYPE_AUDIO_DVI_IMA_ADPCM, 68 MEDIA_MIMETYPE_CONTAINER_MPEG4, 69 MEDIA_MIMETYPE_CONTAINER_WAV, 70 MEDIA_MIMETYPE_CONTAINER_OGG, 71 MEDIA_MIMETYPE_CONTAINER_MATROSKA, 72 MEDIA_MIMETYPE_CONTAINER_MPEG2TS, 73 MEDIA_MIMETYPE_CONTAINER_AVI, 74 MEDIA_MIMETYPE_CONTAINER_MPEG2PS, 75 MEDIA_MIMETYPE_CONTAINER_HEIF, 76 MEDIA_MIMETYPE_TEXT_3GPP, 77 MEDIA_MIMETYPE_TEXT_SUBRIP, 78 MEDIA_MIMETYPE_TEXT_VTT, 79 MEDIA_MIMETYPE_TEXT_CEA_608, 80 MEDIA_MIMETYPE_TEXT_CEA_708, 81 MEDIA_MIMETYPE_DATA_TIMED_ID3 82 }; 83 84 static const std::unordered_map<std::string, const char*> decoderToMediaType = { 85 {"c2.android.vp8.decoder", MEDIA_MIMETYPE_VIDEO_VP8}, 86 {"c2.android.vp9.decoder", MEDIA_MIMETYPE_VIDEO_VP9}, 87 {"c2.android.av1.decoder", MEDIA_MIMETYPE_VIDEO_AV1}, 88 {"c2.android.avc.decoder", MEDIA_MIMETYPE_VIDEO_AVC}, 89 {"c2.android.hevc.decoder", MEDIA_MIMETYPE_VIDEO_HEVC}, 90 {"c2.android.mpeg4.decoder", MEDIA_MIMETYPE_VIDEO_MPEG4}, 91 {"c2.android.h263.decoder", MEDIA_MIMETYPE_VIDEO_H263}}; 92 93 } // namespace android 94 95 #endif // FUZZER_MEDIAMIMETYPES_H_ 96