Home | History | Annotate | Download | only in inc
      1 #ifndef QOMX_STREAMINGEXTENSIONS_H_
      2 #define QOMX_STREAMINGEXTENSIONS_H_
      3 /*--------------------------------------------------------------------------
      4 Copyright (c) 2012, The Linux Foundation. All rights reserved.
      5 
      6 Redistribution and use in source and binary forms, with or without
      7 modification, are permitted provided that the following conditions are met:
      8     * Redistributions of source code must retain the above copyright
      9       notice, this list of conditions and the following disclaimer.
     10     * Redistributions in binary form must reproduce the above copyright
     11       notice, this list of conditions and the following disclaimer in the
     12       documentation and/or other materials provided with the distribution.
     13     * Neither the name of The Linux Foundation nor
     14       the names of its contributors may be used to endorse or promote
     15       products derived from this software without specific prior written
     16       permission.
     17 
     18 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     19 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     20 IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     21 NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     22 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     23 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     24 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     25 OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     26 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     27 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
     28 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     29 --------------------------------------------------------------------------*/
     30 /*========================================================================
     31 
     32 *//** @file QOMX_StreamingExtensions.h
     33 
     34 @par FILE SERVICES:
     35       Qualcomm extensions API for OpenMax IL Streaming Components.
     36 
     37       This file contains the description of the Qualcomm OpenMax IL
     38       streaming extention interface, through which the IL client and OpenMax
     39       components can access additional streaming capabilities.
     40 
     41 *//*====================================================================== */
     42 
     43 /*========================================================================
     44                              Edit History
     45 
     46 $Header: //source/qcom/qct/multimedia2/api/OpenMax/QCOM/main/latest/QOMX_StreamingExtensions.h#7 $
     47 $DateTime: 2011/03/02 12:27:27 $
     48 $Change: 1638323 $
     49 
     50 ========================================================================== */
     51 
     52 /* =======================================================================
     53 **               Includes and Public Data Declarations
     54 ** ======================================================================= */
     55 
     56 /* =======================================================================
     57 
     58                      INCLUDE FILES FOR MODULE
     59 
     60 ========================================================================== */
     61 
     62 #include <OMX_Types.h>
     63 #include <OMX_Component.h>
     64 
     65 #if defined( __cplusplus )
     66 extern "C"
     67 {
     68 #endif /* end of macro __cplusplus */
     69 
     70 /* =======================================================================
     71 
     72                         DATA DECLARATIONS
     73 
     74 ========================================================================== */
     75 /* -----------------------------------------------------------------------
     76 ** Type Declarations
     77 ** ----------------------------------------------------------------------- */
     78 /**
     79  * Qualcomm vendor streaming extension strings.
     80  */
     81 #define OMX_QUALCOMM_INDEX_CONFIG_WATERMARK                       "OMX.Qualcomm.index.config.Watermark"
     82 #define OMX_QUALCOMM_INDEX_CONFIG_WATERMARKSTATUS                 "OMX.Qualcomm.index.config.WatermarkStatus"
     83 #define OMX_QUALCOMM_INDEX_CONFIG_BUFFERMARKING                   "OMX.Qualcomm.index.config.BufferMarking"
     84 #define OMX_QUALCOMM_INDEX_PARAM_STREAMING_NETWORKINTERFACE       "OMX.Qualcomm.index.param.streaming.NetworkInterface"
     85 #define OMX_QUALCOMM_INDEX_PARAM_STREAMING_NETWORKPROFILE         "OMX.Qualcomm.index.param.streaming.NetworkProfile"
     86 #define OMX_QUALCOMM_INDEX_PARAM_STREAMING_PROXYSERVER            "OMX.Qualcomm.index.param.streaming.ProxyServer"
     87 #define OMX_QUALCOMM_INDEX_PARAM_STREAMING_SOURCEPORTS            "OMX.Qualcomm.index.param.streaming.SourcePorts"
     88 #define OMX_QUALCOMM_INDEX_CONFIG_STREAMING_PROTOCOLHEADER        "OMX.Qualcomm.index.param.streaming.ProtocolHeader"
     89 #define OMX_QUALCOMM_INDEX_CONFIG_STREAMING_PROTOCOLEVENT         "OMX.Qualcomm.index.config.streaming.ProtocolEvent"
     90 #define OMX_QUALCOMM_INDEX_CONFIG_STREAMING_DYNAMIC_SWITCH_CAPABILITY "OMX.Qualcomm.index.config.streaming.DynamicSessionSwitchCapability"
     91 #define OMX_QUALCOMM_INDEX_CONFIG_STREAMING_PROTOCOLHEADERSEVENT  "OMX.QCOM.index.config.streaming.ProtocolHeadersEvent"
     92 #define OMX_QCOM_INDEX_CONFIG_STREAMING_USERPAUSETIMEOUT          "OMX.QCOM.index.config.streaming.UserPauseTimeout"
     93 #define OMX_QCOM_INDEX_CONFIG_STREAMING_NOTIFYERRORONOPTIONSTIMEOUT   "OMX.QCOM.index.config.streaming.NotifyErrorOnOptionsTimeout"
     94 #define OMX_QCOM_INDEX_CONFIG_STREAMING_USEINTERLEAVEDTCP         "OMX.QCOM.index.config.streaming.UseInterleavedTCP"
     95 #define OMX_QCOM_INDEX_CONFIG_STREAMING_DATAINACTIVITYTIMEOUT     "OMX.QCOM.index.config.streaming.DataInactivityTimeout"
     96 #define OMX_QCOM_INDEX_CONFIG_STREAMING_RTSPOPTIONSKEEPALIVEINTERVAL   "OMX.QCOM.index.config.streaming.RTSPOptionsKeepaliveInterval"
     97 #define OMX_QCOM_INDEX_CONFIG_STREAMING_RTCPRRINTERVAL            "OMX.QCOM.index.config.streaming.RTCPRRInterval"
     98 #define OMX_QCOM_INDEX_CONFIG_STREAMING_RECONFIGUREPORT           "OMX.QCOM.index.config.streaming.ReconfigurePort"
     99 #define OMX_QCOM_INDEX_CONFIG_STREAMING_DEFAULTRTSPMESSAGETIMEOUT "OMX.QCOM.index.config.streaming.DefaultRTSPMessageTimeout"
    100 #define OMX_QCOM_INDEX_CONFIG_STREAMING_ENABLEFIREWALLPROBES      "OMX.QCOM.index.config.streaming.EnableFirewallProbes"
    101 #define OMX_QCOM_INDEX_CONFIG_STREAMING_RTSPOPTIONSBEFORESETUP    "OMX.QCOM.index.config.streaming.RTSPOptionsBeforeSetup"
    102 #define OMX_QCOM_INDEX_CONFIG_STREAMING_RTSPPIPELINEDFASTSTARTUP  "OMX.QCOM.index.config.streaming.RTSPPipelinedFastStartup"
    103 #define OMX_QCOM_INDEX_CONFIG_STREAMING_WMFASTSTARTSPEED          "OMX.QCOM.index.config.streaming.WMFastStartSpeed"
    104 #define OMX_QCOM_INDEX_CONFIG_STREAMING_ENABLEFASTRECONNECT       "OMX.QCOM.index.config.streaming.EnableFastReconnect"
    105 #define OMX_QCOM_INDEX_CONFIG_STREAMING_FASTRECONNECTMAXATTEMPTS  "OMX.QCOM.index.config.streaming.FastReconnectMaxAttempts"
    106 #define OMX_QCOM_INDEX_CONFIG_STREAMING_DOWNLOADPROGRESSUNITSTYPE "OMX.QCOM.index.config.streaming.DownloadProgressUnitsType"
    107 #define OMX_QOMX_INDEX_CONFIG_STREAMING_DOWNLOADPROGRESS          "OMX.QCOM.index.config.streaming.DownloadProgress"
    108 /**
    109  * Enumeration of the buffering watermark types
    110  */
    111 typedef enum QOMX_WATERMARKTYPE
    112 {
    113   QOMX_WATERMARK_UNDERRUN, /**< buffer has reached or is operating in an underrun condition */
    114   QOMX_WATERMARK_NORMAL /**< has reached or is operating in a normal (optimal) condition */
    115 }QOMX_WATERMARKTYPE;
    116 
    117 /**
    118  * Enumeration of type of buffering level tracking
    119  */
    120 typedef enum QOMX_WATERMARKUNITSTYPE
    121 {
    122   QOMX_WATERMARKUNITSTYPE_Time, /**< use a media time based reference */
    123   QOMX_WATERMARKUNITSTYPE_Data /**< use a data fullness based reference */
    124 }QOMX_WATERMARKUNITSTYPE;
    125 
    126 /**
    127  * Buffering watermark levels.
    128  *
    129  *  STRUCT MEMBERS:
    130  *  nSize        : Size of the structure in bytes
    131  *  nVersion     : OMX specification version information
    132  *  nPortIndex   : Port that this structure applies to
    133  *  eWaterMark   : eWaterMark specifies the type of buffering watermark being
    134  *                 configured
    135  *                 QOMX_WATERMARK_UNDERRUN Indicates the condition when the
    136  *                   buffer has reached or is operating in an underrun condition
    137  *                   - not enough data
    138  *                  QOMX_WATERMARK_NORMAL Indicates the condition when the buffer
    139  *                   has reached or is operating in a normal (optimal) condition
    140  *                    - sufficient data within the buffer.
    141  *
    142  *  nLevel       : specifies the buffering level associated with the watermark.
    143  *                 The units associated with the watermark level is dependent
    144  *                 on the eUnitsType being selected.
    145  *                   QOMX_WATERMARKUNITSTYPE_Time nLevel in units of microseconds.
    146  *                   QOMX_WATERMARKUNITSTYPE_Data nLevel in units of bytes.
    147  *
    148  *  nUnitsType  : specifies the type of buffering level tracking to be used.
    149  *                  QOMX_WATERMARKUNITSTYPE_Time the buffer watermark level
    150  *                    shall use a media time based reference.
    151  *                  QOMX_WATERMARKUNITSTYPE_Data the buffer watermark level
    152  *                    shall use a data fullness based reference.
    153  * bEnable      : specifies if the watermark type is being enabled or disabled
    154  */
    155 typedef struct QOMX_BUFFERINGWATERMARKTYPE {
    156     OMX_U32 nSize;
    157     OMX_VERSIONTYPE nVersion;
    158     OMX_U32 nPortIndex;
    159     QOMX_WATERMARKTYPE eWaterMark;
    160     OMX_U32 nLevel;
    161     QOMX_WATERMARKUNITSTYPE eUnitsType;
    162     OMX_BOOL bEnable;
    163 } QOMX_BUFFERINGWATERMARKTYPE;
    164 
    165 /**
    166  *  Current buffering status of the streaming source component, for a given
    167  *  media port
    168  *
    169  *  STRUCT MEMBERS:
    170  *  nSize        : Size of the structure in bytes
    171  *  nVersion     : OMX specification version information
    172  *  nPortIndex   : Port that this structure applies to
    173  *  eCurrentWaterMark : specifies the current buffer watermark level condition
    174  *                      QOMX_WATERMARK_UNDERRUN Indicates the condition when the
    175  *                        buffer has reached or is operating in an underrun
    176  *                        condition - not enough data
    177  *                      QOMX_WATERMARK_NORMAL Indicates the condition when the
    178  *                        buffer has reached or is operating in a normal
    179  *                        (optimal) condition - sufficient data within the buffer.
    180  *  eUnitsType      : specifies the type of buffering level tracking to be used.
    181  *                     QOMX_WATERMARKUNITSTYPE_Time the buffer watermark level
    182  *                       shall use a media time based reference.
    183  *                     QOMX_WATERMARKUNITSTYPE_Data the buffer watermark level
    184  *                       shall use a data fullness based reference.
    185  *  nCurrentLevel    : specifies the current buffer watermark level condition
    186  *                     The units associated with the watermark level is dependent
    187  *                     on the eUnitsType being selected.
    188  *                       QOMX_WATERMARKUNITSTYPE_Time nLevel in units of microseconds.
    189  *                       QOMX_WATERMARKUNITSTYPE_Data nLevel in units of bytes.
    190  */
    191 typedef struct QOMX_BUFFERINGSTATUSTYPE {
    192     OMX_U32 nSize;
    193     OMX_VERSIONTYPE nVersion;
    194     OMX_U32 nPortIndex;
    195     QOMX_WATERMARKTYPE eCurrentWaterMark;
    196     QOMX_WATERMARKUNITSTYPE eUnitsType;
    197     OMX_U32 nCurrentLevel;
    198 } QOMX_BUFFERINGSTATUSTYPE;
    199 
    200 /**
    201  *  marked buffer shall be emitted when the buffering level has reach an
    202  *  underrun condition (QOMX_WATERMARK_UNDERRUN).
    203  *
    204  *  STRUCT MEMBERS:
    205  *  nSize             : Size of the structure in bytes
    206  *  nVersion          : OMX specification version information
    207  *  nPortIndex        : Port that this structure applies to
    208  *  markInfo          : identifies the target component handle that shall emit
    209  *                      the mark buffer event and associated
    210  *  bEnable           : enables or disables the buffer marking insertion.
    211  *
    212  */
    213 typedef struct QOMX_BUFFERMARKINGTYPE {
    214     OMX_U32 nSize;
    215     OMX_VERSIONTYPE nVersion;
    216     OMX_U32 nPortIndex;
    217     OMX_MARKTYPE markInfo;
    218     OMX_BOOL  bEnable;
    219 } QOMX_BUFFERMARKINGTYPE;
    220 
    221 /**
    222  * Source ports.
    223  *
    224  *  STRUCT MEMBERS:
    225  *  nSize               : Size of the structure in bytes
    226  *  nVersion            : OMX specification version information
    227  *  nMinimumPortNumber  : Minimum port number the component may use
    228  *  nMaximumPortNumber  : Maximum port number the component may use
    229  */
    230 typedef struct QOMX_PARAM_STREAMING_SOURCE_PORTS
    231 {
    232   OMX_U32 nSize;
    233   OMX_VERSIONTYPE nVersion;
    234   OMX_U16 nMinimumPortNumber;
    235   OMX_U16 nMaximumPortNumber;
    236 } QOMX_PARAM_STREAMING_SOURCE_PORTS;
    237 
    238 /**
    239  * Enumeration used to define to the protocol message type.
    240  */
    241 typedef enum QOMX_STREAMING_PROTOCOLMESSAGETYPE
    242 {
    243   QOMX_STREAMING_PROTOCOLMESSAGE_REQUEST,
    244   QOMX_STREAMING_PROTOCOLMESSAGE_RESPONSE,
    245   QOMX_STREAMING_PROTOCOLMESSAGE_ALL
    246 } QOMX_STREAMING_PROTOCOLMESSAGETYPE;
    247 
    248 /**
    249  * Enumeration used to define the protocol header action type.
    250  */
    251 typedef enum QOMX_STREAMING_PROTOCOLHEADERACTIONTYPE
    252 {
    253   QOMX_STREAMING_PROTOCOLHEADERACTION_NONE,
    254   QOMX_STREAMING_PROTOCOLHEADERACTION_ADD,
    255   QOMX_STREAMING_PROTOCOLHEADERACTION_REMOVE
    256 } QOMX_STREAMING_PROTOCOLHEADERACTIONTYPE;
    257 
    258 /**
    259  * Protocol message header.
    260  *
    261  *  STRUCT MEMBERS:
    262  *  nSize             : Size of the structure in bytes (including size of
    263                         messageHeader parameter)
    264  *  nVersion          : OMX specification version information
    265  *  eMessageType      : enumeration to distinguish protocol message type
    266  *  eActionType       : enumeration indicating protocol header action type
    267  *  nMessageClassSize : size of the message class string (excluding any
    268  *                      terminating characters)
    269  *  nHeaderNameSize   : size of the header name string (excluding any
    270  *                      terminating characters)
    271  *  nHeaderValueSize  : size of the header value string (excluding any
    272  *                      terminating characters)
    273  *  messageHeader     : the NULL-terminated message header string formed by
    274  *                      concatenating message class, header name and value
    275  *                      strings, i.e. the first nMessageClassSize bytes of the
    276  *                      messageHeader parameter correspond to the message class
    277  *                      (without any terminating characters), followed by the
    278  *                      header name of size nHeaderNameSize bytes and then the
    279  *                      header value of size nHeaderValueSize bytes. The value
    280  *                      of message class is interpreted by what is mentioned in
    281  *                      eMessageType,
    282  *                       1) For request message
    283  *                          (QOMX_STREAMING_PROTOCOLMESSAGE_REQUEST) it is the
    284  *                          Method token (as specified in the RFC 2616 and RFC
    285  *                          2326).
    286  *                       2) For response message
    287  *                          (QOMX_STREAMING_PROTOCOLMESSAGE_RESPONSE) it is
    288  *                          either or both the Method token and a three digit
    289  *                          Status-Code (as specified in the RFC 2616 and
    290  *                          RFC 2326) or a class of the response Status-Codes
    291  *                          (1xx, 2xx, 3xx, 4xx, and 5xx). When both present,
    292  *                          the method token and status code are separated by
    293  *                          1 empty space.
    294  *                       3) For all messages
    295  *                          (QOMX_STREAMING_PROTOCOLMESSAGE_ALL) it will be
    296  *                          absent (nMessageClassSize will be zero).
    297  */
    298 typedef struct QOMX_CONFIG_STREAMING_PROTOCOLHEADERTYPE
    299 {
    300   OMX_U32 nSize;
    301   OMX_VERSIONTYPE nVersion;
    302   QOMX_STREAMING_PROTOCOLMESSAGETYPE eMessageType;
    303   QOMX_STREAMING_PROTOCOLHEADERACTIONTYPE eActionType;
    304   OMX_U32 nMessageClassSize;
    305   OMX_U32 nHeaderNameSize;
    306   OMX_U32 nHeaderValueSize;
    307   OMX_U8 messageHeader[1];
    308 } QOMX_CONFIG_STREAMING_PROTOCOLHEADERTYPE;
    309 
    310 /**
    311  * Protocol Event.
    312  *
    313  *  STRUCT MEMBERS:
    314  *  nSize             : Size of the structure in bytes (including size of
    315                         protocolEventText parameter)
    316  *  nVersion          : OMX specification version information
    317  *  nProtocolEvent    : 1xx, 2xx, 3xx, 4xx or 5xx codes for HTTP/RTSP protocol
    318  *  nReasonPhraseSize : size of the reason phrase string (excluding any
    319  *                      terminating characters)
    320  *  nEntityBodySize   : size of the entity body string (excluding any
    321  *                      terminating characters)
    322  *  nContentUriSize   : size of the url (exclusing any terminating characters)
    323  *                      url is used a key to identify for which operation this
    324  *                      event belongs to
    325  *  protocolEventText : NULL-terminated protocol event text string formed by
    326  *                      concatenating reason phrase and entity body
    327  *                      and uri, i.e. the first nReasonPhraseSize bytes of the
    328  *                      protocolEventText parameter correspond to the reason
    329  *                      phrase (without any terminating characters), followed
    330  *                      by the entity body of size nEntityBodySize bytes,
    331  *                      followed by nContentUriSize bytes of URI
    332  */
    333 typedef struct QOMX_CONFIG_STREAMING_PROTOCOLEVENTTYPE
    334 {
    335   OMX_U32 nSize;
    336   OMX_VERSIONTYPE nVersion;
    337   OMX_U32 nProtocolEvent;
    338   OMX_U32 nReasonPhraseSize;
    339   OMX_U32 nEntityBodySize;
    340   OMX_U32 nContentUriSize;
    341   OMX_U8 protocolEventText[1];
    342 } QOMX_CONFIG_STREAMING_PROTOCOLEVENTTYPE;
    343 
    344 /**
    345  * Protocol Headers Event
    346  *
    347  * STRUCT MEMBERS:
    348  * nSize:                   Size of the structure in bytes including
    349  *                          messageHeaders.
    350  * nVersion:                OMX specification version information
    351  * eMessageType:            enumeration to distinguish protocol message
    352  *                          type
    353  * nMessageClassSize:       Size of the message class string.
    354  * nMessageAttributesSize:  Size of the message attributes
    355  *                          string.
    356  *
    357  * This structure can be populated in 2 modes:
    358  * (i)  Query for required sizes of message class and message
    359  *      attributes. In this mode, nMessageClassSize and
    360  *      nMessageAtributesSize both need to be set to zero.
    361  * (ii) Request to populate messageHeaders. In this mode, at
    362  *      least one of nMessageClassSize or nMessageAttributesSize
    363  *      need to be non-zero. On output, messageHeaders will be
    364  *      populated with the message class and message attributes.
    365  *      nMessageClassSize and/or nMessageAtributesSize may be
    366  *      overwritten to reflect the actual start and end of
    367  *      message class and message attributes. The max sizes of
    368  *      message class and message attributes will not exceed the
    369  *      values input by the client. The strings are not null
    370  *      terminated.
    371  */
    372 typedef struct QOMX_STREAMING_PROTOCOLHEADERSTYPE {
    373     OMX_U32 nSize;
    374     OMX_VERSIONTYPE nVersion;
    375     QOMX_STREAMING_PROTOCOLMESSAGETYPE eMessageType;
    376     OMX_U32 nMessageClassSize;
    377     OMX_U32 nMessageAtributesSize;
    378     OMX_U8 messageHeaders[1];
    379 } QOMX_STREAMING_PROTOCOLHEADERSTYPE;
    380 
    381 /**
    382  * Enumeration of possible streaming network interfaces.
    383  */
    384 typedef enum QOMX_STREAMING_NETWORKINTERFACETYPE
    385 {
    386   QOMX_STREAMING_NETWORKINTERFACE_ANY_IFACE,
    387   QOMX_STREAMING_NETWORKINTERFACE_CDMA_SN_IFACE,
    388   QOMX_STREAMING_NETWORKINTERFACE_CDMA_AN_IFACE,
    389   QOMX_STREAMING_NETWORKINTERFACE_UMTS_IFACE,
    390   QOMX_STREAMING_NETWORKINTERFACE_SIO_IFACE,
    391   QOMX_STREAMING_NETWORKINTERFACE_CDMA_BCAST_IFACE,
    392   QOMX_STREAMING_NETWORKINTERFACE_WLAN_IFACE,
    393   QOMX_STREAMING_NETWORKINTERFACE_DUN_IFACE,
    394   QOMX_STREAMING_NETWORKINTERFACE_FLO_IFACE,
    395   QOMX_STREAMING_NETWORKINTERFACE_DVBH_IFACE,
    396   QOMX_STREAMING_NETWORKINTERFACE_STA_IFACE,
    397   QOMX_STREAMING_NETWORKINTERFACE_IPSEC_IFACE,
    398   QOMX_STREAMING_NETWORKINTERFACE_LO_IFACE,
    399   QOMX_STREAMING_NETWORKINTERFACE_MBMS_IFACE,
    400   QOMX_STREAMING_NETWORKINTERFACE_IWLAN_3GPP_IFACE,
    401   QOMX_STREAMING_NETWORKINTERFACE_IWLAN_3GPP2_IFACE,
    402   QOMX_STREAMING_NETWORKINTERFACE_MIP6_IFACE,
    403   QOMX_STREAMING_NETWORKINTERFACE_UW_FMC_IFACE,
    404   QOMX_STREAMING_NETWORKINTERFACE_CMMB_IFACE
    405 } QOMX_STREAMING_NETWORKINTERFACETYPE;
    406 
    407 /*
    408  * Network interface.
    409  *
    410  *  STRUCT MEMBERS:
    411  *  nSize             : Size of the structure in bytes (including size of
    412                         protocolErrorText parameter)
    413  *  nVersion          : OMX specification version information
    414  *  eNetworkInterface : Network interface the component may use
    415  */
    416 typedef struct QOMX_PARAM_STREAMING_NETWORKINTERFACE
    417 {
    418   OMX_U32 nSize;
    419   OMX_VERSIONTYPE nVersion;
    420   QOMX_STREAMING_NETWORKINTERFACETYPE eNetworkInterface;
    421 } QOMX_PARAM_STREAMING_NETWORKINTERFACE;
    422 
    423 /**
    424  * Enumeration of UnitType for DownloadProgress
    425  */
    426 typedef enum QOMX_DOWNLOADPROGRESSUNITSTYPE
    427 {
    428   QOMX_DOWNLOADPROGRESSUNITSTYPE_TIME,
    429   QOMX_DOWNLOADPROGRESSUNITSTYPE_DATA
    430 } QOMX_DOWNLOADPROGRESSUNITSTYPE;
    431 
    432 
    433 /**
    434  * DownloadProgress units
    435  *
    436  * STRUCT MEMBERS:
    437  *  nSize             : Size of the structure in bytes (including size of
    438                         protocolEventText parameter)
    439  *  nVersion          : OMX specification version information
    440  *  nPortIndex        : Port that this structure applies to
    441  *  eUnitsType        : Specifies the type of units type in
    442  *                      which download prgoress should be
    443  *                      reported
    444  */
    445 typedef struct QOMX_CONFIG_STREAMING_DOWNLOADPROGRESSUNITS
    446 {
    447   OMX_U32 nSize;
    448   OMX_VERSIONTYPE nVersion;
    449   OMX_U32 nPortIndex;
    450   QOMX_DOWNLOADPROGRESSUNITSTYPE eUnitsType;
    451 } QOMX_CONFIG_STREAMING_DOWNLOADPROGRESSUNITS;
    452 
    453 
    454 /**
    455  * Download Progress
    456  *
    457  * STRUCT MEMBERS:
    458  *  nSize             : Size of the structure in bytes (including size of
    459                         protocolEventText parameter)
    460  *  nVersion          : OMX specification version information
    461  *  nPortIndex        : Port that this structure applies to
    462  *  nDataDownloaded   : specifies the amount of data downloaded
    463  *                      in time or data scale (based on
    464  *                      eUnitsType) from the media position
    465  *                      specified by nStartOffset below. It
    466  *                      starts at zero and progressively
    467  *                      increases as more data is downloaded
    468  *  nCurrentStartOffset: specifies is the current download start
    469  *                       position in time or data scale (based
    470  *                       on eUnitsType)
    471  */
    472 typedef struct QOMX_CONFIG_STREAMING_DOWNLOADPROGRESSTYPE
    473 {
    474   OMX_U32 nSize;
    475   OMX_VERSIONTYPE nVersion;
    476   OMX_U32 nPortIndex;
    477   OMX_U32 nDataDownloaded;
    478   OMX_U32 nCurrentStartOffset;
    479 } QOMX_CONFIG_STREAMING_DOWNLOADPROGRESSTYPE;
    480 
    481 #if defined( __cplusplus )
    482 }
    483 #endif /* end of macro __cplusplus */
    484 
    485 #endif /* QOMX_STREAMINGEXTENSIONS_H_ */
    486 
    487