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

📄 pes_psm.c

📁 DVB MPEG2 system stream 分析, 包含 各個talbe(EIT,PMT,PAT,SDT),以及video,audio. 對於學習數字電視有很大幫助.
💻 C
字号:
/*$Id: pes_psm.c,v 1.2 2004/01/02 16:40:38 rasc Exp $ DVBSNOOP a dvb sniffer  and mpeg2 stream analyzer tool http://dvbsnoop.sourceforge.net/ (c) 2001-2004   Rainer.Scherg@gmx.de (rasc) -- PES PSM (Program Stream Map) ISO/IEC 13818-1 ITU H.222.0, 2.5.4$Log: pes_psm.c,v $Revision 1.2  2004/01/02 16:40:38  rascDSM-CC  INT/UNT descriptors completeminor changes and fixesRevision 1.1  2004/01/01 20:31:25  rascPES program stream map, minor descriptor cleanup*/#include "dvbsnoop.h"#include "descriptors/descriptor.h"#include "strings/dvb_str.h"#include "misc/output.h"#include "pes_psm.h"/*   -- Program Stream Map   -- buffer starts after packet_length*/void  PES_decodePSM (u_char *b, int len){   int   psi_len;   int   esm_len;   // -- already processed:   // --- packet_start_code_prefix 	24 bslbf   // --- stream_id 			8 uimsbf   // --- packet_length			24 uimsbf   outBit_S2x_NL (4,"current_next_indicator: ",		b, 0, 1,				(char *(*)(u_long)) dvbstrCurrentNextIndicator );   outBit_Sx_NL  (6,"reserved_1: ",			b, 1, 2);   outBit_Sx_NL  (4,"program_stream_map_version: ",	b, 3, 5);   outBit_Sx_NL  (6,"reserved_2: ",			b, 8, 7);   outBit_Sx_NL  (4,"marker_bit: ",			b,15, 1);   psi_len = outBit_Sx_NL  (5,"program_stream_info_length: ",	b,16,16);   b += 4;   // len -= 4;   out_nl (4,"Program stream info:");   indent (+1);   while (psi_len > 0) {	int x;	x = descriptor (b, MPEG);	b   += x;	psi_len -= x;	// len -= x;   }   indent (-1);   esm_len = outBit_Sx_NL  (5,"elementary_stream_map_length: ",	b, 0,16);   out_nl (4,"Elementary stream Map:");   indent (+1);   while (esm_len > 0) {	int esi_len;   	outBit_S2x_NL (4,"stream_type: ",		b, 0, 8,				(char *(*)(u_long)) dvbstrStream_TYPE);	outBit_Sx_NL  (5,"elementary_stream_id: ",	b, 8, 8);   	esi_len = outBit_Sx_NL  (5,"elementary_stream_info_length: ",	b,16,16);	b += 4;	esm_len -= 4;	// len -= 4;   	out_nl (4,"Elementary stream info:");        indent (+1);	while (esi_len > 0) {		int x;		x = descriptor (b, MPEG);		b   += x;		esi_len -= x;		esm_len -= x;		// len -= x;	}        indent (-1);   }   indent (-1);   outBit_Sx_NL  (5,"CRC: ",	b, 0, 32);}

⌨️ 快捷键说明

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