blob: a2b761be5f16e0343d0df75fbf829c6c8b194905 [file] [log] [blame] [edit]
/***************************************************************************
* Copyright (c) 2014 Amlogic, Inc. All rights reserved.
*
* This source code is subject to the terms and conditions defined in the
* file 'LICENSE' which is part of this source code package.
*
* Description:
*
* @brief linux dvb demux wrapper
* @file dvb_dmx_wrapper.h
*
* \author chuanzhi wang <chuanzhi.wang@amlogic.com>
* \date 2020-07-16: create the document
***************************************************************************/
#ifndef _AM_DMX_H
#define _AM_DMX_H
#include "dvb_utils.h"
#ifdef __cplusplus
extern "C"
{
#endif
typedef void (*AML_DMX_DataCb)(int dev_no, int fd, const uint8_t *data, int len, void *user_data);
/**\brief dmx device init, creat dmx thread
* \param dmx device number
* \return DVB_SUCCESS On success, DVB_FAILURE on error.
*/
DVB_RESULT AML_DMX_Open(int dev_no);
/**\brief dmx device uninit, destroy dmx thread
* \param dmx device number
* \return DVB_SUCCESS On success, DVB_FAILURE on error.
*/
DVB_RESULT AML_DMX_Close(int dev_no);
/**\brief allocate dmx filter
* \param dmx device number
* \param get dmx filter index
* \return DVB_SUCCESS On success, DVB_FAILURE on error.
*/
DVB_RESULT AML_DMX_AllocateFilter(int dev_no, int *fhandle);
/**\brief set demux section filter
* \param dmx device number
* \param dmx filter index
* \param dmx section filter param
* \return DVB_SUCCESS On success, DVB_FAILURE on error.
*/
DVB_RESULT AML_DMX_SetSecFilter(int dev_no, int fhandle, const struct dmx_sct_filter_params *params);
/**\brief set demux pes filter
* \param dmx device number
* \param dmx filter index
* \param dmx pes filter param
* \return DVB_SUCCESS On success, DVB_FAILURE on error.
*/
DVB_RESULT AML_DMX_SetPesFilter(int dev_no, int fhandle, const struct dmx_pes_filter_params *params);
/**\brief set demux filter buffer
* \param dmx device number
* \param dmx filter index
* \param dmx filter buffer size
* \return DVB_SUCCESS On success, DVB_FAILURE on error.
*/
DVB_RESULT AML_DMX_SetBufferSize(int dev_no, int fhandle, int size);
/**\brief free demux filter
* \param dmx device number
* \param dmx filter index
* \return DVB_SUCCESS On success, DVB_FAILURE on error.
*/
DVB_RESULT AML_DMX_FreeFilter(int dev_no, int fhandle);
/**\brief start demux filter
* \param dmx device number
* \param dmx filter index
* \return DVB_SUCCESS On success, DVB_FAILURE on error.
*/
DVB_RESULT AML_DMX_StartFilter(int dev_no, int fhandle);
/**\brief stop demux filter
* \param dmx device number
* \param dmx filter index
* \return DVB_SUCCESS On success, DVB_FAILURE on error.
*/
DVB_RESULT AML_DMX_StopFilter(int dev_no, int fhandle);
/**\brief set demux callback
* \param dmx device number
* \param dmx filter index
* \param dmx filter callback
* \param dmx filter callback param
* \return DVB_SUCCESS On success, DVB_FAILURE on error.
*/
DVB_RESULT AML_DMX_SetCallback(int dev_no, int fhandle, AML_DMX_DataCb cb, void *user_data);
#ifdef __cplusplus
}
#endif
#endif