EvalVid Example

Evalvid-RA, which is a tool-set for trace file simulation of rate adaptive MPEG-4 video.It was created by modifying the original EvalVid v1.2, original ns-2 interface of EvalVid and implementing a rate adaptive version of SVBR into ns-2.

Note :  Evalvid-RA is not compatible with EvalVid 2.x. The practical impact of this is that one have to work on “raw” *.m4v files, and not the ISO Media File format *.mp4.


Thus it is not possible to hint *.m4v files with certain MTU settings, as it is possible with *.mp4 files.The MTU parameter is however given directly in the ns-2 simulation, and the packetization will hence follow this MTU parameter without taking notice of macro-block boundaries.

Sample code for Evalvid example:

This is the code for transmission of mpeg video files simulated using EvalVid tool.

static unsigned bit_ = 8, pos_;
void resetbuf()
  pos_ = 0;
  bit_ = 8;
unsigned nextbits(char *s, unsigned n)
  unsigned i, v = 0;
  for (i=0; i<n; i++) {
    if (!bit_) pos_++, bit_ = 8;
    v = v << 1 | !!(s[pos_] & 1U << --bit_); } return v; } unsigned skipbits(char *s, unsigned b) { unsigned count = 0; if (b > 1) return 0;
  for (;;) {
    if (!bit_) pos_++, bit_ = 8;
    if (b == !!(s[pos_] & 1U << --bit_)) count++; else break; } return count; } int VOP_not_coded(char *s, VOL_header *VOL_h) { if (nextbits(s, 8) != 0) goto E; if (nextbits(s, 8) != 0) goto E; if (nextbits(s, 8) != 1) goto E; if (nextbits(s, 8) != 0xB6) goto E; nextbits(s, 2); skipbits(s, 1); if (!nextbits(s, 1)) goto E; nextbits(s, CalcMinBits(VOL_h->vop_time_inc_res)); 
  if (!nextbits(s, 1)) goto E;                       
  CLRBIT(s[pos_], bit_ - 1);                        
  if (nextbits(s, 1)) goto E;                        
  return pos_;
 fprintf(stderr, "frame parsing error!\n");
  return 0;

Journal Support for NS2 Projects: