1 /************************************************************************** 2 * 3 * Copyright 2009 Younes Manton. 4 * All Rights Reserved. 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining a 7 * copy of this software and associated documentation files (the 8 * "Software"), to deal in the Software without restriction, including 9 * without limitation the rights to use, copy, modify, merge, publish, 10 * distribute, sub license, and/or sell copies of the Software, and to 11 * permit persons to whom the Software is furnished to do so, subject to 12 * the following conditions: 13 * 14 * The above copyright notice and this permission notice (including the 15 * next paragraph) shall be included in all copies or substantial portions 16 * of the Software. 17 * 18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 21 * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR 22 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 * 26 **************************************************************************/ 27 28 #ifndef PIPE_VIDEO_ENUMS_H 29 #define PIPE_VIDEO_ENUMS_H 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 enum pipe_video_format 36 { 37 PIPE_VIDEO_FORMAT_UNKNOWN = 0, 38 PIPE_VIDEO_FORMAT_MPEG12, /**< MPEG1, MPEG2 */ 39 PIPE_VIDEO_FORMAT_MPEG4, /**< DIVX, XVID */ 40 PIPE_VIDEO_FORMAT_VC1, /**< WMV */ 41 PIPE_VIDEO_FORMAT_MPEG4_AVC,/**< H.264 */ 42 PIPE_VIDEO_FORMAT_HEVC, /**< H.265 */ 43 PIPE_VIDEO_FORMAT_JPEG, /**< JPEG */ 44 PIPE_VIDEO_FORMAT_VP9, /**< VP9 */ 45 PIPE_VIDEO_FORMAT_AV1 /**< AV1 */ 46 }; 47 48 enum pipe_video_profile 49 { 50 PIPE_VIDEO_PROFILE_UNKNOWN, 51 PIPE_VIDEO_PROFILE_MPEG1, 52 PIPE_VIDEO_PROFILE_MPEG2_SIMPLE, 53 PIPE_VIDEO_PROFILE_MPEG2_MAIN, 54 PIPE_VIDEO_PROFILE_MPEG4_SIMPLE, 55 PIPE_VIDEO_PROFILE_MPEG4_ADVANCED_SIMPLE, 56 PIPE_VIDEO_PROFILE_VC1_SIMPLE, 57 PIPE_VIDEO_PROFILE_VC1_MAIN, 58 PIPE_VIDEO_PROFILE_VC1_ADVANCED, 59 PIPE_VIDEO_PROFILE_MPEG4_AVC_BASELINE, 60 PIPE_VIDEO_PROFILE_MPEG4_AVC_CONSTRAINED_BASELINE, 61 PIPE_VIDEO_PROFILE_MPEG4_AVC_MAIN, 62 PIPE_VIDEO_PROFILE_MPEG4_AVC_EXTENDED, 63 PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH, 64 PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH10, 65 PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH422, 66 PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH444, 67 PIPE_VIDEO_PROFILE_HEVC_MAIN, 68 PIPE_VIDEO_PROFILE_HEVC_MAIN_10, 69 PIPE_VIDEO_PROFILE_HEVC_MAIN_STILL, 70 PIPE_VIDEO_PROFILE_HEVC_MAIN_12, 71 PIPE_VIDEO_PROFILE_HEVC_MAIN_444, 72 PIPE_VIDEO_PROFILE_JPEG_BASELINE, 73 PIPE_VIDEO_PROFILE_VP9_PROFILE0, 74 PIPE_VIDEO_PROFILE_VP9_PROFILE2, 75 PIPE_VIDEO_PROFILE_AV1_MAIN, 76 PIPE_VIDEO_PROFILE_MAX 77 }; 78 79 /* Video caps, can be different for each codec/profile */ 80 enum pipe_video_cap 81 { 82 PIPE_VIDEO_CAP_SUPPORTED = 0, 83 PIPE_VIDEO_CAP_NPOT_TEXTURES = 1, 84 PIPE_VIDEO_CAP_MAX_WIDTH = 2, 85 PIPE_VIDEO_CAP_MAX_HEIGHT = 3, 86 PIPE_VIDEO_CAP_PREFERED_FORMAT = 4, 87 PIPE_VIDEO_CAP_PREFERS_INTERLACED = 5, 88 PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE = 6, 89 PIPE_VIDEO_CAP_SUPPORTS_INTERLACED = 7, 90 PIPE_VIDEO_CAP_MAX_LEVEL = 8, 91 PIPE_VIDEO_CAP_STACKED_FRAMES = 9, 92 PIPE_VIDEO_CAP_MAX_MACROBLOCKS = 10, 93 PIPE_VIDEO_CAP_MAX_TEMPORAL_LAYERS = 11, 94 }; 95 96 enum pipe_video_entrypoint 97 { 98 PIPE_VIDEO_ENTRYPOINT_UNKNOWN, 99 PIPE_VIDEO_ENTRYPOINT_BITSTREAM, 100 PIPE_VIDEO_ENTRYPOINT_IDCT, 101 PIPE_VIDEO_ENTRYPOINT_MC, 102 PIPE_VIDEO_ENTRYPOINT_ENCODE 103 }; 104 105 #if defined(__cplusplus) 106 } 107 #endif 108 109 #endif /* PIPE_VIDEO_ENUMS_H */ 110