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