tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

OMX_VideoExt.h (4055B)


      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 
     43 /** NALU Formats */
     44 typedef enum OMX_NALUFORMATSTYPE {
     45    OMX_NaluFormatStartCodes = 1,
     46    OMX_NaluFormatOneNaluPerBuffer = 2,
     47    OMX_NaluFormatOneByteInterleaveLength = 4,
     48    OMX_NaluFormatTwoByteInterleaveLength = 8,
     49    OMX_NaluFormatFourByteInterleaveLength = 16,
     50    OMX_NaluFormatCodingMax = 0x7FFFFFFF
     51 } OMX_NALUFORMATSTYPE;
     52 
     53 /** NAL Stream Format */
     54 typedef struct OMX_NALSTREAMFORMATTYPE{
     55    OMX_U32 nSize;
     56    OMX_VERSIONTYPE nVersion;
     57    OMX_U32 nPortIndex;
     58    OMX_NALUFORMATSTYPE eNaluFormat;
     59 } OMX_NALSTREAMFORMATTYPE;
     60 
     61 /** Enum for standard video codingtype extensions */
     62 typedef enum OMX_VIDEO_CODINGEXTTYPE {
     63    OMX_VIDEO_ExtCodingUnused = OMX_VIDEO_CodingKhronosExtensions,
     64    OMX_VIDEO_CodingVP8,        /**< VP8/WebM */
     65 } OMX_VIDEO_CODINGEXTTYPE;
     66 
     67 /** VP8 profiles */
     68 typedef enum OMX_VIDEO_VP8PROFILETYPE {
     69    OMX_VIDEO_VP8ProfileMain = 0x01,
     70    OMX_VIDEO_VP8ProfileUnknown = 0x6EFFFFFF,
     71    OMX_VIDEO_VP8ProfileMax = 0x7FFFFFFF
     72 } OMX_VIDEO_VP8PROFILETYPE;
     73 
     74 /** VP8 levels */
     75 typedef enum OMX_VIDEO_VP8LEVELTYPE {
     76    OMX_VIDEO_VP8Level_Version0 = 0x01,
     77    OMX_VIDEO_VP8Level_Version1 = 0x02,
     78    OMX_VIDEO_VP8Level_Version2 = 0x04,
     79    OMX_VIDEO_VP8Level_Version3 = 0x08,
     80    OMX_VIDEO_VP8LevelUnknown = 0x6EFFFFFF,
     81    OMX_VIDEO_VP8LevelMax = 0x7FFFFFFF
     82 } OMX_VIDEO_VP8LEVELTYPE;
     83 
     84 /** VP8 Param */
     85 typedef struct OMX_VIDEO_PARAM_VP8TYPE {
     86    OMX_U32 nSize;
     87    OMX_VERSIONTYPE nVersion;
     88    OMX_U32 nPortIndex;
     89    OMX_VIDEO_VP8PROFILETYPE eProfile;
     90    OMX_VIDEO_VP8LEVELTYPE eLevel;
     91    OMX_U32 nDCTPartitions;
     92    OMX_BOOL bErrorResilientMode;
     93 } OMX_VIDEO_PARAM_VP8TYPE;
     94 
     95 /** Structure for configuring VP8 reference frames */
     96 typedef struct OMX_VIDEO_VP8REFERENCEFRAMETYPE {
     97    OMX_U32 nSize;
     98    OMX_VERSIONTYPE nVersion;
     99    OMX_U32 nPortIndex;
    100    OMX_BOOL bPreviousFrameRefresh;
    101    OMX_BOOL bGoldenFrameRefresh;
    102    OMX_BOOL bAlternateFrameRefresh;
    103    OMX_BOOL bUsePreviousFrame;
    104    OMX_BOOL bUseGoldenFrame;
    105    OMX_BOOL bUseAlternateFrame;
    106 } OMX_VIDEO_VP8REFERENCEFRAMETYPE;
    107 
    108 /** Structure for querying VP8 reference frame type */
    109 typedef struct OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE {
    110    OMX_U32 nSize;
    111    OMX_VERSIONTYPE nVersion;
    112    OMX_U32 nPortIndex;
    113    OMX_BOOL bIsIntraFrame;
    114    OMX_BOOL bIsGoldenOrAlternateFrame;
    115 } OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE;
    116 
    117 
    118 #ifdef __cplusplus
    119 }
    120 #endif /* __cplusplus */
    121 
    122 #endif /* OMX_VideoExt_h */
    123 /* File EOF */