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

📄 timestamp.cpp

📁 用VC++编译的13818-5 MPEG2系统层分析代码
💻 CPP
字号:
/* Copyright (C) 1995, Tektronix Inc. All Rights Reserved. * *   Usage Restrictions * * License is granted to copy, to use, and to make and to use derivative * works for research and evaluation purposes only. * *   Disclaimer of Warranty * * These software programs are available to the user without any license * fee or royalty on an "as is" basis.  Tektronix Inc. disclaims any and * all warranties, whether express, implied, or statuary, including any * implied warranties or merchantability or of fitness for a particular * purpose.  In no event shall the copyright-holder be liable for any  * incidental, punitive, or consequential damages of any kind whatsoever * arising from the use of these programs. * * This disclaimer of warranty extends to the user of these programs and * user's customers, employees, agents, transferees, successors, and * assigns. * * The Tektronix Inc. does not represent or warrant that the programs * furnished hereunder are free of infringement of any third-party * patents.*//* TimeStamp implementation */#include "TimeStamp.H"#include "Utilities.H"extern "C"{#include <stdio.h>}TimeStamp90::TimeStamp90 (long b){  bit32 = 0;  bits0_31 = b;}TimeStamp90::TimeStamp90 (long b, int b32){  bit32 = b32;  bits0_31 = b;}TimeStamp90::TimeStamp90 (const TimeStamp27& a){  bit32 = a.bit32;  bits0_31 = a.bits0_31;}void TimeStamp90::print (){  // FIX -- the following is a cheap hack  if (bit32) printf("2*");  printf("%d", bits0_31);}TimeStamp27::TimeStamp27 () : TimeStamp90 (0){  ext = 0;}TimeStamp27::TimeStamp27 (long b) : TimeStamp90(b / 300){  ext = b % 300;}TimeStamp27::TimeStamp27 (long b, short e) : TimeStamp90(b){  ext = e;}TimeStamp27::TimeStamp27 (long b, int b32, short e) : TimeStamp90(b, b32){  ext = e;}TimeStamp27& TimeStamp27::operator = (const TimeStamp27& a){  bit32 = a.bit32;  bits0_31 = a.bits0_31;  ext = a.ext;  return *this;}TimeStamp27& TimeStamp27::operator = (long a){  bit32 = 0;  bits0_31 = a / 300;  ext = a % 300;  return *this;}TimeStamp27 operator + (TimeStamp27& a, TimeStamp27& b){  TimeStamp27 r;  int extsum = a.ext + b.ext;    r.bits0_31 = a.bits0_31 + b.bits0_31;  r.bits0_31 += (extsum > 299) ? 1 : 0;  r.ext = extsum % 300;  return r;}TimeStamp27 operator - (TimeStamp27& a, TimeStamp27& b){  TimeStamp27 r;  if (b > a)    {      sys_message("can't return negative difference in TimeStamp27 operator-");      return r;    }  if (a.ext < b.ext)    { // borrow case      r.ext = a.ext + 300 - b.ext;      r.bits0_31 = a.bits0_31 - b.bits0_31 - 1;    }  else    {      r.ext = a.ext - b.ext;      r.bits0_31 = a.bits0_31 - b.bits0_31;    }  return r;}int operator > (TimeStamp27& a, TimeStamp27& b){  if (a.bits0_31 > b.bits0_31) return 1;  if (a.bits0_31 < b.bits0_31) return 0;  if (a.ext > b.ext) return 1;  if (a.ext < b.ext) return 0;  return 0;}long TimeStamp27::useconds (){  unsigned long t = bits0_31 * 300 + ext;  return t / 27;}void TimeStamp27::print (){  printf("(");  if (bit32) printf("2*");  printf("%d", bits0_31);  printf(",%d)", ext);  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -