|
sipxmedialib
Version 3.3
|
The "Hook" media processing resource. More...
#include <MprHook.h>


Public Types | |
| typedef void(* | HookFunction) (MpBufPtr &pBuf, uint32_t time, void *pUserData) |
| Pointer to a hook function. More... | |
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 } |
Public Member Functions | |
Creators | |
| MprHook (const UtlString &rName) | |
| Constructor. More... | |
| virtual | ~MprHook () |
| Destructor. More... | |
Public Member Functions inherited from MpAudioResource | |
| MpAudioResource (const UtlString &rName, int minInputs, int maxInputs, int minOutputs, int maxOutputs) | |
| Constructor. More... | |
| virtual | ~MpAudioResource () |
| Destructor. More... | |
| virtual UtlBoolean | processFrame (void) |
| Wrapper around doProcessFrame(). 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 | setConnectionId (MpConnectionID connectionId) |
| Set the ID of a connection this resource belongs to. 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... | |
Static Public Member Functions | |
Manipulators | |
| static OsStatus | setHook (const UtlString &namedResource, OsMsgQ &fgQ, HookFunction func, void *pUserData) |
| Set hook function to be called for every received frame. More... | |
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... | |
Private Types | |
| enum | AddlMsgTypes { MPRM_SET_HOOK = MpResourceMsg::MPRM_EXTERNAL_MESSAGE_START } |
Private Member Functions | |
| virtual UtlBoolean | doProcessFrame (MpBufPtr inBufs[], MpBufPtr outBufs[], int inBufsSize, int outBufsSize, UtlBoolean isEnabled, int samplesPerFrame, int samplesPerSecond) |
| This method does the real work for the media processing resource and must be defined in each class derived from this one. More... | |
| virtual UtlBoolean | handleMessage (MpResourceMsg &rMsg) |
| Handles an incoming flowgraph message for this media processing object. More... | |
| MprHook (const MprHook &rMprHook) | |
| Copy constructor (not implemented for this class) More... | |
| MprHook & | operator= (const MprHook &rhs) |
| Assignment operator (not implemented for this class) More... | |
Private Attributes | |
| HookFunction | mpHook |
| Hook function to be called. More... | |
| void * | mpUserData |
| User data to pass to hook function. More... | |
| uint32_t | mFrameNum |
| Number of the current frame. More... | |
Additional Inherited Members | |
Static Public Attributes inherited from MpResource | |
| static const UtlContainableType | TYPE = "MpResource" |
| Class name, used for run-time checks. 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 | setFlowGraph (MpFlowGraphBase *pFlowGraph) |
| Associates this resource with the indicated flow graph. 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 | 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... | |
| virtual UtlBoolean | disconnectInput (int inPortIdx) |
Removes the connection to the inPortIdx input port of this resource. More... | |
| virtual UtlBoolean | disconnectOutput (int outPortIdx) |
Removes the connection to the outPortIdx output port of this resource. More... | |
| void | setName (const UtlString &rName) |
| Sets the name that is associated with this resource. 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... | |
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... | |
The "Hook" media processing resource.
This resource allows some external entity to read and possibly modify buffers.
| typedef void(* HookFunction) (MpBufPtr &pBuf, uint32_t time, void *pUserData) |
Pointer to a hook function.
| pBuf | - audio data. May be NULL. |
| time | - timestamp of audio data (in frames). |
|
private |
| MprHook | ( | const UtlString & | rName | ) |
Constructor.
|
virtual |
Destructor.
|
static |
Set hook function to be called for every received frame.
Note, that you have to manage userdata lifetime by yourself.
|
privatevirtual |
This method does the real work for the media processing resource and must be defined in each class derived from this one.
| inBufs | (in) array of pointers to input buffers for the resource |
| outBufs | (out) array of pointers to output buffers produce by the resource |
| inBufsSize | (in) size of the inBufs array |
| outBufsSize | (in) size of the outBufs array |
| isEnabled | (in) indicates whether this resource has been enabled |
| samplesPerFrame | (in) samples to produce per frame processing interval |
| samplesPerSecond | (in) samples to produce per second |
Implements MpAudioResource.
|
privatevirtual |
Handles an incoming flowgraph message for this media processing object.
Reimplemented from MpResource.
Assignment operator (not implemented for this class)
|
private |
Hook function to be called.
|
private |
User data to pass to hook function.
|
private |
Number of the current frame.
1.8.11