QOMX_StreamingExtensions.h revision 62f3c8efa800d9729e2ee46e6b81a8d92a08a379
1#ifndef QOMX_STREAMINGEXTENSIONS_H_
2#define QOMX_STREAMINGEXTENSIONS_H_
3/*--------------------------------------------------------------------------
4Copyright (c) 2012, Code Aurora Forum. All rights reserved.
5
6Redistribution and use in source and binary forms, with or without
7modification, 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 Code Aurora 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
18THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
22CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28ADVISED 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 )
66extern "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 */
111typedef 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 */
120typedef 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 */
155typedef 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 */
191typedef 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 */
213typedef 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 */
230typedef 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 */
241typedef 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 */
251typedef 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 */
298typedef 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 */
333typedef 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 */
372typedef 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 */
384typedef 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 */
416typedef 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 */
426typedef 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 */
445typedef 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 */
472typedef 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