Home | History | Annotate | Download | only in inc
      1 /*--------------------------------------------------------------------------
      2 Copyright (c) 2011 Code Aurora Forum. All rights reserved.
      3 
      4 Redistribution and use in source and binary forms, with or without
      5 modification, are permitted provided that the following conditions are met:
      6     * Redistributions of source code must retain the above copyright
      7       notice, this list of conditions and the following disclaimer.
      8     * Redistributions in binary form must reproduce the above copyright
      9       notice, this list of conditions and the following disclaimer in the
     10       documentation and/or other materials provided with the distribution.
     11     * Neither the name of Code Aurora nor
     12       the names of its contributors may be used to endorse or promote
     13       products derived from this software without specific prior written
     14       permission.
     15 
     16 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     17 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     18 IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     19 NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     20 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     21 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     22 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     23 OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     24 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     25 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
     26 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27 --------------------------------------------------------------------------*/
     28 
     29 #ifndef __QOMX_FILE_FORMAT_EXTENSIONS_H__
     30 #define __QOMX_FILE_FORMAT_EXTENSIONS_H__
     31 
     32 /*============================================================================
     33 *//** @file QOMX_FileFormatExtensions.h
     34   This header contains constants and type definitions that specify the
     35   extensions added to the OpenMAX Vendor specific APIs.
     36 *//*========================================================================*/
     37 
     38 /*============================================================================
     39                               Edit History
     40 
     41 when       who     what, where, why
     42 --------   ---     -------------------------------------------------------
     43 
     44 ============================================================================*/
     45 
     46 //////////////////////////////////////////////////////////////////////////////
     47 //                             Include Files
     48 //////////////////////////////////////////////////////////////////////////////
     49 #include "OMX_Core.h"
     50 
     51 
     52 /* :OMX.QCOM.index.param.container.info*/
     53 #define QOMX_QcomIndexParamContainerInfo 0x7F000009
     54 
     55 #define QOMX_INDEX_CONTAINER_INFO_STRING    "QOMX.Qualcomm.index.param.containerinfo"
     56 #define OMX_QCOM_INDEX_FILE_FORMAT          "OMX.QCOM.index.config.FileFormat"
     57 
     58 /**-----------------------------------------------------------------------------
     59             OMX.QCOM.index.param.container.info
     60 --------------------------------------------------------------------------------
     61 */
     62 
     63 typedef enum QOMX_CONTAINER_FORMATTYPE {
     64     QOMX_FORMAT_RAW,
     65     QOMX_FORMAT_MP4,
     66     QOMX_FORMAT_3GP,
     67     QOMX_FORMAT_3G2,
     68     QOMX_FORMAT_AMC,
     69     QOMX_FORMAT_SKM,
     70     QOMX_FORMAT_K3G,
     71     QOMX_FORMAT_VOB,
     72     QOMX_FORMAT_AVI,
     73     QOMX_FORMAT_ASF,
     74     QOMX_FORMAT_RM ,
     75     QOMX_FORMAT_MPEG_ES,
     76     QOMX_FORMAT_DIVX,
     77     QOMX_FORMATMPEG_TS,
     78     QOMX_FORMAT_QT,
     79     QOMX_FORMAT_M4A,
     80     QOMX_FORMAT_MP3,
     81     QOMX_FORMAT_WAVE,
     82     QOMX_FORMAT_XMF,
     83     QOMX_FORMAT_AMR,
     84     QOMX_FORMAT_AAC,
     85     QOMX_FORMAT_EVRC,
     86     QOMX_FORMAT_QCP,
     87     QOMX_FORMAT_SMF,
     88     QOMX_FORMAT_OGG,
     89     QOMX_FORMAT_BMP,
     90     QOMX_FORMAT_JPG,
     91     QOMX_FORMAT_JPG2000
     92 }QOMX_CONTAINER_FORMATTYPE;
     93 
     94 typedef struct QOMX_CONTAINER_INFOTYPE {
     95     OMX_U32 nSize;
     96     OMX_VERSIONTYPE nVersion;
     97     QOMX_CONTAINER_FORMATTYPE eFmtType;
     98 } QOMX_CONTAINER_INFOTYPE;
     99 
    100 typedef enum QOMX_FILEFORMATTYPE {
    101     QOMX_FileFormatNone, /**< no file format naming convention is followed. */
    102     QOMX_FileFormatDCF, /**< DCF file naming convention. */
    103     QOMX_FileFormatMax = 0x7FFFFFFF
    104 } QOMX_FILEFORMATTYPE;
    105 
    106 /** QOMX_CONFIG_FILEFORMATTYPE is used to determine how the file writer will interpret
    107 the provided content URI and whether it will increment the index of the file name. */
    108 typedef struct QOMX_CONFIG_FILEFORMATTYPE {
    109     OMX_U32 nSize; /**< size of the structure in bytes */
    110     OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
    111     OMX_U32 nPortIndex; /**< port that this structure applies to */
    112     QOMX_FILEFORMATTYPE eFileFormat; /** file format type */
    113 } QOMX_CONFIG_FILEFORMATTYPE;
    114 
    115 /**The QOMX_RECORDINGSTATISTICSINTERVALTYPE structure is used to enable
    116 IL client to indicate the interval of the statistics notification to file mux
    117 component. Time interval will indicate the frequency(in ms) when client needs
    118 the statistics data*/
    119 typedef struct QOMX_RECORDINGSTATISTICSINTERVALTYPE {
    120     OMX_U32 nSize; /**< size of the structure in bytes */
    121     OMX_VERSIONTYPE nVersion;/**< OMX specification version information */
    122     OMX_TICKS  interval;/**< specifies the time(milliseconds) between updates */
    123    }QOMX_RECORDINGSTATISTICSINTERVALTYPE;
    124 
    125 /**QOMX_RECORDINGSTATISTICSTYPE indicates the current recording
    126 time and space statistics of this session, which can be used by client to
    127 identify current status of recorded data in milliseconds and bytes */
    128 typedef struct QOMX_RECORDINGSTATISTICSTYPE {
    129     OMX_U32 nSize;/**< size of the structure in bytes */
    130     OMX_VERSIONTYPE nVersion;/**< OMX specification version information */
    131     OMX_TICKS  nRecordedTime; /**  duration that we already recorded*/
    132     OMX_TICKS  nTimeCanRecord;/** the time we can record at the same bitrate*/
    133     OMX_U64   nSpaceConsumed;/** space that consumed in bytes*/
    134     OMX_U64  nSpaceLeft;/** space left in bytes*/
    135 } QOMX_RECORDINGSTATISTICSTYPE;
    136 
    137 #endif /*__QOMX_FILE_FORMAT_EXTENSIONS_H__*/
    138