[Sumover-dev] [svn commit] r4614 - in vic/branches/cc: . codec rtp video

sumover-dev at cs.ucl.ac.uk sumover-dev at cs.ucl.ac.uk
Mon Feb 15 21:14:38 GMT 2010


Author: soohyunc
Date: Mon Feb 15 21:14:38 2010
New Revision: 4614

Modified:
   vic/branches/cc/cc/o.sh
   vic/branches/cc/cc/seqno.sh
   vic/branches/cc/codec/encoder-h261.cpp
   vic/branches/cc/module.h
   vic/branches/cc/rtp/session.cpp
   vic/branches/cc/rtp/transmitter.cpp
   vic/branches/cc/video/grabber-still.cpp

Log:
sync'ed time measurement method among grabber/session manager/transmitter/codec



Modified: vic/branches/cc/cc/o.sh
==============================================================================
--- vic/branches/cc/cc/o.sh	(original)
+++ vic/branches/cc/cc/o.sh	Mon Feb 15 21:14:38 2010
@@ -13,3 +13,15 @@
 
 # encoding time difference
 grep enc_time trace.s | grep -v pid | awk '{if($1=="num:" && $3=="enc_time:") print}' | awk '{print $2"\t"$4}' > enct.xg
+
+# start grab
+grep start_grab trace.s | awk '{print $3" "100}' > grs.xg
+
+# end grab
+grep end_grab trace.s | awk '{print $3" "100}' > gre.xg
+
+# grabbing time difference
+grep grab_time trace.s | awk '{print $2"\t"$4}' > grt.xg
+
+# incoming XR
+grep incomingXR trace.s | awk '{print $3" "100}' > inXR.xg

Modified: vic/branches/cc/cc/seqno.sh
==============================================================================
--- vic/branches/cc/cc/seqno.sh	(original)
+++ vic/branches/cc/cc/seqno.sh	Mon Feb 15 21:14:38 2010
@@ -18,6 +18,7 @@
 plot \
 	"encs.xg" with impulses, \
 	"ence.xg" with impulses, \
+	"inXR.xg" with impulses, \
 	"seqno.xg" ls 3
 
 EOF

