Server/client architecture and method for multicasting on a computer network
First Claim
1. A client for a network-based multicast system, comprising:
- (a) a media services manager for receiving a first multicast channel from a non-isochronous network, wherein the first multicast channel comprises at least two related data streams;
(b) at least two media service providers for receiving and playing said related data streams from said media services manager; and
(c) a client application for informing the media services manager of selection of the first multicast channel, wherein;
the media services manager loads and opens one of the media service providers for each related data stream of the first multicast channel;
each media service provider receives and plays one of the related data streams of said first multicast channel;
the at least two media service providers comprise a first media service provider and a second media service provider;
the at least two related data streams comprises a first related data stream and a second related data stream;
the first media service provider plays the first related data stream based on a relationship with the second related data stream played by the second media service provider to coordinate the playing of the first and second data streams;
the client application informs the media services manager of selection of a second multicast channel to replace the selection of the first multicast channel;
the media services manager automatically loads and opens one of the media service providers for each related data stream of the second multicast channel not comprised in the first multicast channel; and
the media services manager automatically closes and unloads one of the media service providers for each related data stream of the first multicast channel not comprised in the second multicast channel.
1 Assignment
0 Petitions
Accused Products
Abstract
A server/client for a network-based multicast system has a media services manager and one or more media service providers. When functioning as a server, the media service providers receive data corresponding to a channel having one or more related data streams, where each media service provider receives data corresponding to a data stream of the channel. In the server, the media services manager receives the data from the media service providers and transmits the data to the network. When functioning as a client, the media services manager receives data from the network for a selected channel having one or more related data streams. In the client, the media service providers receive and play the data from the media services manager, where each media service provider receives and plays data corresponding to a data stream of the channel. In a preferred embodiment, a channel has logically related audio, video, and/or text data streams.
319 Citations
22 Claims
-
1. A client for a network-based multicast system, comprising:
-
(a) a media services manager for receiving a first multicast channel from a non-isochronous network, wherein the first multicast channel comprises at least two related data streams;
(b) at least two media service providers for receiving and playing said related data streams from said media services manager; and
(c) a client application for informing the media services manager of selection of the first multicast channel, wherein;
the media services manager loads and opens one of the media service providers for each related data stream of the first multicast channel;
each media service provider receives and plays one of the related data streams of said first multicast channel;
the at least two media service providers comprise a first media service provider and a second media service provider;
the at least two related data streams comprises a first related data stream and a second related data stream;
the first media service provider plays the first related data stream based on a relationship with the second related data stream played by the second media service provider to coordinate the playing of the first and second data streams;
the client application informs the media services manager of selection of a second multicast channel to replace the selection of the first multicast channel;
the media services manager automatically loads and opens one of the media service providers for each related data stream of the second multicast channel not comprised in the first multicast channel; and
the media services manager automatically closes and unloads one of the media service providers for each related data stream of the first multicast channel not comprised in the second multicast channel. - View Dependent Claims (2, 3, 4, 5, 6, 7)
(d) a media sync manager, wherein said media service providers play said related data streams in accordance with instructions from said media sync manager.
-
-
3. The client of claim 2, wherein said media sync manager instructs the first media service provider to play said first related data stream now if said first related data stream is a sync target.
-
4. The client of claim 2, wherein said media sync manager instructs the first media service provider to play the first related data stream in accordance with a comparison of a time stamp of said first related data stream to a time stamp of the second related data stream, wherein the second related data stream is a sync target.
-
5. The client of claim 1, further comprising:
(d) a network input driver for receiving said related data streams from the network and for transmitting said related data streams to said media services manager.
-
6. The client of claim 5, wherein said network input driver comprises:
-
(1) a data link manager; and
(2) at least one media dependent modules, wherein each of said media dependent modules corresponds to a network medium of said network-based multicast system, wherein;
each of said media dependent modules receives a plurality of link packets from a network interface of a corresponding network medium, each of said link packets comprising a link packet header and a link packet data field;
each of said media dependent modules transmits said plurality of link packets to said data link manager;
said data link manager combines at least one link packet data fields from at least one link packets corresponding to the same data type to generate a data message; and
said data link manager transmits said data message to said media services manager.
-
-
7. The client of claim 1, wherein said media services manager is capable of pausing and unpausing the playing of at least one of the related data streams by at least one of said media service providers.
-
8. A method of processing data by a client in a network-based multicast system, comprising the steps of:
-
(a) informing a media services manager of the client of selection of a first multicast channel by a client application of the client, wherein the first multicast channel comprises at least two related data streams;
(b) loading and opening one of at least two media service providers of the client for each related data stream of the first multicast channel by the media services manager;
(c) receiving the first multicast channel from a non-isochronous network by the media services manager;
(d) receiving said related data streams from said media services manager by the media service providers;
(e) playing said related data streams by said media service providers, wherein;
each media service provider receives and plays one of the related data streams of said first multicast channel;
the at least two media service providers comprise a first media service provider and a second media service provider;
the at least two related data streams comprises a first related data stream and a second related data stream; and
the first media service provider plays the first related data stream based on a relationship with the second related data stream played by the second media service provider to coordinate the playing of the first and second data streams;
(f) subsequently informing the media services manager of selection of a second multicast channel to replace the selection of the first multicast channel by the client application;
(g) automatically loading and opening one of the media service providers for each related data stream of the second multicast channel not comprised in the first multicast channel by the media services manager; and
(h) automatically closing and unloading one of the media service providers for each related data stream of the first multicast channel not comprised in the second multicast channel by the media services manager. - View Dependent Claims (9, 10, 11, 12, 13, 14)
(1) providing instructions by a media sync manager of said client to said media service providers;
(2) playing said related data streams by said media service providers in accordance with said instructions.
-
-
10. The method of claim 9, wherein step (e)(1) comprises the step of providing instructions by said media sync manager to the first media service provider to play said first related data stream now if said first related data stream is a sync target.
-
11. The method of claim 9, wherein step (e)(1) comprises the step of providing instructions by said media sync manager to the first media service provider to play the first related data stream in accordance with a comparison of a time stamp of said first related data stream to a time stamp of the second related data stream, wherein the second related data stream is a sync target.
-
12. The method of claim 8, wherein step (c) comprises the steps of:
-
(1) receiving said related data streams by a network input driver from the network; and
(2) transmitting said related data streams by said network input driver to said media services manager.
-
-
13. The method of claim 12, wherein step (c)(1) comprises the steps of:
-
(i) receiving a plurality of link packets by at least one media dependent modules of said network input driver from at least one network media of said network-based multicast system, each of said link packets comprising a link packet header and a link packet data field, wherein each of said media dependent modules corresponds to one of said network media;
(ii) transmitting said plurality of link packets by said media dependent modules to a data link manager of said network input driver;
(iii) combining at least one data link manager data fields from at least one link packets corresponding to the same data type by said data link manager to generate a data message; and
(iv) transmitting said data message by said data link manager to said media services manager.
-
-
14. The method of claim 8, further comprising the steps of:
-
(i) pausing by said media services manager the playing of at least one of the related data streams by at least one of said media service providers; and
(j) unpausing by said media services manager the playing of at least one of the related data streams by at least one of said media service providers.
-
-
15. A server for a network-based multicast system, comprising:
-
(a) at least two media service providers for generating at least two related data streams, wherein;
each media service provider generates one of the related data streams;
the at least two media service providers comprise a first media service provider and a second media service provider;
the at least two related data streams comprises a first related data stream and a second related data stream; and
the first related data stream generated by the first media service provider is to be played based on a relationship with the second related data stream generated by the second media service provider to coordinate the playing of the first and second data streams;
(b) a media services manager for receiving said related data streams from said media service providers and for transmitting said related data streams within a first multicast channel to a non-isochronous network; and
(c) a server application for informing the media services manager of selection of the first multicast channel, wherein;
the media services manager loads and opens one of the media service providers for each related data stream of the first multicast channel;
the server application subsequently informs the media services manager of selection of a second multicast channel to replace the selection of the first multicast channel;
the media services manager automatically loads and opens one of the media service providers for each related data stream of the second multicast channel not comprised in the first multicast channel; and
the media services manager automatically closes and unloads one of the media service providers for each related data stream of the first multicast channel not comprised in the second multicast channel. - View Dependent Claims (16, 17, 18)
(d) a media sync manager for providing time stamps for said related data streams.
-
-
17. The server of claim 15, further comprising:
(d) a network output driver for receiving said related data streams from said media services manager and for transmitting said related data streams to the network.
-
18. The server of claim 17, wherein said network output driver comprises:
-
(1) a data link manager; and
(2) at least one media dependent modules, wherein each of said media dependent modules corresponds to a network medium of said network-based multicast system, wherein;
said data link manager receives a plurality of data messages from said media services manager;
said data link manager fragments each of said data messages into at least one link packets, each of said link packets comprising a link packet header and a link packet data field;
said data link manager transmits said link packets to a corresponding media dependent module; and
said media dependent module transmits said link packets to a corresponding network interface of said network-based multicast system.
-
-
19. A method of processing data by a server in a network-based multicast system, comprising the steps of:
-
(a) informing a media services manager of the server of selection of a first multicast channel by a server application of the server, wherein the first multicast channel comprises at least two related data streams;
(b) loading and opening one of at least two media service providers of the server for each related data stream of the first multicast channel by the media services manager;
(c) generating the related data streams by the media service providers, wherein;
each media service provider generates one of the related data streams;
the at least two media service providers comprise a first media service provider and a second media service provider;
the at least two related data streams comprises a first related data stream and a second related data stream; and
the first related data stream generated by the first media service provider is to be played based on a relationship with the second related data stream generated by the second media service provider to coordinate the playing of the first and second data streams;
(d) receiving said related data streams by the media services manager from said media service providers; and
(e) transmitting said related data streams within the first multicast channel by said media services manager to a non-isochronous network;
(f) subsequently informing the media services manager of selection of a second multicast channel to replace the selection of the first multicast channel by the server application;
(g) automatically loading and opening one of the media service providers for each related data stream of the second multicast channel not comprised in the first multicast channel by the media services manager; and
(h) automatically closing and unloading one of the media service providers for each related data stream of the first multicast channel not comprised in the second multicast channel by the media services manager. - View Dependent Claims (20, 21, 22)
(1) receiving said related data streams by a network output driver from said media services manager; and
(2) transmitting said related data streams by said network output driver to the network.
-
-
22. The method of claim 21, wherein step (e)(2) comprises the steps of:
-
(i) receiving a plurality of data messages from said media services manager by a data link manager of said network output driver;
(ii) fragmenting each of said data messages into at least one link packets by said data link manager, each of said link packets comprising a link packet header and a link packet data field;
(iii) transmitting said link packets by said data link manager to a media dependent module of said network output driver;
said media dependent module corresponding to a network medium of said network-based multicast system; and
(iv) transmitting said link packets by said corresponding media dependent module to a corresponding network interface of said network-based multicast system.
-
Specification