Ejemplo n.º 1
0
void ddl_calc_core_proc_time(const char *func_name, u32 index,
			struct ddl_client_context *ddl)
{
	struct time_data *time_data = &proc_time[index];
	struct ddl_decoder_data *decoder = NULL;
	if (time_data->ddl_t1) {
		int ddl_t2;
		struct timeval ddl_tv;
		do_gettimeofday(&ddl_tv);
		ddl_t2 = (ddl_tv.tv_sec * 1000) + (ddl_tv.tv_usec / 1000);
		time_data->ddl_ttotal += (ddl_t2 - time_data->ddl_t1);
		time_data->ddl_count++;
		if (vidc_msg_timing) {
			DDL_MSG_TIME("\n%s(): cnt(%u) End Time (%u)"
				"Diff(%u) Avg(%u)",
				func_name, time_data->ddl_count, ddl_t2,
				ddl_t2 - time_data->ddl_t1,
				time_data->ddl_ttotal/time_data->ddl_count);
		}
		if ((index == DEC_OP_TIME) && (time_data->ddl_count > 2) &&
					(time_data->ddl_count < 6)) {
			decoder = &(ddl->codec_data.decoder);
			decoder->dec_time_sum = decoder->dec_time_sum +
				ddl_t2 - time_data->ddl_t1;
			if (time_data->ddl_count == 5)
				decoder->avg_dec_time =
					decoder->dec_time_sum / 3;
		}
		time_data->ddl_t1 = 0;
	}
}
void ddl_set_core_start_time(const char *func_name, u32 index)
{
	u32 act_time;
	struct timeval ddl_tv;
	struct time_data *time_data = &proc_time[index];
	do_gettimeofday(&ddl_tv);
	act_time = (ddl_tv.tv_sec * 1000) + (ddl_tv.tv_usec / 1000);
	if (!time_data->ddl_t1) {
		time_data->ddl_t1 = act_time;
		DDL_MSG_LOW("\n%s(): Start Time (%u)", func_name, act_time);
	} else {
		DDL_MSG_TIME("\n%s(): Timer already started! St(%u) Act(%u)",
			func_name, time_data->ddl_t1, act_time);
	}
}
void ddl_calc_core_proc_time(const char *func_name, u32 index)
{
	struct time_data *time_data = &proc_time[index];
	if (time_data->ddl_t1) {
		int ddl_t2;
		struct timeval ddl_tv;
		do_gettimeofday(&ddl_tv);
		ddl_t2 = (ddl_tv.tv_sec * 1000) + (ddl_tv.tv_usec / 1000);
		time_data->ddl_ttotal += (ddl_t2 - time_data->ddl_t1);
		time_data->ddl_count++;
		DDL_MSG_TIME("\n%s(): cnt(%u) End Time (%u) Diff(%u) Avg(%u)",
			func_name, time_data->ddl_count, ddl_t2,
			ddl_t2 - time_data->ddl_t1,
			time_data->ddl_ttotal/time_data->ddl_count);
		time_data->ddl_t1 = 0;
	}
}