blob: a2b761be5f16e0343d0df75fbf829c6c8b194905 [file] [log] [blame]
Chuanzhi Wang1b3a5de2020-09-04 17:02:00 +08001/***************************************************************************
2 * Copyright (c) 2014 Amlogic, Inc. All rights reserved.
3 *
4 * This source code is subject to the terms and conditions defined in the
5 * file 'LICENSE' which is part of this source code package.
6 *
7 * Description:
8 *
9 * @brief linux dvb demux wrapper
10 * @file dvb_dmx_wrapper.h
11 *
Wentao MA270dc0f2022-08-23 13:17:26 +080012 * \author chuanzhi wang <chuanzhi.wang@amlogic.com>
Chuanzhi Wang1b3a5de2020-09-04 17:02:00 +080013 * \date 2020-07-16: create the document
14 ***************************************************************************/
15
16#ifndef _AM_DMX_H
17#define _AM_DMX_H
Chuanzhi Wang742ba112020-09-15 11:43:55 +080018
19#include "dvb_utils.h"
Chuanzhi Wang1b3a5de2020-09-04 17:02:00 +080020
21#ifdef __cplusplus
22extern "C"
23{
24#endif
25
Chuanzhi Wang742ba112020-09-15 11:43:55 +080026typedef void (*AML_DMX_DataCb)(int dev_no, int fd, const uint8_t *data, int len, void *user_data);
Chuanzhi Wang1b3a5de2020-09-04 17:02:00 +080027
hualing chen002e5b92022-02-23 17:51:21 +080028 /**\brief dmx device init, creat dmx thread
Chuanzhi Wang742ba112020-09-15 11:43:55 +080029 * \param dmx device number
30 * \return DVB_SUCCESS On success, DVB_FAILURE on error.
31 */
hualing chen002e5b92022-02-23 17:51:21 +080032 DVB_RESULT AML_DMX_Open(int dev_no);
Chuanzhi Wang1b3a5de2020-09-04 17:02:00 +080033
hualing chen002e5b92022-02-23 17:51:21 +080034 /**\brief dmx device uninit, destroy dmx thread
Chuanzhi Wang742ba112020-09-15 11:43:55 +080035 * \param dmx device number
36 * \return DVB_SUCCESS On success, DVB_FAILURE on error.
37 */
hualing chen002e5b92022-02-23 17:51:21 +080038 DVB_RESULT AML_DMX_Close(int dev_no);
Chuanzhi Wang1b3a5de2020-09-04 17:02:00 +080039
hualing chen002e5b92022-02-23 17:51:21 +080040 /**\brief allocate dmx filter
Chuanzhi Wang742ba112020-09-15 11:43:55 +080041 * \param dmx device number
42 * \param get dmx filter index
43 * \return DVB_SUCCESS On success, DVB_FAILURE on error.
44 */
hualing chen002e5b92022-02-23 17:51:21 +080045 DVB_RESULT AML_DMX_AllocateFilter(int dev_no, int *fhandle);
Chuanzhi Wang742ba112020-09-15 11:43:55 +080046
hualing chen002e5b92022-02-23 17:51:21 +080047 /**\brief set demux section filter
Chuanzhi Wang742ba112020-09-15 11:43:55 +080048 * \param dmx device number
49 * \param dmx filter index
50 * \param dmx section filter param
51 * \return DVB_SUCCESS On success, DVB_FAILURE on error.
52 */
hualing chen002e5b92022-02-23 17:51:21 +080053 DVB_RESULT AML_DMX_SetSecFilter(int dev_no, int fhandle, const struct dmx_sct_filter_params *params);
Chuanzhi Wang742ba112020-09-15 11:43:55 +080054
hualing chen002e5b92022-02-23 17:51:21 +080055 /**\brief set demux pes filter
Chuanzhi Wang742ba112020-09-15 11:43:55 +080056 * \param dmx device number
57 * \param dmx filter index
58 * \param dmx pes filter param
59 * \return DVB_SUCCESS On success, DVB_FAILURE on error.
60 */
hualing chen002e5b92022-02-23 17:51:21 +080061 DVB_RESULT AML_DMX_SetPesFilter(int dev_no, int fhandle, const struct dmx_pes_filter_params *params);
Chuanzhi Wang742ba112020-09-15 11:43:55 +080062
hualing chen002e5b92022-02-23 17:51:21 +080063 /**\brief set demux filter buffer
Chuanzhi Wang742ba112020-09-15 11:43:55 +080064 * \param dmx device number
65 * \param dmx filter index
66 * \param dmx filter buffer size
67 * \return DVB_SUCCESS On success, DVB_FAILURE on error.
68 */
hualing chen002e5b92022-02-23 17:51:21 +080069 DVB_RESULT AML_DMX_SetBufferSize(int dev_no, int fhandle, int size);
Chuanzhi Wang742ba112020-09-15 11:43:55 +080070
hualing chen002e5b92022-02-23 17:51:21 +080071 /**\brief free demux filter
Chuanzhi Wang742ba112020-09-15 11:43:55 +080072 * \param dmx device number
73 * \param dmx filter index
74 * \return DVB_SUCCESS On success, DVB_FAILURE on error.
75 */
hualing chen002e5b92022-02-23 17:51:21 +080076 DVB_RESULT AML_DMX_FreeFilter(int dev_no, int fhandle);
Chuanzhi Wang742ba112020-09-15 11:43:55 +080077
hualing chen002e5b92022-02-23 17:51:21 +080078 /**\brief start demux filter
Chuanzhi Wang742ba112020-09-15 11:43:55 +080079 * \param dmx device number
80 * \param dmx filter index
81 * \return DVB_SUCCESS On success, DVB_FAILURE on error.
82 */
hualing chen002e5b92022-02-23 17:51:21 +080083 DVB_RESULT AML_DMX_StartFilter(int dev_no, int fhandle);
Chuanzhi Wang742ba112020-09-15 11:43:55 +080084
hualing chen002e5b92022-02-23 17:51:21 +080085 /**\brief stop demux filter
Chuanzhi Wang742ba112020-09-15 11:43:55 +080086 * \param dmx device number
87 * \param dmx filter index
88 * \return DVB_SUCCESS On success, DVB_FAILURE on error.
89 */
hualing chen002e5b92022-02-23 17:51:21 +080090 DVB_RESULT AML_DMX_StopFilter(int dev_no, int fhandle);
Chuanzhi Wang742ba112020-09-15 11:43:55 +080091
hualing chen002e5b92022-02-23 17:51:21 +080092 /**\brief set demux callback
Chuanzhi Wang742ba112020-09-15 11:43:55 +080093 * \param dmx device number
94 * \param dmx filter index
95 * \param dmx filter callback
96 * \param dmx filter callback param
97 * \return DVB_SUCCESS On success, DVB_FAILURE on error.
98 */
hualing chen002e5b92022-02-23 17:51:21 +080099 DVB_RESULT AML_DMX_SetCallback(int dev_no, int fhandle, AML_DMX_DataCb cb, void *user_data);
Chuanzhi Wang1b3a5de2020-09-04 17:02:00 +0800100
101#ifdef __cplusplus
102}
103#endif
104#endif