Framework Components Application Programming Interface (API)
fc-u06
Main Page
Modules
Data Structures
Files
Related Pages
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
packages
ti
sdo
fc
ires
hdvicp
ires_hdvicp2.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2012 - 2013, 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
*/
48
#ifndef ti_sdo_fc_ires_hdvicp_IRES_HDVICP2_
49
#define ti_sdo_fc_ires_hdvicp_IRES_HDVICP2_
50
53
54
55
#ifdef __cplusplus
56
extern
"C"
{
57
#endif
58
59
#include <
ti/xdais/xdas.h
>
60
#include <
ti/xdais/ires_common.h
>
61
#include <
ti/xdais/ires.h
>
62
66
#define IRES_HDVICP2_PROTOCOLNAME "ti.sdo.fc.ires.hdvicp.hdvicp2"
67
79
#define HDVICP2_MODNAME "ti.sdo.fc.ires.hdvicp2"
80
81
87
#define IRES_HDVICP2_ID_ANY -2
88
95
#define IRES_HDVICP2_ID_LATE_ACQUIRE -1
96
103
#define IRES_HDVICP2_INVALID_ADDR 0xFFFFFFFF
104
111
#define IRES_HDVICP2_TIMEOUTFOREVER ((UInt)(-1))
112
123
#define IRES_HDVICP2_UNKNOWNLATEACQUIREARG (-1)
124
125
/*
126
* Note, we wrap the PROTOCOLVERSION in an ifdef so the
127
* resource managers and algs get this version data placed in their object
128
* files. Apps, which include rman.h, will have this 'NOPROTOCOLREV' defined.
129
*/
130
#ifndef ti_sdo_fc_ires_NOPROTOCOLREV
131
135
static
IRES_ProtocolRevision
IRES_HDVICP2_PROTOCOLREVISION = {1, 0, 0};
136
137
#endif
138
142
typedef
struct
IRES_HDVICP2_Obj
*
IRES_HDVICP2_Handle
;
143
144
149
extern
unsigned
int
ti_sdo_fc_ires_hdvicp_HDVICP2_timeoutVal
;
150
154
typedef
IRES_YieldArgs
(*
ti_sdo_fc_ires_hdvicp_HDVICP2_GetYieldArgsFxn
)
155
(Int scratchId);
156
160
typedef
Void (*
ti_sdo_fc_ires_hdvicp_HDVICP2_YieldFxn
)
161
(
IRES_YieldResourceType
resource,
IRES_YieldContextHandle
ctxt,
162
IRES_YieldArgs
args);
163
164
165
169
typedef
struct
IRES_HDVICP2_ProtocolArgs
{
170
171
IRES_ProtocolArgs
base
;
172
XDAS_Int32
id
;
178
}
IRES_HDVICP2_ProtocolArgs
;
179
184
typedef
void (*
IRES_HDVICP2_CallbackFxn
)(
IALG_Handle
handle, Void * args);
185
194
typedef
enum
IRES_HDVICP2_Status
{
195
SAMECODEC
= 0,
196
SAMECODECTYPE
= 1,
198
DIFFERENTCODEC
= 2
199
}
IRES_HDVICP2_Status
;
200
201
207
typedef
struct
IRES_HDVICP2_Obj
{
208
209
IRES_Obj
ires
;
210
Void *
info
;
211
XDAS_Int32
id
;
216
XDAS_Void
*
registerBaseAddress
;
219
XDAS_Void
*
memoryBaseAddress
;
222
XDAS_Void
*
resetControlAddress
;
256
XDAS_Void
(*
acquire
)(
IALG_Handle
algHandle,
257
struct
IRES_HDVICP2_Obj
* hdvicpHandle,
258
IRES_YieldContext
* yieldCtxt,
XDAS_UInt32
* hdvicp2Status,
259
XDAS_UInt32
*configurationId,
XDAS_Int32
lateAcquireArg);
260
266
XDAS_Void
(*
release
)(
IALG_Handle
algHandle,
267
struct
IRES_HDVICP2_Obj
* hdvicpHandle);
268
278
XDAS_UInt32
(*
reacquireIfOwner
)(
IALG_Handle
algHandle,
279
struct
IRES_HDVICP2_Obj
* hdvicpHandle);
280
290
XDAS_Void
(*
configure
)(
IALG_Handle
algHandle,
291
struct
IRES_HDVICP2_Obj
* hdvicpHandle,
292
IRES_HDVICP2_CallbackFxn
cbFunctionPtr,
XDAS_Void
* cbArgs);
293
307
XDAS_UInt32
(*
wait
)(
IALG_Handle
algHandle,
308
struct
IRES_HDVICP2_Obj
*hdvicpHandle,
309
IRES_YieldContext
* yieldCtxt);
310
320
XDAS_Void
(*
done
) (
IALG_Handle
algHandle,
321
struct
IRES_HDVICP2_Obj
*hdvicpHandle);
334
XDAS_UInt32
(*
reset
)(
IALG_Handle
algHandle,
335
struct
IRES_HDVICP2_Obj
*hdvicpHandle);
336
337
}
IRES_HDVICP2_Obj
;
338
339
343
typedef
struct
IRES_HDVICP2_RegisterLayer
{
344
345
int
size
;
346
/* TBD */
347
}
IRES_HDVICP2_RegisterLayer
;
348
352
typedef
struct
IRES_HDVICP2_Properties
{
353
354
int
size
;
355
IRES_HDVICP2_RegisterLayer
*
globalRegs
;
/* Register layer of HDVICP2 */
356
}
IRES_HDVICP2_Properties
;
357
358
typedef
IRES_Status
(*
ti_sdo_fc_ires_hdvicp_HDVICP2_GetHdvicp2Fxn
)
359
(
XDAS_Int32
*Id,
IALG_Handle
alg, IRES_HDVICP2_Handle handle);
360
361
typedef
IRES_Status
(*
ti_sdo_fc_ires_hdvicp_HDVICP2_FreeHdvicp2Fxn
)
362
(
XDAS_Int32
Id,
IALG_Handle
alg, IRES_HDVICP2_Handle handle);
363
364
#ifdef __cplusplus
365
}
366
#endif
/* extern "C" */
367
370
#endif
Copyright 2014, Texas Instruments Incorporated