📄 main.c
字号:
#include <stdio.h>#include <stdlib.h>#include <memory.h>#include <malloc.h>#include "global.h"nal *head, *current, *tail;/* Table and index */int table[10][2],idx=0;int main(int argc, char* argv[]){ unsigned int bufsize, pacno=0;; unsigned char buf[65000]; int i, intime, prio = 2, currentslice, todrop, totalsize, pktsize; FILE *f,*f2; unsigned char *pt; float pkttime,bitrate; parsefile(argv[1]); if (NULL == (f = fopen (bitstream, "rb"))) { printf ("%s: cannot open H.26L packet file %s for reading\n", argv[0], argv[1]); return -2; } f2 = fopen (outputfile,"w"); head = NULL; tail = head; currentframe = -1; currentslice = 0; totalsize = 0; while (1) { if (4 != fread (&bufsize, 1, 4, f)){ bitrate = 8 * totalsize / (1000*currentframe/framerate) ; printf("\n\nTotal size: %d bytes\tBit rate: %f kbit/s\n",totalsize,bitrate); fclose(f2); return 0; } if (4 != fread (&intime, 1, 4, f)) { printf ("Panic, cannot read timestamp, old software version file?\n"); return -1; } /*bufsize = bigendian(bufsize);*/ printf ("\n\npacket #%4d containing %5d bytes\n", pacno++, bufsize); if (bufsize != fread (buf, 1, bufsize, f)) { printf ("Problems while reading buffer, exit\n"); return -3; } for (i=0; i< 25; i++) printf ("%02x ", buf[i]); printf ("\n"); printf ("Version (V): %d\n", buf[0] & 0x3); printf ("Padding (P): %d\n", (buf[0] & 0x4) >> 2); printf ("Extension (X): %d\n", (buf[0] & 0x8) >> 3); printf ("CSRC count (CC): %d\n", (buf[0] & 0xf0) >> 4); printf ("Marker bit (M): %d\n", buf[1] & 0x1); printf ("Payload Type (PT): %d\n", (buf[1] & 0xfe) >> 1); printf ("Sequence Number: %d\n", buf[2] | (buf[3] << 8)); printf ("Timestamp: %u\n", buf[4] | (buf[5] <<8) | (buf[6] <<16) | (buf[7] <<24)); printf ("SSRC: %u\n", buf[8] | (buf[9] <<8) | (buf[10] <<16) | (buf[11] <<24)); printf ("First Byte: 0x%x\n", buf[12]); pt = &buf[12]; prio = dec_nal_u(pt); /*pktsize = bufsize + HEADERSIZE;*/ pktsize = bufsize; /* we don't add udp and ip header here */ totalsize = totalsize + pktsize; if (currentframe >= 0) pkttime = START + currentframe/framerate; else pkttime = 0.0; fprintf(f2,"%d\t%f\t%d\t%d\n",pacno-1,pkttime,pktsize,prio); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -