Multipoint processing unit
First Claim
1. A computer-readable medium storing computer-executable instructions for bridging a plurality of multicast conferences, each of the plurality of multicast conferences having at least one client, the computer-executable instructions are executed by a computer to perform the steps of:
- receiving a first call from one client of a first conference to join a second conference, the client of the first conference using a first type of control signaling and media streaming, the client generating an audio stream and a video stream of the first type;
looking for a description of the second conference, the description of the second conference indicating that the second conference uses a second type of control signaling and media streaming, the second type being different from the first type, the second conference generating an audio stream and media stream of the second type; and
joining the one client into the second conference to effect the bridging of the first conference with the second conference, the step of joining comprising;
creating a second call to call the second conference;
creating a multicast bridging terminal for inputting the audio stream of the first type and outputting an audio stream of the second type, a multicast bridging terminal for inputting the audio stream of the second type and outputting an audio stream of the first type, a multicast bridging terminal for inputting a video stream of the first type and outputting a video stream of the second type, and a multicast bridging terminal for inputting a video stream of the second type and outputting a video stream of the first type;
connecting the second call to each multicast bridging terminal via the stream of the second type; and
connecting the first call to each multicast bridging terminal via the stream of the first typewherein at least one multicast bridging terminal is an audio multicast bridging terminal comprising;
an audio sink module to receive at least one input stream from one of the first call and one of the second call, wherein the audio sink module timestamps audio samples of the at least one input stream with a time of a clock, the time of the clock being updated when a discontinuity flag is set in response to a first sample of a talk spurt is delivered to the audio sink module, the updating of the clock including;
if the data in the at least one input stream is continuous data, increasing the clock by a first time based on an amount of data passed through the audio sink module; and
if there is a silence period in the at least one audio input stream, adjusting the clock by a second time being the length of time of the silence period;
an audio source module to send at least one output stream to one of the first call and one of the second call; and
an interface to send one of at least one input stream to the source module.
1 Assignment
0 Petitions
Accused Products
Abstract
A system to provide a multipoint processing terminal and a multicast bridging terminal to provide mixing, switching, and other processing of media streams under the control of H.323 components. Application Programming Interfaces defined for the multipoint processing terminal provide a multipoint control unit with the capability to change the default behavior of the multipoint processing terminal by allowing the multipoint control unit to control the routing audio and video streams in the multipoint processing terminal and control the media formats in a multipoint conference. Multipoint processing acceleration functionality is provided by providing interfaces to allow hardware accelerated implementations of multipoint processing terminals. The multicast bridging terminals enables clients using one type of control signaling and media streaming to join other conferences using different types of control signaling and media streaming by receiving audio or video data from an incoming media stream and performing any processing necessary to transform the media stream from the incoming stream data format to the outgoing stream data format.
41 Citations
10 Claims
-
1. A computer-readable medium storing computer-executable instructions for bridging a plurality of multicast conferences, each of the plurality of multicast conferences having at least one client, the computer-executable instructions are executed by a computer to perform the steps of:
-
receiving a first call from one client of a first conference to join a second conference, the client of the first conference using a first type of control signaling and media streaming, the client generating an audio stream and a video stream of the first type; looking for a description of the second conference, the description of the second conference indicating that the second conference uses a second type of control signaling and media streaming, the second type being different from the first type, the second conference generating an audio stream and media stream of the second type; and joining the one client into the second conference to effect the bridging of the first conference with the second conference, the step of joining comprising; creating a second call to call the second conference; creating a multicast bridging terminal for inputting the audio stream of the first type and outputting an audio stream of the second type, a multicast bridging terminal for inputting the audio stream of the second type and outputting an audio stream of the first type, a multicast bridging terminal for inputting a video stream of the first type and outputting a video stream of the second type, and a multicast bridging terminal for inputting a video stream of the second type and outputting a video stream of the first type; connecting the second call to each multicast bridging terminal via the stream of the second type; and connecting the first call to each multicast bridging terminal via the stream of the first type wherein at least one multicast bridging terminal is an audio multicast bridging terminal comprising; an audio sink module to receive at least one input stream from one of the first call and one of the second call, wherein the audio sink module timestamps audio samples of the at least one input stream with a time of a clock, the time of the clock being updated when a discontinuity flag is set in response to a first sample of a talk spurt is delivered to the audio sink module, the updating of the clock including; if the data in the at least one input stream is continuous data, increasing the clock by a first time based on an amount of data passed through the audio sink module; and if there is a silence period in the at least one audio input stream, adjusting the clock by a second time being the length of time of the silence period; an audio source module to send at least one output stream to one of the first call and one of the second call; and an interface to send one of at least one input stream to the source module. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer-readable medium storing computer-executable instructions for bridging a plurality of multicast conferences, each of the plurality of multicast conferences having at least one client, the computer-executable instructions are executed by a computer to perform the steps of:
-
receiving a first call from one client of a first conference to join a second conference, the client of the first conference using a first type of control signaling and media streaming, the client generating an audio stream and a video stream of the first type; looking for a description of the second conference, the description of the second conference indicating that the second conference uses a second type of control signaling and media streaming, the second type being different from the first type, the second conference generating an audio stream and media stream of the second type; and joining the one client into the second conference to effect the bridging of the first conference with the second conference, the step of joining comprising; creating a second call to call the second conference; creating a multicast bridging terminal for inputting the audio stream of the first type and outputting an audio stream of the second type, a multicast bridging terminal for inputting the audio stream of the second type and outputting an audio stream of the first type, a multicast bridging terminal for inputting a video stream of the first type and outputting a video stream of the second type, and a multicast bridging terminal for inputting a video stream of the second type and outputting a video stream of the first type; connecting the second call to each multicast bridging terminal via the stream of the second type; and connecting the first call to each multicast bridging terminal via the stream of the first type wherein at least one multicast bridging terminal comprises; a sink module to receive at least one input stream from one of the first call and one of the second call; a source module to send at least one output stream to one of the first call and one of the second call; and an interface to send one of at least one input stream to the source module; and wherein the data in the input stream is in frames of a first size and the data in the output stream is in frames of a second size, the further comprising the steps of; calling, by the sink module, the interface to send data samples of the first size to the source module; if the first size is equal to the second size, sending the data in the input stream directly down stream; and if the first size is not equal to the second size, constructing, by the source module, new data frames of the second size, transforming the data samples of the first size into data samples of the second size, copying the data samples of the second size into the new data frames, and sending the new data frames down stream. - View Dependent Claims (7)
-
-
8. A method for bridging a plurality of conferences, each of the plurality of conferences having a client, comprising
receiving a first call from a client to join a conference, the client using a first type of control signaling and media streaming, the client generating an audio stream and a video stream of the first type; -
looking for a description of the conference, the description of the conference indicating that the conference uses a second type of control signaling and media streaming, the second type being different from the first type, the conference generating an audio stream and media stream of the second type; creating a second call to call the conference; creating a multicast bridging terminal for inputting the audio stream of the first type and outputting an audio stream of the second type, a multicast bridging terminal for inputting the audio stream of the second type and outputting an audio stream of the first type, a multicast bridging terminal for inputting a video stream of the first type and outputting a video stream of the second type, and a multicast bridging terminal for inputting a video stream of the second type and outputting a video stream of the first type; connecting the second call to each multicast bridging terminal via the stream of the second type; and connecting the first call to each multicast bridging terminal via the stream of the first type wherein the client is joined to the conference to effect the bridging of the conference with another conference represented by the client; and wherein at least one multicast bridging terminal is an audio multicast bridging terminal comprising; an audio sink module to receive at least one input stream from one of the first call and one of the second call, wherein the audio sink module timestamps audio samples of the at least one input stream with a time of a clock, the time of the clock being updated when a discontinuity flag is set in response to a first sample of a talk spurt is delivered to the audio sink module, the updating of the clock including; if the data in the at least one input stream is continuous data, increasing the clock by a first time based on an amount of data passed through the audio sink module; and if there is a silence period in the at least one audio input stream, adjusting the clock by a second time being the length of time of the silence period; an audio source module to send at least one output stream to one of the first call and one of the second call; and an interface to send one of at least one input stream to the source module. - View Dependent Claims (9)
-
-
10. A method for bridging a plurality of conferences, each of the plurality of conferences having a client, comprising
receiving a first call from a client to join a conference, the client using a first type of control signaling and media streaming, the client generating an audio stream and a video stream of the first type; -
looking for a description of the conference, the description of the conference indicating that the conference uses a second type of control signaling and media streaming, the second type being different from the first type, the conference generating an audio stream and media stream of the second type; creating a second call to call the conference; creating a multicast bridging terminal for inputting the audio stream of the first type and outputting an audio stream of the second type, a multicast bridging terminal for inputting the audio stream of the second type and outputting an audio stream of the first type, a multicast bridging terminal for inputting a video stream of the first type and outputting a video stream of the second type, and a multicast bridging terminal for inputting a video stream of the second type and outputting a video stream of the first type; connecting the second call to each multicast bridging terminal via the stream of the second type; and connecting the first call to each multicast bridging terminal via the stream of the first type wherein the client is joined to the conference to effect the bridging of the conference with another conference represented by the client; wherein at least one multicast bridging terminal comprises; a sink module to receive at least one input stream from one of the first call and one of the second call; a source module to send at least one output stream to one of the first call and one of the second call; and an interface to send one of at least one input stream to the source module; and wherein the data in the input stream is in frames of a first size and the data in the output stream is in frames of a second size, further comprising the steps of; calling, by the sink module, the interface to send data samples of the first size to the source module; if the first size is equal to the second size, sending the data in the input stream directly down stream; and if the first size is not equal to the second size, constructing, by the source module, new data frames of the second size, transforming the data samples of the first size into data samples of the second size, copying the data samples of the second size into the new data frames, and sending the new data frames down stream.
-
Specification