⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dvb_filter.h

📁 dvb的系统程序。基于lunix系统.经过改进更新
💻 H
字号:
/* * dvb_filter.h * * Copyright (C) 2003 Convergence GmbH * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. */#ifndef _DVB_FILTER_H_#define _DVB_FILTER_H_#include <linux/slab.h>#include "demux.h"typedef int (dvb_filter_pes2ts_cb_t) (void *, unsigned char *);struct dvb_filter_pes2ts {	unsigned char buf[188];        unsigned char cc;        dvb_filter_pes2ts_cb_t *cb;	void *priv;};void dvb_filter_pes2ts_init(struct dvb_filter_pes2ts *p2ts, unsigned short pid, 		 	    dvb_filter_pes2ts_cb_t *cb, void *priv);int dvb_filter_pes2ts(struct dvb_filter_pes2ts *p2ts, unsigned char *pes,		      int len, int payload_start);#define PROG_STREAM_MAP  0xBC#define PRIVATE_STREAM1  0xBD#define PADDING_STREAM   0xBE#define PRIVATE_STREAM2  0xBF#define AUDIO_STREAM_S   0xC0#define AUDIO_STREAM_E   0xDF#define VIDEO_STREAM_S   0xE0#define VIDEO_STREAM_E   0xEF#define ECM_STREAM       0xF0#define EMM_STREAM       0xF1#define DSM_CC_STREAM    0xF2#define ISO13522_STREAM  0xF3#define PROG_STREAM_DIR  0xFF#define DVB_PICTURE_START    0x00#define DVB_USER_START       0xb2#define DVB_SEQUENCE_HEADER  0xb3#define DVB_SEQUENCE_ERROR   0xb4#define DVB_EXTENSION_START  0xb5#define DVB_SEQUENCE_END     0xb7#define DVB_GOP_START        0xb8#define DVB_EXCEPT_SLICE     0xb0#define SEQUENCE_EXTENSION           0x01#define SEQUENCE_DISPLAY_EXTENSION   0x02#define PICTURE_CODING_EXTENSION     0x08#define QUANT_MATRIX_EXTENSION       0x03#define PICTURE_DISPLAY_EXTENSION    0x07#define I_FRAME 0x01 #define B_FRAME 0x02 #define P_FRAME 0x03/* Initialize sequence_data */#define INIT_HORIZONTAL_SIZE        720#define INIT_VERTICAL_SIZE          576#define INIT_ASPECT_RATIO          0x02#define INIT_FRAME_RATE            0x03#define INIT_DISP_HORIZONTAL_SIZE   540#define INIT_DISP_VERTICAL_SIZE     576//flags2#define PTS_DTS_FLAGS    0xC0#define ESCR_FLAG        0x20#define ES_RATE_FLAG     0x10#define DSM_TRICK_FLAG   0x08#define ADD_CPY_FLAG     0x04#define PES_CRC_FLAG     0x02#define PES_EXT_FLAG     0x01//pts_dts flags #define PTS_ONLY         0x80#define PTS_DTS          0xC0#define TS_SIZE        188#define TRANS_ERROR    0x80#define PAY_START      0x40#define TRANS_PRIO     0x20#define PID_MASK_HI    0x1F//flags#define TRANS_SCRMBL1  0x80#define TRANS_SCRMBL2  0x40#define ADAPT_FIELD    0x20#define PAYLOAD        0x10#define COUNT_MASK     0x0F// adaptation flags#define DISCON_IND     0x80#define RAND_ACC_IND   0x40#define ES_PRI_IND     0x20#define PCR_FLAG       0x10#define OPCR_FLAG      0x08#define SPLICE_FLAG    0x04#define TRANS_PRIV     0x02#define ADAP_EXT_FLAG  0x01// adaptation extension flags#define LTW_FLAG       0x80#define PIECE_RATE     0x40#define SEAM_SPLICE    0x20#define MAX_PLENGTH 0xFFFF#define MMAX_PLENGTH (256*MAX_PLENGTH)#ifndef IPACKS#define IPACKS 2048#endifstruct ipack {	int size;	int found;	u8 *buf;	u8 cid;	u32 plength;	u8 plen[2];	u8 flag1;	u8 flag2;	u8 hlength;	u8 pts[5];	u16 *pid;	int mpeg;	u8 check;	int which;	int done;	void *data;	void (*func)(u8 *buf,  int size, void *priv);	int count;	int repack_subids;};struct dvb_video_info {	u32 horizontal_size;	u32 vertical_size;	u32 aspect_ratio;	u32 framerate;	u32 video_format;	u32 bit_rate;	u32 comp_bit_rate;	u32 vbv_buffer_size;        s16 vbv_delay;	u32 CSPF;	u32 off;};            #define OFF_SIZE 4#define FIRST_FIELD 0#define SECOND_FIELD 1#define VIDEO_FRAME_PICTURE 0x03struct mpg_picture {        int       channel;	struct dvb_video_info vinfo;        u32      *sequence_gop_header;        u32      *picture_header;        s32       time_code;        int       low_delay;        int       closed_gop;        int       broken_link;        int       sequence_header_flag;              int       gop_flag;                      int       sequence_end_flag;                                                                        u8        profile_and_level;        s32       picture_coding_parameter;        u32       matrix[32];        s8        matrix_change_flag;        u8        picture_header_parameter;  /* bit 0 - 2: bwd f code     bit 3    : fpb vector     bit 4 - 6: fwd f code     bit 7    : fpf vector */        int       mpeg1_flag;        int       progressive_sequence;        int       sequence_display_extension_flag;        u32       sequence_header_data;        s16       last_frame_centre_horizontal_offset;        s16       last_frame_centre_vertical_offset;        u32       pts[2]; /* [0] 1st field, [1] 2nd field */        int       top_field_first;        int       repeat_first_field;        int       progressive_frame;        int       bank;        int       forward_bank;        int       backward_bank;        int       compress;        s16       frame_centre_horizontal_offset[OFF_SIZE];                                     /* [0-2] 1st field, [3] 2nd field */        s16       frame_centre_vertical_offset[OFF_SIZE];                  /* [0-2] 1st field, [3] 2nd field */        s16       temporal_reference[2];                                                 /* [0] 1st field, [1] 2nd field */        s8        picture_coding_type[2];                  /* [0] 1st field, [1] 2nd field */        s8        picture_structure[2];                  /* [0] 1st field, [1] 2nd field */        s8        picture_display_extension_flag[2];                  /* [0] 1st field, [1] 2nd field */                  /* picture_display_extenion() 0:no 1:exit*/        s8        pts_flag[2];                  /* [0] 1st field, [1] 2nd field */};struct dvb_audio_info {	int layer;	u32 bit_rate;	u32 frequency;	u32 mode;	u32 mode_extension ;	u32 emphasis;	u32 framesize;	u32 off;};int dvb_filter_get_ac3info(u8 *mbuf, int count, struct dvb_audio_info *ai, int pr);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -