src/jlibrtp/AppCallerThread.java
changeset 214 2bf440c54ca5
parent 213 9bdff6cbd120
child 215 5db64229be69
--- a/src/jlibrtp/AppCallerThread.java	Thu May 28 14:26:06 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/**
- * Java RTP Library (jlibrtp)
- * Copyright (C) 2006 Arne Kepp
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-package jlibrtp;
-
-import java.util.Enumeration;
-
-/**
- * The purpose of this thread is to check whether there are packets ready from 
- * any participants.
- * 
- * It should sleep when not in use, and be woken up by a condition variable.
- * 
- * Optionally, if we do jitter-control, the condition variable should have a max waiting period 
- * equal to how often we need to push data.
- * 
- * @author Arne Kepp
- */
-public class AppCallerThread extends Thread {
-	/**  The parent RTP Session */
-	RTPSession rtpSession;
-	/**  The applications interface, where the callback methods are called */
-	RTPAppIntf appl;
-	
-	/**
-	 * Instatiates the AppCallerThread
-	 * 
-	 * @param session the RTPSession with participants etc
-	 * @param rtpApp the interface to which data is given
-	 */
-	protected AppCallerThread(RTPSession session, RTPAppIntf rtpApp) {
-		rtpSession = session;
-		appl = rtpApp;
-		if(RTPSession.rtpDebugLevel > 1) {
-			System.out.println("<-> AppCallerThread created");
-		}  
-	}
-	
-	/**
-	 * The AppCallerThread will run in this loop until the RTPSession
-	 * is terminated.
-	 * 
-	 * Whenever an RTP packet is received it will loop over the
-	 * participants to check for packet buffers that have available
-	 * frame.
-	 */
-	public void run() {
-		if(RTPSession.rtpDebugLevel > 3) {
-			System.out.println("-> AppCallerThread.run()");
-		}
-		
-		while(rtpSession.endSession == false) {
-			
-			rtpSession.pktBufLock.lock();
-		    try {
-				if(RTPSession.rtpDebugLevel > 4) {
-					System.out.println("<-> AppCallerThread going to Sleep");
-				}
-				
-				try { rtpSession.pktBufDataReady.await(); } 
-					catch (Exception e) { System.out.println("AppCallerThread:" + e.getMessage());}
-					
-		    	// Next loop over all participants and check whether they have anything for us.
-				Enumeration<Participant> enu = rtpSession.partDb.getParticipants();
-				
-				while(enu.hasMoreElements()) {
-					Participant p = enu.nextElement(); 
-					
-					boolean done = false;
-					//System.out.println(p.ssrc + " " + !done +" " + p.rtpAddress 
-					//		+ " " + rtpSession.naiveReception + " " + p.pktBuffer);
-					//System.out.println("done: " + done + "  p.unexpected: " + p.unexpected);
-					while(!done && (!p.unexpected || rtpSession.naiveReception) 
-							&& p.pktBuffer != null && p.pktBuffer.length > 0) {
-
-						DataFrame aFrame = p.pktBuffer.popOldestFrame();
-						if(aFrame == null) {
-							done = true;
-						} else {
-							appl.receiveData(aFrame, p);
-						}
-					}
-				}
-		    
-		     } finally {
-		       rtpSession.pktBufLock.unlock();
-		     }
-			
-		}
-		if(RTPSession.rtpDebugLevel > 3) {
-			System.out.println("<- AppCallerThread.run() terminating");
-		}  
-	}
-
-}