Framework Components Application Programming Interface (API)  fc-v07
Data Fields
IRES_HDVICP2_Obj Struct Reference

IRES_HDVICP2_Obj extends the generic IRES_Obj structure that is returned back to the algorithm requesting the resource. More...

#include <ires_hdvicp2.h>

Collaboration diagram for IRES_HDVICP2_Obj:
Collaboration graph

Data Fields

IRES_Obj ires
 
Void * info
 
XDAS_Int32 id
 
XDAS_VoidregisterBaseAddress
 
XDAS_VoidmemoryBaseAddress
 
XDAS_VoidresetControlAddress
 
XDAS_Void(* acquire )(IALG_Handle algHandle, struct IRES_HDVICP2_Obj *hdvicpHandle, IRES_YieldContext *yieldCtxt, XDAS_UInt32 *hdvicp2Status, XDAS_UInt32 *configurationId, XDAS_Int32 lateAcquireArg)
 Acquire the HDVICP2 resource. More...
 
XDAS_Void(* release )(IALG_Handle algHandle, struct IRES_HDVICP2_Obj *hdvicpHandle)
 Release the HDVICP2 resource. More...
 
XDAS_UInt32(* reacquireIfOwner )(IALG_Handle algHandle, struct IRES_HDVICP2_Obj *hdvicpHandle)
 Reacquire the HDVICP2 resource recent released. More...
 
XDAS_Void(* configure )(IALG_Handle algHandle, struct IRES_HDVICP2_Obj *hdvicpHandle, IRES_HDVICP2_CallbackFxn cbFunctionPtr, XDAS_Void *cbArgs)
 Register a callback function with a HDVICP2 instance. More...
 
XDAS_UInt32(* wait )(IALG_Handle algHandle, struct IRES_HDVICP2_Obj *hdvicpHandle, IRES_YieldContext *yieldCtxt)
 Wait until the HDVICP2 is done processing and then return. More...
 
XDAS_Void(* done )(IALG_Handle algHandle, struct IRES_HDVICP2_Obj *hdvicpHandle)
 Processing has completed. More...
 
XDAS_UInt32(* reset )(IALG_Handle algHandle, struct IRES_HDVICP2_Obj *hdvicpHandle)
 Reset the HDVICP2. More...
 

Detailed Description

IRES_HDVICP2_Obj extends the generic IRES_Obj structure that is returned back to the algorithm requesting the resource.

Field Documentation

IRES_Obj IRES_HDVICP2_Obj::ires

Base IRES_Obj struct

Void* IRES_HDVICP2_Obj::info

Reserved for future use

XDAS_Int32 IRES_HDVICP2_Obj::id

HDVICP2 id granted

Remarks
Could be 0, 1, 2, or LATE_ACQUIRE
XDAS_Void* IRES_HDVICP2_Obj::registerBaseAddress

Register space base address of the HDVICP2 being granted

XDAS_Void* IRES_HDVICP2_Obj::memoryBaseAddress

Memory space base address of the HDVICP2 being granted

XDAS_Void* IRES_HDVICP2_Obj::resetControlAddress

HDVICP reset controller address

Remarks
bit 0 -> ICONT1 reset, bit 1 -> ICONT2 reset
XDAS_Void(* IRES_HDVICP2_Obj::acquire) (IALG_Handle algHandle, struct IRES_HDVICP2_Obj *hdvicpHandle, IRES_YieldContext *yieldCtxt, XDAS_UInt32 *hdvicp2Status, XDAS_UInt32 *configurationId, XDAS_Int32 lateAcquireArg)

Acquire the HDVICP2 resource.

Remarks
This call acquires the HDVICP resource which the alg may (or may not) have specifically requested.
The returned hdvicp2Status indicates the status of the particular HDVICP2 unit that is returned.
See also
IRES_HDVICP2_Status
Remarks
The configurationId argument is a codec specified parameter that is both an input and output parameter. It specifies the mode in which this particular HDVICP2 was used last time, and the mode in which it will be used this time.
This API takes a yieldContext as argument, as it may yield the processor to higher priority codecs in the system.
lateAcquireId is an optionally framework supplied parameter (sometimes provided via an XDM control() call setting the XDM_SETLATEACQUIREARG. If not supplied, the codec should pass the value IRES_HDVICP2_UNKNOWNLATEACQUIREARG.
See also
IRES_HDVICP2_UNKNOWNLATEACQUIREARG
XDAS_Void(* IRES_HDVICP2_Obj::release) (IALG_Handle algHandle, struct IRES_HDVICP2_Obj *hdvicpHandle)

Release the HDVICP2 resource.

Remarks
This makes the resource available for use by other algorithms.
XDAS_UInt32(* IRES_HDVICP2_Obj::reacquireIfOwner) (IALG_Handle algHandle, struct IRES_HDVICP2_Obj *hdvicpHandle)

Reacquire the HDVICP2 resource recent released.

Returns
XDAS_TRUE The resource was not yet acquired by another algorithm, and the resource handle is still valid.
XDAS_FALSE The resource is no longer available and has been deactivated.
XDAS_Void(* IRES_HDVICP2_Obj::configure) (IALG_Handle algHandle, struct IRES_HDVICP2_Obj *hdvicpHandle, IRES_HDVICP2_CallbackFxn cbFunctionPtr, XDAS_Void *cbArgs)

Register a callback function with a HDVICP2 instance.

Remarks
The callback is invoked when an interrupt fires after processing data.
It is the algorithm's responsibility to configure the HDVICP2 to process data and fire the interrupt when done.
XDAS_UInt32(* IRES_HDVICP2_Obj::wait) (IALG_Handle algHandle, struct IRES_HDVICP2_Obj *hdvicpHandle, IRES_YieldContext *yieldCtxt)

Wait until the HDVICP2 is done processing and then return.

Remarks
This is a blocking call, unless a positive timeout value is configured, inwhich case the call returns after timeout.
This function is passed a yieldContext, and will relinquish the processor while it waits for the HDVICP2 to finish the processing and return from wait.
Returns
XDAS_TRUE Success
XDAS_FALSE Failure/Timeout
XDAS_Void(* IRES_HDVICP2_Obj::done) (IALG_Handle algHandle, struct IRES_HDVICP2_Obj *hdvicpHandle)

Processing has completed.

Remarks
This is called from within the interrupt handler function when processing completes, and is used to unblock the wait() API.
Typically, this is called from within the algortihm's callback function (see acquire() call).
XDAS_UInt32(* IRES_HDVICP2_Obj::reset) (IALG_Handle algHandle, struct IRES_HDVICP2_Obj *hdvicpHandle)

Reset the HDVICP2.

Remarks
This can be called by the algorithm to "reset" the HDVICP2, and is usually called when an acquired HDVICP2 is "dirty", i.e, it requires both program/data reload.
It works off a configured maximum reset cycle delay.
Returns
XDAS_TRUE Success
XDAS_FALSE Failure

The documentation for this struct was generated from the following file:
Copyright 2016, Texas Instruments Incorporated