TV MANAGER

Abstract: A resource allocation system and method for allocating control of a multimedia resource between at least two computer programs residing on a multimedia client. A tune request data structure receives and stores requests for multimedia resources from the computer programs. A priority weighting schedule is associated with the tune request data structure for defining weighting factor to apply to pertinent characteristics of the request. A find dominant request module determines a priority level to be assigned to each of the stored requests based on the priority weighting schedule. The dominant request is permitted to control the arbitrated multimedia resource.

Description: TV MANAGER Background and Summary of the Invention The present invention relates generally to systems for the delivery of interactive entertainment services. More particularly, the invention relates to a system for allocating multimedia resources to client applications within a media delivery system such as within a set top box delivery system. With the continued development in the broadcast television and cable industries, there is a growing interest in combining the two technologies to provide home entertainment multimedia systems with far reaching capabilities. Interactive television, home automation, and user programmed video services are among the more promising applications . The television industry is transitioning from the current analog, NTSC standard, to a digital broadcast standard that was recently promulgated by the Federal Communications Commission (FCC) . Digital TV offers a number of advantages over the conventional NTSC standard, including high definition pictures, vastly improved user interactivity, support for World Wide Web and Internet e-mail services. Additionally, broadcasting a digital data stream will facilitate combining home computers with television receivers to provide a home entertainment multimedia system. That multimedia system will permit users to personalize the display of television images, combine telephone reception with visual images, and automate the functioning of the television. While there are a number of different possible physical packages for deploying digital television technology, currently the most popular is the set top box. First generation set top boxes serve primarily as the tuner for cable TV reception. As they have evolved, set top boxes have been used to descramble incoming signals, and provide pay TV capability. More recently, with the transition to digital broadcast, TV companies, such as Scientific Atlanta, have developed far more sophisticated set top boxes, offering the power of the personal computer complete with a full-fledged computer operating system. However, set top boxes still have limited hardware resources such as tuners, MPEG audio and video decoders, and display screens. Competing for these limited resources are various applications providing services such as e-mail, the main televised signal, and a scrolling ticker tape overlaying a portion of the main signal . Allocating the limited resources of the set top box to the various applications demanding them presents a challenge that did not exist for prior set top boxes. Previously, there has been no standardized method of allocating resources to multiple applications in a set top box. Traditionally, set top boxes acted as merely a conduit for the received broadcast signal. The present invention provides a system for allocating multimedia resources to a plurality of computer programs by providing a TV manager for interfacing between the applications and multimedia resources. The system includes a tune request data structure to receive and store requests for multimedia resources from the computer programs. A priority weighting schedule is associated with the tune request data structure for defining weighting factors to apply to pertinent characteristics of the request. A find dominant request module determines a priority level to be assigned to each of the stored requests based on the priority weighting schedule. The dominant request is permitted to control the arbitrated multimedia resource. For a more complete understanding of the invention, its objects and advantages, refer to the following specification and to the accompanying drawings . Brief Description of the Drawings Figure 1 is a hardware diagram of an exemplary digital set top box; Figure 2 is a block diagram of the operating system, showing the TV Manager as one component thereof; Figure 3 is a detailed block diagram showing the components of the TV Manager of the invention; Figure 4 is a sequence diagram showing a procedure for selecting a dominant resource request; Figure 5 is a sequence diagram showing an inheritance capability; and Figure 6 is a sequence diagram showing channel tuning operations . Detailed Description of the Preferred Embodiment The present embodiment of the invention is preferably an embedded component within a computer operating system. Although the present embodiment of the invention is depicted as residing on a conventional set top box, it is within the scope of the invention to employ the teachings of the invention within a variety of consumer multimedia clients such as intelligent televisions, Internet terminals, and advanced DVD players. Although the invention is not limited to the set top box environment, it is useful in that environment. Accordingly, Figure 1 illustrates the basic concepts of a digital set top box. A basic understanding of a set top box may be helpful in understanding the present embodiment of the invention. Referring to Figure 1, the components for receiving and displaying a multimedia signal are illustrated. A set top box 10 is connected to the cable telecommunications infrastructure 12 through a cable 14 for receiving multimedia signals. The set top box 10 is also connected through a second cable 16 to a display device 18 such as a TV screen and speakers. The signals received by set box top 10 through cable 14 include broadcast analog, broadcast digital, and interactive digital transmission. The set top box 10 contains hardware and software components for receiving, decoding, and manipulating the incoming multimedia signals prior to displaying them on suitable means. The incoming cable 14 supports multiple types of network input such as a set of analog TV channels, a set of digital TV channels, and a set of data communication channels. The various sets of channels supplied via cable 14 are distinguished by frequency. Networks within the cable telecommunications infrastructure 12 allocate each channel to a discrete frequency band within the 54- 1000 megahertz radio frequency spectrum. A digital tuner 20 selects a frequency band corresponding to a desired channel to which the set top box is tuned. Analog TV channels are frequency demodulated by the digital tuner 20, decrypted as necessary, and optionally digitized. The resulting analog signal or digital stream is relayed to the multimedia compositor 22 that mixes the program content using analog or digital techniques. Alternatively, the analog signal or digital stream may be first passed through decryption circuit 31 prior to being sent to multimedia compositor 22. The reformulated "R" signal is supplied through cable 16 to display device 18. Digital TV channels are also sent to compositor 22, although they are first processed through the additional circuitry illustrated at 24. The digital TV signal is first frequency demodulated by digital tuner 20 to obtain the quadrature amplitude modulated (QAM) digital signal. The QAM signal is demodulated and error corrected before entering the MPEG transport circuitry 28. The transport circuitry 28 extracts the desired program from the transport stream, before separating the audio, video, and data components, which are routed to the video and audio decoders 30 and to the CPU RAM 36. The video and audio components are then separately processed by the MPEG video and MPEG audio circuitry 30. Conventional analog and digital TV channels support only oneway communication from the cable and telecommunications infrastructure 12 to the set top box 10. To enable an interactive digital environment, Quaternary Phaseshift Keying (QPSK) channels are provided for transparent two-way communications between the set top box 10 and the telecommunications infrastructure 12. User inputs are processed by CPU 34 and associated CPU RAM 36, sent to QPSK modem 32, passed through digital tuner 20, and routed to a content provider within the cable telecommunications infrastructure 12. These channels permit the user to communicate with the content provider to request the delivery of graphics, fonts, and other data, or to transmit commands such as play video, pause, or fast forward. The multimedia compositor 22 generates a display image from video and audio input streams and from CPU generated media. It combines graphics and text, generated by applications running in the digital set top box, with full motion MPEG-2 or analog video. The composition of graphics and video includes translucent alpha- blending of the two, scaling of motion video into a window, and the overlay of graphics and video. Similarly, the multimedia compositor 22 combines the application audio with MPEG and analog broadcast audio, mixing simultaneously networked and vocal sounds (either sampled or synthesized) into a single signal. In addition to hardware components, set top box 10 contains application and operating system software in order to provide an advanced interactive television environment. The operating system is utilized by set top box 10 to provide application transparency, platform portability, and high performance playback. Figure 2 provides a high level view of the software components of the operating system 41. The operating system 41 provides an open, scalable platform for developing and delivering multimedia content to consumers across the cable and telecommunications infrastructure 12. The software architecture for the operating system includes layers of interconnected modules designed to minimize redundancy and optimize multimedia processing in an interactive, network setting. The layers of the architecture include a hardware abstraction layer 40, a core layer 42, and an application support layer 44. Additionally, the interface of an application layer 46 to the operating system is illustrated. Pertinent to the present invention is the TV manager component 48 that serves as an interface between the core layer 42 and the application layer 46. The applications 52 running on the operating system, are launched by the application manager 50 and thereafter provide various user interactivity functions. Examples of applications 52 include e-mail services, running ticker tape service, goods and services purchasing services, internet web browsing, and interactive movies on demand. At least one application, referred to as a resident application, is usually always executing on a set top box. The applications 52 use various hardware resources within set top box 10 as well as the display device 18 to provide various user interactivity functions. The TV manager is designed primarily to arbitrate control of the various hardware resources amongst the operating system 41 and the applications 52. Within any multimedia client there are a limited number of hardware resources. For example in a set top box 10 there is typically a single tuner 20, MPEG decoder circuit 30, and decryption circuit 31. Also, generally there is a single associated display device 18 attached to the set top box 10. When there are multiple computer programs running, conflicts will arise among the programs over which program will control a specific resource. The TV Manager 48 provides a means of preventing conflicts from arising among the computer programs by allocating the set top box multimedia resources based on a priority scheme. The priority scheme is defined such that it is not necessary for a particular application 52 to be aware of the other applications 52. In addition, the TV Manager 48 provides a mapping function for selecting channels wherein virtual channels are assigned for the real channels to mask the complexity of analog and digital network delivery mechanisms and provide a consistent channel interface for applications 52. The presently preferred TV Manager architecture is shown in Figure 3. The TV Manager 48 shown generally at 60 interfaces between operating system 41, applications 52, and the set top box multimedia resources 62. Within TV Manager the applications 52 and multimedia resources 62 are assigned characteristics that define their function and activity state. Applications 52 are defined as either foreground applications or background applications. The foreground application has focus, that is the video and audio resources it controls are active. For example, a pay-per-view application that is in the foreground would control the virtual channel that the tuner 20 is tuned to and also control the MPEG audio and video decoders 32 so that the paid for event is displayed on the display device 18. All other executing applications are designated as background applications. Examples of background applications include Email programs and daily scheduler programs that remain inactive, unable to control the primary resource, until a predetermined event occurs such as the arrival of Email. Multimedia resources 62 are defined as primary/secondary and active/inactive. An application 52 can have one primary resource and multiple secondary resources. Since a digital channel contains multiple program streams, support for multiple multimedia resources is provided. In the present embodiment of the invention, only the primary resource of the foreground application controls the tuner and can carry audio and/or video content. However, it is within the scope of the invention that in environments that include multiple tuners 20 and/or display device 18, a secondary resource can control a tuner and carry audio and/or video content. The primary resource of the foreground application is the active primary resource. Secondary resources of either the foreground application or the background application that are compatible with the primary resource can also be activated. Secondary resources that are tuned to transport stream frequencies other than the frequency that services the primary resource are not compatible and therefore not activated. Although there is a single active primary resource in the present embodiment, it is within the scope of the invention to have more than one active primary resource in systems having more than one tuner. Within TV Manager 60 a TuneRequest data structure 64 receives and stores resource requests from the operating system 41 and applications 52. Also stored in the TuneRequest data structure 64 are applicable characteristics of the requesting computer program such as whether the computer program is the operating system 41 or an application program 52, whether the requested resource would be a primary or a secondary resource, whether the computer program is a foreground or background program, and the order in which the resource request was received. The principles of the invention are not limited to the list of characteristics described above, it encompasses storing fewer characteristics as well as including additional characteristics such as the particular resource that is requested. Associated with the TuneRequest data structure 64 is a priority weighting schedule 66 for providing a weighted value for each of the applicable characteristics listed in the TuneRequest data structure. The weighted value for each applicable characteristic is summed to provide a priority level for the particular resource request. Although in the present embodiment the priority weighting schedule is a static set of values, it is within the scope of the invention to dynamically change the values such as loading a set of values during normal operation, or modifying the weighted values in response to operating conditions such as hardware bottlenecks. Additionally, it is within the scope of the invention to include multipliers for the weighted values that are based on resource request characteristics such as the order in which the resource request was received. Connected to the TuneRequest data structure 64 is a RefreshState module 68 that verifies the validity of the resource requests stored in the TuneRequest data structure 64. Any time conditions change the RefreshState module 68 checks all active requests to ensure they remain valid, such as correct tuning information and appropriate conditional access status. Examples of changed conditions include the foreground application changes, the cancellation of tuning requests, the installation of a new channel map, changes in the state of device drivers, changes in the operating system 41, new tuning requests from the applications 52, and the movement of a resource into the denied category. A FindDominant Request module 70 connects to the TuneRequest data structure 64 to process the data stored in the TuneRequest data structure 64 to determine which resource request is the dominant request. The FindDominant Request module 70 applies the weighted values of the priority weighting schedule 66 to the resource requests stored in the TuneRequest data structure 64 to determine the priority level for each resource request. The FindDominant Request module connects to a GetActive module 72 to receive the identification of the foreground application. The GetActive module 72 interrogates the operating system 41 to determine which application 52 has focus (the foreground application) . The operating system 41 is connected to the applications 52 to provide management services as well monitoring the operating state of the applications 52 such as determining which application is the foreground application. The operating system 41, in response to a message notifies the GetActive module 72 of the identification of the foreground application. The GetActive module 72 forwards the identification of the foreground application to the FindDominant Request module 70, which adjusts the priority level of the affected resource requests. The FindDominant Request module 70 additionally searches for other resource requests that are compatible with the dominant request and activates those resource requests. The FindDominant Request module 70 also connects to a TuneChannel module 74 to tune the tuner 20 to the channel requested in the dominant resource request. The TuneChannel module 74 is associated with a channel map table 76 that maps the virtual channels that are used within TV Manager over to the real underlying channels that are supplied from the cable and telecommunications infrastructure 12. Once the FindDominant Request module 70 determines the dominant resource request the TuneChannel module is accessed to tune the tuner 20 to the appropriate real channel. The channel map table 76 provides a cross reference for determining a Q7AM tuning frequency of a real underlying channel that is equivalent to an input specifying a virtual channel number or a source ID. The virtual channel number is a unique number assigned by TV Manager in accordance with the ATSC data format which the computer programs may specify to access the data stream representing a particular program guide channel. For example, CNN might be represented within TV Manager as the number 37, whereas the real channel number corresponding to the CNN data stream might shift from 5 to 83 to 61 depending on the service provider providing the data stream and dynamic changes to the real channel number made by that service provider. Alternatively, the computer programs can specify a source ID to access a particular real channel. Source IDs are unique numbers assigned within a service provider system corresponding to particular program guide channels. The present embodiment employs the A56 version of the ATSC standard to assign source ID numbers. Examples of source IDs could include 103 representing CNN, 99 representing ESPN, and 9 representing WGN. A source ID provides the link between program guide data and virtual channel numbers. Virtual channels that do not have source IDs are given source identifiers of zero. Whether the virtual channel number or the source ID is specified it is mapped to the QAM frequency and modulation mode that corresponds to the real underlying channel. The channel map table 76 is maintained throughout the operation of TV Manager and maps any dynamic changes transparently to the computer programs and the viewers. An inheritance module 71 also connects to the Tune Request Data Structure 64 to permit a compatible application to inherit the primary resource. Referring to Figure 4, the operation for determining the resource request that will control the tuner is depicted. As illustrated at decision block 80, during normal steady-state operation the TV Manager will continue normal operation until a change in conditions is detected. Examples of a change in conditions that will cause a change in operation include the active application changing, a cancellation of tuning requests, installation of a new channel map, changes in the state of device drivers, changes in the operating system, new tuning requests from the computer programs, and moving a multimedia resource 62 into the denied category. At step 82, when a change in conditions is detected the RefreshState module 68 checks all resource requests to ensure they are still valid. In the present embodiment of the invention the resource requests are stored in the Tune Request data structure 64, however it is within the scope of the invention to provide access to the resource requests in another manner such as maintaining a list of handles to resource requests that are located elsewhere or broadcasting a message to the computer programs requesting resource requests and then evaluating priority as the resource requests are received. The validity of the tuning information and conditional access status are examples of some of the data that is verified for each resource request. Any resource request that includes invalid data may be moved into the denied category and the process of checking the validity of the resource requests begun again. At step 84 the FindDominant request module 70 begins the process of determining the dominant request. At step 86 each resource request is examined and assigned a value based on a set of weighting factors contained in the priority weighting schedule. The weighting factors include characteristics of the particular resource request, such as the perspective status of the computer program that made the request, the activity status of the resource that is requested, and the temporal status of the request. Perspective status includes for example whether the computer program is operating in the foreground or background. Activity status includes for example whether the requested resource is a primary or a secondary resource. Temporal status includes for example when the request was received relative to other requests and relative to time-of-day. The scope of the invention is not limited to these particular weighting factors, other weighting factors such as the availability of decryption services and the data throughput capabilities of the platform versus the data bandwidth requirements of the associated application are also envisioned. For example, an application that requires 3 MBits of bandwidth from a computer platform having 4 MBits of remaining throughput might be assigned a low weighting factor such as 1 point. In the present embodiment a request from the operating system is assigned 4 points, a request from the foreground application is assigned 3 points, a background application request is assigned 0 points, a primary resource request is assigned 2 points, a secondary resource request is assigned 0 points, and the oldest request is assigned 1 point. The operating system 41, in response to a message from the GetActive module 72, returns the ID of the foreground application. At step 88 the resource request having the most total points is determined. That resource request is designated the dominant request and is permitted to control the tuner 20. At step 90 the FindDominant request module 70 interrogates the Tune Request Data Structure 64 to obtain the ID of the computer program that has control of the tuner 20. If the computer program that made the dominant request has control of the tuner 20 the loop jumps to step 96. However, if another computer program issued the dominant request, then at step 92 the foreground application, the application that controls the tuner 20, is sent a deactivation request for each active primary and secondary resource it controls requesting the application to shut down the associated multimedia resources. The multimedia resources are deactivated once the application has shut down the data streams associated with those multimedia resources 62. This provides the applications that have open data streams an opportunity to shut down those streams gracefully. At step 94, after the multimedia resources associated with the previous foreground application have been shut down, the dominant request is activated resulting in the application that sent the resource request becoming the foreground application. The primary multimedia resource of the foreground application is the active primary multimedia resource. If the foreground application does not have a primary resource the display device 18 may continue to display graphical data although no MPEG video or audio will be displayed. At step 96 the Tune Request data structure 64 is searched for resource requests that are compatible with the dominant request. A request for any secondary resource, whether it belongs to the foreground application or to a background application, that is compatible with the active primary multimedia resource is granted. Secondary resources that are tuned to channels on different frequencies than that servicing the active primary multimedia resource are not activated. If the foreground application does not have a primary resource and therefore, there is nothing against which to measure secondary resource compatibility, then the oldest secondary resource request of the active application is favored. At step 98, after the compatible resource requests have been determined an event is sent to each resource's queue activating that resource. Control over the data streams that flow to the activated resources is then passed on to the associated computer program that sent the particular resource request. Referring to Figure 5, the procedure whereby a child application can inherit the primary resource of the foreground application is depicted. A child application is an application that only exerts partial control over the video or audio resources. For example a child application may display a running ticker tape along an edge of the display device 18, or merge snippets of audio into a previously running video. At step 130 a request to inherit the primary resource of the foreground application is received from a computer program. An application that inherits the primary resource of another application has no control over that resource, such as tuning that resource to a different channel. However, it does provide a means for a child application to insert video or audio content when the foreground application wants to continue to display audio and video. Again using the ticker tape example, a viewer may want to change the selection of sports scores or stock prices that are displayed in the running ticker tape (the child application) . Therefore the viewer will want to shift the focus to the ticker tape application to modify the selection, but at the same time maintain the video and audio of the sporting event or financial show that was being displayed (the foreground application) . When the focus is shifted to the child application it becomes the foreground application and the previous foreground application which in this instance is also referred to as the parent application becomes a background application. At step 132 TV Manager determines whether the parent application wants to continue to execute. If the parent application does not want to continue, then the resource requests stored in the Tune Request data structure 64 are evaluated to determine the dominant request. However, if the parent application wants to continue to execute, then the procedure continues on to step 134 to verify compatibility. The request from the child application that wants to inherit the primary resource must be compatible with the parent application. For example, the program data the child application uses must flow from the same channel as the program data of the parent application so that the tuner 20 does not have to be changed to a different channel. At step 136 the child application is permitted to inherit the primary resource. Although the child application has inherited the primary resource, it has no control over the primary resource. The operating parameters for the primary resource remain at the settings that were directed by the parent application. For example, the child application cannot change the channel. During the time period that the child application inherits the primary resource and has focus, the video and audio content from the parent application will continue to be displayed. Inheriting the primary resource is not limited to a single child application, multiple child applications can inherit the primary resource from the parent application. Additionally, it is within the scope of the invention to provide inheritance of multiple primary resources in systems that include multiple tuners 20. Referring to Figure 6, the TV Manager start-up and channel tuning procedure is depicted. As illustrated at step 100, a set top box 10 initially boots up in analog mode, but immediately attempts to establish a one-way RF network connection. After the one-way RF connection is established the set top box attempts to establish an interactive, two-way, RF network connection. At step 102 the default Advanced Television System Committee (ATSC) system information (SI) tuning table is retrieved. The TV Manager maps the DNCS supplied ATSC SI tuning table to virtual channel numbers that are used by the computer programs to access the desired program. The computer programs also may use the source identifiers (IDs) supplied in the ATSC SI tuning table to access the desired program. The channel list is maintained throughout the viewing session and any dynamic changes to the list are mapped transparently to the applications 52. At step 106 an application 52 sends a resource request to the TV Manager requesting that the tuner 20 be tuned to a particular virtual channel. The application 52 can request a real underlying channel by specifying the corresponding virtual channel, providing the source identifier for the channel, or describing the channel QAM frequency, QAM tuning, and MPEG program number. In addition an application can request an analog channel by specifying an Electronic Industries Association channel number. The TV Manager 48 at step 108 determines the dominant resource request as described earlier in this application. Assuming that the resource request is the dominant request, then at step 110 the corresponding real underlying channel is determined from the tuning table. At step 112 the tuner 20 is directed to acquire the appropriate QAM-modulated frequency. Once QAM acquisition is complete, the tuner 20 sends a message indicating so to the TV Manager. At step 114 the Program Association Table (PAT) is accessed to determine which PID carries the correct Program Map Table (PMT) for the specified program. Each 6 MHz transport stream, referred to as a channel band, has a PAT that lists the program numbers available within that stream and maps those program numbers to PIDs that contain data describing the individual components (some combination of video, audio, and/or data) of each program. A copy of the PMT is stored for future use. At step 116 the procedure splits into two branches. If the requested resource is a secondary resource or if the application has indicated that it does not want to play audio and/or video, then at step 118 the application is notified once the resource is activated. If the requested resource is a primary resource and the application 52 has indicated that it wants to play audio and/or video, then at step 120 the PMT data is parsed. The PMT keeps track of where the program's video, audio, and/or data streams reside within the channel band. The individual data streams are identified by PIDs. At step 122 the MPEG component is directed to begin playback of audio and/or video data streams that are found during the parsing process. Finally, the application is notified that the resource has been activated. While the invention has been described in its presently preferred embodiment in order to afford an enlightened understanding of the invention, and to describe its principles, it will be understood that the invention can be implemented in different ways without departing from the spirit of the invention as set forth in the appended claims.

