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

📄 main.c

📁 一个264程序在NS2下面的仿真程序。非常好用
💻 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 + -