1 /* 2 * Copyright (c) 2010 The Khronos Group Inc. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining 5 * a copy of this software and associated documentation files (the 6 * "Software"), to deal in the Software without restriction, including 7 * without limitation the rights to use, copy, modify, merge, publish, 8 * distribute, sublicense, and/or sell copies of the Software, and to 9 * permit persons to whom the Software is furnished to do so, subject 10 * to the following conditions: 11 * The above copyright notice and this permission notice shall be included 12 * in all copies or substantial portions of the Software. 13 * 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 17 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 18 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 19 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 20 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 * 22 */ 23 24 /** OMX_VideoExt.h - OpenMax IL version 1.1.2 25 * The OMX_VideoExt header file contains extensions to the 26 * definitions used by both the application and the component to 27 * access video items. 28 */ 29 30 #ifndef OMX_VideoExt_h 31 #define OMX_VideoExt_h 32 33 #ifdef __cplusplus 34 extern "C" { 35 #endif /* __cplusplus */ 36 37 /* Each OMX header shall include all required header files to allow the 38 * header to compile without errors. The includes below are required 39 * for this header file to compile successfully 40 */ 41 #include <OMX_Core.h> 42 #include <OMX_Video.h> 43 44 /** NALU Formats */ 45 typedef enum OMX_NALUFORMATSTYPE { 46 OMX_NaluFormatStartCodes = 1, 47 OMX_NaluFormatOneNaluPerBuffer = 2, 48 OMX_NaluFormatOneByteInterleaveLength = 4, 49 OMX_NaluFormatTwoByteInterleaveLength = 8, 50 OMX_NaluFormatFourByteInterleaveLength = 16, 51 OMX_NaluFormatCodingMax = 0x7FFFFFFF 52 } OMX_NALUFORMATSTYPE; 53 54 /** NAL Stream Format */ 55 typedef struct OMX_NALSTREAMFORMATTYPE{ 56 OMX_U32 nSize; 57 OMX_VERSIONTYPE nVersion; 58 OMX_U32 nPortIndex; 59 OMX_NALUFORMATSTYPE eNaluFormat; 60 } OMX_NALSTREAMFORMATTYPE; 61 62 /** Enum for standard video codingtype extensions */ 63 typedef enum OMX_VIDEO_CODINGEXTTYPE { 64 OMX_VIDEO_ExtCodingUnused = OMX_VIDEO_CodingKhronosExtensions, 65 OMX_VIDEO_CodingVP8, /**< VP8/WebM */ 66 } OMX_VIDEO_CODINGEXTTYPE; 67 68 /** VP8 profiles */ 69 typedef enum OMX_VIDEO_VP8PROFILETYPE { 70 OMX_VIDEO_VP8ProfileMain = 0x01, 71 OMX_VIDEO_VP8ProfileUnknown = 0x6EFFFFFF, 72 OMX_VIDEO_VP8ProfileMax = 0x7FFFFFFF 73 } OMX_VIDEO_VP8PROFILETYPE; 74 75 /** VP8 levels */ 76 typedef enum OMX_VIDEO_VP8LEVELTYPE { 77 OMX_VIDEO_VP8Level_Version0 = 0x01, 78 OMX_VIDEO_VP8Level_Version1 = 0x02, 79 OMX_VIDEO_VP8Level_Version2 = 0x04, 80 OMX_VIDEO_VP8Level_Version3 = 0x08, 81 OMX_VIDEO_VP8LevelUnknown = 0x6EFFFFFF, 82 OMX_VIDEO_VP8LevelMax = 0x7FFFFFFF 83 } OMX_VIDEO_VP8LEVELTYPE; 84 85 /** VP8 Param */ 86 typedef struct OMX_VIDEO_PARAM_VP8TYPE { 87 OMX_U32 nSize; 88 OMX_VERSIONTYPE nVersion; 89 OMX_U32 nPortIndex; 90 OMX_VIDEO_VP8PROFILETYPE eProfile; 91 OMX_VIDEO_VP8LEVELTYPE eLevel; 92 OMX_U32 nDCTPartitions; 93 OMX_BOOL bErrorResilientMode; 94 } OMX_VIDEO_PARAM_VP8TYPE; 95 96 /** Structure for configuring VP8 reference frames */ 97 typedef struct OMX_VIDEO_VP8REFERENCEFRAMETYPE { 98 OMX_U32 nSize; 99 OMX_VERSIONTYPE nVersion; 100 OMX_U32 nPortIndex; 101 OMX_BOOL bPreviousFrameRefresh; 102 OMX_BOOL bGoldenFrameRefresh; 103 OMX_BOOL bAlternateFrameRefresh; 104 OMX_BOOL bUsePreviousFrame; 105 OMX_BOOL bUseGoldenFrame; 106 OMX_BOOL bUseAlternateFrame; 107 } OMX_VIDEO_VP8REFERENCEFRAMETYPE; 108 109 /** Structure for querying VP8 reference frame type */ 110 typedef struct OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE { 111 OMX_U32 nSize; 112 OMX_VERSIONTYPE nVersion; 113 OMX_U32 nPortIndex; 114 OMX_BOOL bIsIntraFrame; 115 OMX_BOOL bIsGoldenOrAlternateFrame; 116 } OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE; 117 118 119 #ifdef __cplusplus 120 } 121 #endif /* __cplusplus */ 122 123 #endif /* OMX_VideoExt_h */ 124 /* File EOF */ 125