Claims: What is claimed is : 1. A computer implemented TV manager for allocating control of a multimedia resource between at least two computer programs residing on a multimedia client, said computer programs including an operating system and an application program, the TV manager comprising: a tune request data structure connected to the at least two computer programs for receiving a resource request for control of the multimedia resource, said tune request data structure activable to store the resource request; a priority weighting schedule associated with the tune request data structure for defining a priority level to be associated with the resource request; a find dominant request module to determine a dominant request based on the priority level associated with the resource request; wherein the find dominant request module is operative in response to a change in conditions for arbitrating control of the multimedia resource based on the priority level determined for the resource request. 2. The computer implemented TV manager of claim 1 wherein there are at least two resource requests and said find dominant request module determines a dominant request based on the priority level for each of the at least two resource requests. 3. The computer implemented TV manager of claim 1 wherein said at least two computer programs have an activity characteristic and a perspective characteristic, and wherein said priority level is a weighted combination of the activity characteristic and the perspective characteristic. 4. The computer implemented TV manager of Claim 1 further comprising a refresh state module connected to the tune request data structure operable to determine the validity of the resource requests . 5. The computer implemented TV manager of Claim 1 further comprising a get active module connected to the operating system operable to determine which of the at least two computer programs has focus. 6. The computer implemented TV manager of Claim 2 further comprising a tune channel module connected to the find dominant request module being operable to tune to a channel specified by the dominant request. 7. The computer implemented TV manager of Claim 6 wherein the tune channel module further comprises a channel map table for defining a plurality of virtual channel numbers corresponding to a plurality of real channels to provide a consistent channel interface to the at least two computer programs . 8. The computer implemented TV manager of Claim 1 wherein the multimedia resource is selected from the , group of: tuners, MPEG video decoders, MPEG audio decoders, and decryption circuits. 9. The computer implemented TV manager of Claim 1 wherein the multimedia resource is a primary resource having predetermined operating parameters, and an inheritance module is activable to allow a compatible computer program to control a secondary resource in a manner that is compatible with the primary resource, whereby the compatible computer program acquires focus and inherits the operating parameters of the primary resource. 10. The computer implemented TV manager of Claim 1 wherein the computer programs receive data from a channel selected from the group of: digital TV channels and analog TV channels. 11. A method for allocating control of a multimedia resource between at least two computer programs residing on a multimedia client, said computer programs including an operating system and an application program, the method comprising the steps of: receiving resource requests from the at least two computer programs; storing the received resource requests in a tune request data structure; detecting a change in conditions; determining the dominant resource request; and activating the dominant request such that the associated computer program is allocated control of the multimedia resource. 12. The method as set forth in Claim 11 further comprising the step of; verifying the validity of the stored resource requests. 13. The method as set forth in Claim 11 wherein the step of determining the dominant resource request comprises the step of: 85 assigning a priority level to each resource request based on a priority weighting schedule. 14. The method as set forth in Claim 11 further comprising the steps of: searching for requests that are compatible with the dominant request; and 5 activating the compatible requests.

Inventors: ASPROMONTE BILL J, JOHNSON LEE R, STALKER ALTAN J, ASPROMONTE, BILL, J., JOHNSON, LEE, R., STALKER, ALTAN, J.
Applicants: POWERTV INC, SCIENTIFIC ATLANTA, POWERTV, INC., SCIENTIFIC-ATLANTA, INC.
Application year: 2000
Main classification: H04N7
IPC codes: H04N5