• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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