IP Library Patent Application 11378163
Patent Application
App. No. 11/378,163

Media processing abstraction model

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
11/378,163
Abstract

Techniques are described for providing media services. A media processor receives one or more input media streams and provides an output media stream to one or more endpoints. A media controller issues commands to the media processor for controlling the media streams. The media controller and the media processor communicate in accordance with a defined protocol allowing for independent control of each of the media streams.

Claims (29)

1 . A method for providing media services comprising:

providing a media processor that receives one or more input media streams and provides an output media stream to one or more endpoints; and

providing a media controller that issues commands to said media processor for controlling said media streams, wherein said media controller and said media processor communicate in accordance with a defined protocol allowing for independent control of each of said media streams.

2 . The method of claim 1 , wherein said media streams include one or more of audio, video and data.

3 . The method of claim 1 , further comprising:

said media controller issuing commands to said media processor in accordance with said defined protocol to allocate a plurality of structures and descriptors used in connection with providing media services.

4 . The method of claim 3 , wherein a context structure is defined for each set of one or more input streams that interact with each other.

5 . The method of claim 4 , wherein a termination structure is defined for each endpoint associated with said context structure.

6 . The method of claim 5 , wherein a stream structure is defined for each single media type sent to or received from each endpoint.

7 . The method of claim 6 , wherein each stream structure is associated with a plurality of descriptors including a local descriptor describing communication attributes at said media processor, and a remote descriptor describing communication attributes at an endpoint associated with said stream structure.

8 . The method of claim 7 , wherein said plurality of descriptors includes one or more of: an ingress filter descriptor defining what endpoints associated with said context structure receive a media stream for a single media type associated with a stream structure, and an egress filter descriptor defining what endpoints are selected as source media for an outgoing stream associated with said egress filter descriptor, said egress filter descriptor defining a type of media processing to be performed.

9 . The method of claim 8 , wherein if said egress filter descriptor or said ingress filter descriptor is not defined, a default behavior is used in accordance with a media type of a stream represented by a stream structure associated with an undefined filter descriptor, wherein said default behavior for said egress filter descriptor is that all endpoints of a context structure are selected, and default media processing performed for a voice media type is mixing and default media processing for a video media type is switching between video input streams in accordance with a currently active speaker.

10 . The method of claim 1 , wherein said media processor reports events of an event type to said media controller in accordance with said defined protocol, said defined protocol including a plurality of event types including a media processor event, a context event, a termination event, and a stream event.

11 . The method of claim 6 , wherein said context structure is implicitly constructed when said media controller issues a command request to said media processor to construct a first stream structure associated with said context structure, and wherein said context is implicitly destructed when a last stream structure associated with said context structure is deleted using a command request to explicitly request said media processor to delete said last stream structure.

12 . The method of claim 6 , wherein a termination structure associated with an endpoint is implicitly constructed when a first stream structure is added for said endpoint in response to a command request from said media controller to said media processor to add said first stream structure for said endpoint.

13 . The method of claim 12 , wherein a termination structure is implicitly destructed when a last stream is deleted from the termination structure in response to a command request from said media controller to said media processor to delete said last stream structure.

14 . The method of claim 6 , wherein said protocol includes a request issued by the media controller to said media processor to move a termination structure from one context structure to another context structure.

15 . The method of claim 1 , further comprising:

issuing one or more command requests by said media controller to said media processor to create one or more logical media processor instances for servicing said media controller.

16 . The method of claim 15 , wherein a server system includes a plurality of media controllers, said plurality of media controllers including said media controller as a first media controller and a second media controller, wherein said first media controller controls operation of a first set of one or more logical media processor instances and said second media controller controls operation of a second set of one or more different logical media processor instances.

17 . A server for providing media services comprising:

a media processor that receives one or more input media streams and provides an output media stream to one or more endpoints;

a media controller that issues commands to said media processor for controlling said media streams, wherein said media controller and said media processor communicate in accordance with a defined protocol; and

said defined protocol including a command request issued by said media controller to said media processor to define a logical instance of a media processor to service said media controller.

18 . The server of claim 17 , wherein said media controller issues a plurality of command requests to said media processor to create a plurality of logical media processor instances for servicing said media controller.

19 . The server of claim 17 , further including a plurality of media controllers, said plurality of media controllers including said media controller as a first media controller and a second media controller, wherein said first media controller controls operation of a first set of one or more logical media processor instances servicing said first media controller, and said second media controller controls operation of a second set of one or more different logical media processor instances for servicing said second media controller.

20 . A computer readable medium comprising executable instructions stored thereon for providing media services comprising:

code that establishes a media processor that receives one or more input media streams and provides an output media stream to one or more endpoints; and

code that establishes a media controller that issues commands to said media processor for controlling said media streams, wherein said media controller and said media processor communicate in accordance with a defined protocol allowing said media controller to control each incoming and outgoing stream from each of said endpoints independently of other streams, and wherein one or more logical instances of a media processor service said media controller.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034766/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2006
From: LEVIN, DANNY; BARKLEY, WARREN; ZHONG, WEI; MOORE, TIM; VANBUSKIRK, MICHAEL; LEUNG, YIU-MING
To: MICROSOFT CORPORATION
Reel/Frame 017630/0419 →