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 }; 46 47 enum pipe_video_profile 48 { 49 PIPE_VIDEO_PROFILE_UNKNOWN, 50 PIPE_VIDEO_PROFILE_MPEG1, 51 PIPE_VIDEO_PROFILE_MPEG2_SIMPLE, 52 PIPE_VIDEO_PROFILE_MPEG2_MAIN, 53 PIPE_VIDEO_PROFILE_MPEG4_SIMPLE, 54 PIPE_VIDEO_PROFILE_MPEG4_ADVANCED_SIMPLE, 55 PIPE_VIDEO_PROFILE_VC1_SIMPLE, 56 PIPE_VIDEO_PROFILE_VC1_MAIN, 57 PIPE_VIDEO_PROFILE_VC1_ADVANCED, 58 PIPE_VIDEO_PROFILE_MPEG4_AVC_BASELINE, 59 PIPE_VIDEO_PROFILE_MPEG4_AVC_CONSTRAINED_BASELINE, 60 PIPE_VIDEO_PROFILE_MPEG4_AVC_MAIN, 61 PIPE_VIDEO_PROFILE_MPEG4_AVC_EXTENDED, 62 PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH, 63 PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH10, 64 PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH422, 65 PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH444, 66 PIPE_VIDEO_PROFILE_HEVC_MAIN, 67 PIPE_VIDEO_PROFILE_HEVC_MAIN_10, 68 PIPE_VIDEO_PROFILE_HEVC_MAIN_STILL, 69 PIPE_VIDEO_PROFILE_HEVC_MAIN_12, 70 PIPE_VIDEO_PROFILE_HEVC_MAIN_444, 71 PIPE_VIDEO_PROFILE_JPEG_BASELINE, 72 PIPE_VIDEO_PROFILE_VP9_PROFILE0, 73 PIPE_VIDEO_PROFILE_VP9_PROFILE2, 74 PIPE_VIDEO_PROFILE_MAX 75 }; 76 77 /* Video caps, can be different for each codec/profile */ 78 enum pipe_video_cap 79 { 80 PIPE_VIDEO_CAP_SUPPORTED = 0, 81 PIPE_VIDEO_CAP_NPOT_TEXTURES = 1, 82 PIPE_VIDEO_CAP_MAX_WIDTH = 2, 83 PIPE_VIDEO_CAP_MAX_HEIGHT = 3, 84 PIPE_VIDEO_CAP_PREFERED_FORMAT = 4, 85 PIPE_VIDEO_CAP_PREFERS_INTERLACED = 5, 86 PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE = 6, 87 PIPE_VIDEO_CAP_SUPPORTS_INTERLACED = 7, 88 PIPE_VIDEO_CAP_MAX_LEVEL = 8, 89 PIPE_VIDEO_CAP_STACKED_FRAMES = 9 90 }; 91 92 enum pipe_video_entrypoint 93 { 94 PIPE_VIDEO_ENTRYPOINT_UNKNOWN, 95 PIPE_VIDEO_ENTRYPOINT_BITSTREAM, 96 PIPE_VIDEO_ENTRYPOINT_IDCT, 97 PIPE_VIDEO_ENTRYPOINT_MC, 98 PIPE_VIDEO_ENTRYPOINT_ENCODE 99 }; 100 101 #if defined(__cplusplus) 102 } 103 #endif 104 105 #endif /* PIPE_VIDEO_ENUMS_H */ 106