1.1 --- a/epoc32/include/rtp.h Tue Mar 16 16:12:26 2010 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,1352 +0,0 @@
1.4 -// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 -// All rights reserved.
1.6 -// This component and the accompanying materials are made available
1.7 -// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
1.8 -// which accompanies this distribution, and is available
1.9 -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.10 -//
1.11 -// Initial Contributors:
1.12 -// Nokia Corporation - initial contribution.
1.13 -//
1.14 -// Contributors:
1.15 -//
1.16 -// Description:
1.17 -//
1.18 -
1.19 -#ifndef RTP_H
1.20 -#define RTP_H
1.21 -
1.22 -#include <es_sock.h>
1.23 -
1.24 -class TRtpEvent;
1.25 -class RRtpSession;
1.26 -class RRtpSendPacket;
1.27 -class RRtpReceivePacket;
1.28 -class RRtpReceiveSource;
1.29 -class RRtpSendSource;
1.30 -class RRtpHeaderExtension;
1.31 -class RRtpCSRCs;
1.32 -class CRtpSession;
1.33 -class CRtpReceiveSource;
1.34 -class CRtpSendSource;
1.35 -class TRtpPacket;
1.36 -
1.37 -class RRtcpRRPart;
1.38 -class RRtcpSRPart;
1.39 -
1.40 -/**
1.41 -@publishedAll
1.42 -@released
1.43 -
1.44 -A set of values that defines the event types that may be handled.
1.45 -
1.46 -See all variants of the RegisterEventCallbackL() function.
1.47 -
1.48 -@see TRtpEvent
1.49 -*/
1.50 -enum TRtpEventType
1.51 - {
1.52 - /**
1.53 - A special event type that is interpreted by all of
1.54 - the RegisterEventCallbackL() set of functions to mean that the registered
1.55 - callback function is to be called for any event except failure events.
1.56 - */
1.57 - ERtpAnyEvent = 0,
1.58 -
1.59 -
1.60 - /**
1.61 - Defines a base value for session events.
1.62 -
1.63 - All session event types have values that are greater than this.
1.64 - */
1.65 - ERtpSessionEventBase = 0x100,
1.66 -
1.67 -
1.68 - /**
1.69 - An event type that indicates that a session-level error has occurred.
1.70 -
1.71 - The event status is a standard Symbian OS error code.
1.72 - The callback parameter is used to register interest in only one
1.73 - type of error.
1.74 - */
1.75 - ERtpSessionFail = 0x101,
1.76 -
1.77 -
1.78 - /**
1.79 - An event type that indicates that a new stream has been received.
1.80 -
1.81 - The event status is the SSRC of the stream.
1.82 - */
1.83 - ERtpNewSource = 0x102,
1.84 -
1.85 -
1.86 - /**
1.87 - An event type that indicates that an RTCP RR (Receiver Report) has been
1.88 - received.
1.89 -
1.90 - The event status is the SSRC of the sender.
1.91 -
1.92 - Note - This event type has not been implemented yet.
1.93 - */
1.94 - ERtpNewRR = 0x103,
1.95 -
1.96 -
1.97 - /**
1.98 - An event type that indicates that a packet bigger than the expected maximum
1.99 - has been received.
1.100 -
1.101 - When this event occurs, the packet is deleted.
1.102 - */
1.103 - ERtpBufferOverflow = 0x104,
1.104 -
1.105 -
1.106 - /**
1.107 - An event type that indicates that a packet has been recived that
1.108 - is smaller than its header.
1.109 -
1.110 - When this event occurs, the packet is deleted.
1.111 - */
1.112 - ERtpUndersizedPacket = 0x105,
1.113 -
1.114 -
1.115 - /**
1.116 - Not an event type, but defines the upper limit for session event
1.117 - type values.
1.118 - */
1.119 - ERtpSessionEventEnd = 0x1ff,
1.120 -
1.121 -
1.122 - /**
1.123 - Not an event type but defines a base value for send stream events.
1.124 -
1.125 - All send stream event types have values that are greater than this.
1.126 - */
1.127 - ERtpSendEventBase = 0x200,
1.128 -
1.129 -
1.130 - /**
1.131 - An event type that indicates that an error has occurred while sending
1.132 - a packet.
1.133 -
1.134 - The event status is a standard Symbian OS error code. The callback parameter
1.135 - is used only to register interest in one type of error.
1.136 - */
1.137 - ERtpSendFail = 0x201,
1.138 -
1.139 -
1.140 - /**
1.141 - An event type that indicates that a send packet operation has succeeded.
1.142 - */
1.143 - ERtpSendSucceeded = 0x202,
1.144 -
1.145 -
1.146 - /**
1.147 - Not an event type, but defines the upper limit for send stream event
1.148 - type values.
1.149 - */
1.150 - ERtpSendEventEnd = 0x2ff,
1.151 -
1.152 -
1.153 - /**
1.154 - Not an event type but defines a base value for receive stream events.
1.155 -
1.156 - All receive stream event types have values that are greater than this.
1.157 - */
1.158 - ERtpSourceEventBase = 0x300,
1.159 -
1.160 -
1.161 - /**
1.162 - An event type that indicates that an error has occurred.
1.163 -
1.164 - The event status is a standard Symbian OS error code. The callback parameter
1.165 - is used only to register interest in one type of error.
1.166 - */
1.167 - ERtpSourceFail = 0x301,
1.168 -
1.169 -
1.170 - /**
1.171 - An event type that indicates that an in-sequence packet has been received.
1.172 - */
1.173 - ERtpPacketReceived = 0x302,
1.174 -
1.175 -
1.176 - /**
1.177 - An event type that indicates that the codec has changed.
1.178 -
1.179 - The event status is the new payload type.
1.180 - */
1.181 - ERtpCodecChange = 0x303,
1.182 -
1.183 -
1.184 - /**
1.185 - An event type that indicates that a marker packet has arrived.
1.186 - */
1.187 - ERtpMarker = 0x304,
1.188 -
1.189 -
1.190 - /**
1.191 - An event type that indicates that a misordered packet has arrived.
1.192 - */
1.193 - ERtpMisorder = 0x305,
1.194 -
1.195 -
1.196 - /**
1.197 - An event type that indicates that a dropout has been detected.
1.198 - */
1.199 - ERtpDropout = 0x306,
1.200 -
1.201 -
1.202 - /**
1.203 - An event type that indicates that a SDES (Source Description) RTCP packet
1.204 - has been received.
1.205 -
1.206 - For SDES events, the callback parameter is used to specify the type of
1.207 - SDES. Use a value from TRtpSendPacketType
1.208 -
1.209 - The event status is the SSRC of the sender.
1.210 -
1.211 - @see RRtpSession::TRtpSendPacketType
1.212 - */
1.213 - ERtpSDES = 0x307,
1.214 -
1.215 -
1.216 - /**
1.217 - An event type that indicates that a APP (Application Defined) RTCP packet
1.218 - has been received.
1.219 -
1.220 - The event status is the SSRC of the sender.
1.221 -
1.222 - */
1.223 - ERtpAPP = 0x308,
1.224 -
1.225 -
1.226 - /**
1.227 - An event type that indicates that a SR (Sender Report) RTCP packet
1.228 - has been received.
1.229 -
1.230 - The event status is the SSRC of the sender.
1.231 -
1.232 - */
1.233 - ERtpSR = 0x309,
1.234 -
1.235 -
1.236 - /**
1.237 - An event type that indicates that a RR (Receiver Report) RTCP packet
1.238 - has been received.
1.239 -
1.240 - The event status is the SSRC of the sender.
1.241 - */
1.242 - ERtpRR = 0x30a,
1.243 -
1.244 -
1.245 - /**
1.246 - An event type that indicates that a BYE (Goodbye) RTCP packet
1.247 - has been received.
1.248 -
1.249 - The event status is the SSRC of the sender.
1.250 - */
1.251 - ERtpBYE = 0x30b,
1.252 -
1.253 -
1.254 - /**
1.255 - Not an event type, but defines the upper limit for receive stream event
1.256 - type values.
1.257 - */
1.258 - ERtpSourceEventEnd = 0x3ff
1.259 - };
1.260 -
1.261 -
1.262 -/**
1.263 -@publishedAll
1.264 -@released
1.265 -
1.266 -Indicates whether a callback function can be called once, or more than once.
1.267 -
1.268 -The appropriate enum value is passed as an argument to the
1.269 -RegisterEventCallbackL() functions of RRtpSession, RRtpSendSource,
1.270 -and RRtpReceiveSource, or to the equivalent static functions.
1.271 -
1.272 -@see RRtpSession
1.273 -@see RRtpSendSource
1.274 -@see RRtpReceiveSource
1.275 -*/
1.276 -enum TRtpOneShotness
1.277 - {
1.278 - /**
1.279 - Indicates that the call back function can be called more than once.
1.280 - */
1.281 - ERtpNotOneShot = 0,
1.282 -
1.283 -
1.284 - /**
1.285 - Indicates that the call back function is only called once.
1.286 - */
1.287 - ERtpOneShot = 0x40000000
1.288 - };
1.289 -
1.290 -
1.291 -
1.292 -
1.293 -/**
1.294 -@publishedAll
1.295 -*/
1.296 -typedef void (*TRtpCallbackFunction)(TAny* aPtr, const TRtpEvent& aEvent);
1.297 -
1.298 -
1.299 -
1.300 -/**
1.301 -@internalComponent
1.302 -*/
1.303 -const TInt KRtpNoParameter = KRequestPending;
1.304 -
1.305 -
1.306 -//Needed for recv-only option for RTP or RTCP
1.307 -//This must map to TRtpType
1.308 -enum TPacketType
1.309 - {
1.310 - EPacketRtp,
1.311 - EPacketRtcp
1.312 - };
1.313 -
1.314 -
1.315 -
1.316 -
1.317 -/**
1.318 -@publishedAll
1.319 -@released
1.320 -
1.321 -A value that can be passed as the second parameter in a call to either
1.322 -RRtpSendSource::NewSendPacketL() or RRtpSendSource::NewSendPacketLC()
1.323 -to indicate that no exension is required for the RTP send packet.
1.324 -*/
1.325 -const TInt KRtpNoExtension = -1;
1.326 -
1.327 -
1.328 -
1.329 -/**
1.330 -@publishedAll
1.331 -@released
1.332 -
1.333 -A handle to an RTP session.
1.334 -
1.335 -This is the interface to the socket-level RTP service, and provides additional
1.336 -facilities such as header parsing, re-ordering out-of-order packets,
1.337 -demultiplexing multiple sources etc.
1.338 -
1.339 -The class abstracts all RTP information going to/from a RTP socket, and its
1.340 -corresponding RTCP data.
1.341 -
1.342 -Each RTP endpoint on a device needs its own RTP session.
1.343 -
1.344 -Multiple hosts streaming to a port on this device correspond
1.345 -to different RRtpReceiveSource objects associated with the session.
1.346 -
1.347 -The class behaviour assumes that an active scheduler has already been created
1.348 -and started; the class does not function correctly if not.
1.349 -*/
1.350 -class RRtpSession
1.351 - {
1.352 - public:
1.353 - /**
1.354 - A set of bit values passed as a parameter to RRtpSession::SendRTCPPacketL()
1.355 - to specify the SDES (Source Description) items that are to be sent with
1.356 - the packet. One or more of these may be set.
1.357 -
1.358 - @see RRtpSession::SendRTCPPacketL()
1.359 - */
1.360 - enum TRtpSendPacketType
1.361 - {
1.362 - /**
1.363 - Canonical End-Point Identifier SDES Item.
1.364 - */
1.365 - ERtcpPacketCNAME = 1,
1.366 -
1.367 - /**
1.368 - User Name SDES Item.
1.369 - */
1.370 - ERtcpPacketNAME = 2,
1.371 -
1.372 - /**
1.373 - Electronic Mail Address SDES Item.
1.374 - */
1.375 - ERtcpPacketEMAIL = 4,
1.376 -
1.377 - /**
1.378 - Phone Number SDES Item.
1.379 - */
1.380 - ERtcpPacketPHONE = 8,
1.381 -
1.382 - /**
1.383 - Geographic User Location SDES Item.
1.384 - */
1.385 - ERtcpPacketLOC = 16,
1.386 -
1.387 - /**
1.388 - Application or Tool Name SDES Item
1.389 - */
1.390 - ERtcpPacketTOOL = 32,
1.391 -
1.392 - /**
1.393 - Notice/Status SDES Item
1.394 - */
1.395 - ERtcpPacketNOTE = 64,
1.396 -
1.397 - /**
1.398 - Private Extensions SDES Item
1.399 - */
1.400 - ERtcpPacketPRIV = 128
1.401 - };
1.402 -
1.403 - inline RRtpSession();
1.404 - inline TBool IsOpen() const;
1.405 -
1.406 - IMPORT_C void OpenL(RSocketServ& aServer, TSockAddr& aLocalAddr,
1.407 - TSockAddr& aRemoteAddr,
1.408 - TInt aMaxRXSize, RConnection& aConnection, TInt aPriority = EPriorityNormal,
1.409 - const TDesC8& aCNAME = KNullDesC8);
1.410 -
1.411 -
1.412 - IMPORT_C void OpenL(RSocketServ& aServer, TSockAddr& aLocalAddr,
1.413 - TSockAddr& aRemoteAddr,
1.414 - TInt aMaxRXSize, TInt aPriority = EPriorityNormal,
1.415 - const TDesC8& aCNAME = KNullDesC8);
1.416 -
1.417 - /**
1.418 - @publishedPartner
1.419 - @released
1.420 -
1.421 - Opens the session and initialises it.
1.422 -
1.423 - No events will be generated until after control returns to the
1.424 - active scheduler. The client has this time to initialise the
1.425 - object by adding event callbacks.
1.426 -
1.427 - @param aSocket The connected socket.
1.428 - @param aMaxRXSize The maximum size of a received packet.
1.429 - @param aRtcpSocket The RTCP socket.
1.430 - @param aPriority The priority to be used for internal active objects
1.431 - @param aCNAME The CNAME. A sensible default is supplied if none is
1.432 - provided.
1.433 - */
1.434 - IMPORT_C void OpenL(RSocket& aSocket, TInt aMaxRXSize,
1.435 - RSocket& aRtcpSocket,
1.436 - TInt aPriority = EPriorityNormal,
1.437 - const TDesC8& aCNAME = KNullDesC8);
1.438 -
1.439 - IMPORT_C void OpenL(RSocket& aSocket, TInt aMaxRXSize,
1.440 - TInt aPriority = EPriorityNormal);
1.441 -
1.442 - IMPORT_C void Close();
1.443 -
1.444 - IMPORT_C void SetMaxRXSize(TInt aMaxRXSize);
1.445 -
1.446 - IMPORT_C TInt MaxRXSize();
1.447 -
1.448 -
1.449 - /**
1.450 - @publishedPartner
1.451 - @released
1.452 -
1.453 - Sets the estimated bandwidth used by the session.
1.454 -
1.455 - This is used to decide when to send RTCP status packets.
1.456 - The default value is read from a resource file and should be a reasonably
1.457 - sensible default based on the maximum bandwidth of the handset.
1.458 -
1.459 - @param aBandwidth The bandwidth in bps.
1.460 - */
1.461 - IMPORT_C void SetBandwidth(TUint aBandwidth);
1.462 -
1.463 -
1.464 - /**
1.465 - @publishedPartner
1.466 - @released
1.467 -
1.468 - Supplies information about the profile-specific RTP
1.469 - timestamps.
1.470 -
1.471 - This is used to generate the RTP timestamps in RTCP packets.
1.472 - It is not used to generate timestamps in RTP packets as they must
1.473 - accurately relate to the time of the sample.
1.474 -
1.475 - @param aNow The time now in RTP format
1.476 - @param aConversion The number of nanoseconds per RTP timer tick.
1.477 - */
1.478 - IMPORT_C void SetRTPTimeConversion(TUint aNow, TUint aConversion);
1.479 - IMPORT_C RRtpReceiveSource NewReceiveSourceL();
1.480 - IMPORT_C RRtpReceiveSource NewReceiveSourceLC();
1.481 -
1.482 - /**
1.483 - Registers a callback for the specified event.
1.484 -
1.485 - Some compilers may not support templated member functions. A static version
1.486 - of this function is available that offers the same behaviour:
1.487 - RegisterEventCallbackL(RRtpSession,TRtpEventType,void (*aCallback)(T*, const TRtpEvent&),T*,TRtpOneShotness,TInt)
1.488 -
1.489 - @param aType The type of event.
1.490 - @param aCallback The callback function. The function is templated, and is
1.491 - prototyped to take a pointer to an object of the template
1.492 - type and a const reference to a TRtpEvent. The function
1.493 - returns void.
1.494 - @param aPtr A pointer that is passed to the callback function when
1.495 - that function is called.
1.496 - @param aOneShot Indicates whether the callback function is only
1.497 - called once, or can be called more than once.
1.498 - @param aParameter A parameter to be passed to the registration function.
1.499 - The meaning of this depends entirely on the event type.
1.500 - The parameter is optional - the other overload of this
1.501 - function is available for registrations that don't need
1.502 - to pass a parameter.
1.503 - */
1.504 - template <class T> inline void
1.505 - RegisterEventCallbackL(TRtpEventType aType,
1.506 - void (*aCallback)(T*, const TRtpEvent&),
1.507 - T* aPtr,
1.508 - TRtpOneShotness aOneShot,
1.509 - TInt aParameter)
1.510 - {
1.511 - PrivRegisterEventCallbackL(
1.512 - aType|aOneShot,
1.513 - reinterpret_cast<TRtpCallbackFunction>(aCallback),
1.514 - static_cast<TAny*>(aPtr), aParameter);
1.515 - }
1.516 -
1.517 - /**
1.518 - Registers a callback for the specified event.
1.519 -
1.520 - Some compilers may not support templated member functions. A static version
1.521 - of this function is available that offers the same behaviour:
1.522 - RegisterEventCallbackL(RRtpSession,TRtpEventType,void (*aCallback)(T*, const TRtpEvent&),T*,TRtpOneShotness)
1.523 -
1.524 - @param aType The type of event.
1.525 - @param aCallback The callback function. The function is templated, and is
1.526 - prototyped to take a pointer to an object of the template
1.527 - type and a const reference to a TRtpEvent. The function
1.528 - returns void.
1.529 - @param aPtr A pointer that is passed to the callback function when
1.530 - that function is called.
1.531 - @param aOneShot Indicates whether the callback function is only
1.532 - called once, or can be called more than once. If not
1.533 - specified, the default is to allow the callback function
1.534 - to be called more than once.
1.535 - */
1.536 - template <class T> inline void
1.537 - RegisterEventCallbackL(TRtpEventType aType,
1.538 - void (*aCallback)(T*, const TRtpEvent&),
1.539 - T* aPtr,
1.540 - TRtpOneShotness aOneShot = ERtpNotOneShot)
1.541 - {
1.542 - PrivRegisterEventCallbackL(
1.543 - aType|aOneShot,
1.544 - reinterpret_cast<TRtpCallbackFunction>(aCallback),
1.545 - static_cast<TAny*>(aPtr));
1.546 - }
1.547 -
1.548 -
1.549 - /**
1.550 - @publishedPartner
1.551 - @released
1.552 -
1.553 - Gets an array contining the most recent RR (Receiver Report) from
1.554 - all hosts who are reporting on our send stream.
1.555 -
1.556 - @return The array of RRs.
1.557 - */
1.558 - IMPORT_C RRtcpRRPart GetRRs();
1.559 -
1.560 -
1.561 - /**
1.562 - @publishedPartner
1.563 - @released
1.564 -
1.565 - Gets the data associated with the specified RTCP SDES (Source Description)
1.566 - item.
1.567 -
1.568 - Note a that the PRIV (Private Extensions) SDES item is not supported
1.569 - by this mechanism.
1.570 -
1.571 - @param aType The value identifying the RTCP SDES item.
1.572 -
1.573 - @param aValue A descriptor reference to the SDES item data.
1.574 -
1.575 - @return KErrNotFound if the item type was not found in the most recent RTCP packet
1.576 - KErrNone if the operation is successful
1.577 - */
1.578 - IMPORT_C TInt GetSDES(const TInt aType, TDes8& aValue);
1.579 -
1.580 -
1.581 - /**
1.582 - @publishedPartner
1.583 - @released
1.584 -
1.585 - Sets the data associated with the specified RTCP SDES (Source Description)
1.586 - item for sending in the next SDES packet only.
1.587 -
1.588 - The function Leaves if duplicate values are set for the same CNAME.
1.589 -
1.590 - Note a that the PRIV (Private Extensions) SDES item is not supported
1.591 - by this mechanism.
1.592 -
1.593 - NOTE - This call cannot be used to set a different CNAME for this session.
1.594 - The default CNAME is send with every SDES packets.
1.595 -
1.596 - @param aType The value identfying the RTCP SDES item.
1.597 - @param aValue The SDES item data.
1.598 -
1.599 - @return KErrTooBig if the length of the aValue is more than KMaxSdesItemLength(=255)
1.600 - KErrNone if the operation is successful
1.601 - */
1.602 - IMPORT_C TInt SetSDESL(TInt aType, const TDesC8& aValue);
1.603 -
1.604 - /**
1.605 - @publishedPartner
1.606 - @released
1.607 -
1.608 - Sets the data associated with the PRIV (Private Extensions) SDES item.
1.609 -
1.610 - @param aPrefix The value identfying the RTCP SDES item.
1.611 - @param aValue The SDES item data.
1.612 -
1.613 - @return KErrTooBig if the length of the aValue and aPrefix combined is more
1.614 - than KMaxSdesItemLength(=255)
1.615 - KErrNone if the operation is successful
1.616 - */
1.617 - IMPORT_C TInt SetPRIVL(const TDesC8& aPrefix, const TDesC8& aValue);
1.618 -
1.619 -
1.620 - /**
1.621 - @publishedPartner
1.622 - @released
1.623 - Sends an APP (Application Defined) RTCP Packet.
1.624 -
1.625 - The packet is sent immediately.
1.626 -
1.627 - If used with RTCP auto-send, the function disrupts the auto-send
1.628 - intervals. Note however that Symbian reserves the right to fix this.
1.629 -
1.630 - @param aApp A handle to a RTCP APP (Application Defined) packet,
1.631 - for experimental extensions to RTCP.
1.632 - */
1.633 - IMPORT_C void SendAPPL(const TDesC8& aName, const TDesC8& aAppData = KNullDesC8, TUint8 aSubType = 0);
1.634 -
1.635 -
1.636 - /**
1.637 - @publishedPartner
1.638 - @released
1.639 -
1.640 - Enables or disables the automatic sending of RTCP SR (Sender Report),
1.641 - RR (Receiver Report), and SDES (Source Description) packets.
1.642 -
1.643 - Note that if automatic sending is not enabled and RTCP sending is required,
1.644 - then explicit calls to SendRTCPPacketL() will be required.
1.645 -
1.646 - @param aAutoSend ETrue, if RTCP packets need to be send automatically
1.647 - EFalse otherwise.
1.648 -
1.649 - @see RRtpSession::SendRTCPPacketL()
1.650 - */
1.651 - IMPORT_C void SetRTCPAutoSend(TBool aAutoSend);
1.652 -
1.653 -
1.654 - /**
1.655 - @publishedPartner
1.656 - @released
1.657 -
1.658 - Gets the RTCP Auto Send status.
1.659 -
1.660 - @return True, if RTCP SR, RR and SDES packets are automatically sent,
1.661 - false otherwise
1.662 -
1.663 - @see RRtpSession::SetRTCPAutoSend()
1.664 - */
1.665 - IMPORT_C TBool RTCPAutoSend() const;
1.666 -
1.667 - /**
1.668 - @publishedPartner
1.669 - @released
1.670 -
1.671 - Sets the RTCP Auto Send interval.
1.672 - This disables the RFC based calculation of RTCP intervals.
1.673 - To re-enable auto calculation, set the interval to zero.
1.674 -
1.675 - @param aInterval Time interval after which an RTCP auto-send will take place
1.676 - */
1.677 - IMPORT_C void SetRtcpInterval(TTimeIntervalMicroSeconds32& aInterval);
1.678 -
1.679 - /**
1.680 - @publishedPartner
1.681 - @released
1.682 - Enables Receive only option for rtp or rtcp
1.683 -
1.684 - @param aRtpOrRtcp Takes the values from the enum TPacketType
1.685 -
1.686 - @see RRtpSession::DontReceive()
1.687 - */
1.688 - IMPORT_C void DontReceive(TInt aRtpOrRtcp);
1.689 -
1.690 - /**
1.691 - @publishedPartner
1.692 - @released
1.693 - Sends an RTCP packet now.
1.694 -
1.695 - Calling this function doesn't make much sense if auto-send is
1.696 - on, as it will result in packets being sent at rather
1.697 - incoherent intervals.
1.698 -
1.699 - @param aPacketType Zero or more of the bit values defined by
1.700 - the TRtpSendPacketType enum. The packet sent will
1.701 - contain a SR (Sender Report) or RR (Receiver Report),
1.702 - depending on whether any packets have actually been
1.703 - sent, together with all SDES (Source Description) items
1.704 - specified by this parameter.
1.705 -
1.706 - @see TRtpSendPacketType
1.707 - */
1.708 - IMPORT_C void SendRTCPPacketL(TDesC8& aPacket);
1.709 -
1.710 -
1.711 - /**
1.712 - @publishedPartner
1.713 - @released
1.714 - Creates a new send stream, and returns the send stream handle.
1.715 -
1.716 - Only one send stream per session is permitted, which means that you must not
1.717 - call this function if the send stream has already been created.
1.718 -
1.719 - As the send stream is an active object, it cannot handle request
1.720 - completion events until control returns to the active scheduler.
1.721 - Typically, clients will want to add event registrations before that.
1.722 -
1.723 - The Code panics if the SendSource has alredy been opened.
1.724 -
1.725 - @return The send stream handle.
1.726 -
1.727 - This function may leave if memory is not enough.
1.728 - */
1.729 - IMPORT_C RRtpSendSource NewSendSourceL();
1.730 -
1.731 -
1.732 - /**
1.733 - @publishedPartner
1.734 - @released
1.735 -
1.736 - Gets the handle to the send stream object associated with this session.
1.737 -
1.738 - The send stream object is the one created in a previous call
1.739 - to NewSendSourceL(). If the send stream object has not been created, then
1.740 - the returned handle will refer to a closed send stream.
1.741 -
1.742 - @return The handle to the send stream object.
1.743 -
1.744 - @see RRtpSendSource NewSendSourceL()
1.745 - */
1.746 - IMPORT_C RRtpSendSource SendSource();
1.747 -
1.748 -
1.749 - /**
1.750 - @publishedPartner
1.751 - @released
1.752 -
1.753 - Sets the number of sequential packets that must be received
1.754 - before a stream is considered good.
1.755 -
1.756 - Sets the maximum number of dropped packets to be considered a
1.757 - dropout, as opposed to an ended and restarted stream.
1.758 -
1.759 - Sets the maximum number of packets by which a packet can be delayed
1.760 - before it is considered dropped.
1.761 -
1.762 - @param aMaxMisorder The maximum number of packets.
1.763 -
1.764 - @param aMaxDropout The number of sequential packets.
1.765 -
1.766 - @param aMinSequential The number of sequential packets.
1.767 - @post The session will be 'restarted',
1.768 - i.e. it resets the sequence number sequence and resets all RTCP statistics.
1.769 - */
1.770 - IMPORT_C void SetRtpStreamParameters(TInt aMinSequential, TInt aMaxMisorder, TInt aMaxDropout);
1.771 -
1.772 - inline TBool operator == (RRtpSession aThat) const;
1.773 - inline TBool operator != (RRtpSession aThat) const;
1.774 -
1.775 - /**
1.776 - @publishedPartner
1.777 - @released
1.778 -
1.779 - The event manager contains a number of callback registrations, each of which
1.780 - binds a function and pointer (normally an object) to a particular kind of
1.781 - event. Registrations can be bound to all events on a stream.
1.782 -
1.783 - If a function is registered for a particular event, it will be called when
1.784 - that event occurs. One callback function can be associated with more than 1
1.785 - callback registration. Callback functions take a pointer argument
1.786 - which was supplied as part of the registration
1.787 -
1.788 - @param aType Event type
1.789 -
1.790 - @param aCallback Callback object
1.791 -
1.792 - @param aPtr Pointer to data that needs to be passed to the callback function
1.793 -
1.794 - @param aParameter Parameter to be passed to internal callback subsystem
1.795 - */
1.796 - IMPORT_C void PrivRegisterEventCallbackL(TUint aType,
1.797 - TRtpCallbackFunction aCallback,
1.798 - TAny* aPtr,
1.799 - TInt aParameter);
1.800 -
1.801 - /**
1.802 - @publishedPartner
1.803 - @released
1.804 -
1.805 - The event manager contains a number of callback registrations, each of which
1.806 - binds a function and pointer (normally an object) to a particular kind of
1.807 - event. Registrations can be bound to all events on a stream.
1.808 -
1.809 - If a function is registered for a particular event, it will be called when
1.810 - that event occurs. One callback function can be associated with more than 1
1.811 - callback registration. Callback functions take a pointer argument
1.812 - which was supplied as part of the registration
1.813 -
1.814 - @param aType Event type
1.815 -
1.816 - @param aCallback Callback object
1.817 -
1.818 - @param aPtr Pointer to data that needs to be passed to the callback function
1.819 - */
1.820 - IMPORT_C void PrivRegisterEventCallbackL(TUint aType,
1.821 - TRtpCallbackFunction aCallback,
1.822 - TAny* aPtr);
1.823 -
1.824 - private:
1.825 - friend class TRtpEvent;
1.826 - CRtpSession* iPtr;
1.827 - // Note: Comments that start with //\ are pseudo-variables used to get
1.828 - // Doxygen collaboration diagrams to look right. Ignore them.
1.829 - //\ RRtpSendSource sndSource_1_01;
1.830 - //\ RRtpReceiveSource rcvSource_1_n;
1.831 - //\ TRtpCallback callbacks_1_n;
1.832 - //\ TRtpEvent events_1_n;
1.833 - };
1.834 -
1.835 -
1.836 -
1.837 -
1.838 -/**
1.839 -@publishedAll
1.840 -@released
1.841 -
1.842 -A handle to a send stream.
1.843 -
1.844 -Use this class to manage the creation and sending of packets.
1.845 -A session can have only one send stream.
1.846 -
1.847 -Only one packet can be sent at any one time.
1.848 -Once a packet has been sent, the packet cannot be closed and no further packets
1.849 -can be sent until an event signalling the completion of the send operation has
1.850 -occurred. This will be one of the events defined by the enum values:
1.851 -ERtpSendSucceeded and ERtpSendFail.
1.852 -
1.853 -A client must monitor these events so that it can schedule the sending of
1.854 -subsequent packets.
1.855 -It does this by implementing and registering callback functions that
1.856 -handle these events.
1.857 -
1.858 -@see TRtpEventType
1.859 -*/
1.860 -class RRtpSendSource
1.861 - {
1.862 - public:
1.863 - inline RRtpSendSource();
1.864 - inline TBool IsOpen() const;
1.865 - IMPORT_C void Close();
1.866 -
1.867 - IMPORT_C void Cancel();
1.868 -
1.869 - template <class T> inline void
1.870 - RegisterEventCallbackL(TRtpEventType aType,
1.871 - void (*aCallback)(T*, const TRtpEvent&),
1.872 - T* aPtr,
1.873 - TRtpOneShotness aOneShot,
1.874 - TInt aParameter)
1.875 - {
1.876 - PrivRegisterEventCallbackL(aType|aOneShot,
1.877 - reinterpret_cast<TRtpCallbackFunction>(aCallback),
1.878 - static_cast<TAny*>(aPtr), aParameter);
1.879 - }
1.880 -
1.881 -
1.882 - template <class T> inline void
1.883 - RegisterEventCallbackL(TRtpEventType aType,
1.884 - void (*aCallback)(T*, const TRtpEvent&),
1.885 - T* aPtr,
1.886 - TRtpOneShotness aOneShot = ERtpNotOneShot)
1.887 - {
1.888 - PrivRegisterEventCallbackL(aType|aOneShot,
1.889 - reinterpret_cast<TRtpCallbackFunction>(aCallback),
1.890 - static_cast<TAny*>(aPtr));
1.891 - }
1.892 -
1.893 -
1.894 -
1.895 - IMPORT_C RRtpSendPacket NewSendPacketL(TInt aPayloadSize = 0,
1.896 - TInt aHeaderExtensionSize =
1.897 - KRtpNoExtension);
1.898 -
1.899 - IMPORT_C RRtpSendPacket NewSendPacketLC(TInt aPayloadSize = 0,
1.900 - TInt aHeaderExtensionSize =
1.901 - KRtpNoExtension);
1.902 -
1.903 - IMPORT_C TBool IsSending();
1.904 - IMPORT_C void SetPayloadType(TUint aPayloadType);
1.905 - IMPORT_C void SetDefaultPayloadSize(TInt aPayloadSize);
1.906 - /**
1.907 - @publishedPartner
1.908 - @released
1.909 -
1.910 - Sends a Bye RTCP packet.
1.911 -
1.912 - @param aReason The reason for sending the Bye RTCP packet.
1.913 - */
1.914 - IMPORT_C void ByeL(TDesC8& aReason);
1.915 - IMPORT_C TUint32 GetLocalSSRC();
1.916 -
1.917 - IMPORT_C void SetAlignment(TInt aAlignment);
1.918 - IMPORT_C TInt Alignment() const;
1.919 -
1.920 - inline TBool operator == (RRtpSendSource aThat) const;
1.921 - inline TBool operator != (RRtpSendSource aThat) const;
1.922 -
1.923 - /**
1.924 - @publishedPartner
1.925 - @released
1.926 -
1.927 - The event manager contains a number of callback registrations, each of which
1.928 - binds a function and pointer (normally an object) to a particular kind of
1.929 - event. Registrations can be bound to all events on a stream.
1.930 -
1.931 - If a function is registered for a particular event, it will be called when
1.932 - that event occurs. One callback function can be associated with more than 1
1.933 - callback registration. Callback functions take a pointer argument
1.934 - which was supplied as part of the registration
1.935 -
1.936 - @param aType Event type
1.937 -
1.938 - @param aCallback Callback object
1.939 -
1.940 - @param aPtr Pointer to data that needs to be passed to the callback function
1.941 -
1.942 - @param aParameter Parameter to be passed to internal callback subsystem
1.943 - */
1.944 - IMPORT_C void PrivRegisterEventCallbackL(TUint aType,
1.945 - TRtpCallbackFunction aCallback,
1.946 - TAny* aPtr,
1.947 - TInt aParameter);
1.948 -
1.949 - /**
1.950 - @publishedPartner
1.951 - @released
1.952 -
1.953 - The event manager contains a number of callback registrations, each of which
1.954 - binds a function and pointer (normally an object) to a particular kind of
1.955 - event. Registrations can be bound to all events on a stream.
1.956 -
1.957 - If a function is registered for a particular event, it will be called when
1.958 - that event occurs. One callback function can be associated with more than 1
1.959 - callback registration. Callback functions take a pointer argument
1.960 - which was supplied as part of the registration
1.961 -
1.962 - @param aType Event type
1.963 -
1.964 - @param aCallback Callback object
1.965 -
1.966 - @param aPtr Pointer to data that needs to be passed to the callback function
1.967 - */
1.968 - IMPORT_C void PrivRegisterEventCallbackL(TUint aType,
1.969 - TRtpCallbackFunction aCallback,
1.970 - TAny* aPtr);
1.971 - private:
1.972 - friend class RRtpSession;
1.973 - friend class TRtpEvent;
1.974 - CRtpSendSource* iPtr;
1.975 - // Note: Comments that start with //\ are pseudo-variables used to get
1.976 - // Doxygen collaboration diagrams to look right. Ignore them.
1.977 - //\ TRtpCallback callbacks_1_n;
1.978 - //\ TRtpEvent events_1_n;
1.979 - //\ TRtpSendPacket packets_1_n;
1.980 - };
1.981 -
1.982 -
1.983 -
1.984 -
1.985 -/**
1.986 -@publishedAll
1.987 -@released
1.988 -
1.989 -A handle to a receive stream.
1.990 -
1.991 -An object of this type represents the stream of data on a single SSRC and
1.992 -delivers the RTP packets and RTCP information in the order they
1.993 -arrive.
1.994 -
1.995 -Note that RTP does not guarantee the order of delivery, which means that the
1.996 -client may want to buffer the data.
1.997 -*/
1.998 -class RRtpReceiveSource
1.999 - {
1.1000 - public:
1.1001 - RRtpReceiveSource();
1.1002 - inline TBool IsOpen() const;
1.1003 -
1.1004 - IMPORT_C void Close();
1.1005 -
1.1006 -
1.1007 - template <class T> inline void
1.1008 - RegisterEventCallbackL(TRtpEventType aType,
1.1009 - void (*aCallback)(T*, const TRtpEvent&),
1.1010 - T* aPtr,
1.1011 - TRtpOneShotness aOneShot,
1.1012 - TInt aParameter)
1.1013 - {
1.1014 - PrivRegisterEventCallbackL(aType|aOneShot,
1.1015 - reinterpret_cast<TRtpCallbackFunction>(aCallback),
1.1016 - static_cast<TAny*>(aPtr), aParameter);
1.1017 - }
1.1018 -
1.1019 -
1.1020 - template <class T> inline void
1.1021 - RegisterEventCallbackL(TRtpEventType aType,
1.1022 - void (*aCallback)(T*, const TRtpEvent&),
1.1023 - T* aPtr,
1.1024 - TRtpOneShotness aOneShot = ERtpNotOneShot)
1.1025 - {
1.1026 - PrivRegisterEventCallbackL(aType|aOneShot,
1.1027 - reinterpret_cast<TRtpCallbackFunction>(aCallback),
1.1028 - static_cast<TAny*>(aPtr));
1.1029 - }
1.1030 -
1.1031 - /**
1.1032 - @publishedPartner
1.1033 - @released
1.1034 -
1.1035 - Gets the data associated with the specified RTCP SDES (Source Description)
1.1036 - item.
1.1037 -
1.1038 - Note a that the PRIV (Private Extensions) SDES item is not supported
1.1039 - by this mechanism.
1.1040 -
1.1041 - @param aType The value identifying the RTCP SDES item.
1.1042 -
1.1043 - @return A descriptor reference to the SDES item data.
1.1044 - */
1.1045 - IMPORT_C TInt GetSDES(const TInt aType, TDes8& aValue);
1.1046 -
1.1047 -
1.1048 - /**
1.1049 - @publishedPartner
1.1050 - @released
1.1051 -
1.1052 - Gets the most recent SR ((Sender Report) from this SSRC.
1.1053 -
1.1054 - @return A handle to the SR.
1.1055 - */
1.1056 - IMPORT_C RRtcpSRPart GetSR();
1.1057 -
1.1058 -
1.1059 - /**
1.1060 - @publishedPartner
1.1061 - @released
1.1062 -
1.1063 - Gets the reason for a BYE packet.
1.1064 -
1.1065 - @return A descriptor contaning the BYE message. This is
1.1066 - KNullDesC if the source has not sent a BYE packet.
1.1067 - */
1.1068 - IMPORT_C TDesC8& GetByeReason();
1.1069 -
1.1070 -
1.1071 - /**
1.1072 - @publishedPartner
1.1073 - @released
1.1074 -
1.1075 - Parameters from the last APP (Application Defined) packet.
1.1076 -
1.1077 - @param aName Four-bytes application name
1.1078 - @param aAppData Applciation specific data
1.1079 - @param aSubType Application defined sub-type of the APP packet
1.1080 - */
1.1081 - IMPORT_C void GetLastApp(TPtrC8& aName, TPtrC8& aAppData, TUint& aSubType);
1.1082 -
1.1083 - IMPORT_C RRtpReceivePacket Packet();
1.1084 -
1.1085 - /**
1.1086 - @publishedPartner
1.1087 - @released
1.1088 -
1.1089 - Gets the SSRC of the remote end
1.1090 -
1.1091 - @return The SSRC of the remote end
1.1092 - */
1.1093 - IMPORT_C TUint SSRC() const;
1.1094 -
1.1095 - inline TBool operator == (RRtpReceiveSource aThat) const;
1.1096 - inline TBool operator != (RRtpReceiveSource aThat) const;
1.1097 -
1.1098 - /**
1.1099 - @publishedPartner
1.1100 - @released
1.1101 -
1.1102 - The event manager contains a number of callback registrations, each of which
1.1103 - binds a function and pointer (normally an object) to a particular kind of
1.1104 - event. Registrations can be bound to all events on a stream.
1.1105 -
1.1106 - If a function is registered for a particular event, it will be called when
1.1107 - that event occurs. One callback function can be associated with more than 1
1.1108 - callback registration. Callback functions take a pointer argument
1.1109 - which was supplied as part of the registration
1.1110 -
1.1111 - @param aType Event type
1.1112 -
1.1113 - @param aCallback Callback object
1.1114 -
1.1115 - @param aPtr Pointer to data that needs to be passed to the callback function
1.1116 -
1.1117 - @param aParameter Parameter to be passed to internal callback subsystem
1.1118 - */
1.1119 - IMPORT_C void PrivRegisterEventCallbackL(TUint aType,
1.1120 - TRtpCallbackFunction aCallback,
1.1121 - TAny* aPtr, TInt aParameter);
1.1122 -
1.1123 - /**
1.1124 - @publishedPartner
1.1125 - @released
1.1126 -
1.1127 - The event manager contains a number of callback registrations, each of which
1.1128 - binds a function and pointer (normally an object) to a particular kind of
1.1129 - event. Registrations can be bound to all events on a stream.
1.1130 -
1.1131 - If a function is registered for a particular event, it will be called when
1.1132 - that event occurs. One callback function can be associated with more than 1
1.1133 - callback registration. Callback functions take a pointer argument
1.1134 - which was supplied as part of the registration
1.1135 -
1.1136 - @param aType Event type
1.1137 -
1.1138 - @param aCallback Callback object
1.1139 -
1.1140 - @param aPtr Pointer to data that needs to be passed to the callback function
1.1141 - */
1.1142 -
1.1143 - IMPORT_C void PrivRegisterEventCallbackL(TUint aType,
1.1144 - TRtpCallbackFunction aCallback,
1.1145 - TAny* aPtr);
1.1146 - private:
1.1147 - friend class RRtpSession;
1.1148 - friend class TRtpEvent;
1.1149 - CRtpReceiveSource* iPtr;
1.1150 - // Note: Comments that start with //\ are pseudo-variables used to get
1.1151 - // Doxygen collaboration diagrams to look right. Ignore them.
1.1152 - //\ TRtpCallback callbacks_1_n;
1.1153 - //\ TRtpEvent events_1_n;
1.1154 - //\ TRtpReceivePacket packets_1_n;
1.1155 - };
1.1156 -
1.1157 -
1.1158 -
1.1159 -
1.1160 -/**
1.1161 -@publishedAll
1.1162 -@released
1.1163 -
1.1164 -A handle to an RTP packet.
1.1165 -
1.1166 -The packet is accessed through the interface provided by this handle.
1.1167 -*/
1.1168 -class RRtpPacket
1.1169 - {
1.1170 - public:
1.1171 - inline RRtpPacket();
1.1172 - inline TBool IsOpen() const;
1.1173 -
1.1174 - IMPORT_C void Close();
1.1175 - IMPORT_C TPtrC8 Payload() const;
1.1176 - IMPORT_C TUint SequenceNumber() const;
1.1177 - IMPORT_C TUint Timestamp() const;
1.1178 - IMPORT_C TUint SSRC() const;
1.1179 - IMPORT_C RRtpCSRCs CSRCs() const;
1.1180 - IMPORT_C TBool ExtensionPresent() const;
1.1181 - IMPORT_C RRtpHeaderExtension Extension() const;
1.1182 - IMPORT_C TBool Marker() const;
1.1183 - IMPORT_C TUint PayloadType() const;
1.1184 - IMPORT_C TUint Flags() const;
1.1185 -
1.1186 - inline TBool operator == (RRtpPacket aThat) const;
1.1187 - inline TBool operator != (RRtpPacket aThat) const;
1.1188 -
1.1189 - protected:
1.1190 - TRtpPacket* iPtr;
1.1191 - // Note: Comments that start with //\ are pseudo-variables used to get
1.1192 - // Doxygen collaboration diagrams to look right. Ignore them.
1.1193 - //\ RRtpHeaderExtension extension_1_01;
1.1194 - //\ RRtpCSRCs csrcs_1_01;
1.1195 - };
1.1196 -
1.1197 -
1.1198 -
1.1199 -
1.1200 -/**
1.1201 -@publishedAll
1.1202 -@released
1.1203 -
1.1204 -A handle to an RTP packet to be sent (an RTP send packet).
1.1205 -
1.1206 -@see RRtpSendSource
1.1207 -*/
1.1208 -class RRtpSendPacket : public RRtpPacket
1.1209 - {
1.1210 - public:
1.1211 - IMPORT_C void Send();
1.1212 - IMPORT_C TDes8& WritePayload();
1.1213 - IMPORT_C void SetTimestamp(TUint aTimestamp);
1.1214 - IMPORT_C void SetMarker(TBool aMark);
1.1215 - IMPORT_C void SetPayloadType(TUint aPayloadType);
1.1216 - IMPORT_C void SetFlags(TUint aFlags);
1.1217 -
1.1218 - friend class RRtpSendSource;
1.1219 - };
1.1220 -
1.1221 -
1.1222 -
1.1223 -
1.1224 -/**
1.1225 -@publishedAll
1.1226 -@released
1.1227 -
1.1228 -A handle to an RTP packet received from another source.
1.1229 -*/
1.1230 -class RRtpReceivePacket : public RRtpPacket
1.1231 - {
1.1232 - friend class RRtpReceiveSource;
1.1233 - friend class TRtpReceivePacket;
1.1234 - };
1.1235 -
1.1236 -
1.1237 -
1.1238 -
1.1239 -/**
1.1240 -@publishedAll
1.1241 -@released
1.1242 -
1.1243 -An RTP event.
1.1244 -
1.1245 -An event is generated when anything happens that a client might want
1.1246 -to know about. The class encapulates two pieces of information:
1.1247 -1. An event type as defined by a TRtpEventType value.
1.1248 -2. Additional information whose meaning is dependent on the event type.
1.1249 -
1.1250 -Additional information may be implicitly associated with the event, but still
1.1251 -needs to be fetched from another object, for example, when processing
1.1252 -an ERtpPacketReceived event, the packet (represented by a RRtpReceivePacket
1.1253 -handle) must be obtained from the receive stream (represented by a
1.1254 -RRtpReceiveStream handle).
1.1255 -
1.1256 -Events are always associated with either an RTP session, a send stream or
1.1257 -a receive stream, and this class has functions for getting the corresponding
1.1258 -handle.
1.1259 -
1.1260 -@see RRtpSession
1.1261 -@see RRtpSendSource
1.1262 -@see RRtpReceiveSource
1.1263 -*/
1.1264 -class TRtpEvent
1.1265 - {
1.1266 - public:
1.1267 - IMPORT_C TRtpEvent(TRtpEventType aType, TInt aStatus, TAny* aData);
1.1268 - IMPORT_C RRtpSession Session() const;
1.1269 - IMPORT_C RRtpSendSource SendSource() const;
1.1270 - IMPORT_C RRtpReceiveSource ReceiveSource() const;
1.1271 - IMPORT_C TBool IsSessionEvent() const;
1.1272 - IMPORT_C TBool IsSendSourceEvent() const;
1.1273 - IMPORT_C TBool IsReceiveSourceEvent() const;
1.1274 -
1.1275 - inline TRtpEventType Type() const;
1.1276 - inline TInt Status() const;
1.1277 - private:
1.1278 - TRtpEventType iType;
1.1279 - TInt iStatus;
1.1280 - TAny* iData;
1.1281 - };
1.1282 -
1.1283 -
1.1284 -
1.1285 -
1.1286 -/**
1.1287 -@publishedAll
1.1288 -@released
1.1289 -
1.1290 -Reresents an RTP packet's header extension.
1.1291 -
1.1292 -The format of a header extension is profile-defined.
1.1293 -*/
1.1294 -class RRtpHeaderExtension
1.1295 - {
1.1296 - public:
1.1297 - IMPORT_C TUint16 Type() const;
1.1298 - IMPORT_C void SetType(TUint16 aType);
1.1299 - IMPORT_C TPtrC8 Data();
1.1300 - private:
1.1301 - friend class RRtpPacket;
1.1302 - TRtpPacket* iPtr;
1.1303 - };
1.1304 -
1.1305 -
1.1306 -
1.1307 -
1.1308 -/**
1.1309 -@publishedAll
1.1310 -@released
1.1311 -
1.1312 -A handle representing the list of CSRCs in an RTP packet.
1.1313 -*/
1.1314 -class RRtpCSRCs
1.1315 - {
1.1316 - public:
1.1317 - IMPORT_C TInt Count() const;
1.1318 - IMPORT_C TUint operator [](TUint aIndex) const;
1.1319 - private:
1.1320 - friend class RRtpPacket;
1.1321 -
1.1322 - TRtpPacket* iPtr;
1.1323 - };
1.1324 -
1.1325 -
1.1326 -/**
1.1327 -@publishedPartner
1.1328 -
1.1329 -A set of panic codes.
1.1330 -
1.1331 -in release mode, different panic codes, such as
1.1332 -KERN-EXEC 3 may be generated instead.
1.1333 -*/
1.1334 -enum TRtpPanicCode
1.1335 - {
1.1336 - ERtpPacketIsClosed = 1,
1.1337 - ERtpPayloadTypeOutOfRange = 2,
1.1338 - ERtpSessionIsClosed = 3,
1.1339 - ERtpSourceIsClosed = 4,
1.1340 - ERtpNoExtension = 5,
1.1341 - ERtpLeaveInResponseToError = 6,
1.1342 - ERtpCantSend2PacketsAtOnce = 7,
1.1343 - ERtpWrongEventType = 8,
1.1344 - ERtpWrongParameter = 9,
1.1345 - ERtpSendSourceAlreadyOpen = 10,
1.1346 - ERtpSessionAlreadyOpen = 11,
1.1347 - //
1.1348 - ERtpCoreController = 100,
1.1349 - };
1.1350 -
1.1351 -GLREF_C void Panic(TRtpPanicCode aPanicCode);
1.1352 -
1.1353 -#include "rtp.inl"
1.1354 -
1.1355 -#endif // RTP_H