Home | History | Annotate | Download | only in util
      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 TUNGSTEN GRAPHICS 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 U_VIDEO_H
     29 #define U_VIDEO_H
     30 
     31 #ifdef __cplusplus
     32 extern "C" {
     33 #endif
     34 
     35 #include "pipe/p_defines.h"
     36 #include "pipe/p_video_enums.h"
     37 
     38 /* u_reduce_video_profile() needs these */
     39 #include "pipe/p_compiler.h"
     40 #include "util/u_debug.h"
     41 
     42 static INLINE enum pipe_video_codec
     43 u_reduce_video_profile(enum pipe_video_profile profile)
     44 {
     45    switch (profile)
     46    {
     47       case PIPE_VIDEO_PROFILE_MPEG1:
     48       case PIPE_VIDEO_PROFILE_MPEG2_SIMPLE:
     49       case PIPE_VIDEO_PROFILE_MPEG2_MAIN:
     50          return PIPE_VIDEO_CODEC_MPEG12;
     51 
     52       case PIPE_VIDEO_PROFILE_MPEG4_SIMPLE:
     53       case PIPE_VIDEO_PROFILE_MPEG4_ADVANCED_SIMPLE:
     54          return PIPE_VIDEO_CODEC_MPEG4;
     55 
     56       case PIPE_VIDEO_PROFILE_VC1_SIMPLE:
     57       case PIPE_VIDEO_PROFILE_VC1_MAIN:
     58       case PIPE_VIDEO_PROFILE_VC1_ADVANCED:
     59          return PIPE_VIDEO_CODEC_VC1;
     60 
     61       case PIPE_VIDEO_PROFILE_MPEG4_AVC_BASELINE:
     62       case PIPE_VIDEO_PROFILE_MPEG4_AVC_MAIN:
     63       case PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH:
     64          return PIPE_VIDEO_CODEC_MPEG4_AVC;
     65 
     66       default:
     67          return PIPE_VIDEO_CODEC_UNKNOWN;
     68    }
     69 }
     70 
     71 #ifdef __cplusplus
     72 }
     73 #endif
     74 
     75 #endif /* U_VIDEO_H */
     76