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
ividenc.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
50
#ifndef ti_xdais_dm_IVIDENC_
51
#define ti_xdais_dm_IVIDENC_
52
53
#include <
ti/xdais/ialg.h
>
54
#include <
ti/xdais/xdas.h
>
55
56
/*
57
* By definition, this interface is 0.9 XDM. Before including xdm.h,
58
* define XDM_INCLUDE_DOT9_SUPPORT
59
*/
60
#ifndef XDM_INCLUDE_DOT9_SUPPORT
61
#define XDM_INCLUDE_DOT9_SUPPORT
62
#endif
63
#include "
xdm.h
"
64
#include "
ivideo.h
"
65
66
#ifdef __cplusplus
67
extern
"C"
{
68
#endif
69
72
73
#define IVIDENC_CID "ti.xdais.dm.IVIDENC"
75
#define IVIDENC_ERUNTIME XDM_ERUNTIME
76
#define IVIDENC_EOK XDM_EOK
77
#define IVIDENC_EFAIL XDM_EFAIL
83
typedef struct IVIDENC_Obj {
84
struct
IVIDENC_Fxns
*
fxns
;
85
}
IVIDENC_Obj
;
86
87
91
typedef
struct
IVIDENC_Obj
*
IVIDENC_Handle
;
92
93
103
typedef
struct
IVIDENC_Params
{
104
XDAS_Int32
size
;
105
XDAS_Int32
encodingPreset
;
106
XDAS_Int32
rateControlPreset
;
110
XDAS_Int32
maxHeight
;
111
XDAS_Int32
maxWidth
;
112
XDAS_Int32
maxFrameRate
;
113
XDAS_Int32
maxBitRate
;
114
XDAS_Int32
dataEndianness
;
118
XDAS_Int32
maxInterFrameInterval
;
121
XDAS_Int32
inputChromaFormat
;
125
XDAS_Int32
inputContentType
;
130
}
IVIDENC_Params
;
131
132
147
typedef
struct
IVIDENC_DynamicParams
{
148
XDAS_Int32
size
;
149
XDAS_Int32
inputHeight
;
150
XDAS_Int32
inputWidth
;
151
XDAS_Int32
refFrameRate
;
152
XDAS_Int32
targetFrameRate
;
153
XDAS_Int32
targetBitRate
;
154
XDAS_Int32
intraFrameInterval
;
157
XDAS_Int32
generateHeader
;
161
XDAS_Int32
captureWidth
;
166
XDAS_Int32
forceIFrame
;
168
}
IVIDENC_DynamicParams
;
169
178
typedef
struct
IVIDENC_InArgs
{
179
XDAS_Int32
size
;
180
}
IVIDENC_InArgs
;
181
189
typedef
struct
IVIDENC_Status
{
190
XDAS_Int32
size
;
191
XDAS_Int32
extendedError
;
192
XDM_AlgBufInfo
bufInfo
;
196
}
IVIDENC_Status
;
197
198
207
typedef
struct
IVIDENC_OutArgs
{
208
XDAS_Int32
size
;
209
XDAS_Int32
extendedError
;
210
XDAS_Int32
bytesGenerated
;
211
XDAS_Int32
encodedFrameType
;
215
XDAS_Int32
inputFrameSkip
;
216
IVIDEO_BufDesc
reconBufs
;
217
}
IVIDENC_OutArgs
;
218
219
230
typedef
IALG_Cmd
IVIDENC_Cmd
;
231
232
236
typedef
struct
IVIDENC_Fxns
{
237
IALG_Fxns
ialg
;
276
XDAS_Int32
(*
process
)(IVIDENC_Handle handle,
XDM_BufDesc
*inBufs,
277
XDM_BufDesc
*outBufs,
IVIDENC_InArgs
*inArgs,
278
IVIDENC_OutArgs
*outArgs);
279
305
XDAS_Int32
(*
control
)(IVIDENC_Handle handle,
IVIDENC_Cmd
id,
306
IVIDENC_DynamicParams
*params,
IVIDENC_Status
*status);
307
308
}
IVIDENC_Fxns
;
309
310
313
#ifdef __cplusplus
314
}
315
#endif
316
317
#endif
Copyright 2013, Texas Instruments Incorporated