gt:             for (int i = 0; i < chunk.items.length; i++)
context: package net.sf.fmj.media.rtp;
  
  import java.net.*;
  import java.util.*;
  
  import javax.media.*;
  import javax.media.rtp.*;
  import javax.media.rtp.rtcp.*;
  
  import net.sf.fmj.media.protocol.rtp.*;
  import net.sf.fmj.media.rtp.util.*;
  
  public abstract class SSRCInfo implements Report
  {
      private SSRCCache cache;
      boolean alive;
      boolean payloadchange;
      boolean byeReceived;
      long byeTime;
      String byereason;
      public RTPSourceInfo sourceInfo;
      public SourceDescription name;
      public SourceDescription email;
      public SourceDescription phone;
      public SourceDescription loc;
      public SourceDescription tool;
      public SourceDescription note;
      SourceDescription priv;
      public long lastSRntptimestamp;
      long lastSRrtptimestamp;
      long lastSRoctetcount;
      long lastSRpacketcount;
      long lastRTCPreceiptTime;
      public long lastSRreceiptTime;
      long lastHeardFrom;
      boolean quiet;
      boolean inactivesent;
      boolean aging;
      public boolean sender;
      public boolean ours;
      public int ssrc;
      boolean streamconnect;
      SSRCTable<RTCPReportBlock[]> reports;
      boolean active;
      boolean newrecvstream;
      boolean recvstrmap;
      boolean newpartsent;
      boolean lastsr;
      boolean wrapped;
      static final int INITIALPROBATION = 2;
      int probation;
      static final int PAYLOAD_UNASSIGNED = -1;
      boolean wassender;
      public int prevmaxseq;
      public int prevlost;
      long starttime;
      public long rtptime;
      public long systime;
      InetAddress address;
      int port;
      RTCPReporter reporter;
      Format currentformat;
      int payloadType;
      DataSource dsource;
      javax.media.protocol.DataSource pds;
      RTPSourceStream dstream;
      RTPSinkStream sinkstream;
      long lastRTPReceiptTime;
      public int maxseq;
      public int cycles;
      public int baseseq;
      int lastbadseq;
      public int received;
      long lasttimestamp;
      int lastPayloadType = -1;
      public double jitter;
      public int bytesreceived;
      RTPStats stats;
      int clockrate;
  
      SSRCInfo(SSRCCache cache, int ssrc)
      {
          alive = false;
          payloadchange = false;
          byeReceived = false;
          byeTime = 0L;
          byereason = null;
          sourceInfo = null;
          name = null;
          email = null;
          phone = null;
          loc = null;
          tool = null;
          note = null;
          priv = null;
          lastSRntptimestamp = 0L;
          lastSRrtptimestamp = 0L;
          lastSRoctetcount = 0L;
          lastSRpacketcount = 0L;
          lastRTCPreceiptTime = 0L;
          lastSRreceiptTime = 0L;
          lastHeardFrom = 0L;
          quiet = false;
          inactivesent = false;
          sender = false;
          ours = false;
          streamconnect = false;
          reports = new SSRCTable<RTCPReportBlock[]>();
          active = false;
          newrecvstream = false;
          recvstrmap = false;
          newpartsent = false;
          lastsr = false;
          wrapped = false;
          probation = INITIALPROBATION;
          wassender = false;
          currentformat = null;
          payloadType = -1;
          dsource = null;
          pds = null;
          dstream = null;
          sinkstream = null;
          maxseq = 0;
          cycles = 0;
          lasttimestamp = 0L;
          jitter = 0.0D;
          clockrate = 0;
          this.cache = cache;
          this.ssrc = ssrc;
          stats = new RTPStats();
      }
  
      SSRCInfo(SSRCInfo info)
      {
          alive = false;
          payloadchange = false;
          byeReceived = false;
          byeTime = 0L;
          byereason = null;
          sourceInfo = null;
          name = null;
          email = null;
          phone = null;
          loc = null;
          tool = null;
          note = null;
          priv = null;
          lastSRoctetcount = 0L;
          lastSRpacketcount = 0L;
          lastSRreceiptTime = 0L;
          lastHeardFrom = 0L;
          quiet = false;
          inactivesent = false;
          sender = false;
          ours = false;
          streamconnect = false;
          reports = new SSRCTable<RTCPReportBlock[]>();
          active = false;
          newrecvstream = false;
          recvstrmap = false;
          newpartsent = false;
          lastsr = false;
          wrapped = false;
          probation = INITIALPROBATION;
          wassender = false;
          currentformat = null;
          payloadType = -1;
          pds = null;
          sinkstream = null;
          maxseq = 0;
          cycles = 0;
          lasttimestamp = 0L;
          jitter = 0.0D;
          clockrate = 0;
          cache = info.cache;
          alive = info.alive;
          sourceInfo = info.sourceInfo;
          if (sourceInfo != null)
              sourceInfo.addSSRC(this);
          cache.remove(info.ssrc);
          name = info.name;
          email = info.email;
          phone = info.phone;
          loc = info.loc;
          tool = info.tool;
          note = info.note;
          priv = info.priv;
          lastSRntptimestamp = info.lastSRntptimestamp;
          lastSRrtptimestamp = info.lastSRrtptimestamp;
          lastSRoctetcount = info.lastSRoctetcount;
          lastSRpacketcount = info.lastSRpacketcount;
          lastRTCPreceiptTime = info.lastRTCPreceiptTime;
          lastSRreceiptTime = info.lastSRreceiptTime;
          lastHeardFrom = info.lastHeardFrom;
          quiet = info.quiet;
          inactivesent = info.inactivesent;
          aging = info.aging;
          reports = info.reports;
          ours = info.ours;
          ssrc = info.ssrc;
          streamconnect = info.streamconnect;
          newrecvstream = info.newrecvstream;
          recvstrmap = info.recvstrmap;
          newpartsent = info.newpartsent;
          lastsr = info.lastsr;
          probation = info.probation;
          wassender = info.wassender;
          prevmaxseq = info.prevmaxseq;
          prevlost = info.prevlost;
          starttime = info.starttime;
          reporter = info.reporter;
          if (info.reporter != null)
              reporter.transmit.setSSRCInfo(this);
          payloadType = info.payloadType;
          dsource = info.dsource;
          pds = info.pds;
          dstream = info.dstream;
          lastRTPReceiptTime = info.lastRTPReceiptTime;
          maxseq = info.maxseq;
          cycles = info.cycles;
          baseseq = info.baseseq;
          lastbadseq = info.lastbadseq;
          received = info.received;
          lasttimestamp = info.lasttimestamp;
          lastPayloadType = info.lastPayloadType;
          jitter = info.jitter;
          bytesreceived = info.bytesreceived;
          address = info.address;
          port = info.port;
          stats = info.stats;
          clockrate = info.clockrate;
          byeTime = info.byeTime;
          byeReceived = info.byeReceived;
      }
  
      void addSDESInfo(RTCPSDES chunk)
      {
          int ci;
          for (ci = 0; ci < chunk.items.length; ci++)
              if (chunk.items[ci].type == 1)
                  break;
  
          String s = new String(chunk.items[ci].data);
          String sourceinfocname = null;
          if (sourceInfo != null)
              sourceinfocname = sourceInfo.getCNAME();
          if (sourceInfo != null && !s.equals(sourceinfocname))
          {
              sourceInfo.removeSSRC(this);
              sourceInfo = null;
          }
          if (sourceInfo == null)
          {
              sourceInfo = cache.sourceInfoCache.get(s, ours);
              sourceInfo.addSSRC(this);
          }
          if (chunk.items.length > 1)
          {
  