X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FDefaultBundle%2FRTPPacket.hh;h=54e8900f5eb933de2f8ead40a30ec3830dcea823;hb=refs%2Fheads%2Fmaster;hp=403d994a1dbd051bea83728db53d14e5562c2337;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/Packets/DefaultBundle/RTPPacket.hh b/senf/Packets/DefaultBundle/RTPPacket.hh index 403d994..54e8900 100644 --- a/senf/Packets/DefaultBundle/RTPPacket.hh +++ b/senf/Packets/DefaultBundle/RTPPacket.hh @@ -2,37 +2,41 @@ // // Copyright (C) 2006 // Fraunhofer Institute for Open Communication Systems (FOKUS) -// Competence Center NETwork research (NET), St. Augustin, GERMANY -// Philipp Batroff // -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. +// The contents of this file are subject to the Fraunhofer FOKUS Public License +// Version 1.0 (the "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// http://senf.berlios.de/license.html // -// This program 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 General Public License for more details. +// The Fraunhofer FOKUS Public License Version 1.0 is based on, +// but modifies the Mozilla Public License Version 1.1. +// See the full license text for the amendments. // -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the -// Free Software Foundation, Inc., -// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// Software distributed under the License is distributed on an "AS IS" basis, +// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +// for the specific language governing rights and limitations under the License. +// +// The Original Code is Fraunhofer FOKUS code. +// +// The Initial Developer of the Original Code is Fraunhofer-Gesellschaft e.V. +// (registered association), Hansastraße 27 c, 80686 Munich, Germany. +// All Rights Reserved. +// +// Contributor(s): +// Philipp Batroff /** \file \brief RTPPacket public header */ -// Custom includes #ifndef HH_SENF_Packets_DefaultBundle_RTPPacket_ -#define HH_SENF_Packets_DefaultBundle_RTPPacket_ - -#include "../../Packets/Packets.hh" -#include "../../Socket/Protocols/INet/INet6Address.hh" +#define HH_SENF_Packets_DefaultBundle_RTPPacket_ 1 +// Custom includes +#include +//-///////////////////////////////////////////////////////////////////////////////////////////////// namespace senf { - + struct RTPPacketParser : public PacketParserBase { # include SENF_PARSER() @@ -43,30 +47,33 @@ namespace senf { SENF_PARSER_BITFIELD ( marker, 1, bool ); //Marker M=1, used to signal speech silent compression; further use in combination with PT to be defined SENF_PARSER_BITFIELD ( payloadType, 7, unsigned ); //Payload Type; e.g. PCM=8 (RFC 3550) SENF_PARSER_FIELD ( seqNumber, UInt16Parser ); //random number to identify initial segment of a stream, increment by 1 used to resequence segments at receiver - SENF_PARSER_FIELD ( timeStamp, UInt32Parser ); //signals sampling time of 1st byte of payload; initialised; used to calculate Jitter between segments - SENF_PARSER_FIELD ( synSourceId, UInt32Parser ); //Synchronisation source identifier; identifier of RFTP stream source (random number) in case of conferencing identifier of mixer + SENF_PARSER_FIELD ( timeStamp, UInt32Parser ); //signals sampling time of 1st byte of payload; initialized; used to calculate Jitter between segments + SENF_PARSER_FIELD ( synSourceId, UInt32Parser ); //Synchronization source identifier; identifier of RFTP stream source (random number) in case of conferencing identifier of mixer SENF_PARSER_VECTOR (csrcOpt, csrcCount, UInt32Parser ); - - bool valid() const {return version() == 2;} + SENF_PARSER_FINALIZE(RTPPacketParser); + + bool valid() const { return version() == 2; } }; - - struct RTPPacketType + + struct RTPPacketType : public PacketTypeBase, public PacketTypeMixin { typedef PacketTypeMixin mixin; typedef ConcretePacket packet; typedef RTPPacketParser parser; - + using mixin::nextPacketRange; using mixin::init; using mixin::initSize; - - static void dump(packet p, std::ostream &os); + + static void dump(packet p, std::ostream & os); }; - + typedef RTPPacketType::packet RTPPacket; } + +//-///////////////////////////////////////////////////////////////////////////////////////////////// #endif