/* * Copyright (c) Hisilicon Technologies Co., Ltd. 2006-2021. All rights reserved. * Description: adp_demux module external output. * Author: Hisilicon * Create: 2006-06-05 */ #ifndef __ADP_DEMUX_EXT_H__ #define __ADP_DEMUX_EXT_H__ #include #include "td_type.h" #include "uapi_demux.h" #ifdef __cplusplus #if __cplusplus extern "C" { #endif /* __cplusplus */ #endif /* __cplusplus */ #define MAX_SECTION_LEN 4096 #define MAX_SECTION_NUM 64 #define INVALID_PORT_DMX_ID 0xFFFF #define MAX_IP_THREAD_CNT 16 #define MAX_FILE_THREAD_CNT 16 typedef td_s32 (*t_commsectioncallback)(const td_u8 *buffer, td_s32 buffer_length, td_u8 *section_struct); typedef struct { td_u32 tspid; /* TSPID */ td_u32 buf_size; /* hareware BUFFER request */ td_u8 section_type; /* section type, 0-section 1-PES */ td_u8 crcflag; /* channel CRC open flag, 0-not open; 1-open */ td_u8 match[DMX_FILTER_MAX_DEPTH]; td_u8 mask[DMX_FILTER_MAX_DEPTH]; td_u8 negate[DMX_FILTER_MAX_DEPTH]; td_u16 filter_depth; /* filtrate depth, 0xff-data use all the user set, otherwise, use DVB algorithm(fixme) */ td_u32 time_out; /* timeout, in second. 0-permanent wait */ t_commsectioncallback fun_section_fun_callback; /* section end callback */ td_u8 *section_struct; } dmx_data_filter; td_s32 dmx_section_start_data_filter(td_u32 dmx_id, const dmx_data_filter *data_filter); td_s32 dmx_section_start_data_filter_ext(td_u32 dmx_id, const dmx_data_filter *data_filter, td_bool tee_enable); #ifdef __cplusplus #if __cplusplus } #endif /* __cplusplus */ #endif /* __cplusplus */ #endif /* __ADP_DEMUX_EXT_H__ */