sipxmedialib
Version 3.3
|
Connection container for the inbound and outbound network paths to a single remote party. More...
#include <MpRtpInputConnection.h>
Public Member Functions | |
Creators | |
MpRtpInputConnection (const UtlString &resourceName, MpConnectionID myID, IRTCPSession *piRTCPSession=NULL, int maxRtpStreams=1, MprRtpDispatcher::RtpStreamAffinity rtpStreamAffinity=MprRtpDispatcher::ADDRESS_AND_PORT) | |
Constructor. More... | |
virtual | ~MpRtpInputConnection () |
Destructor. More... | |
Public Member Functions inherited from MpResource | |
MpResource (const UtlString &rName, int minInputs, int maxInputs, int minOutputs, int maxOutputs) | |
Constructor. More... | |
virtual | ~MpResource () |
Destructor. More... | |
virtual UtlBoolean | disable () |
Disable this resource. More... | |
virtual UtlBoolean | enable () |
Enable this resource. More... | |
virtual void | reset () |
This method is invoked for resources that care about stream discontinuities. More... | |
UtlBoolean | handleMessages (OsMsgQ &msgQ) |
Handles a queue full of incoming messages for this media processing object. More... | |
void | setVisitState (int newState) |
Sets the visit state for this resource. More... | |
OsStatus | sendNotification (MpResNotificationMsg::RNMsgType msgType) |
Send a notification with the given message type if notifications are enabled. More... | |
OsStatus | sendNotification (MpResNotificationMsg &msg) |
Send the given notification message if notifications are enabled. More... | |
virtual void | setStreamId (int streamId) |
Set the ID of a stream inside of the connection this resource belongs to. More... | |
virtual int | getStreamId (void) |
Get the ID of a stream within the connection this resource belongs to. More... | |
virtual OsStatus | pushBuffer (int inputPort, MpBufPtr &inputBuffer) |
Receive buffer asynchronously from resource at given input port. More... | |
virtual void | reassignSSRC (void) |
Broadcast announcement that we are changing our SSRC. More... | |
MpFlowGraphBase * | getFlowGraph () const |
Returns parent flowgraph. More... | |
void | getInputInfo (int inPortIdx, MpResource *&rpUpstreamResource, int &rUpstreamPortIdx) |
Returns information about the upstream end of a connection. More... | |
const UtlString & | getName () const |
Returns the name associated with this resource. More... | |
void | getOutputInfo (int outPortIdx, MpResource *&rpDownstreamResource, int &rDownstreamPortIdx) |
Returns information about the downstream end of a connection. More... | |
int | getVisitState () |
Returns the current visit state for this resource. More... | |
int | maxInputs () const |
Returns the maximum number of inputs supported by this resource. More... | |
int | maxOutputs () const |
Returns the maximum number of outputs supported by this resource. More... | |
int | minInputs () const |
Returns the minimum number of inputs required by this resource. More... | |
int | minOutputs () const |
Returns the minimum number of outputs required by this resource. More... | |
int | numInputs () const |
Returns the number of resource inputs that are currently connected. More... | |
int | numOutputs () const |
Returns the number of resource outputs that are currently connected. More... | |
virtual MpConnectionID | getConnectionId (void) const |
Get the ID of a connection this resource belongs to. More... | |
int | reserveFirstUnconnectedInput () |
Find the first unconnected input port and reserve it. More... | |
int | reserveFirstUnconnectedOutput () |
Find the first unconnected output port and reserve it. More... | |
UtlContainableType | getContainableType () const |
Get the ContainableType for a UtlContainable derived class. More... | |
virtual OsStatus | getCurrentLatency (int &latency, int input=0, int output=0) const |
Get current input to output latency (in samples) More... | |
UtlBoolean | isEnabled () const |
Returns TRUE is this resource is currently enabled, FALSE otherwise. More... | |
UtlBoolean | isInputConnected (int portIdx) |
Returns TRUE if portIdx is valid and the indicated input is connected, FALSE otherwise. More... | |
UtlBoolean | isInputUnconnected (int portIdx) |
Returns TRUE if portIdx is valid and the indicated input is not connected, FALSE otherwise. More... | |
UtlBoolean | isOutputConnected (int portIdx) |
Returns TRUE if portIdx is valid and the indicated output is connected, FALSE otherwise. More... | |
UtlBoolean | isOutputUnconnected (int portIdx) |
Returns TRUE if portIdx is valid and the indicated output is not connected, FALSE otherwise. More... | |
UtlBoolean | areNotificationsEnabled () const |
Returns TRUE if notification sending is enabled on this resource. More... | |
virtual UtlBoolean | isAsynchInput (int inputIndex) |
Takes asynchronous input (pushBuffer). More... | |
Protected Types | |
enum | { MPRM_SET_INACTIVITY_TIMEOUT = MpResourceMsg::MPRM_EXTERNAL_MESSAGE_START, MPRM_ENABLE_SSRC_DISCARD, MPRM_DISABLE_SSRC_DISCARD } |
Protected Member Functions | |
UtlBoolean | connectOutput (MpResource &rTo, int toPortIdx, int fromPortIdx) |
Connects the fromPortIdx output port on this resource to the toPortIdx input port of the rTo resource. More... | |
UtlBoolean | disconnectOutput (int outPortIdx) |
Removes the connection to the outPortIdx output port of this resource. More... | |
OsStatus | setFlowGraph (MpFlowGraphBase *pFlowGraph) |
Associates this resource with the indicated flow graph. More... | |
virtual UtlBoolean | handleMessage (MpResourceMsg &rMsg) |
Handle resource messages for this resource. More... | |
void | handleSetInactivityTimeout (const OsTime &timeout) |
Handle message to set MpRtpDispatcher inactivity timeout. More... | |
void | handleEnableSsrcDiscard (UtlBoolean enable, RtpSRC ssrc) |
Handle message to enable/disable stream discard. More... | |
Protected Member Functions inherited from MpResource | |
virtual UtlBoolean | handleMessage (MpFlowGraphMsg &fgMsg) |
Handles an incoming flowgraph message for this media processing object. More... | |
virtual UtlBoolean | handleEnable () |
perform the enable operation on the resource More... | |
virtual UtlBoolean | handleDisable () |
perform the disable operation on the resource More... | |
void | setInputBuffer (int inPortIdx, const MpBufPtr &pBuf) |
If there already is a buffer stored for this input port, delete it. Then store pBuf for the indicated input port. More... | |
OsStatus | postMessage (MpFlowGraphMsg &rMsg) |
Post a message from this resource. More... | |
OsStatus | postMessage (MpResourceMsg &rMsg) |
Post a message for this resource. More... | |
UtlBoolean | pushBufferDownsream (int outPortIdx, const MpBufPtr &pBuf) |
Makes pBuf available to resource connected to the outPortIdx output port of this resource. More... | |
virtual OsStatus | setNotificationsEnabled (UtlBoolean enable) |
Sets whether or not this resource should send notifications. More... | |
virtual UtlBoolean | connectInput (MpResource &rFrom, int fromPortIdx, int toPortIdx) |
Connects the toPortIdx input port on this resource to the fromPortIdx output port of the rFrom resource. More... | |
virtual UtlBoolean | disconnectInput (int inPortIdx) |
Removes the connection to the inPortIdx input port of this resource. More... | |
void | setName (const UtlString &rName) |
Sets the name that is associated with this resource. More... | |
Protected Attributes | |
MprFromNet * | mpFromNet |
UDP to RTP converter. More... | |
MprRtpDispatcher * | mpRtpDispatcher |
RTP stream dispatcher. More... | |
int | mMaxRtpStreams |
Maximum number of RTP streams. More... | |
MprRtpDispatcher::RtpStreamAffinity | mRtpStreamAffinity |
Algorithm used to dispatch incoming RTP packets. More... | |
UtlBoolean | mIsRtpStarted |
Are we currently receiving RTP stream? More... | |
Protected Attributes inherited from MpResource | |
MpFlowGraphBase * | mpFlowGraph |
flow graph this resource belongs to More... | |
MpConnectionID | mConnectionId |
The ID of connection this resource belongs to. More... | |
int | mStreamId |
UtlBoolean | mIsEnabled |
TRUE if resource is enabled, FALSE otherwise. More... | |
OsRWMutex | mRWMutex |
reader/writer lock for synchronization More... | |
MpBufPtr * | mpInBufs |
input buffers for this resource More... | |
MpBufPtr * | mpOutBufs |
output buffers for this resource More... | |
Conn * | mpInConns |
input connections for this resource More... | |
Conn * | mpOutConns |
output connections for this resource More... | |
int | mMaxInputs |
maximum number of inputs More... | |
int | mMaxOutputs |
maximum number of outputs More... | |
int | mMinInputs |
number of required inputs More... | |
int | mMinOutputs |
number of required outputs More... | |
int | mNumActualInputs |
actual number of connected inputs More... | |
int | mNumActualOutputs |
actual number of connected outputs More... | |
int | mVisitState |
(used by flow graph topological sort alg.) More... | |
UtlBoolean | mNotificationsEnabled |
Whether we should send notifications or not. More... | |
OsBSem | mLock |
used mainly to make safe changes to ports More... | |
Private Member Functions | |
MpRtpInputConnection (const MpRtpInputConnection &rMpRtpInputConnection) | |
Copy constructor (not implemented for this type) More... | |
MpRtpInputConnection & | operator= (const MpRtpInputConnection &rhs) |
Assignment operator (not implemented for this type) More... | |
Manipulators | |
UtlBoolean | processFrame () |
Process one frame of audio. More... | |
void | setSockets (OsSocket &rRtpSocket, OsSocket &rRtcpSocket) |
Starts receiving RTP and RTCP packets. More... | |
void | releaseSockets () |
Stops receiving RTP and RTCP packets. More... | |
void | setConnectionId (MpConnectionID connectionId) |
Set the ID of a connection this resource belongs to. More... | |
static OsStatus | setRtpInactivityTimeout (const UtlString &namedResource, OsMsgQ &fgQ, int timeoutMs) |
static OsStatus | enableSsrcDiscard (const UtlString &namedResource, OsMsgQ &fgQ, UtlBoolean enable, RtpSRC ssrc) |
Additional Inherited Members | |
Public Types inherited from MpResource | |
enum | VisitState { NOT_VISITED, IN_PROGRESS, FINISHED } |
Graph traversal states that are used when running a topological sort to order resources within a flow graph. More... | |
enum | { ASSOCIATED_LATENCY =-1, INF_LATENCY =-1 } |
Static Public Member Functions inherited from MpResource | |
static OsStatus | disable (const UtlString &namedResource, OsMsgQ &fgQ) |
Post a message to disable the resource named. More... | |
static OsStatus | enable (const UtlString &namedResource, OsMsgQ &fgQ) |
Post a message to enable the resource named. More... | |
static OsStatus | setNotificationsEnabled (UtlBoolean enable, const UtlString &namedResource, OsMsgQ &fgQ) |
Post a message to enable or disable resource notifications on the named resource. More... | |
static void | resourceInfo (MpResource *pResource, int index) |
Displays information on the console about the specified resource. More... | |
Static Public Attributes inherited from MpResource | |
static const UtlContainableType | TYPE = "MpResource" |
Class name, used for run-time checks. More... | |
Static Protected Attributes inherited from MpResource | |
static const OsTime | sOperationQueueTimeout = OsTime::OS_INFINITY |
The timeout for message operations for all resources when posting to the flowgraph queue. More... | |
Connection container for the inbound and outbound network paths to a single remote party.
|
protected |
MpRtpInputConnection | ( | const UtlString & | resourceName, |
MpConnectionID | myID, | ||
IRTCPSession * | piRTCPSession = NULL , |
||
int | maxRtpStreams = 1 , |
||
MprRtpDispatcher::RtpStreamAffinity | rtpStreamAffinity = MprRtpDispatcher::ADDRESS_AND_PORT |
||
) |
Constructor.
|
virtual |
Destructor.
|
private |
Copy constructor (not implemented for this type)
|
virtual |
Process one frame of audio.
Implements MpResource.
void setSockets | ( | OsSocket & | rRtpSocket, |
OsSocket & | rRtcpSocket | ||
) |
Starts receiving RTP and RTCP packets.
void releaseSockets | ( | ) |
Stops receiving RTP and RTCP packets.
|
virtual |
Set the ID of a connection this resource belongs to.
Reimplemented from MpResource.
|
static |
|
static |
|
protectedvirtual |
Connects the fromPortIdx
output port on this resource to the toPortIdx
input port of the rTo
resource.
Reimplemented from MpResource.
|
protectedvirtual |
Removes the connection to the outPortIdx
output port of this resource.
Reimplemented from MpResource.
|
protectedvirtual |
Associates this resource with the indicated flow graph.
[in] | pFlowGraph | - pointer to a flowgraph owning this resource. |
OS_SUCCESS | - for now, this method always returns success |
Reimplemented from MpResource.
|
protectedvirtual |
Handle resource messages for this resource.
Reimplemented from MpResource.
|
protected |
Handle message to set MpRtpDispatcher inactivity timeout.
|
protected |
Handle message to enable/disable stream discard.
|
private |
Assignment operator (not implemented for this type)
|
protected |
UDP to RTP converter.
|
protected |
RTP stream dispatcher.
|
protected |
Maximum number of RTP streams.
|
protected |
Algorithm used to dispatch incoming RTP packets.
|
protected |
Are we currently receiving RTP stream?