Codec Engine Application Programming Interface (API)
ce-w08
Main Page
Modules
Data Structures
Files
Related Pages
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
cetools
packages
ti
xdais
dm
ivideo.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2006-2012, Texas Instruments Incorporated
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
*
9
* * Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
*
12
* * Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
*
16
* * Neither the name of Texas Instruments Incorporated nor the names of
17
* its contributors may be used to endorse or promote products derived
18
* from this software without specific prior written permission.
19
*
20
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
*
32
*/
33
46
#ifndef ti_xdais_dm_IVIDEO_
47
#define ti_xdais_dm_IVIDEO_
48
49
#ifdef __cplusplus
50
extern
"C"
{
51
#endif
52
55
63
#define IVIDEO2_MAX_IO_BUFFERS 20
64
72
typedef
enum
{
73
IVIDEO_NO_SKIP
= 0,
74
IVIDEO_SKIP_P
= 1,
91
IVIDEO_SKIP_B
= 2,
99
IVIDEO_SKIP_I
= 3,
100
IVIDEO_SKIP_IP
= 4,
101
IVIDEO_SKIP_IB
= 5,
102
IVIDEO_SKIP_PB
= 6,
103
IVIDEO_SKIP_IPB
= 7,
104
IVIDEO_SKIP_IDR
= 8,
105
IVIDEO_SKIP_NONREFERENCE
= 9,
108
IVIDEO_SKIP_DEFAULT
=
IVIDEO_NO_SKIP
109
}
IVIDEO_FrameSkip
;
110
123
typedef
enum
{
124
IVIDEO_NA_FRAME
= -1,
125
IVIDEO_I_FRAME
= 0,
126
IVIDEO_P_FRAME
= 1,
127
IVIDEO_B_FRAME
= 2,
128
IVIDEO_IDR_FRAME
= 3,
131
IVIDEO_II_FRAME
= 4,
132
IVIDEO_IP_FRAME
= 5,
135
IVIDEO_IB_FRAME
= 6,
138
IVIDEO_PI_FRAME
= 7,
141
IVIDEO_PP_FRAME
= 8,
142
IVIDEO_PB_FRAME
= 9,
145
IVIDEO_BI_FRAME
= 10,
148
IVIDEO_BP_FRAME
= 11,
151
IVIDEO_BB_FRAME
= 12,
152
IVIDEO_MBAFF_I_FRAME
= 13,
153
IVIDEO_MBAFF_P_FRAME
= 14,
154
IVIDEO_MBAFF_B_FRAME
= 15,
155
IVIDEO_MBAFF_IDR_FRAME
= 16,
159
IVIDEO_FRAMETYPE_DEFAULT
=
IVIDEO_I_FRAME
160
}
IVIDEO_FrameType
;
161
169
typedef
enum
{
170
IVIDEO_CONTENTTYPE_NA
= -1,
171
IVIDEO_PROGRESSIVE
= 0,
172
IVIDEO_PROGRESSIVE_FRAME
=
IVIDEO_PROGRESSIVE
,
173
IVIDEO_INTERLACED
= 1,
174
IVIDEO_INTERLACED_FRAME
=
IVIDEO_INTERLACED
,
175
IVIDEO_INTERLACED_TOPFIELD
= 2,
176
IVIDEO_INTERLACED_BOTTOMFIELD
= 3,
179
IVIDEO_CONTENTTYPE_DEFAULT
=
IVIDEO_PROGRESSIVE
180
}
IVIDEO_ContentType
;
181
182
190
typedef
enum
{
191
IVIDEO_LOW_DELAY
= 1,
192
IVIDEO_STORAGE
= 2,
195
IVIDEO_TWOPASS
= 3,
198
IVIDEO_NONE
= 4,
201
IVIDEO_USER_DEFINED
= 5,
206
IVIDEO_RATECONTROLPRESET_DEFAULT
=
IVIDEO_LOW_DELAY
207
}
IVIDEO_RateControlPreset
;
208
209
217
typedef
enum
{
218
IVIDEO_FRAME_ENCODED
= 0,
219
IVIDEO_FRAME_SKIPPED
= 1,
225
IVIDEO_SKIPMODE_DEFAULT
=
IVIDEO_FRAME_ENCODED
226
}
IVIDEO_SkipMode
;
227
228
245
typedef
enum
{
246
IVIDEO_FRAME_NOERROR
= 0,
248
IVIDEO_FRAME_NOTAVAILABLE
= 1,
251
IVIDEO_FRAME_ERROR
= 2,
272
IVIDEO_FRAME_OUTPUTSKIP
= 3,
277
IVIDEO_OUTPUTFRAMESTATUS_DEFAULT
=
IVIDEO_FRAME_NOERROR
278
}
IVIDEO_OutputFrameStatus
;
279
287
typedef
enum
{
288
IVIDEO_NA_PICTURE
= -1,
289
IVIDEO_I_PICTURE
= 0,
290
IVIDEO_P_PICTURE
= 1,
291
IVIDEO_B_PICTURE
= 2,
293
IVIDEO_PICTURE_TYPE_DEFAULT
=
IVIDEO_I_PICTURE
294
}
IVIDEO_PictureType
;
295
296
304
typedef
enum
{
305
IVIDEO_MPEG1
= 1,
306
IVIDEO_MPEG2SP
= 2,
307
IVIDEO_MPEG2MP
= 3,
308
IVIDEO_MPEG2HP
= 4,
309
IVIDEO_MPEG4SP
= 5,
310
IVIDEO_MPEG4ASP
= 6,
311
IVIDEO_H264BP
= 7,
312
IVIDEO_H264MP
= 8,
313
IVIDEO_H264HP
= 9,
314
IVIDEO_VC1SP
= 10,
315
IVIDEO_VC1MP
= 11,
316
IVIDEO_VC1AP
= 12,
317
IVIDEO_H264RCDO
= 13,
318
IVIDEO_RV8
= 14,
319
IVIDEO_RV9
= 15,
320
IVIDEO_RV10
=
IVIDEO_RV9
,
321
IVIDEO_ON2VP6
= 16,
322
IVIDEO_ON2VP7
= 17,
323
IVIDEO_AVS10
= 18,
324
IVIDEO_SORENSONSPARK
= 19,
325
IVIDEO_H263_PROFILE0
= 20,
326
IVIDEO_H263_PROFILE3
= 21,
327
IVIDEO_H264SVC
= 22,
328
IVIDEO_MULTIVIEW
= 23,
329
IVIDEO_MJPEG
= 24
330
}
IVIDEO_Format
;
331
332
336
typedef
struct
IVIDEO_BufDesc
{
337
XDAS_Int32
numBufs
;
338
XDAS_Int32
width
;
339
XDAS_Int8
*
bufs
[
XDM_MAX_IO_BUFFERS
];
342
XDAS_Int32
bufSizes
[
XDM_MAX_IO_BUFFERS
];
345
}
IVIDEO_BufDesc
;
346
350
typedef
struct
IVIDEO1_BufDescIn
{
351
XDAS_Int32
numBufs
;
352
XDAS_Int32
frameWidth
;
353
XDAS_Int32
frameHeight
;
354
XDAS_Int32
framePitch
;
359
XDM1_SingleBufDesc
bufDesc
[
XDM_MAX_IO_BUFFERS
];
360
}
IVIDEO1_BufDescIn
;
361
362
366
#define IVIDEO_MAX_YUV_BUFFERS 3
367
371
typedef
struct
IVIDEO1_BufDesc
{
372
XDAS_Int32
numBufs
;
373
XDAS_Int32
frameWidth
;
374
XDAS_Int32
frameHeight
;
375
XDAS_Int32
framePitch
;
380
XDM1_SingleBufDesc
bufDesc
[
IVIDEO_MAX_YUV_BUFFERS
];
381
XDAS_Int32
extendedError
;
382
XDAS_Int32
frameType
;
386
XDAS_Int32
topFieldFirstFlag
;
399
XDAS_Int32
repeatFirstFieldFlag
;
412
XDAS_Int32
frameStatus
;
419
XDAS_Int32
repeatFrame
;
446
XDAS_Int32
contentType
;
460
XDAS_Int32
chromaFormat
;
464
}
IVIDEO1_BufDesc
;
465
475
typedef
enum
{
476
IVIDEO_FIELD_INTERLEAVED
= 0,
477
IVIDEO_FIELD_SEPARATED
= 1,
478
IVIDEO_TOP_ONLY
= 2,
479
IVIDEO_BOTTOM_ONLY
= 3
480
}
IVIDEO_VideoLayout
;
481
495
typedef
enum
{
496
IVIDEO_DECODE_ONLY
= 0,
497
IVIDEO_ENCODE_ONLY
= 1,
498
IVIDEO_TRANSCODE_FRAMELEVEL
= 2,
502
IVIDEO_TRANSCODE_MBLEVEL
= 3,
506
IVIDEO_TRANSRATE_FRAMELEVEL
= 4,
510
IVIDEO_TRANSRATE_MBLEVEL
= 5
514
}
IVIDEO_OperatingMode
;
515
525
typedef
enum
{
526
IVIDEO_YUVRANGE_FULL
= 0,
527
IVIDEO_YUVRANGE_ITU
= 1
528
}
IVIDEO_BitRange
;
529
542
typedef
enum
{
543
IVIDEO_FIXEDLENGTH
= 0,
544
IVIDEO_SLICEMODE
= 1,
545
IVIDEO_NUMROWS
= 2,
546
IVIDEO_ENTIREFRAME
= 3
547
}
IVIDEO_DataMode
;
548
549
555
typedef
enum
{
556
IVIDEO_ERRORINFO_OFF
= 0,
559
IVIDEO_ERRORINFO_ON_INPUT
= 1,
562
IVIDEO_ERRORINFO_ON_OUTPUT
= 2,
565
IVIDEO_ERRORINFO_ON_BOTH
= 3,
570
IVIDEO_ERRORINFO_MODE_DEFAULT
=
IVIDEO_ERRORINFO_OFF
571
572
}
IVIDEO_ErrorInfoMode
;
573
577
#define IVIDEO_MAX_NUM_PLANES 3
578
#define IVIDEO_MAX_NUM_METADATA_PLANES 3
586
/*
587
* @brief Metadata types
588
*
589
* @enumWarning
590
*
591
* @extendedEnum
592
*/
593
typedef
enum
{
594
IVIDEO_METADATAPLANE_NONE
= -1,
597
IVIDEO_METADATAPLANE_MBINFO
= 0,
603
IVIDEO_METADATAPLANE_EINFO
= 1,
609
IVIDEO_METADATAPLANE_ALPHA
= 2
616
}
IVIDEO_MetadataType
;
617
621
typedef
struct
IVIDEO2_BufDesc
{
622
XDAS_Int32
numPlanes
;
629
XDAS_Int32
numMetaPlanes
;
636
XDAS_Int32
dataLayout
;
643
XDM2_SingleBufDesc
planeDesc
[
IVIDEO_MAX_NUM_PLANES
];
644
XDM2_SingleBufDesc
metadataPlaneDesc
[
IVIDEO_MAX_NUM_METADATA_PLANES
];
650
XDAS_Int32
secondFieldOffsetWidth
[
IVIDEO_MAX_NUM_PLANES
];
663
XDAS_Int32
secondFieldOffsetHeight
[
IVIDEO_MAX_NUM_PLANES
];
675
XDAS_Int32
imagePitch
[
IVIDEO_MAX_NUM_PLANES
];
678
XDM_Rect
imageRegion
;
681
XDM_Rect
activeFrameRegion
;
684
XDAS_Int32
extendedError
;
689
XDAS_Int32
frameType
;
696
XDAS_Int32
topFieldFirstFlag
;
709
XDAS_Int32
repeatFirstFieldFlag
;
/* not required for encoder input buffer */
722
XDAS_Int32
frameStatus
;
/* not required for encoder input buffer */
729
XDAS_Int32
repeatFrame
;
/* not required for encoder input buffer */
756
XDAS_Int32
contentType
;
770
XDAS_Int32
chromaFormat
;
774
XDAS_Int32
scalingWidth
;
784
XDAS_Int32
scalingHeight
;
791
XDAS_Int32
rangeMappingLuma
;
800
XDAS_Int32
rangeMappingChroma
;
809
XDAS_Int32
enableRangeReductionFlag
;
820
}
IVIDEO2_BufDesc
;
821
822
825
#ifdef __cplusplus
826
}
827
#endif
828
829
#endif
Copyright 2013, Texas Instruments Incorporated