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