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