demux: remove the modification to the uapi/linux/dvb header file. [1/3]

PD#SWPL-98901

Problem:
cant not modify uapi/linux/dvb header file.

Solution:
move the modification of uapi/linux/dvb to the new header file.

Verify:
no verify.

Signed-off-by: hongyu.chen <hongyu.chen@amlogic.com>
Change-Id: I392437e009fa19e6faff0eb389bf0c3c127fbc69
This commit is contained in:
hongyu.chen
2022-11-10 14:39:06 +08:00
committed by Dongjin Kim
parent 7a5056cec5
commit c4ec13c1f4
6 changed files with 414 additions and 373 deletions

View File

@@ -30,6 +30,10 @@
#include <media/dmxdev.h>
#include <media/dvb_vb2.h>
#ifdef CONFIG_AMLOGIC_DVB_COMPAT
#include <uapi/linux/dvb/aml_dmx_ext.h>
#endif
static int debug;
module_param(debug, int, 0644);

View File

@@ -599,23 +599,23 @@ struct dmx_demux {
#ifdef CONFIG_AMLOGIC_DVB_COMPAT
int (*set_input)(struct dmx_demux *demux, int source);
int (*get_ts_mem_info)(struct dmx_demux *demux,
struct dmx_ts_feed *feed,
struct dmx_mem_info *info);
void *feed,
void *info);
int (*get_sec_mem_info)(struct dmx_demux *demux,
struct dmx_section_feed *feed,
struct dmx_mem_info *info);
void *feed,
void *info);
int (*set_hw_source)(struct dmx_demux *demux, int hw_source);
int (*get_hw_source)(struct dmx_demux *demux, int *hw_source);
int (*get_dmx_mem_info)(struct dmx_demux *demux,
struct dmx_filter_mem_info *info);
void *info);
int (*set_sec_mem)(struct dmx_demux *demux,
struct dmx_sec_mem *sec_mem);
void *sec_mem);
int (*get_dvr_mem)(struct dmx_demux *demux,
struct dvr_mem_info *info);
void *info);
int (*remap_pid)(struct dmx_demux *demux,
u16 pids[2]);
int (*decode_info)(struct dmx_demux *demux,
struct decoder_mem_info *info);
void *info);
#endif
};

View File

