?? dvb_filter.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 + -