Modified: vic/branches/cc/codec/encoder-h261.cpp
==============================================================================
--- vic/branches/cc/codec/encoder-h261.cpp	(original)
+++ vic/branches/cc/codec/encoder-h261.cpp	Mon Feb 15 21:14:38 2010
@@ -218,7 +218,6 @@
 	bs_(0), bc_(0), ngob_(12)
 {
 	// h261 gettimeofday
-	ts_off_ = h261_now();
 	enc_start_ = 0.0;
 	enc_end_ = 0.0;
 	encno_ = 1;
@@ -798,9 +797,10 @@
 H261Encoder::encode(const VideoFrame* vf, const u_int8_t *crvec)
 {
 	//fprintf(stderr,"\nH261Encoder encode()\n");
+	ts_off_ = offset();
 	tx_->tx_now_offset_ = ts_off_;
 	enc_start_ = h261_now() - ts_off_;
-	fprintf(stderr,"\nh261_encode_start\tnow: %f\n", enc_start_);
+	fprintf(stderr,"h261_encode_start\tnow: %f\n", enc_start_);
 
 	tx_->flush();
 
@@ -896,10 +896,10 @@
 	}
 	cc += flush(pb, ((bc_ - bs_) << 3) + nbb_, 0);
 
-	// XXX experimental
+	// time measurement
 	enc_end_ = h261_now() - ts_off_;
 	fprintf(stderr,"\nh261_encode_end\tnow: %f\n", enc_end_);
-	fprintf(stderr,"\n\nnum: %d\tenc_time: %f\n\n", 
+	fprintf(stderr,"num: %d\tenc_time: %f\n", 
 		encno_++, (enc_end_ - enc_start_));
 
 	return (cc);

Modified: vic/branches/cc/module.h
==============================================================================
--- vic/branches/cc/module.h	(original)
+++ vic/branches/cc/module.h	Mon Feb 15 21:14:38 2010
@@ -122,6 +122,10 @@
 	virtual int consume(const VideoFrame*) = 0;
 	virtual int command(int argc, const char*const* argv);
 	inline int ft() const { return (ft_); }
+
+	double offset_;
+	inline double offset() { return offset_; }
+
     protected:
 	Module(int ft);
 	static int atoft(const char* s);

Modified: vic/branches/cc/rtp/session.cpp
==============================================================================
--- vic/branches/cc/rtp/session.cpp	(original)
+++ vic/branches/cc/rtp/session.cpp	Mon Feb 15 21:14:38 2010
@@ -1318,6 +1318,8 @@
 			
 			switch (cc_type_) {
 			case WBCC:
+				fprintf(stderr, 
+				"\tincomingXR\tnow: %f\n",tx_now()-tx_now_offset_);
 				// TFWC sender (getting AckVec)
 				tfwc_sndr_recv(xr->BT, begin, end, chunk);
 				// we need to call Transmitter::output(pb) to make Ack driven

Modified: vic/branches/cc/rtp/transmitter.cpp
==============================================================================
--- vic/branches/cc/rtp/transmitter.cpp	(original)
+++ vic/branches/cc/rtp/transmitter.cpp	Mon Feb 15 21:14:38 2010
@@ -327,8 +327,8 @@
 	int jack = (int) tfwc_sndr_jacked();
 	//debug_msg("jack: %d\n", jack);
 
-	//fprintf(stderr, "\tXXX num: %d\tcwnd: %d\tjack: %d\n",
-	//	ntohs(rh->rh_seqno), magic, jack);
+	//fprintf(stderr, "\tXXX now: %f\tnum: %d\tcwnd: %d\tjack: %d\n",
+	//tx_now()-tx_now_offset_, ntohs(rh->rh_seqno), magic, jack);
 
 	// while packet seqno is within "cwnd + jack", send that packet
 	while (ntohs(rh->rh_seqno) <= magic + jack) {

Modified: vic/branches/cc/video/grabber-still.cpp
==============================================================================
--- vic/branches/cc/video/grabber-still.cpp	(original)
+++ vic/branches/cc/video/grabber-still.cpp	Mon Feb 15 21:14:38 2010
@@ -79,6 +79,17 @@
 	StillYuvGrabber();
 	virtual ~StillYuvGrabber();
 	virtual int command(int argc, const char* const* argv);
+	
+	inline double stillYuv_now() {
+		timeval tv;
+		::gettimeofday(&tv, NULL);
+		return ((double) tv.tv_sec + 1e-6 * (double) tv.tv_usec);
+	}
+	double stillYuv_ts_off_;
+	double start_grab_;
+	double end_grab_;
+	int num_grab_;
+
 protected:
 	void start();
 	void stop();
@@ -293,6 +304,10 @@
 StillYuvGrabber::StillYuvGrabber() :
 	width_(0), height_(0), num_frame_(0)
 {
+	stillYuv_ts_off_ = stillYuv_now();
+	start_grab_ = 0.0;
+	end_grab_ = 0.0;
+	num_grab_ = 1;
 }
 
 StillYuvGrabber::~StillYuvGrabber()
@@ -335,6 +350,12 @@
 #ifdef DEBUG
 	debug_msg("StillYuvGrabber::grab() called\n");
 #endif
+
+	// time measurement
+	target_->offset_ = stillYuv_ts_off_;
+	start_grab_ = stillYuv_now() - stillYuv_ts_off_;
+	fprintf(stderr, "start_grab\tnow: %f\n", start_grab_);
+
     int frc=0; //SV-XXX: gcc4 warns for initialisation
 
 	// "framesize_" is just the number of pixels, 
@@ -356,5 +377,11 @@
 	YuvFrame f(media_ts(), (u_int8_t *) frame_, crvec_, outw_, outh_);
 
 	frc = target_->consume(&f);
+
+	// time measurement
+	end_grab_ = stillYuv_now() - stillYuv_ts_off_;
+	fprintf(stderr, "end_grab\tnow: %f\n", end_grab_);
+	fprintf(stderr, "num: %d\tgrab_time: %f\n",
+		num_grab_++, end_grab_ - start_grab_);
     return frc;
 }



More information about the Sumover-dev mailing list