TI MM H.264 Decoder User Guide
mm_dec.h File Reference

Introduction

This file contains interface header for TI MM API decoder.

Go to the source code of this file.

Data Structures

struct  mm_dec_ctrl_params
 

Enumerations

enum  mm_dec_process_cb {
  MM_CB_STRUNIT_PROCESSED, MM_CB_SPS_RELEASE, MM_CB_PPS_RELEASE, MM_CB_PICT_DECODED,
  MM_CB_PICT_DISPLAY, MM_CB_PICT_RELEASE, MM_CB_PICT_END, MM_CB_STR_END,
  MM_CB_ERROR_FATAL, MM_CB_FORCE32BITS = 0x7FFFFFFFU
}
 callbacks from codec library More...
 

Functions

int32_t MM_DEC_Init (void)
 MM_DEC_Init - Initialize the decoder This function should called only once. More...
 
int32_t MM_DEC_Create (mm_vid_create_params *params, mm_dec_ctrl_params *ctrl, uint32_t *chId)
 MM_DEC_Create - Create the decoder instance (channel specific API) More...
 
int32_t MM_DEC_RegisterCb (void(*mm_ret_resource)(struct mm_buffer *buf, mm_dec_process_cb cb_type), uint32_t chId)
 MM_DEC_RegisterCb - Register Callback (channel specific API) This is the callback function when decoder completes frame decoding. More...
 
int32_t MM_DEC_StartStreaming (uint32_t chId, mm_buffertype type)
 MM_DEC_StartStreaming - Start the instance (channel specific API) More...
 
int32_t MM_DEC_BufPrepare (struct mm_buffer *buffer, uint32_t chId)
 MM_DEC_BufPrepare - Alloc/Prepare the decoder buffers (channel specific API) This needs to be called for all input and output buffers atleast once to map the buffer with VXD MMU. More...
 
int32_t MM_DEC_Process (struct mm_buffer *in_buf, struct mm_buffer *out_buf, uint32_t chId)
 MM_DEC_Process - Perform the decode Process (channel specific API) Non-blocking API, Decode completion is notified by callback. More...
 
int32_t MM_DEC_StopStreaming (uint32_t chId, mm_buffertype type)
 MM_DEC_StopStreaming - Stop the instance (channel specific API) More...
 
int32_t MM_DEC_Destroy (uint32_t chId)
 MM_DEC_Destroy - Destroy the decoder instance (channel specific API) More...
 
int32_t MM_DEC_Deinit (void)
 MM_DEC_Deinit - De-initialize the decoder This function should called only once. More...
 

Enumeration Type Documentation

◆ mm_dec_process_cb

callbacks from codec library

*  MM Decoder supported callback types
*  Application shall use this type to free/display input/output buffers 
Enumerator
MM_CB_STRUNIT_PROCESSED 

0

MM_CB_SPS_RELEASE 

1

MM_CB_PPS_RELEASE 

2

MM_CB_PICT_DECODED 

3

MM_CB_PICT_DISPLAY 

4

MM_CB_PICT_RELEASE 

5

MM_CB_PICT_END 

6

MM_CB_STR_END 

7

MM_CB_ERROR_FATAL 

8

MM_CB_FORCE32BITS 

0x7FFFFFFFU

Function Documentation

◆ MM_DEC_Init()

int32_t MM_DEC_Init ( void  )

MM_DEC_Init - Initialize the decoder This function should called only once.

*  Return: 0          -> Success
*  Return: -ve values -> Failure 

◆ MM_DEC_Create()

int32_t MM_DEC_Create ( mm_vid_create_params params,
mm_dec_ctrl_params ctrl,
uint32_t *  chId 
)

MM_DEC_Create - Create the decoder instance (channel specific API)

*  params: MM Decoder create params
*  chId  : Channel ID
*  Return: 0 -> Success
*  Return:-1 -> Failure 

◆ MM_DEC_RegisterCb()

int32_t MM_DEC_RegisterCb ( void(*)(struct mm_buffer *buf, mm_dec_process_cb cb_type)  mm_ret_resource,
uint32_t  chId 
)

MM_DEC_RegisterCb - Register Callback (channel specific API) This is the callback function when decoder completes frame decoding.

*  buf     : Decoder output buffer (frame buffer)
*  cb_type : callback Type
*  chId : Channel ID
*  Return  : 0 -> Success
*  Return  :-1 -> Failure 

◆ MM_DEC_StartStreaming()

int32_t MM_DEC_StartStreaming ( uint32_t  chId,
mm_buffertype  type 
)

MM_DEC_StartStreaming - Start the instance (channel specific API)

*  chId  : Channel ID
*  type  : buffer type, input or output
*  Return: 0 -> Success
*  Return:-1 -> Failure 

◆ MM_DEC_BufPrepare()

int32_t MM_DEC_BufPrepare ( struct mm_buffer buffer,
uint32_t  chId 
)

MM_DEC_BufPrepare - Alloc/Prepare the decoder buffers (channel specific API) This needs to be called for all input and output buffers atleast once to map the buffer with VXD MMU.

*  buffer: Buffer Object
*  chId  : Channel ID
*  Return: 0 -> Success
*  Return:-1 -> Failure 

◆ MM_DEC_Process()

int32_t MM_DEC_Process ( struct mm_buffer in_buf,
struct mm_buffer out_buf,
uint32_t  chId 
)

MM_DEC_Process - Perform the decode Process (channel specific API) Non-blocking API, Decode completion is notified by callback.

*  in_buf  : Input Buffer Object
*  out_buf : Output Buffer Object
*  chId    : Channel ID
*  Return  : 0 -> Success
*  Return  :-1 -> Failure

◆ MM_DEC_StopStreaming()

int32_t MM_DEC_StopStreaming ( uint32_t  chId,
mm_buffertype  type 
)

MM_DEC_StopStreaming - Stop the instance (channel specific API)

*  chId  : Channel ID
*  type  : buffer type, input or output
*  Return: 0 -> Success
*  Return:-1 -> Failure 

◆ MM_DEC_Destroy()

int32_t MM_DEC_Destroy ( uint32_t  chId)

MM_DEC_Destroy - Destroy the decoder instance (channel specific API)

*  chId  : Channel ID
*  Return: 0 -> Success
*  Return:-1 -> Failure 

◆ MM_DEC_Deinit()

int32_t MM_DEC_Deinit ( void  )

MM_DEC_Deinit - De-initialize the decoder This function should called only once.

*  Return: 0 -> Success
*  Return:-1 -> Failure