/usr/include/opal/iax2/iax2medstrm.h is in libopal-dev 3.10.10~dfsg2-2+b2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | /*
*
* Inter Asterisk Exchange 2
*
* Open Phone Abstraction Library (OPAL)
*
* Extension of the Opal Media stream, where the media from the IAX2 side is
* linked to the OPAL
*
* Copyright (c) 2005 Indranet Technologies Ltd.
*
* The contents of this file are subject to the Mozilla 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://www.mozilla.org/MPL/
*
* 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 Open Phone Abstraction Library.
*
* The Initial Developer of the Original Code is Indranet Technologies Ltd.
*
* The author of this code is Derek J Smithies
*
* $Revision: 27149 $
* $Author: rjongbloed $
* $Date: 2012-03-07 18:32:36 -0600 (Wed, 07 Mar 2012) $
*/
#ifndef OPAL_IAX2_MEDIASTRM_H
#define OPAL_IAX2_MEDIASTRM_H
#ifdef P_USE_PRAGMA
#pragma interface
#endif
#include <opal/buildopts.h>
#if OPAL_IAX2
#include <opal/mediafmt.h>
#include <iax2/iax2con.h>
class RTP_Session;
class OpalMediaPatch;
class OpalLine;
/**This class describes a media stream, which is an interface to the opal classes for
generating encoded media data
*/
class OpalIAX2MediaStream : public OpalMediaStream
{
PCLASSINFO(OpalIAX2MediaStream, OpalMediaStream);
/**@name Construction and Destruction*/
//@{
/**Construct a new media stream for connecting to the media.
This method grabs a SafeReference on the connection, so the connection won't go away on us.
*/
OpalIAX2MediaStream(
IAX2Connection &con, /*!< IAX connection to read/send incoming packets */
const OpalMediaFormat & mediaFormat, /*!< Media format for stream */
unsigned sessionID, /*!< Session number for stream */
PBoolean isSource /*!< Is a source stream */
);
/**Destroy a new media stream for connecting to the media.
This method releases the SafeReference on the connection, so the connection can be destroyed */
~OpalIAX2MediaStream();
//@}
public:
/**@name Overrides of OpalMediaStream class */
//@{
/**Open the media stream.
*/
virtual PBoolean Open();
/**Start the media stream.
The default behaviour calls Resume() on the associated
OpalMediaPatch thread if it was suspended.
*/
virtual PBoolean Start();
/**
Goes to the IAX2Connection class, and removes a packet from the connection. The connection class turned the media
packet into a RTP_DataFrame class, and jitter buffered it.
@return true on successful read of a packet, false on faulty read.*/
virtual PBoolean ReadPacket(
RTP_DataFrame & packet ///< Data buffer to read to
);
/**Write raw media data to the sink media stream.
The default behaviour writes to the OpalLine object.
*/
virtual PBoolean WriteData(
const BYTE * data, ///< Data to write
PINDEX length, ///< Length of data to write.
PINDEX & written ///<Length of data actually written
);
/**Indicate if the media stream is synchronous.
@Return false if this stream is from the network.
@return true if this stream is from a sound card.
*/
virtual PBoolean IsSynchronous() const;
//@}
protected:
virtual void InternalClose() { }
/**The connection is the source/sink of our data packets */
IAX2Connection & connection;
/**There was unused data from an incoming ethernet frame. The
unused data is stored here.
*/
PBYTEArray pendingData;
};
#endif // OPAL_IAX2
#endif // OPAL_IAX2_MEDIASTRM_H
/* The comment below is magic for those who use emacs to edit this file.
* With the comment below, the tab key does auto indent to 2 spaces.
*
* Local Variables:
* mode:c
* c-basic-offset:2
* End:
*/
|