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