Data Structures | |
struct | XDM_BufDesc |
Buffer descriptor for multiple buffers. More... | |
struct | XDM_SingleBufDesc |
Single buffer descriptor. More... | |
struct | XDM1_SingleBufDesc |
Single buffer descriptor. More... | |
union | XDM2_BufSize |
Union describing a buffer size. More... | |
struct | XDM2_SingleBufDesc |
Single buffer descriptor. More... | |
struct | XDM1_BufDesc |
Buffer descriptor. More... | |
struct | XDM2_BufDesc |
Buffer descriptor. More... | |
struct | XDM1_AlgBufInfo |
Buffer information descriptor for input and output buffers. More... | |
struct | XDM_AlgBufInfo |
Buffer information descriptor for input and output buffers. More... | |
struct | XDM_Date |
Date and time. More... | |
struct | XDM_Point |
2-dimensional point More... | |
struct | XDM_Rect |
Rectangle. More... | |
struct | XDM_ContextInfo |
Buffer information descriptor for input and output buffers. More... | |
struct | XDM_Context |
Context used by split codecs. More... | |
struct | XDM_DataSyncDesc |
Descriptor for the chunk of data being transferred in one call to putData or getData. More... | |
Defines | |
#define | XDM_EOK IALG_EOK |
#define | XDM_EFAIL IALG_EFAIL |
#define | XDM_EUNSUPPORTED -3 |
#define | XDM_ERUNTIME -2 |
General runtime failure. | |
#define | XDM_MAX_IO_BUFFERS 16 |
#define | XDM_ISACCESSMODE_READ(x) (((x) >> XDM_ACCESSMODE_READ) & 0x1) |
Check an access mask for CPU read access. | |
#define | XDM_ISACCESSMODE_WRITE(x) (((x) >> XDM_ACCESSMODE_WRITE) & 0x1) |
Check an access mask for CPU write access. | |
#define | XDM_CLEARACCESSMODE_READ(x) ((x) &= (~(0x1 << XDM_ACCESSMODE_READ))) |
Clear the "CPU read access" bit in an access mask. | |
#define | XDM_CLEARACCESSMODE_WRITE(x) ((x) &= (~(0x1 << XDM_ACCESSMODE_WRITE))) |
Clear the "CPU write access" bit in an access mask. | |
#define | XDM_SETACCESSMODE_READ(x) ((x) |= (0x1 << XDM_ACCESSMODE_READ)) |
Set the bit to indicate CPU read access in an access mask. | |
#define | XDM_SETACCESSMODE_WRITE(x) ((x) |= (0x1 << XDM_ACCESSMODE_WRITE)) |
Set the bit to indicate CPU write access in an access mask. | |
#define | XDM_CUSTOMENUMBASE 0x100 |
Base of algorithm-specific enum values. | |
#define | XDM_CUSTOMCMDBASE 0x100 |
Base of algorithm-specific commands. | |
#define | XDM_ISFATALERROR(x) (((x) >> XDM_FATALERROR) & 0x1) |
#define | XDM_ISUNSUPPORTEDPARAM(x) (((x) >> XDM_UNSUPPORTEDPARAM) & 0x1) |
#define | XDM_ISUNSUPPORTEDINPUT(x) (((x) >> XDM_UNSUPPORTEDINPUT) & 0x1) |
#define | XDM_ISCORRUPTEDHEADER(x) (((x) >> XDM_CORRUPTEDHEADER) & 0x1) |
#define | XDM_ISCORRUPTEDDATA(x) (((x) >> XDM_CORRUPTEDDATA) & 0x1) |
#define | XDM_ISINSUFFICIENTDATA(x) (((x) >> XDM_INSUFFICIENTDATA) & 0x1) |
#define | XDM_ISAPPLIEDCONCEALMENT(x) (((x) >> XDM_APPLIEDCONCEALMENT) & 0x1) |
#define | XDM_SETFATALERROR(x) ((x) |= (0x1 << XDM_FATALERROR)) |
#define | XDM_SETUNSUPPORTEDPARAM(x) ((x) |= (0x1 << XDM_UNSUPPORTEDPARAM)) |
#define | XDM_SETUNSUPPORTEDINPUT(x) ((x) |= (0x1 << XDM_UNSUPPORTEDINPUT)) |
#define | XDM_SETCORRUPTEDHEADER(x) ((x) |= (0x1 << XDM_CORRUPTEDHEADER)) |
#define | XDM_SETCORRUPTEDDATA(x) ((x) |= (0x1 << XDM_CORRUPTEDDATA)) |
#define | XDM_SETINSUFFICIENTDATA(x) ((x) |= (0x1 << XDM_INSUFFICIENTDATA)) |
#define | XDM_SETAPPLIEDCONCEALMENT(x) ((x) |= (0x1 << XDM_APPLIEDCONCEALMENT)) |
#define | XDM_MAX_CONTEXT_BUFFERS 32 |
Maximum number of context buffers. | |
Typedefs | |
typedef struct XDM_BufDesc | XDM_BufDesc |
Buffer descriptor for multiple buffers. | |
typedef struct XDM_SingleBufDesc | XDM_SingleBufDesc |
Single buffer descriptor. | |
typedef struct XDM1_SingleBufDesc | XDM1_SingleBufDesc |
Single buffer descriptor. | |
typedef struct XDM2_SingleBufDesc | XDM2_SingleBufDesc |
Single buffer descriptor. | |
typedef struct XDM1_BufDesc | XDM1_BufDesc |
Buffer descriptor. | |
typedef struct XDM2_BufDesc | XDM2_BufDesc |
Buffer descriptor. | |
typedef struct XDM1_AlgBufInfo | XDM1_AlgBufInfo |
Buffer information descriptor for input and output buffers. | |
typedef struct XDM_AlgBufInfo | XDM_AlgBufInfo |
Buffer information descriptor for input and output buffers. | |
typedef struct XDM_Date | XDM_Date |
Date and time. | |
typedef struct XDM_Point | XDM_Point |
2-dimensional point | |
typedef struct XDM_Rect | XDM_Rect |
Rectangle. | |
typedef struct XDM_ContextInfo | XDM_ContextInfo |
Buffer information descriptor for input and output buffers. | |
typedef struct XDM_Context | XDM_Context |
Context used by split codecs. | |
typedef struct XDM_DataSyncDesc | XDM_DataSyncDesc |
Descriptor for the chunk of data being transferred in one call to putData or getData. | |
typedef Void * | XDM_DataSyncHandle |
Handle that identifies the DataSync FIFO. | |
typedef Void(* | XDM_DataSyncPutFxn )(XDM_DataSyncHandle dataSyncHandle, XDM_DataSyncDesc *dataSyncDesc) |
Non-blocking API to signal "data ready" to one or more consumers. | |
typedef XDAS_Int32(* | XDM_DataSyncGetFxn )(XDM_DataSyncHandle dataSyncHandle, XDM_DataSyncDesc *dataSyncDesc) |
API to obtain data information from a consumer. | |
typedef XDAS_Int32(* | XDM_DataSyncGetBufferFxn )(XDM_DataSyncHandle dataSyncHandle, XDM_DataSyncDesc *dataSyncDesc) |
API to obtain empty bitstream buffers from an allocator to be filled by the algorithm. | |
typedef XDAS_Int32(* | XDM_DataSyncPutBufferFxn )(XDM_DataSyncHandle dataSyncHandle, XDM_DataSyncDesc *dataSyncDesc) |
API to return consumed bitstream buffers to the original provider. | |
Enumerations | |
enum | XDM_AccessMode { XDM_ACCESSMODE_READ = 0, XDM_ACCESSMODE_WRITE = 1 } |
Access modes used to declare how the algorithm accessed buffers. More... | |
enum | XDM_CmdId { XDM_GETSTATUS = 0, XDM_SETPARAMS = 1, XDM_RESET = 2, XDM_SETDEFAULT = 3, XDM_FLUSH = 4, XDM_GETBUFINFO = 5, XDM_GETVERSION = 6, XDM_GETCONTEXTINFO = 7, XDM_GETDYNPARAMSDEFAULT = 8, XDM_SETLATEACQUIREARG = 9 } |
Standard control commands that must be implemented by XDM compliant multimedia algorithms. More... | |
enum | XDM_ErrorBit { XDM_PARAMSCHANGE = 8, XDM_APPLIEDCONCEALMENT = 9, XDM_INSUFFICIENTDATA = 10, XDM_CORRUPTEDDATA = 11, XDM_CORRUPTEDHEADER = 12, XDM_UNSUPPORTEDINPUT = 13, XDM_UNSUPPORTEDPARAM = 14, XDM_FATALERROR = 15 } |
Extended error information. More... | |
enum | XDM_DataFormat { XDM_BYTE = 1, XDM_LE_16 = 2, XDM_LE_32 = 3, XDM_LE_64 = 4, XDM_BE_16 = 5, XDM_BE_32 = 6, XDM_BE_64 = 7 } |
Endianness of data. More... | |
enum | XDM_EncodingPreset { XDM_DEFAULT = 0, XDM_HIGH_QUALITY = 1, XDM_HIGH_SPEED = 2, XDM_USER_DEFINED = 3, XDM_HIGH_SPEED_MED_QUALITY = 4, XDM_MED_SPEED_MED_QUALITY = 5, XDM_MED_SPEED_HIGH_QUALITY = 6, XDM_ENCODING_PRESET_MAX = 7, XDM_PRESET_DEFAULT = XDM_MED_SPEED_MED_QUALITY } |
Encoding presets. More... | |
enum | XDM_DecMode { XDM_DECODE_AU = 0, XDM_PARSE_HEADER = 1 } |
Decode entire access unit or only header. More... | |
enum | XDM_EncMode { XDM_ENCODE_AU = 0, XDM_GENERATE_HEADER = 1 } |
Encode entire access unit or only header. More... | |
enum | XDM_ChromaFormat { XDM_CHROMA_NA = -1, XDM_YUV_420P = 1, XDM_YUV_422P = 2, XDM_YUV_422IBE = 3, XDM_YUV_422ILE = 4, XDM_YUV_444P = 5, XDM_YUV_411P = 6, XDM_GRAY = 7, XDM_RGB = 8, XDM_YUV_420SP = 9, XDM_ARGB8888 = 10, XDM_RGB555 = 11, XDM_RGB565 = 12, XDM_YUV_444ILE = 13, XDM_CHROMAFORMAT_DEFAULT = XDM_YUV_422ILE } |
Chroma formats. More... | |
enum | XDM_MemoryType { XDM_MEMTYPE_ROW = 0, XDM_MEMTYPE_RAW = 0, XDM_MEMTYPE_TILED8 = 1, XDM_MEMTYPE_TILED16 = 2, XDM_MEMTYPE_TILED32 = 3, XDM_MEMTYPE_TILEDPAGE = 4 } |
Memory space attributes. More... | |
enum | XDM_MemoryUsageMode { XDM_MEMUSAGE_DATASYNC = 0 } |
Memory space attributes. More... |
This is the XDM interface.
#define XDM_EOK IALG_EOK |
Success.
#define XDM_EFAIL IALG_EFAIL |
General failure.
#define XDM_EUNSUPPORTED -3 |
Request is unsupported.
#define XDM_ERUNTIME -2 |
General runtime failure.
#define XDM_MAX_IO_BUFFERS 16 |
Max I/O Buffers
#define XDM_ISACCESSMODE_READ | ( | x ) | (((x) >> XDM_ACCESSMODE_READ) & 0x1) |
Check an access mask for CPU read access.
x | access mask. |
#define XDM_ISACCESSMODE_WRITE | ( | x ) | (((x) >> XDM_ACCESSMODE_WRITE) & 0x1) |
Check an access mask for CPU write access.
x | access mask. |
#define XDM_CLEARACCESSMODE_READ | ( | x ) | ((x) &= (~(0x1 << XDM_ACCESSMODE_READ))) |
Clear the "CPU read access" bit in an access mask.
x | access mask. |
#define XDM_CLEARACCESSMODE_WRITE | ( | x ) | ((x) &= (~(0x1 << XDM_ACCESSMODE_WRITE))) |
Clear the "CPU write access" bit in an access mask.
x | access mask. |
#define XDM_SETACCESSMODE_READ | ( | x ) | ((x) |= (0x1 << XDM_ACCESSMODE_READ)) |
Set the bit to indicate CPU read access in an access mask.
x | access mask. |
#define XDM_SETACCESSMODE_WRITE | ( | x ) | ((x) |= (0x1 << XDM_ACCESSMODE_WRITE)) |
Set the bit to indicate CPU write access in an access mask.
x | access mask. |
#define XDM_CUSTOMENUMBASE 0x100 |
Base of algorithm-specific enum values.
USERENUM0
and USERENUM1
are simply examples): #define MYMODULE_MYVENDOR_USERENUM0 (XDM_CUSTOMENUMBASE + 0) #define MYMODULE_MYVENDOR_USERENUM1 (XDM_CUSTOMENUMBASE + 1)
#define XDM_CUSTOMCMDBASE 0x100 |
Base of algorithm-specific commands.
USERCMD0
and USERCMD1
are simply examples): #define MYMODULE_MYVENDOR_USERCMD0 (XDM_CUSTOMCMDBASE + 0) #define MYMODULE_MYVENDOR_USERCMD1 (XDM_CUSTOMCMDBASE + 1)
#define XDM_ISFATALERROR | ( | x ) | (((x) >> XDM_FATALERROR) & 0x1) |
Check for fatal error
#define XDM_ISUNSUPPORTEDPARAM | ( | x ) | (((x) >> XDM_UNSUPPORTEDPARAM) & 0x1) |
Check for unsupported parameter
#define XDM_ISUNSUPPORTEDINPUT | ( | x ) | (((x) >> XDM_UNSUPPORTEDINPUT) & 0x1) |
Check for unsupported input
#define XDM_ISCORRUPTEDHEADER | ( | x ) | (((x) >> XDM_CORRUPTEDHEADER) & 0x1) |
Check for corrupted header
#define XDM_ISCORRUPTEDDATA | ( | x ) | (((x) >> XDM_CORRUPTEDDATA) & 0x1) |
Check for corrupted data
#define XDM_ISINSUFFICIENTDATA | ( | x ) | (((x) >> XDM_INSUFFICIENTDATA) & 0x1) |
Check for insufficient data
#define XDM_ISAPPLIEDCONCEALMENT | ( | x ) | (((x) >> XDM_APPLIEDCONCEALMENT) & 0x1) |
Check for applied concealment
#define XDM_SETFATALERROR | ( | x ) | ((x) |= (0x1 << XDM_FATALERROR)) |
Set fatal error bit
#define XDM_SETUNSUPPORTEDPARAM | ( | x ) | ((x) |= (0x1 << XDM_UNSUPPORTEDPARAM)) |
Set unsupported parameter bit
#define XDM_SETUNSUPPORTEDINPUT | ( | x ) | ((x) |= (0x1 << XDM_UNSUPPORTEDINPUT)) |
Set unsupported input bit
#define XDM_SETCORRUPTEDHEADER | ( | x ) | ((x) |= (0x1 << XDM_CORRUPTEDHEADER)) |
Set corrupted header bit
#define XDM_SETCORRUPTEDDATA | ( | x ) | ((x) |= (0x1 << XDM_CORRUPTEDDATA)) |
Set corrupted data bit
#define XDM_SETINSUFFICIENTDATA | ( | x ) | ((x) |= (0x1 << XDM_INSUFFICIENTDATA)) |
Set insufficient data bit
#define XDM_SETAPPLIEDCONCEALMENT | ( | x ) | ((x) |= (0x1 << XDM_APPLIEDCONCEALMENT)) |
Set applied concealment bit
#define XDM_MAX_CONTEXT_BUFFERS 32 |
Maximum number of context buffers.
typedef struct XDM_BufDesc XDM_BufDesc |
Buffer descriptor for multiple buffers.
numBufs
can not be larger than XDM_MAX_IO_BUFFERS. Related, *bufs
and *bufSizes
will never be indexed beyond XDM_MAX_IO_BUFFERS elements.*bufs
is a sparse array, *bufSizes
will be a similar sparse array. The NULL
indexes in bufs
will be ignored in bufSizes
.numBufs
describes the number of buffers in this descriptor. if *bufs
is a sparse array, numBufs
describes the number of non-NULL buffers in this descriptor; this is not necessarily the maximum index of the last buffer pointed to by *bufs
.XDM_BufDesc outBufs; XDAS_Int32 bufSizeArray[XDM_MAX_IO_BUFFERS]; XDAS_Int8 *pBuffers[XDM_MAX_IO_BUFFERS]; XDAS_Int8 buffer1[4096]; XDAS_Int8 buffer2[1024]; // ensure all pBuffers and bufSizeArray are initially NULL memset(pBuffers, 0, sizeof(pBuffers[0]) * XDM_MAX_IO_BUFFERS); memset(bufSizeArray, 0, sizeof(bufSizeArray[0]) * XDM_MAX_IO_BUFFERS); pBuffers[0] = buffer1; pBuffers[4] = buffer2; bufSizeArray[0] = 4096; bufSizeArray[4] = 1024; outBufs.bufs = pBuffers; outBufs.numBufs = 2; outBufs.bufSizes = bufSizeArray;
typedef struct XDM_SingleBufDesc XDM_SingleBufDesc |
Single buffer descriptor.
typedef struct XDM1_SingleBufDesc XDM1_SingleBufDesc |
Single buffer descriptor.
typedef struct XDM2_SingleBufDesc XDM2_SingleBufDesc |
Single buffer descriptor.
memType
field, and uses the XDM_BufSize union to indicate the size of the buffer. As a result, this data type can be used to describe complex memory types (e.g. tiled memory). typedef struct XDM1_BufDesc XDM1_BufDesc |
Buffer descriptor.
typedef struct XDM2_BufDesc XDM2_BufDesc |
Buffer descriptor.
typedef struct XDM1_AlgBufInfo XDM1_AlgBufInfo |
Buffer information descriptor for input and output buffers.
typedef struct XDM_AlgBufInfo XDM_AlgBufInfo |
Buffer information descriptor for input and output buffers.
typedef struct XDM_ContextInfo XDM_ContextInfo |
Buffer information descriptor for input and output buffers.
typedef struct XDM_Context XDM_Context |
Context used by split codecs.
typedef struct XDM_DataSyncDesc XDM_DataSyncDesc |
Descriptor for the chunk of data being transferred in one call to putData or getData.
typedef Void* XDM_DataSyncHandle |
Handle that identifies the DataSync FIFO.
typedef Void(* XDM_DataSyncPutFxn)(XDM_DataSyncHandle dataSyncHandle, XDM_DataSyncDesc *dataSyncDesc) |
Non-blocking API to signal "data ready" to one or more consumers.
[in] | dataSyncHandle | Handle to a data sync instance. |
[out] | dataSyncDesc | Full data sync descriptor. This includes one or more filled data buffers. |
typedef XDAS_Int32(* XDM_DataSyncGetFxn)(XDM_DataSyncHandle dataSyncHandle, XDM_DataSyncDesc *dataSyncDesc) |
API to obtain data information from a consumer.
[in] | dataSyncHandle | Handle to a data sync instance. |
[out] | dataSyncDesc | Empty data sync descriptor to be filled by the producer. Only the size field must be initialized by the caller. |
dataSyncDesc
will contain details about the provided data.typedef XDAS_Int32(* XDM_DataSyncGetBufferFxn)(XDM_DataSyncHandle dataSyncHandle, XDM_DataSyncDesc *dataSyncDesc) |
API to obtain empty bitstream buffers from an allocator to be filled by the algorithm.
[in] | dataSyncHandle | Handle to a data sync instance. |
[out] | dataSyncDesc | Empty data sync descriptor to be filled by the allocator. Only the size field must be initialized by the caller. |
dataSyncDesc
will contain details about the allocated buffer(s).XDM_EOK | Allocator is able to provide the buffer or is not able to provide the buffer but indicates that it can provide the buffers in future such calls. |
XDM_EFAIL | Allocator is unable to provide the buffer and it will not be able to provide the buffer in the future. |
typedef XDAS_Int32(* XDM_DataSyncPutBufferFxn)(XDM_DataSyncHandle dataSyncHandle, XDM_DataSyncDesc *dataSyncDesc) |
enum XDM_AccessMode |
Access modes used to declare how the algorithm accessed buffers.
enum XDM_CmdId |
Standard control commands that must be implemented by XDM compliant multimedia algorithms.
XDM_GETSTATUS |
Query algorithm to fill status structure.
|
XDM_SETPARAMS |
Set run time dynamic parameters. |
XDM_RESET |
Reset the algorithm. All fields in the internal data structures are reset and all internal buffers are flushed. |
XDM_SETDEFAULT |
Restore the algorithm's internal state to its original, default values.
|
XDM_FLUSH |
Handle end of stream conditions. This command forces the algorithm to output data without additional input. The recommended sequence is to call the control() function (with XDM_FLUSH) followed by repeated calls to the process() function until it returns an error.
|
XDM_GETBUFINFO |
Query algorithm instance regarding its properties of input and output buffers.
|
XDM_GETVERSION |
Query the algorithm's version. The result will be returned in the
|
XDM_GETCONTEXTINFO |
Query a split codec part for its context needs.
|
XDM_GETDYNPARAMSDEFAULT |
Query the algorithm to fill the default values for the parameters which can be configured dynamically.
|
XDM_SETLATEACQUIREARG |
Set an algorithm's 'late acquire' argument.
|
enum XDM_ErrorBit |
Extended error information.
enum XDM_DataFormat |
Endianness of data.
enum XDM_EncodingPreset |
Encoding presets.
XDM_DEFAULT |
Default setting of encoder. See codec specific documentation for its encoding behaviour. |
XDM_HIGH_QUALITY |
High quality encoding. |
XDM_HIGH_SPEED |
High speed encoding. |
XDM_USER_DEFINED |
User defined configuration, using advanced parameters. |
XDM_HIGH_SPEED_MED_QUALITY |
High speed, medium quality encoding. |
XDM_MED_SPEED_MED_QUALITY |
Medium speed, medium quality encoding. |
XDM_MED_SPEED_HIGH_QUALITY |
Medium speed, high quality encoding. |
XDM_ENCODING_PRESET_MAX |
|
XDM_PRESET_DEFAULT |
Default setting of encoder. See codec specific documentation for its encoding behaviour. |
enum XDM_DecMode |
Decode entire access unit or only header.
enum XDM_EncMode |
Encode entire access unit or only header.
enum XDM_ChromaFormat |
Chroma formats.
enum XDM_MemoryType |
Memory space attributes.
XDM_MEMTYPE_ROW |
Linear (standard) memory.
|
XDM_MEMTYPE_RAW |
Linear (standard) memory.
|
XDM_MEMTYPE_TILED8 |
|
XDM_MEMTYPE_TILED16 |
|
XDM_MEMTYPE_TILED32 |
|
XDM_MEMTYPE_TILEDPAGE |
|
enum XDM_MemoryUsageMode |
Memory space attributes.
XDM_MEMUSAGE_DATASYNC |
Bit 0 - Data Sync mode
|