XDAIS
dais-x04
Main Page
Modules
Data Structures
Files
Related Pages
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Groups
Pages
packages
ti
xdais
dm
ividenc2.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
47
#ifndef ti_xdais_dm_IVIDENC2_
48
#define ti_xdais_dm_IVIDENC2_
49
50
#include <
ti/xdais/ialg.h
>
51
#include <
ti/xdais/xdas.h
>
52
#include "
xdm.h
"
53
#include "
ivideo.h
"
54
55
#ifdef __cplusplus
56
extern
"C"
{
57
#endif
58
61
62
#define IVIDENC2_EOK XDM_EOK
63
#define IVIDENC2_EFAIL XDM_EFAIL
64
#define IVIDENC2_EUNSUPPORTED XDM_EUNSUPPORTED
72
typedef enum {
73
IVIDENC2_MOTIONVECTOR_PIXEL
= 0,
74
IVIDENC2_MOTIONVECTOR_HALFPEL
= 1,
75
IVIDENC2_MOTIONVECTOR_QUARTERPEL
= 2,
76
IVIDENC2_MOTIONVECTOR_EIGHTHPEL
= 3,
77
IVIDENC2_MOTIONVECTOR_MAX
= 4
78
}
IVIDENC2_MotionVectorAccuracy
;
79
92
typedef
enum
{
93
IVIDENC2_CTRL_NONE
= 0,
94
IVIDENC2_CTRL_FORCESKIP
= 1,
96
IVIDENC2_CTRL_DEFAULT
=
IVIDENC2_CTRL_NONE
97
}
IVIDENC2_Control
;
98
99
104
typedef
struct
IVIDENC2_Obj
{
105
struct
IVIDENC2_Fxns
*
fxns
;
106
}
IVIDENC2_Obj
;
107
108
112
typedef
struct
IVIDENC2_Obj
*
IVIDENC2_Handle
;
113
123
#define IVIDENC2_DEFAULTPROFILE (-1)
124
134
#define IVIDENC2_DEFAULTLEVEL (-1)
135
142
typedef
struct
IVIDENC2_Params
{
143
XDAS_Int32
size
;
144
XDAS_Int32
encodingPreset
;
145
XDAS_Int32
rateControlPreset
;
149
XDAS_Int32
maxHeight
;
150
XDAS_Int32
maxWidth
;
151
XDAS_Int32
dataEndianness
;
155
XDAS_Int32
maxInterFrameInterval
;
162
XDAS_Int32
maxBitRate
;
165
XDAS_Int32
minBitRate
;
168
XDAS_Int32
inputChromaFormat
;
172
XDAS_Int32
inputContentType
;
177
XDAS_Int32
operatingMode
;
181
XDAS_Int32
profile
;
194
XDAS_Int32
level
;
207
XDAS_Int32
inputDataMode
;
223
XDAS_Int32
outputDataMode
;
242
XDAS_Int32
numInputDataUnits
;
251
XDAS_Int32
numOutputDataUnits
;
260
XDAS_Int32
metadataType
[
IVIDEO_MAX_NUM_METADATA_PLANES
];
265
}
IVIDENC2_Params
;
266
267
282
typedef
struct
IVIDENC2_DynamicParams
{
283
XDAS_Int32
size
;
284
XDAS_Int32
inputHeight
;
285
XDAS_Int32
inputWidth
;
286
XDAS_Int32
refFrameRate
;
293
XDAS_Int32
targetFrameRate
;
300
XDAS_Int32
targetBitRate
;
301
XDAS_Int32
intraFrameInterval
;
313
XDAS_Int32
generateHeader
;
317
XDAS_Int32
captureWidth
;
322
XDAS_Int32
forceFrame
;
340
XDAS_Int32
interFrameInterval
;
357
XDAS_Int32
mvAccuracy
;
368
XDAS_Int32
sampleAspectRatioHeight
;
374
XDAS_Int32
sampleAspectRatioWidth
;
380
XDAS_Int32
ignoreOutbufSizeFlag
;
412
XDM_DataSyncPutFxn
putDataFxn
;
425
XDM_DataSyncHandle
putDataHandle
;
447
XDM_DataSyncGetFxn
getDataFxn
;
460
XDM_DataSyncHandle
getDataHandle
;
481
XDM_DataSyncGetBufferFxn
getBufferFxn
;
495
XDM_DataSyncHandle
getBufferHandle
;
517
XDAS_Int32
lateAcquireArg
;
546
}
IVIDENC2_DynamicParams
;
547
548
557
typedef
struct
IVIDENC2_InArgs
{
558
XDAS_Int32
size
;
559
XDAS_Int32
inputID
;
580
XDAS_Int32
control
;
584
}
IVIDENC2_InArgs
;
585
586
594
typedef
struct
IVIDENC2_Status
{
595
XDAS_Int32
size
;
596
XDAS_Int32
extendedError
;
597
XDM1_SingleBufDesc
data
;
619
XDAS_Int32
encodingPreset
;
620
XDAS_Int32
rateControlPreset
;
624
XDAS_Int32
maxInterFrameInterval
;
631
XDAS_Int32
inputChromaFormat
;
635
XDAS_Int32
inputContentType
;
640
XDAS_Int32
operatingMode
;
644
XDAS_Int32
profile
;
649
XDAS_Int32
level
;
654
XDAS_Int32
inputDataMode
;
659
XDAS_Int32
outputDataMode
;
664
XDAS_Int32
numInputDataUnits
;
677
XDAS_Int32
numOutputDataUnits
;
689
XDAS_Int32
configurationID
;
703
XDM1_AlgBufInfo
bufInfo
;
716
XDAS_Int32
metadataType
[
IVIDEO_MAX_NUM_METADATA_PLANES
];
721
IVIDENC2_DynamicParams
encDynamicParams
;
733
}
IVIDENC2_Status
;
734
735
744
typedef
struct
IVIDENC2_OutArgs
{
745
XDAS_Int32
size
;
746
XDAS_Int32
extendedError
;
747
XDAS_Int32
bytesGenerated
;
750
XDAS_Int32
encodedFrameType
;
754
XDAS_Int32
inputFrameSkip
;
758
XDAS_Int32
freeBufID
[
IVIDEO2_MAX_IO_BUFFERS
];
786
IVIDEO2_BufDesc
reconBufs
;
787
}
IVIDENC2_OutArgs
;
788
789
800
typedef
IALG_Cmd
IVIDENC2_Cmd
;
801
802
806
typedef
struct
IVIDENC2_Fxns
{
807
IALG_Fxns
ialg
;
885
XDAS_Int32
(*
process
)(IVIDENC2_Handle handle,
IVIDEO2_BufDesc
*inBufs,
886
XDM2_BufDesc
*outBufs,
IVIDENC2_InArgs
*inArgs,
887
IVIDENC2_OutArgs
*outArgs);
888
889
925
XDAS_Int32
(*
control
)(IVIDENC2_Handle handle,
IVIDENC2_Cmd
id,
926
IVIDENC2_DynamicParams
*params,
IVIDENC2_Status
*status);
927
928
}
IVIDENC2_Fxns
;
929
930
933
#ifdef __cplusplus
934
}
935
#endif
936
937
#endif
Copyright 2013, Texas Instruments Incorporated