@@ -0,0 +1,188 @@
/* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
#ifndef _AML_CA_EXIT_H_
#define _AML_CA_EXIT_H_
#ifdef __KERNEL__
#include <linux/dvb/ca.h>
#else
#include "ca.h"
#endif
/* amlogic define */
/* CW type. */
enum ca_cw_type {
CA_CW_DVB_CSA_EVEN,
CA_CW_DVB_CSA_ODD,
CA_CW_AES_EVEN,
CA_CW_AES_ODD,
CA_CW_AES_EVEN_IV,
CA_CW_AES_ODD_IV,
CA_CW_DES_EVEN,
CA_CW_DES_ODD,
CA_CW_SM4_EVEN,
CA_CW_SM4_ODD,
CA_CW_SM4_EVEN_IV,
CA_CW_SM4_ODD_IV,
CA_CW_TYPE_MAX
};
enum ca_dsc_mode {
CA_DSC_CBC = 1,
CA_DSC_ECB,
CA_DSC_IDSA
};
struct ca_descr_ex {
unsigned int index;
enum ca_cw_type type;
enum ca_dsc_mode mode;
int flags;
#define CA_CW_FROM_KL 1
unsigned char cw[16];
};
/* add for support sc2 ca*/
enum ca_sc2_cmd_type {
CA_ALLOC,
CA_FREE,
CA_KEY,
CA_GET_STATUS,
CA_SET_SCB,
CA_SET_ALGO
};
enum ca_sc2_algo_type {
CA_ALGO_AES_ECB_CLR_END,
CA_ALGO_AES_ECB_CLR_FRONT,
CA_ALGO_AES_CBC_CLR_END,
CA_ALGO_AES_CBC_IDSA,
CA_ALGO_CSA2,
CA_ALGO_DES_SCTE41,
CA_ALGO_DES_SCTE52,
CA_ALGO_TDES_ECB_CLR_END,
CA_ALGO_CPCM_LSA_MDI_CBC,
CA_ALGO_CPCM_LSA_MDD_CBC,
CA_ALGO_CSA3,
CA_ALGO_ASA,
CA_ALGO_ASA_LIGHT,
CA_ALGO_S17_ECB_CLR_END,
CA_ALGO_S17_ECB_CTS,
CA_ALGO_UNKNOWN
};
enum ca_sc2_dsc_type {
CA_DSC_COMMON_TYPE,
CA_DSC_TSD_TYPE, /*just support AES descramble.*/
CA_DSC_TSE_TYPE /*just support AES enscramble.*/
};
/**
* struct ca_alloc - malloc ca slot index by params
*
* @pid: slot use pid.
* @algo: use the algorithm
* @dsc_type: CA_DSC_COMMON_TYPE:support all ca_algo_type
* CA_DSC_TSD_TYPE & CA_DSC_TSE_TYPE just support AES
* @ca_index: return slot index.
* @loop: 0: just descramble once.
* 1: descramble twice.
*/
struct ca_sc2_alloc {
unsigned int pid;
enum ca_sc2_algo_type algo;
enum ca_sc2_dsc_type dsc_type;
unsigned int ca_index;
unsigned char loop;
};
/**
* struct ca_sc2_free - free slot index
*
* @ca_index: need free slot index.
*/
struct ca_sc2_free {
unsigned int ca_index;
};
enum ca_sc2_key_type {
CA_KEY_EVEN_TYPE,
CA_KEY_EVEN_IV_TYPE,
CA_KEY_ODD_TYPE,
CA_KEY_ODD_IV_TYPE,
CA_KEY_00_TYPE,
CA_KEY_00_IV_TYPE
};
/**
* struct ca_sc2_key - set key slot index
*
* @ca_index: use slot index.
* @parity: key type (odd/even/key00)
* @key_index: key store index.
*/
struct ca_sc2_key {
unsigned int ca_index;
enum ca_sc2_key_type parity;
unsigned int key_index;
};
/**
* struct ca_sc2_scb - set scb
*
* @ca_index: use slot index.
* @ca_scb: ca_scb (2bit)
* @ca_scb_as_is:if 1, scb use original
* if 0, use ca_scb
*/
struct ca_sc2_scb {
unsigned int ca_index;
unsigned char ca_scb;
unsigned char ca_scb_as_is;
};
/**
* struct ca_sc2_algo - set algo
*
* @ca_index: use slot index.
* @algo: algo
*/
struct ca_sc2_algo {
unsigned int ca_index;
enum ca_sc2_algo_type algo;
};
/**
* struct ca_sc2_descr_ex - ca extend descriptor
*
* @params: command resource params
*/
struct ca_sc2_descr_ex {
enum ca_sc2_cmd_type cmd;
union {
struct ca_sc2_alloc alloc_params;
struct ca_sc2_free free_params;
struct ca_sc2_key key_params;
struct ca_sc2_scb scb_params;
struct ca_sc2_algo algo_params;
} params;
};
struct ca_pid {
unsigned int pid;
int index; /* -1 == disable*/
};
/* amlogic define end */
/* amlogic define */
#define CA_SET_PID _IOW('o', 135, struct ca_pid)
#define CA_SET_DESCR_EX _IOW('o', 200, struct ca_descr_ex)
#define CA_SC2_SET_DESCR_EX _IOWR('o', 201, struct ca_sc2_descr_ex)
/* amlogic define end */
#endif

View File

