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
ividtranscode.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_IVIDTRANSCODE_
48
#define ti_xdais_dm_IVIDTRANSCODE_
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 IVIDTRANSCODE_EOK XDM_EOK
63
#define IVIDTRANSCODE_EFAIL XDM_EFAIL
64
#define IVIDTRANSCODE_EUNSUPPORTED XDM_EUNSUPPORTED
66
#define IVIDTRANSCODE_MAXOUTSTREAMS 2
72
typedef struct IVIDTRANSCODE_Obj {
73
struct
IVIDTRANSCODE_Fxns
*
fxns
;
74
}
IVIDTRANSCODE_Obj
;
75
76
80
typedef
struct
IVIDTRANSCODE_Obj
*
IVIDTRANSCODE_Handle
;
81
82
89
typedef
struct
IVIDTRANSCODE_Params
{
90
XDAS_Int32
size
;
91
XDAS_Int32
numOutputStreams
;
96
XDAS_Int32
formatInput
;
104
XDAS_Int32
formatOutput
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
114
XDAS_Int32
maxHeightInput
;
115
XDAS_Int32
maxWidthInput
;
116
XDAS_Int32
maxFrameRateInput
;
121
XDAS_Int32
maxBitRateInput
;
125
XDAS_Int32
maxHeightOutput
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
128
XDAS_Int32
maxWidthOutput
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
131
XDAS_Int32
maxFrameRateOutput
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
138
XDAS_Int32
maxBitRateOutput
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
145
XDAS_Int32
dataEndianness
;
149
}
IVIDTRANSCODE_Params
;
150
151
166
typedef
struct
IVIDTRANSCODE_DynamicParams
{
167
XDAS_Int32
size
;
168
XDAS_Int32
readHeaderOnlyFlag
;
174
XDAS_Int32
keepInputResolutionFlag
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
183
XDAS_Int32
outputHeight
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
192
XDAS_Int32
outputWidth
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
201
XDAS_Int32
keepInputFrameRateFlag
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
209
XDAS_Int32
inputFrameRate
;
220
XDAS_Int32
outputFrameRate
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
232
XDAS_Int32
targetBitRate
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
236
XDAS_Int32
rateControl
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
242
XDAS_Int32
keepInputGOPFlag
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
249
XDAS_Int32
intraFrameInterval
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
266
XDAS_Int32
interFrameInterval
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
286
XDAS_Int32
forceFrame
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
310
XDAS_Int32
frameSkipTranscodeFlag
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
323
}
IVIDTRANSCODE_DynamicParams
;
324
325
334
typedef
struct
IVIDTRANSCODE_InArgs
{
335
XDAS_Int32
size
;
336
XDAS_Int32
numBytes
;
339
XDAS_Int32
inputID
;
344
}
IVIDTRANSCODE_InArgs
;
345
346
354
typedef
struct
IVIDTRANSCODE_Status
{
355
XDAS_Int32
size
;
356
XDAS_Int32
extendedError
;
357
XDM1_SingleBufDesc
data
;
378
XDM_AlgBufInfo
bufInfo
;
390
}
IVIDTRANSCODE_Status
;
391
392
401
typedef
struct
IVIDTRANSCODE_OutArgs
{
402
XDAS_Int32
size
;
403
XDAS_Int32
extendedError
;
404
XDAS_Int32
bitsConsumed
;
407
XDAS_Int32
bitsGenerated
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
412
XDAS_Int32
decodedPictureType
;
416
XDAS_Int32
decodedPictureStructure
;
420
XDAS_Int32
encodedPictureType
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
425
XDAS_Int32
encodedPictureStructure
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
431
XDAS_Int32
decodedHeight
;
432
XDAS_Int32
decodedWidth
;
433
XDAS_Int32
outputID
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
446
XDAS_Int32
inputFrameSkipTranscodeFlag
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
454
XDM1_SingleBufDesc
encodedBuf
[
IVIDTRANSCODE_MAXOUTSTREAMS
];
460
XDAS_Int32
outBufsInUseFlag
;
470
}
IVIDTRANSCODE_OutArgs
;
471
472
483
typedef
IALG_Cmd
IVIDTRANSCODE_Cmd
;
484
485
489
typedef
struct
IVIDTRANSCODE_Fxns
{
490
IALG_Fxns
ialg
;
559
XDAS_Int32
(*
process
)(IVIDTRANSCODE_Handle handle,
XDM1_BufDesc
*inBufs,
560
XDM_BufDesc
*outBufs,
IVIDTRANSCODE_InArgs
*inArgs,
561
IVIDTRANSCODE_OutArgs
*outArgs);
562
563
599
XDAS_Int32
(*
control
)(IVIDTRANSCODE_Handle handle,
IVIDTRANSCODE_Cmd
id,
600
IVIDTRANSCODE_DynamicParams
*params,
IVIDTRANSCODE_Status
*status);
601
602
}
IVIDTRANSCODE_Fxns
;
603
604
607
#ifdef __cplusplus
608
}
609
#endif
610
611
#endif
Copyright 2013, Texas Instruments Incorporated