OMX_VideoExt.h 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401
  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. /** OMX_VideoExt.h - OpenMax IL version 1.1.2
  24. * The OMX_VideoExt header file contains extensions to the
  25. * definitions used by both the application and the component to
  26. * access video items.
  27. */
  28. #ifndef OMX_VideoExt_h
  29. #define OMX_VideoExt_h
  30. #ifdef __cplusplus
  31. extern "C" {
  32. #endif /* __cplusplus */
  33. /* Each OMX header shall include all required header files to allow the
  34. * header to compile without errors. The includes below are required
  35. * for this header file to compile successfully
  36. */
  37. #include <OMX_Core.h>
  38. /** NALU Formats */
  39. typedef enum OMX_NALUFORMATSTYPE {
  40. OMX_NaluFormatStartCodes = 1,
  41. OMX_NaluFormatOneNaluPerBuffer = 2,
  42. OMX_NaluFormatOneByteInterleaveLength = 4,
  43. OMX_NaluFormatTwoByteInterleaveLength = 8,
  44. OMX_NaluFormatFourByteInterleaveLength = 16,
  45. OMX_NaluFormatCodingMax = 0x7FFFFFFF
  46. } OMX_NALUFORMATSTYPE;
  47. /** NAL Stream Format */
  48. typedef struct OMX_NALSTREAMFORMATTYPE{
  49. OMX_U32 nSize;
  50. OMX_VERSIONTYPE nVersion;
  51. OMX_U32 nPortIndex;
  52. OMX_NALUFORMATSTYPE eNaluFormat;
  53. } OMX_NALSTREAMFORMATTYPE;
  54. /** VP8 profiles */
  55. typedef enum OMX_VIDEO_VP8PROFILETYPE {
  56. OMX_VIDEO_VP8ProfileMain = 0x01,
  57. OMX_VIDEO_VP8ProfileUnknown = 0x6EFFFFFF,
  58. OMX_VIDEO_VP8ProfileMax = 0x7FFFFFFF
  59. } OMX_VIDEO_VP8PROFILETYPE;
  60. /** VP8 levels */
  61. typedef enum OMX_VIDEO_VP8LEVELTYPE {
  62. OMX_VIDEO_VP8Level_Version0 = 0x01,
  63. OMX_VIDEO_VP8Level_Version1 = 0x02,
  64. OMX_VIDEO_VP8Level_Version2 = 0x04,
  65. OMX_VIDEO_VP8Level_Version3 = 0x08,
  66. OMX_VIDEO_VP8LevelUnknown = 0x6EFFFFFF,
  67. OMX_VIDEO_VP8LevelMax = 0x7FFFFFFF
  68. } OMX_VIDEO_VP8LEVELTYPE;
  69. /** VP9 profiles */
  70. typedef enum OMX_VIDEO_VP9PROFILETYPE {
  71. OMX_VIDEO_VP9Profile0 = 0x1,
  72. OMX_VIDEO_VP9Profile1 = 0x2,
  73. OMX_VIDEO_VP9Profile2 = 0x4,
  74. OMX_VIDEO_VP9Profile3 = 0x8,
  75. // HDR profiles also support passing HDR metadata
  76. OMX_VIDEO_VP9Profile2HDR = 0x1000,
  77. OMX_VIDEO_VP9Profile3HDR = 0x2000,
  78. OMX_VIDEO_VP9ProfileUnknown = 0x6EFFFFFF,
  79. OMX_VIDEO_VP9ProfileMax = 0x7FFFFFFF
  80. } OMX_VIDEO_VP9PROFILETYPE;
  81. /** VP9 levels */
  82. typedef enum OMX_VIDEO_VP9LEVELTYPE {
  83. OMX_VIDEO_VP9Level1 = 0x1,
  84. OMX_VIDEO_VP9Level11 = 0x2,
  85. OMX_VIDEO_VP9Level2 = 0x4,
  86. OMX_VIDEO_VP9Level21 = 0x8,
  87. OMX_VIDEO_VP9Level3 = 0x10,
  88. OMX_VIDEO_VP9Level31 = 0x20,
  89. OMX_VIDEO_VP9Level4 = 0x40,
  90. OMX_VIDEO_VP9Level41 = 0x80,
  91. OMX_VIDEO_VP9Level5 = 0x100,
  92. OMX_VIDEO_VP9Level51 = 0x200,
  93. OMX_VIDEO_VP9Level52 = 0x400,
  94. OMX_VIDEO_VP9Level6 = 0x800,
  95. OMX_VIDEO_VP9Level61 = 0x1000,
  96. OMX_VIDEO_VP9Level62 = 0x2000,
  97. OMX_VIDEO_VP9LevelUnknown = 0x6EFFFFFF,
  98. OMX_VIDEO_VP9LevelMax = 0x7FFFFFFF
  99. } OMX_VIDEO_VP9LEVELTYPE;
  100. /** VP8 Param */
  101. typedef struct OMX_VIDEO_PARAM_VP8TYPE {
  102. OMX_U32 nSize;
  103. OMX_VERSIONTYPE nVersion;
  104. OMX_U32 nPortIndex;
  105. OMX_VIDEO_VP8PROFILETYPE eProfile;
  106. OMX_VIDEO_VP8LEVELTYPE eLevel;
  107. OMX_U32 nDCTPartitions;
  108. OMX_BOOL bErrorResilientMode;
  109. } OMX_VIDEO_PARAM_VP8TYPE;
  110. /** Structure for configuring VP8 reference frames */
  111. typedef struct OMX_VIDEO_VP8REFERENCEFRAMETYPE {
  112. OMX_U32 nSize;
  113. OMX_VERSIONTYPE nVersion;
  114. OMX_U32 nPortIndex;
  115. OMX_BOOL bPreviousFrameRefresh;
  116. OMX_BOOL bGoldenFrameRefresh;
  117. OMX_BOOL bAlternateFrameRefresh;
  118. OMX_BOOL bUsePreviousFrame;
  119. OMX_BOOL bUseGoldenFrame;
  120. OMX_BOOL bUseAlternateFrame;
  121. } OMX_VIDEO_VP8REFERENCEFRAMETYPE;
  122. /** Structure for querying VP8 reference frame type */
  123. typedef struct OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE {
  124. OMX_U32 nSize;
  125. OMX_VERSIONTYPE nVersion;
  126. OMX_U32 nPortIndex;
  127. OMX_BOOL bIsIntraFrame;
  128. OMX_BOOL bIsGoldenOrAlternateFrame;
  129. } OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE;
  130. /** Maximum number of VP8 temporal layers */
  131. #define OMX_VIDEO_ANDROID_MAXVP8TEMPORALLAYERS 3
  132. /** VP8 temporal layer patterns */
  133. typedef enum OMX_VIDEO_ANDROID_VPXTEMPORALLAYERPATTERNTYPE {
  134. OMX_VIDEO_VPXTemporalLayerPatternNone = 0,
  135. OMX_VIDEO_VPXTemporalLayerPatternWebRTC = 1,
  136. OMX_VIDEO_VPXTemporalLayerPatternMax = 0x7FFFFFFF
  137. } OMX_VIDEO_ANDROID_VPXTEMPORALLAYERPATTERNTYPE;
  138. /**
  139. * Android specific VP8 encoder params
  140. *
  141. * STRUCT MEMBERS:
  142. * nSize : Size of the structure in bytes
  143. * nVersion : OMX specification version information
  144. * nPortIndex : Port that this structure applies to
  145. * nKeyFrameInterval : Key frame interval in frames
  146. * eTemporalPattern : Type of temporal layer pattern
  147. * nTemporalLayerCount : Number of temporal coding layers
  148. * nTemporalLayerBitrateRatio : Bitrate ratio allocation between temporal
  149. * streams in percentage
  150. * nMinQuantizer : Minimum (best quality) quantizer
  151. * nMaxQuantizer : Maximum (worst quality) quantizer
  152. */
  153. typedef struct OMX_VIDEO_PARAM_ANDROID_VP8ENCODERTYPE {
  154. OMX_U32 nSize;
  155. OMX_VERSIONTYPE nVersion;
  156. OMX_U32 nPortIndex;
  157. OMX_U32 nKeyFrameInterval; // distance between consecutive key_frames (including one
  158. // of the key_frames). 0 means interval is unspecified and
  159. // can be freely chosen by the codec. 1 means a stream of
  160. // only key_frames.
  161. OMX_VIDEO_ANDROID_VPXTEMPORALLAYERPATTERNTYPE eTemporalPattern;
  162. OMX_U32 nTemporalLayerCount;
  163. OMX_U32 nTemporalLayerBitrateRatio[OMX_VIDEO_ANDROID_MAXVP8TEMPORALLAYERS];
  164. OMX_U32 nMinQuantizer;
  165. OMX_U32 nMaxQuantizer;
  166. } OMX_VIDEO_PARAM_ANDROID_VP8ENCODERTYPE;
  167. /** HEVC Profile enum type */
  168. typedef enum OMX_VIDEO_HEVCPROFILETYPE {
  169. OMX_VIDEO_HEVCProfileUnknown = 0x0,
  170. OMX_VIDEO_HEVCProfileMain = 0x1,
  171. OMX_VIDEO_HEVCProfileMain10 = 0x2,
  172. // Main10 profile with HDR SEI support.
  173. OMX_VIDEO_HEVCProfileMain10HDR10 = 0x1000,
  174. OMX_VIDEO_HEVCProfileMax = 0x7FFFFFFF
  175. } OMX_VIDEO_HEVCPROFILETYPE;
  176. /** HEVC Level enum type */
  177. typedef enum OMX_VIDEO_HEVCLEVELTYPE {
  178. OMX_VIDEO_HEVCLevelUnknown = 0x0,
  179. OMX_VIDEO_HEVCMainTierLevel1 = 0x1,
  180. OMX_VIDEO_HEVCHighTierLevel1 = 0x2,
  181. OMX_VIDEO_HEVCMainTierLevel2 = 0x4,
  182. OMX_VIDEO_HEVCHighTierLevel2 = 0x8,
  183. OMX_VIDEO_HEVCMainTierLevel21 = 0x10,
  184. OMX_VIDEO_HEVCHighTierLevel21 = 0x20,
  185. OMX_VIDEO_HEVCMainTierLevel3 = 0x40,
  186. OMX_VIDEO_HEVCHighTierLevel3 = 0x80,
  187. OMX_VIDEO_HEVCMainTierLevel31 = 0x100,
  188. OMX_VIDEO_HEVCHighTierLevel31 = 0x200,
  189. OMX_VIDEO_HEVCMainTierLevel4 = 0x400,
  190. OMX_VIDEO_HEVCHighTierLevel4 = 0x800,
  191. OMX_VIDEO_HEVCMainTierLevel41 = 0x1000,
  192. OMX_VIDEO_HEVCHighTierLevel41 = 0x2000,
  193. OMX_VIDEO_HEVCMainTierLevel5 = 0x4000,
  194. OMX_VIDEO_HEVCHighTierLevel5 = 0x8000,
  195. OMX_VIDEO_HEVCMainTierLevel51 = 0x10000,
  196. OMX_VIDEO_HEVCHighTierLevel51 = 0x20000,
  197. OMX_VIDEO_HEVCMainTierLevel52 = 0x40000,
  198. OMX_VIDEO_HEVCHighTierLevel52 = 0x80000,
  199. OMX_VIDEO_HEVCMainTierLevel6 = 0x100000,
  200. OMX_VIDEO_HEVCHighTierLevel6 = 0x200000,
  201. OMX_VIDEO_HEVCMainTierLevel61 = 0x400000,
  202. OMX_VIDEO_HEVCHighTierLevel61 = 0x800000,
  203. OMX_VIDEO_HEVCMainTierLevel62 = 0x1000000,
  204. OMX_VIDEO_HEVCHighTierLevel62 = 0x2000000,
  205. OMX_VIDEO_HEVCHighTiermax = 0x7FFFFFFF
  206. } OMX_VIDEO_HEVCLEVELTYPE;
  207. /** Structure for controlling HEVC video encoding */
  208. typedef struct OMX_VIDEO_PARAM_HEVCTYPE {
  209. OMX_U32 nSize;
  210. OMX_VERSIONTYPE nVersion;
  211. OMX_U32 nPortIndex;
  212. OMX_VIDEO_HEVCPROFILETYPE eProfile;
  213. OMX_VIDEO_HEVCLEVELTYPE eLevel;
  214. OMX_U32 nKeyFrameInterval; // distance between consecutive I-frames (including one
  215. // of the I frames). 0 means interval is unspecified and
  216. // can be freely chosen by the codec. 1 means a stream of
  217. // only I frames.
  218. } OMX_VIDEO_PARAM_HEVCTYPE;
  219. /** Structure to define if dependent slice segments should be used */
  220. typedef struct OMX_VIDEO_SLICESEGMENTSTYPE {
  221. OMX_U32 nSize;
  222. OMX_VERSIONTYPE nVersion;
  223. OMX_U32 nPortIndex;
  224. OMX_BOOL bDepedentSegments;
  225. OMX_BOOL bEnableLoopFilterAcrossSlices;
  226. } OMX_VIDEO_SLICESEGMENTSTYPE;
  227. /** Structure to return timestamps of rendered output frames as well as EOS
  228. * for tunneled components.
  229. */
  230. typedef struct OMX_VIDEO_RENDEREVENTTYPE {
  231. OMX_S64 nMediaTimeUs; // timestamp of rendered video frame
  232. OMX_S64 nSystemTimeNs; // system monotonic time at the time frame was rendered
  233. // Use INT64_MAX for nMediaTimeUs to signal that the EOS
  234. // has been reached. In this case, nSystemTimeNs MUST be
  235. // the system time when the last frame was rendered.
  236. // This MUST be done in addition to returning (and
  237. // following) the render information for the last frame.
  238. } OMX_VIDEO_RENDEREVENTTYPE;
  239. /** Dolby Vision Profile enum type */
  240. typedef enum OMX_VIDEO_DOLBYVISIONPROFILETYPE {
  241. OMX_VIDEO_DolbyVisionProfileUnknown = 0x0,
  242. OMX_VIDEO_DolbyVisionProfileDvavPer = 0x1,
  243. OMX_VIDEO_DolbyVisionProfileDvavPen = 0x2,
  244. OMX_VIDEO_DolbyVisionProfileDvheDer = 0x4,
  245. OMX_VIDEO_DolbyVisionProfileDvheDen = 0x8,
  246. OMX_VIDEO_DolbyVisionProfileDvheDtr = 0x10,
  247. OMX_VIDEO_DolbyVisionProfileDvheStn = 0x20,
  248. OMX_VIDEO_DolbyVisionProfileDvheDth = 0x40,
  249. OMX_VIDEO_DolbyVisionProfileDvheDtb = 0x80,
  250. OMX_VIDEO_DolbyVisionProfileMax = 0x7FFFFFFF
  251. } OMX_VIDEO_DOLBYVISIONPROFILETYPE;
  252. /** Dolby Vision Level enum type */
  253. typedef enum OMX_VIDEO_DOLBYVISIONLEVELTYPE {
  254. OMX_VIDEO_DolbyVisionLevelUnknown = 0x0,
  255. OMX_VIDEO_DolbyVisionLevelHd24 = 0x1,
  256. OMX_VIDEO_DolbyVisionLevelHd30 = 0x2,
  257. OMX_VIDEO_DolbyVisionLevelFhd24 = 0x4,
  258. OMX_VIDEO_DolbyVisionLevelFhd30 = 0x8,
  259. OMX_VIDEO_DolbyVisionLevelFhd60 = 0x10,
  260. OMX_VIDEO_DolbyVisionLevelUhd24 = 0x20,
  261. OMX_VIDEO_DolbyVisionLevelUhd30 = 0x40,
  262. OMX_VIDEO_DolbyVisionLevelUhd48 = 0x80,
  263. OMX_VIDEO_DolbyVisionLevelUhd60 = 0x100,
  264. OMX_VIDEO_DolbyVisionLevelmax = 0x7FFFFFFF
  265. } OMX_VIDEO_DOLBYVISIONLEVELTYPE;
  266. /**
  267. * Structure for configuring video compression intra refresh period
  268. *
  269. * STRUCT MEMBERS:
  270. * nSize : Size of the structure in bytes
  271. * nVersion : OMX specification version information
  272. * nPortIndex : Port that this structure applies to
  273. * nRefreshPeriod : Intra refreh period in frames. Value 0 means disable intra refresh
  274. */
  275. typedef struct OMX_VIDEO_CONFIG_ANDROID_INTRAREFRESHTYPE {
  276. OMX_U32 nSize;
  277. OMX_VERSIONTYPE nVersion;
  278. OMX_U32 nPortIndex;
  279. OMX_U32 nRefreshPeriod;
  280. } OMX_VIDEO_CONFIG_ANDROID_INTRAREFRESHTYPE;
  281. /** Maximum number of temporal layers supported by AVC/HEVC */
  282. #define OMX_VIDEO_ANDROID_MAXTEMPORALLAYERS 8
  283. /** temporal layer patterns */
  284. typedef enum OMX_VIDEO_ANDROID_TEMPORALLAYERINGPATTERNTYPE {
  285. OMX_VIDEO_AndroidTemporalLayeringPatternNone = 0,
  286. // pattern as defined by WebRTC
  287. OMX_VIDEO_AndroidTemporalLayeringPatternWebRTC = 1 << 0,
  288. // pattern where frames in any layer other than the base layer only depend on at most the very
  289. // last frame from each preceding layer (other than the base layer.)
  290. OMX_VIDEO_AndroidTemporalLayeringPatternAndroid = 1 << 1,
  291. } OMX_VIDEO_ANDROID_TEMPORALLAYERINGPATTERNTYPE;
  292. /**
  293. * Android specific param for configuration of temporal layering.
  294. * Android only supports temporal layering where successive layers each double the
  295. * previous layer's framerate.
  296. * NOTE: Reading this parameter at run-time SHALL return actual run-time values.
  297. *
  298. * nSize : Size of the structure in bytes
  299. * nVersion : OMX specification version information
  300. * nPortIndex : Port that this structure applies to (output port for encoders)
  301. * eSupportedPatterns : A bitmask of supported layering patterns
  302. * nLayerCountMax : Max number of temporal coding layers supported
  303. * by the encoder (must be at least 1, 1 meaning temporal layering
  304. * is NOT supported)
  305. * nBLayerCountMax : Max number of layers that can contain B frames
  306. * (0) to (nLayerCountMax - 1)
  307. * ePattern : Layering pattern.
  308. * nPLayerCountActual : Number of temporal layers to be coded with non-B frames,
  309. * starting from and including the base-layer.
  310. * (1 to nLayerCountMax - nBLayerCountActual)
  311. * If nPLayerCountActual is 1 and nBLayerCountActual is 0, temporal
  312. * layering is disabled. Otherwise, it is enabled.
  313. * nBLayerCountActual : Number of temporal layers to be coded with B frames,
  314. * starting after non-B layers.
  315. * (0 to nBLayerCountMax)
  316. * bBitrateRatiosSpecified : Flag to indicate if layer-wise bitrate
  317. * distribution is specified.
  318. * nBitrateRatios : Bitrate ratio (100 based) per layer (index 0 is base layer).
  319. * Honored if bBitrateRatiosSpecified is set.
  320. * i.e for 4 layers with desired distribution (25% 25% 25% 25%),
  321. * nBitrateRatio = {25, 50, 75, 100, ... }
  322. * Values in indices not less than 'the actual number of layers
  323. * minus 1' MAY be ignored and assumed to be 100.
  324. */
  325. typedef struct OMX_VIDEO_PARAM_ANDROID_TEMPORALLAYERINGTYPE {
  326. OMX_U32 nSize;
  327. OMX_VERSIONTYPE nVersion;
  328. OMX_U32 nPortIndex;
  329. OMX_VIDEO_ANDROID_TEMPORALLAYERINGPATTERNTYPE eSupportedPatterns;
  330. OMX_U32 nLayerCountMax;
  331. OMX_U32 nBLayerCountMax;
  332. OMX_VIDEO_ANDROID_TEMPORALLAYERINGPATTERNTYPE ePattern;
  333. OMX_U32 nPLayerCountActual;
  334. OMX_U32 nBLayerCountActual;
  335. OMX_BOOL bBitrateRatiosSpecified;
  336. OMX_U32 nBitrateRatios[OMX_VIDEO_ANDROID_MAXTEMPORALLAYERS];
  337. } OMX_VIDEO_PARAM_ANDROID_TEMPORALLAYERINGTYPE;
  338. /**
  339. * Android specific config for changing the temporal-layer count or
  340. * bitrate-distribution at run-time.
  341. *
  342. * nSize : Size of the structure in bytes
  343. * nVersion : OMX specification version information
  344. * nPortIndex : Port that this structure applies to (output port for encoders)
  345. * ePattern : Layering pattern.
  346. * nPLayerCountActual : Number of temporal layers to be coded with non-B frames.
  347. * (same OMX_VIDEO_PARAM_ANDROID_TEMPORALLAYERINGTYPE limits apply.)
  348. * nBLayerCountActual : Number of temporal layers to be coded with B frames.
  349. * (same OMX_VIDEO_PARAM_ANDROID_TEMPORALLAYERINGTYPE limits apply.)
  350. * bBitrateRatiosSpecified : Flag to indicate if layer-wise bitrate
  351. * distribution is specified.
  352. * nBitrateRatios : Bitrate ratio (100 based, Q16 values) per layer (0 is base layer).
  353. * Honored if bBitrateRatiosSpecified is set.
  354. * (same OMX_VIDEO_PARAM_ANDROID_TEMPORALLAYERINGTYPE limits apply.)
  355. */
  356. typedef struct OMX_VIDEO_CONFIG_ANDROID_TEMPORALLAYERINGTYPE {
  357. OMX_U32 nSize;
  358. OMX_VERSIONTYPE nVersion;
  359. OMX_U32 nPortIndex;
  360. OMX_VIDEO_ANDROID_TEMPORALLAYERINGPATTERNTYPE ePattern;
  361. OMX_U32 nPLayerCountActual;
  362. OMX_U32 nBLayerCountActual;
  363. OMX_BOOL bBitrateRatiosSpecified;
  364. OMX_U32 nBitrateRatios[OMX_VIDEO_ANDROID_MAXTEMPORALLAYERS];
  365. } OMX_VIDEO_CONFIG_ANDROID_TEMPORALLAYERINGTYPE;
  366. #ifdef __cplusplus
  367. }
  368. #endif /* __cplusplus */
  369. #endif /* OMX_VideoExt_h */
  370. /* File EOF */