Home | History | Annotate | Download | only in inc
      1 /*@@@+++@@@@******************************************************************
      2 
      3  Microsoft Skype Engineering
      4  Copyright (C) 2014 Microsoft Corporation.
      5 
      6 MIT License
      7 
      8 Permission is hereby granted, free of charge, to any person obtaining a copy
      9  of this software and associated documentation files (the "Software"), to deal
     10  in the Software without restriction, including without limitation the rights
     11  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
     12  copies of the Software, and to permit persons to whom the Software is
     13  furnished to do so, subject to the following conditions:
     14 
     15 The above copyright notice and this permission notice shall be included in
     16  all copies or substantial portions of the Software.
     17 
     18 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     19  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     20  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
     21  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     22  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     23  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
     24  THE SOFTWARE.
     25 
     26 *@@@---@@@@******************************************************************/
     27 
     28 
     29 #ifndef __OMX_SKYPE_VIDEOEXTENSIONS_H__
     30 #define __OMX_SKYPE_VIDEOEXTENSIONS_H__
     31 
     32 #ifdef __cplusplus
     33 extern "C"
     34 {
     35 #endif
     36 
     37 #include <OMX_Core.h>
     38 
     39 #pragma pack(push, 1)
     40 
     41 
     42 typedef enum OMX_SKYPE_VIDEO_SliceControlMode
     43 {
     44     OMX_SKYPE_VIDEO_SliceControlModeNone        = 0,
     45     OMX_SKYPE_VIDEO_SliceControlModeMB          = 1,
     46     OMX_SKYPE_VIDEO_SliceControlModeByte        = 2,
     47     OMX_SKYPE_VIDEO_SliceControlModMBRow        = 3,
     48 } OMX_SKYPE_VIDEO_SliceControlMode;
     49 
     50 
     51 typedef enum OMX_SKYPE_VIDEO_HierarType
     52 {
     53     OMX_SKYPE_VIDEO_HierarType_P                = 0x01,
     54     OMX_SKYPE_VIDEO_HierarType_B                = 0x02,
     55 } OMX_SKYPE_VIDEO_HIERAR_HierarType;
     56 
     57 typedef enum OMX_VIDEO_EXTENSION_AVCPROFILETYPE
     58 {
     59     OMX_VIDEO_EXT_AVCProfileConstrainedBaseline = 0x01,
     60     OMX_VIDEO_EXT_AVCProfileConstrainedHigh     = 0x02,
     61 } OMX_VIDEO_EXTENSION_AVCPROFILETYPE;
     62 
     63 typedef struct OMX_SKYPE_VIDEO_ENCODERPARAMS {
     64     OMX_BOOL bLowLatency;
     65     OMX_BOOL bUseExtendedProfile;
     66     OMX_BOOL bSequenceHeaderWithIDR;
     67     OMX_VIDEO_EXTENSION_AVCPROFILETYPE eProfile;
     68     OMX_U32 nLTRFrames;
     69     OMX_SKYPE_VIDEO_HierarType eHierarType;
     70     OMX_U32 nMaxTemporalLayerCount;
     71     OMX_SKYPE_VIDEO_SliceControlMode eSliceControlMode;
     72     OMX_U32 nSarIndex;
     73     OMX_U32 nSarWidth;
     74     OMX_U32 nSarHeight;
     75 } OMX_SKYPE_VIDEO_ENCODERPARAMS;
     76 
     77 typedef struct OMX_SKYPE_VIDEO_PARAM_ENCODERSETTING {
     78     OMX_U32 nSize;
     79     OMX_VERSIONTYPE nVersion;
     80     OMX_U32 nPortIndex;
     81     OMX_SKYPE_VIDEO_ENCODERPARAMS stEncParam;
     82 } OMX_SKYPE_VIDEO_PARAM_ENCODESETTING;
     83 
     84 typedef struct OMX_SKYPE_VIDEO_ENCODERCAP {
     85     OMX_BOOL bLowLatency;
     86     OMX_U32 nMaxFrameWidth;
     87     OMX_U32 nMaxFrameHeight;
     88     OMX_U32 nMaxInstances;
     89     OMX_U32 nMaxTemporaLayerCount;
     90     OMX_U32 nMaxRefFrames;
     91     OMX_U32 nMaxLTRFrames;
     92     OMX_VIDEO_AVCLEVELTYPE nMaxLevel;
     93     OMX_U32 nSliceControlModesBM;
     94     OMX_U32 nMaxMacroblockProcessingRate;
     95     OMX_U32 xMinScaleFactor;
     96 } OMX_SKYPE_VIDEO_ENCODERCAP;
     97 
     98 typedef struct OMX_SKYPE_VIDEO_PARAM_ENCODERCAP {
     99     OMX_U32 nSize;
    100     OMX_VERSIONTYPE nVersion;
    101     OMX_U32 nPortIndex;
    102     OMX_SKYPE_VIDEO_ENCODERCAP stEncCap;
    103 } OMX_SKYPE_VIDEO_PARAM_ENCODERCAP;
    104 
    105 typedef struct OMX_SKYPE_VIDEO_DECODERCAP {
    106     OMX_BOOL bLowLatency;
    107     OMX_U32 nMaxFrameWidth;
    108     OMX_U32 nMaxFrameHeight;
    109     OMX_U32 nMaxInstances;
    110     OMX_VIDEO_AVCLEVELTYPE nMaxLevel;
    111     OMX_U32 nMaxMacroblockProcessingRate;
    112 } OMX_SKYPE_VIDEO_DECODERCAP;
    113 
    114 typedef struct OMX_SKYPE_VIDEO_PARAM_DECODERCAP {
    115     OMX_U32 nSize;
    116     OMX_VERSIONTYPE nVersion;
    117     OMX_U32 nPortIndex;
    118     OMX_SKYPE_VIDEO_DECODERCAP stDecoderCap;
    119 } OMX_SKYPE_VIDEO_PARAM_DECODERCAP;
    120 
    121 typedef struct OMX_SKYPE_VIDEO_CONFIG_QP {
    122     OMX_U32 nSize;
    123     OMX_VERSIONTYPE nVersion;
    124     OMX_U32 nPortIndex;
    125     OMX_U32 nQP;
    126 } OMX_SKYPE_VIDEO_CONFIG_QP;
    127 
    128 typedef struct OMX_SKYPE_VIDEO_CONFIG_BASELAYERPID{
    129     OMX_U32 nSize;
    130     OMX_VERSIONTYPE nVersion;
    131     OMX_U32 nPortIndex;
    132     OMX_U32 nPID;
    133 } OMX_SKYPE_VIDEO_CONFIG_BASELAYERPID;
    134 
    135 typedef struct OMX_SKYPE_VIDEO_PARAM_DRIVERVER {
    136     OMX_U32 nSize;
    137     OMX_VERSIONTYPE nVersion;
    138     OMX_U32 nPortIndex;
    139     OMX_U64 nDriverVersion;
    140 } OMX_SKYPE_VIDEO_PARAM_DRIVERVER;
    141 
    142 typedef enum OMX_SKYPE_VIDEO_DownScaleFactor
    143 {
    144     OMX_SKYPE_VIDEO_DownScaleFactor_1_1         = 0,
    145     OMX_SKYPE_VIDEO_DownScaleFactor_Equal_AR    = 1,
    146     OMX_SKYPE_VIDEO_DownScaleFactor_Any         = 2,
    147 } OMX_SKYPE_VIDEO_DownScaleFactor;
    148 
    149 #pragma pack(pop)
    150 
    151 #ifdef __cplusplus
    152 }
    153 #endif
    154 
    155 #endif
    156