You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.7 KiB

/*
* 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 <pthread.h>
#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__ */