Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

LCRetrans.h

Go to the documentation of this file.
00001 /* Copyright (C) 2002 KOM/Darmstadt University of Technology 00002 * 00003 * You are allowed to use all other parts of the code under the following terms: 00004 * 00005 * For non-commercial use, code may be used in unmodified form provided 00006 * that this copyright notice and this permission notice appear in 00007 * supporting documentation. 00008 * 00009 * This software is provided "as is" and without any express or implied 00010 * warranties, including, without limitation, the implied warranty of 00011 * fitness for a particular purpose. 00012 * 00013 * The code may be subjected to the GNU General Public License, Version 2, 00014 * and re-distributed under the terms of this license. 00015 * As a special exception, permission is granted to link this code 00016 * with the Qt library and distribute executables, as long as you 00017 * follow the requirements of the GNU GPL in regard to all of the 00018 * software in the executable aside from Qt. 00019 * 00020 * Commercial use other than under the terms of the GNU General Public 00021 * License is allowed only after express negotiation of conditions 00022 * with the authors. 00023 */ 00024 00025 #ifndef LC_RETRANS_H 00026 #define LC_RETRANS_H 00027 00028 #include <config.h> 00029 #include "RetransBase.h" 00030 #include "RetransCommon.h" 00031 #include "MNRope.h" 00032 #include "lcrtp/MNLCRTPdefs.h" 00033 #include "lcrtp/MNLCRTPLossList.h" 00034 #include "lcrtp/MNLCRTPdefs.h" 00035 #include "sh/MNRTPEncoderSH.h" 00036 #include "sh/SHGraphManager.h" 00037 00038 /************************************************************** 00039 * Class: LCRetrans 00040 * Description: Contains the functionality that builds the 00041 * corresponding RTP extension header for 00042 * LC-RTP 00043 * Oslo, August 2002 00044 **************************************************************/ 00045 00046 namespace SH 00047 { 00048 00049 class LCRetrans : public RetransCommon 00050 { 00051 ProtectedU_int32 _repeat_timeouts; 00052 lcstreamer_send_t* _StreamData; 00053 u_int64 _offset; 00054 Timeval _resend_timeout; 00055 MNMutex _send_mutex; 00056 Base* _encSH; 00057 public: 00058 00061 LCRetrans( Base* encSH ); 00062 00065 virtual ~LCRetrans( ); 00066 00067 MNRope* createExtensionHeaderData( int& type ); 00068 bool hasExtHeader( ); 00069 bool prepareCallback( ); 00070 SH::ReportPtr sendEnd( ); 00071 MNRope* get_next_data( SH::SinkEndpoint* pull_here, 00072 size_t max_bytes_to_pull, 00073 SH::ReturnCode& except, 00074 size_t& pulled_bytes, 00075 bool& rtp_marker, 00076 u_int32& rtp_timestamp, 00077 Timeval& next_playtime_packet, 00078 int bandwidth, 00079 int& cbpidx); 00080 bool evalRTRTCP( void* data, int len, int subtype, int& cbpidx); 00081 }; 00082 00083 }; 00084 #endif /* LC_RETRANS_H */

Generated on Sun Mar 6 13:35:49 2005 for Komssys by doxygen 1.3.8