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

📄 pes_data_sync.c

📁 dvbsnoop is a DVB/MPEG stream analyzer program. The program can be used to sniff, monitor, debug, d
💻 C
字号:
/*$Id: pes_data_sync.c,v 1.1 2004/02/02 23:41:23 rasc Exp $ DVBSNOOP a dvb sniffer  and mpeg2 stream analyzer tool http://dvbsnoop.sourceforge.net/ (c) 2001-2004   Rainer.Scherg@gmx.de  (rasc) -- PES Data: Synchronous and synchronized data streaming$Log: pes_data_sync.c,v $Revision 1.1  2004/02/02 23:41:23  rasc- output indent changed to avoid \r  (which sucks on logged output)- EBU PES data started (teletext, vps, wss, ...)- bugfix: PES synch. data stream, restructuring- some other stuffRevision 1.1  2004/01/11 21:01:32  rascPES stream directory, PES restructured*/#include "dvbsnoop.h"#include "pes_data_sync.h"#include "strings/dvb_str.h"#include "misc/helper.h"#include "misc/hexprint.h"#include "misc/output.h"/*   -- Data Packet Synchronous and synchronized data streaming   -- EN 301 192  v1.3.1  S. 11*/void PES_decodeDATA_SYNC (u_char *b, int len){ typedef struct  _PES_DATA {        u_int     data_identifier;        u_int     sub_stream_id;        u_int     PTS_extension_flag;        u_int     output_data_rate_flag;        u_int     reserved;        u_int     PES_data_packet_header_length;	// N ... optional data } PES_DATA; PES_DATA   p; int        len2;   out_nl (4,"Data (synchronous/synchronized):");   indent (+1);   p.data_identifier			= getBits (b, 0,  0,  8);   p.sub_stream_id			= getBits (b, 0,  8,  8);   p.PTS_extension_flag			= getBits (b, 0, 16,  1);   p.output_data_rate_flag		= getBits (b, 0, 17,  1);   p.reserved                           = getBits (b, 0, 18,  2);   p.PES_data_packet_header_length	= getBits (b, 0, 20,  4);   b   += 3;   len -= 3;   len2 = p.PES_data_packet_header_length;   out_S2B_NL  (4,"data_identifier: ", p.data_identifier,		   dvbstrPESDataIdentifier (p.data_identifier) );   out_SB_NL  (4,"sub_stream_id: ", p.sub_stream_id);   out_SB_NL  (4,"PTS_extension_flag: ", p.PTS_extension_flag);   out_SB_NL  (4,"output_data_rate_flag: ", p.output_data_rate_flag);   out_SB_NL  (6,"reserved_1: ", p.reserved);   out_SB_NL  (4,"PES_data_packet_header_length: ", p.PES_data_packet_header_length);   if (p.PTS_extension_flag == 0x01) {   	out_nl (4,"PTS_extension:");	indent (+1);	out_SB_NL  (6,"reserved: ", getBits (b, 0,  0,  7) );	out_SW_NL  (4,"PTS_extension: ", getBits (b, 0,  7, 9) );	/* $$$ TODO  PCR extension output in clear text, see ISO 13818-1*/	b   += 2;	len -= 2;	len2 -= 2;	indent (-1);   }   if (p.output_data_rate_flag == 0x01) {   	out_nl (4,"output_data_rate:");	indent (+1);	out_SB_NL  (6,"reserved: ", getBits (b, 0,  0,  4) );	out_SL_NL  (4,"output_data_rate: ", getBits (b, 0,  4, 28) );	b   += 4;	len -= 4;	len2 -= 4;	indent (-1);   }   print_databytes (4,"PES_data_private_byte:", b, len2);   b   += len2;   len -= len2;   print_databytes (4,"PES_data_byte:", b, len);   b   += len;   len -= len;   indent (-1);}

⌨️ 快捷键说明

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