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

📄 util.c

📁 this ebook is for GSM if any one has interest in it you can take it
💻 C
字号:
#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <stdio.h>#include "getstream.h"int addr_is_mcast(char *addr) {	struct in_addr	iaddr;	inet_aton(addr, &iaddr);	return IN_MULTICAST(iaddr.s_addr);}void dump_hex(int level, const char *prefix, uint8_t *buf, int size) {	int		i;	unsigned char	ch;	char		sascii[17];	char		linebuffer[16*4+1];	/* Speedup */	if (level > loglevel)		return;	sascii[16]=0x0;	for(i=0;i<size;i++) {		ch=buf[i];		if (i%16 == 0) {			sprintf(linebuffer, "%04x ", i);		}		sprintf(&linebuffer[(i%16)*3], "%02x ", ch);		if (ch >= ' ' && ch <= '}')			sascii[i%16]=ch;		else			sascii[i%16]='.';		if (i%16 == 15)			logwrite(level, "%s %s  %s", prefix, linebuffer, sascii);	}	/* i++ after loop */	if (i%16 != 0) {		for(;i%16 != 0;i++) {			sprintf(&linebuffer[(i%16)*3], "   ");			sascii[i%16]=' ';		}		logwrite(level, "%s %s  %s", prefix, linebuffer, sascii);	}}void ts_packet_decode(uint8_t *ts) {	logwrite(LOG_DEBUG, "ts_packet_decode\n");	dump_hex(LOG_DEBUG, "pdecode:", ts, TS_PACKET_SIZE);	logwrite(LOG_DEBUG, "\tsync: %02x\n", ts[0]);	logwrite(LOG_DEBUG, "\ttransport_error_indicator: %d\n", ts[1]&0x80 ? 1 : 0);	logwrite(LOG_DEBUG, "\tpayload_unit_start_indicator: %d\n", ts[1]&0x40 ? 1 : 0);	logwrite(LOG_DEBUG, "\ttransport_priority: %d\n", ts[1]&0x20 ? 1 : 0);	logwrite(LOG_DEBUG, "\tpid: %d\n", (ts[1]<<8|ts[2])&0x1fff);	logwrite(LOG_DEBUG, "\ttransport_scrambling_control: %d\n", (ts[3]>>6) & 0x3);	logwrite(LOG_DEBUG, "\tadaption_field_control: %d\n", (ts[3]>>4) & 0x3);	logwrite(LOG_DEBUG, "\tcontinuity_counter: %d\n", ts[3]&0xf);}

⌨️ 快捷键说明

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