EvalVid Example

Download sample Evalvid example code for transmission of mpeg video files.

Evalvid-RA:

  • 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 that 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;

}