@@ -0,0 +1,213 @@
/* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
#ifndef _UAPI_AML_DVBDMX_EXT_H_
#define _UAPI_AML_DVBDMX_EXT_H_
#ifdef __KERNEL__
#include <linux/dvb/dmx.h>
#else
#include "dmx.h"
#endif
/* amlogic define */
#define DMX_USE_SWFILTER 0x100
/*bit 8~15 for mem sec_level*/
#define DMX_MEM_SEC_LEVEL1 (1 << 10)
#define DMX_MEM_SEC_LEVEL2 (2 << 10)
#define DMX_MEM_SEC_LEVEL3 (3 << 10)
#define DMX_MEM_SEC_LEVEL4 (4 << 10)
#define DMX_MEM_SEC_LEVEL5 (5 << 10)
#define DMX_MEM_SEC_LEVEL6 (6 << 10)
#define DMX_MEM_SEC_LEVEL7 (7 << 10)
/* amlogic define end */
/*amlogic define*/
enum dmx_input_source {
INPUT_DEMOD,
INPUT_LOCAL,
INPUT_LOCAL_SEC
};
/**
* struct dmx_non_sec_es_header - non-sec Elementary Stream (ES) Header
*
* @pts_dts_flag:[1:0], 01:pts valid, 10:dts valid
* @pts: pts value
* @dts: dts value
* @len: data len
*/
struct dmx_non_sec_es_header {
__u8 pts_dts_flag;
__u64 pts;
__u64 dts;
__u32 len;
};
/**
* struct dmx_sec_es_data - sec Elementary Stream (ES)
*
* @pts_dts_flag:[1:0], 01:pts valid, 10:dts valid
* @pts: pts value
* @dts: dts value
* @buf_start: buf start addr
* @buf_end: buf end addr
* @data_start: data start addr
* @data_end: data end addr
*/
struct dmx_sec_es_data {
__u8 pts_dts_flag;
__u64 pts;
__u64 dts;
__u32 buf_start;
__u32 buf_end;
__u32 data_start;
__u32 data_end;
};
struct dmx_sec_ts_data {
__u32 buf_start;
__u32 buf_end;
__u32 data_start;
__u32 data_end;
};
struct dmx_temi_data {
__u8 pts_dts_flag;
__u64 pts;
__u64 dts;
__u8 temi[188];
};
enum dmx_audio_format {
AUDIO_UNKNOWN = 0, /* unknown media */
AUDIO_MPX = 1, /* mpeg audio MP2/MP3 */
AUDIO_AC3 = 2, /* Dolby AC3/EAC3 */
AUDIO_AAC_ADTS = 3, /* AAC-ADTS */
AUDIO_AAC_LOAS = 4, /* AAC-LOAS */
AUDIO_DTS = 5, /* DTS */
AUDIO_MAX
};
struct dmx_mem_info {
__u32 dmx_total_size;
__u32 dmx_buf_phy_start;
__u32 dmx_free_size;
__u32 dvb_core_total_size;
__u32 dvb_core_free_size;
__u32 wp_offset;
__u64 newest_pts;
};
struct dmx_sec_mem {
__u32 buff;
__u32 size;
};
/* amlogic define end */
/*amlogic define*/
/*bit 8~15 for mem sec_level*/
#define DMX_MEM_SEC_LEVEL1 (1 << 10)
#define DMX_MEM_SEC_LEVEL2 (2 << 10)
#define DMX_MEM_SEC_LEVEL3 (3 << 10)
#define DMX_MEM_SEC_LEVEL4 (4 << 10)
#define DMX_MEM_SEC_LEVEL5 (5 << 10)
#define DMX_MEM_SEC_LEVEL6 (6 << 10)
#define DMX_MEM_SEC_LEVEL7 (7 << 10)
/*bit 16~23 for output */
#define DMX_ES_OUTPUT (1 << 16)
/*set raw mode, it will send the struct dmx_sec_es_data, not es data*/
#define DMX_OUTPUT_RAW_MODE (1 << 17)
#define DMX_TEMI_FLAGS (1 << 18)
/*24~31 one byte for audio type, dmx_audio_format_t*/
#define DMX_AUDIO_FORMAT_BIT 24
/* amlogic define end */
/* amlogic define */
enum {
DMA_0 = 0,
DMA_1,
DMA_2,
DMA_3,
DMA_4,
DMA_5,
DMA_6,
DMA_7,
FRONTEND_TS0 = 32,
FRONTEND_TS1,
FRONTEND_TS2,
FRONTEND_TS3,
FRONTEND_TS4,
FRONTEND_TS5,
FRONTEND_TS6,
FRONTEND_TS7,
DMA_0_1 = 64,
DMA_1_1,
DMA_2_1,
DMA_3_1,
DMA_4_1,
DMA_5_1,
DMA_6_1,
DMA_7_1,
FRONTEND_TS0_1 = 96,
FRONTEND_TS1_1,
FRONTEND_TS2_1,
FRONTEND_TS3_1,
FRONTEND_TS4_1,
FRONTEND_TS5_1,
FRONTEND_TS6_1,
FRONTEND_TS7_1,
};
/*define filter mem_info type*/
enum {
DMX_VIDEO_TYPE = 0,
DMX_AUDIO_TYPE,
DMX_SUBTITLE_TYPE,
DMX_TELETEXT_TYPE,
DMX_SECTION_TYPE,
};
struct filter_mem_info {
__u32 type;
__u32 pid;
struct dmx_mem_info filter_info;
};
struct dmx_filter_mem_info {
__u32 filter_num;
struct filter_mem_info info[40];
};
struct dvr_mem_info {
__u32 wp_offset;
};
struct decoder_mem_info {
__u32 rp_phy;
};
/* amlogic define end */
/* amlogic define */
#define DMX_SET_INPUT _IO('o', 80)
#define DMX_GET_MEM_INFO _IOR('o', 81, struct dmx_mem_info)
#define DMX_SET_HW_SOURCE _IO('o', 82)
#define DMX_GET_HW_SOURCE _IOR('o', 83, int)
#define DMX_GET_FILTER_MEM_INFO _IOR('o', 84, struct dmx_filter_mem_info)
/*just for dvr sec mem, please call before DMX_SET_PES_FILTER*/
#define DMX_SET_SEC_MEM _IOW('o', 85, struct dmx_sec_mem)
#define DMX_GET_DVR_MEM _IOR('o', 86, struct dvr_mem_info)
#define DMX_REMAP_PID _IOR('o', 87, __u16[2])
#define DMX_SET_DECODE_INFO _IOW('o', 88, struct decoder_mem_info)
/* amlogic define end */
#endif

View File

@@ -132,172 +132,6 @@ struct ca_descr {
unsigned char cw[8];
};
/* amlogic define */
/* CW type. */
enum ca_cw_type {
CA_CW_DVB_CSA_EVEN,
CA_CW_DVB_CSA_ODD,
CA_CW_AES_EVEN,
CA_CW_AES_ODD,
CA_CW_AES_EVEN_IV,
CA_CW_AES_ODD_IV,
CA_CW_DES_EVEN,
CA_CW_DES_ODD,
CA_CW_SM4_EVEN,
CA_CW_SM4_ODD,
CA_CW_SM4_EVEN_IV,
CA_CW_SM4_ODD_IV,
CA_CW_TYPE_MAX
};
enum ca_dsc_mode {
CA_DSC_CBC = 1,
CA_DSC_ECB,
CA_DSC_IDSA
};
struct ca_descr_ex {
unsigned int index;
enum ca_cw_type type;
enum ca_dsc_mode mode;
int flags;
#define CA_CW_FROM_KL 1
unsigned char cw[16];
};
/* add for support sc2 ca*/
enum ca_sc2_cmd_type {
CA_ALLOC,
CA_FREE,
CA_KEY,
CA_GET_STATUS,
CA_SET_SCB,
CA_SET_ALGO
};
enum ca_sc2_algo_type {
CA_ALGO_AES_ECB_CLR_END,
CA_ALGO_AES_ECB_CLR_FRONT,
CA_ALGO_AES_CBC_CLR_END,
CA_ALGO_AES_CBC_IDSA,
CA_ALGO_CSA2,
CA_ALGO_DES_SCTE41,
CA_ALGO_DES_SCTE52,
CA_ALGO_TDES_ECB_CLR_END,
CA_ALGO_CPCM_LSA_MDI_CBC,
CA_ALGO_CPCM_LSA_MDD_CBC,
CA_ALGO_CSA3,
CA_ALGO_ASA,
CA_ALGO_ASA_LIGHT,
CA_ALGO_S17_ECB_CLR_END,
CA_ALGO_S17_ECB_CTS,
CA_ALGO_UNKNOWN
};
enum ca_sc2_dsc_type {
CA_DSC_COMMON_TYPE,
CA_DSC_TSD_TYPE, /*just support AES descramble.*/
CA_DSC_TSE_TYPE /*just support AES enscramble.*/
};
/**
* struct ca_alloc - malloc ca slot index by params
*
* @pid: slot use pid.
* @algo: use the algorithm
* @dsc_type: CA_DSC_COMMON_TYPE:support all ca_algo_type
* CA_DSC_TSD_TYPE & CA_DSC_TSE_TYPE just support AES
* @ca_index: return slot index.
* @loop: 0: just descramble once.
* 1: descramble twice.
*/
struct ca_sc2_alloc {
unsigned int pid;
enum ca_sc2_algo_type algo;
enum ca_sc2_dsc_type dsc_type;
unsigned int ca_index;
unsigned char loop;
};
/**
* struct ca_sc2_free - free slot index
*
* @ca_index: need free slot index.
*/
struct ca_sc2_free {
unsigned int ca_index;
};
enum ca_sc2_key_type {
CA_KEY_EVEN_TYPE,
CA_KEY_EVEN_IV_TYPE,
CA_KEY_ODD_TYPE,
CA_KEY_ODD_IV_TYPE,
CA_KEY_00_TYPE,
CA_KEY_00_IV_TYPE
};
/**
* struct ca_sc2_key - set key slot index
*
* @ca_index: use slot index.
* @parity: key type (odd/even/key00)
* @key_index: key store index.
*/
struct ca_sc2_key {
unsigned int ca_index;
enum ca_sc2_key_type parity;
unsigned int key_index;
};
/**
* struct ca_sc2_scb - set scb
*
* @ca_index: use slot index.
* @ca_scb: ca_scb (2bit)
* @ca_scb_as_is:if 1, scb use original
* if 0, use ca_scb
*/
struct ca_sc2_scb {
unsigned int ca_index;
unsigned char ca_scb;
unsigned char ca_scb_as_is;
};
/**
* struct ca_sc2_algo - set algo
*
* @ca_index: use slot index.
* @algo: algo
*/
struct ca_sc2_algo {
unsigned int ca_index;
enum ca_sc2_algo_type algo;
};
/**
* struct ca_sc2_descr_ex - ca externd descriptor
*
* @params: command resource params
*/
struct ca_sc2_descr_ex {
enum ca_sc2_cmd_type cmd;
union {
struct ca_sc2_alloc alloc_params;
struct ca_sc2_free free_params;
struct ca_sc2_key key_params;
struct ca_sc2_scb scb_params;
struct ca_sc2_algo algo_params;
} params;
};
struct ca_pid {
unsigned int pid;
int index; /* -1 == disable*/
};
/* amlogic define end */
#define CA_RESET _IO('o', 128)
#define CA_GET_CAP _IOR('o', 129, struct ca_caps)
#define CA_GET_SLOT_INFO _IOR('o', 130, struct ca_slot_info)
@@ -305,11 +139,7 @@ struct ca_pid {
#define CA_GET_MSG _IOR('o', 132, struct ca_msg)
#define CA_SEND_MSG _IOW('o', 133, struct ca_msg)
#define CA_SET_DESCR _IOW('o', 134, struct ca_descr)
/* amlogic define */
#define CA_SET_PID _IOW('o', 135, struct ca_pid)
#define CA_SET_DESCR_EX _IOW('o', 200, struct ca_descr_ex)
#define CA_SC2_SET_DESCR_EX _IOWR('o', 201, struct ca_sc2_descr_ex)
/* amlogic define end */
#if !defined(__KERNEL__)
/* This is needed for legacy userspace support */

View File

@@ -177,104 +177,8 @@ struct dmx_sct_filter_params {
#define DMX_CHECK_CRC 1
#define DMX_ONESHOT 2
#define DMX_IMMEDIATE_START 4
/* amlogic define */
#define DMX_USE_SWFILTER 0x100
/*bit 8~15 for mem sec_level*/
#define DMX_MEM_SEC_LEVEL1 (1 << 10)
#define DMX_MEM_SEC_LEVEL2 (2 << 10)
#define DMX_MEM_SEC_LEVEL3 (3 << 10)
#define DMX_MEM_SEC_LEVEL4 (4 << 10)
#define DMX_MEM_SEC_LEVEL5 (5 << 10)
#define DMX_MEM_SEC_LEVEL6 (6 << 10)
#define DMX_MEM_SEC_LEVEL7 (7 << 10)
/* amlogic define end */
};
/*amlogic define*/
enum dmx_input_source {
INPUT_DEMOD,
INPUT_LOCAL,
INPUT_LOCAL_SEC
};
/**
* struct dmx_non_sec_es_header - non-sec Elementary Stream (ES) Header
*
* @pts_dts_flag:[1:0], 01:pts valid, 10:dts valid
* @pts: pts value
* @dts: dts value
* @len: data len
*/
struct dmx_non_sec_es_header {
__u8 pts_dts_flag;
__u64 pts;
__u64 dts;
__u32 len;
};
/**
* struct dmx_sec_es_data - sec Elementary Stream (ES)
*
* @pts_dts_flag:[1:0], 01:pts valid, 10:dts valid
* @pts: pts value
* @dts: dts value
* @buf_start: buf start addr
* @buf_end: buf end addr
* @data_start: data start addr
* @data_end: data end addr
*/
struct dmx_sec_es_data {
__u8 pts_dts_flag;
__u64 pts;
__u64 dts;
__u32 buf_start;
__u32 buf_end;
__u32 data_start;
__u32 data_end;
};
struct dmx_sec_ts_data {
__u32 buf_start;
__u32 buf_end;
__u32 data_start;
__u32 data_end;
};
struct dmx_temi_data {
__u8 pts_dts_flag;
__u64 pts;
__u64 dts;
__u8 temi[188];
};
enum dmx_audio_format {
AUDIO_UNKNOWN = 0, /* unknown media */
AUDIO_MPX = 1, /* mpeg audio MP2/MP3 */
AUDIO_AC3 = 2, /* Dolby AC3/EAC3 */
AUDIO_AAC_ADTS = 3, /* AAC-ADTS */
AUDIO_AAC_LOAS = 4, /* AAC-LOAS */
AUDIO_DTS = 5, /* DTS */
AUDIO_MAX
};
struct dmx_mem_info {
__u32 dmx_total_size;
__u32 dmx_buf_phy_start;
__u32 dmx_free_size;
__u32 dvb_core_total_size;
__u32 dvb_core_free_size;
__u32 wp_offset;
__u64 newest_pts;
};
struct dmx_sec_mem {
__u32 buff;
__u32 size;
};
/* amlogic define end */
/**
* struct dmx_pes_filter_params - Specifies Packetized Elementary Stream (PES)
* filter parameters.
@@ -291,26 +195,6 @@ struct dmx_pes_filter_params {
enum dmx_output output;
enum dmx_ts_pes pes_type;
__u32 flags;
/*amlogic define*/
/*bit 8~15 for mem sec_level*/
#define DMX_MEM_SEC_LEVEL1 (1 << 10)
#define DMX_MEM_SEC_LEVEL2 (2 << 10)
#define DMX_MEM_SEC_LEVEL3 (3 << 10)
#define DMX_MEM_SEC_LEVEL4 (4 << 10)
#define DMX_MEM_SEC_LEVEL5 (5 << 10)
#define DMX_MEM_SEC_LEVEL6 (6 << 10)
#define DMX_MEM_SEC_LEVEL7 (7 << 10)
/*bit 16~23 for output */
#define DMX_ES_OUTPUT (1 << 16)
/*set raw mode, it will send the struct dmx_sec_es_data, not es data*/
#define DMX_OUTPUT_RAW_MODE (1 << 17)
#define DMX_TEMI_FLAGS (1 << 18)
/*24~31 one byte for audio type, dmx_audio_format_t*/
#define DMX_AUDIO_FORMAT_BIT 24
/* amlogic define end */
};
/**
@@ -416,72 +300,6 @@ struct dmx_exportbuffer {
__s32 fd;
};
/* amlogic define */
enum {
DMA_0 = 0,
DMA_1,
DMA_2,
DMA_3,
DMA_4,
DMA_5,
DMA_6,
DMA_7,
FRONTEND_TS0 = 32,
FRONTEND_TS1,
FRONTEND_TS2,
FRONTEND_TS3,
FRONTEND_TS4,
FRONTEND_TS5,
FRONTEND_TS6,
FRONTEND_TS7,
DMA_0_1 = 64,
DMA_1_1,
DMA_2_1,
DMA_3_1,
DMA_4_1,
DMA_5_1,
DMA_6_1,
DMA_7_1,
FRONTEND_TS0_1 = 96,
FRONTEND_TS1_1,
FRONTEND_TS2_1,
FRONTEND_TS3_1,
FRONTEND_TS4_1,
FRONTEND_TS5_1,
FRONTEND_TS6_1,
FRONTEND_TS7_1,
};
/*define filter mem_info type*/
enum {
DMX_VIDEO_TYPE = 0,
DMX_AUDIO_TYPE,
DMX_SUBTITLE_TYPE,
DMX_TELETEXT_TYPE,
DMX_SECTION_TYPE,
};
struct filter_mem_info {
__u32 type;
__u32 pid;
struct dmx_mem_info filter_info;
};
struct dmx_filter_mem_info {
__u32 filter_num;
struct filter_mem_info info[40];
};
struct dvr_mem_info {
__u32 wp_offset;
};
struct decoder_mem_info {
__u32 rp_phy;
};
/* amlogic define end */
#define DMX_START _IO('o', 41)
#define DMX_STOP _IO('o', 42)
#define DMX_SET_FILTER _IOW('o', 43, struct dmx_sct_filter_params)
@@ -507,16 +325,4 @@ typedef struct dmx_filter dmx_filter_t;
#define DMX_QBUF _IOWR('o', 63, struct dmx_buffer)
#define DMX_DQBUF _IOWR('o', 64, struct dmx_buffer)
/* amlogic define */
#define DMX_SET_INPUT _IO('o', 80)
#define DMX_GET_MEM_INFO _IOR('o', 81, struct dmx_mem_info)
#define DMX_SET_HW_SOURCE _IO('o', 82)
#define DMX_GET_HW_SOURCE _IOR('o', 83, int)
#define DMX_GET_FILTER_MEM_INFO _IOR('o', 84, struct dmx_filter_mem_info)
/*just for dvr sec mem, please call before DMX_SET_PES_FILTER*/
#define DMX_SET_SEC_MEM _IOW('o', 85, struct dmx_sec_mem)
#define DMX_GET_DVR_MEM _IOR('o', 86, struct dvr_mem_info)
#define DMX_REMAP_PID _IOR('o', 87, __u16[2])
#define DMX_SET_DECODE_INFO _IOW('o', 88, struct decoder_mem_info)
/* amlogic define end */
#endif /* _DVBDMX_H_ */