US20120114312A1 - Method and system for determining the availability of a media controller - Google Patents
Method and system for determining the availability of a media controller Download PDFInfo
- Publication number
- US20120114312A1 US20120114312A1 US12/731,730 US73173010A US2012114312A1 US 20120114312 A1 US20120114312 A1 US 20120114312A1 US 73173010 A US73173010 A US 73173010A US 2012114312 A1 US2012114312 A1 US 2012114312A1
- Authority
- US
- United States
- Prior art keywords
- media controller
- program
- record
- media
- recording
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44213—Monitoring of end-user related data
- H04N21/44222—Analytics of user selections, e.g. selection of programs or purchase activity
- H04N21/44224—Monitoring of user activity on external systems, e.g. Internet browsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/251—Learning process for intelligent management, e.g. learning user preferences for recommending movies
- H04N21/252—Processing of multiple end-users' preferences to derive collaborative data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42607—Internal components of the client ; Characteristics thereof for processing the incoming bitstream
- H04N21/4263—Internal components of the client ; Characteristics thereof for processing the incoming bitstream involving specific tuning arrangements, e.g. two tuners
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4334—Recording operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/43615—Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/43622—Interfacing an external recording device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/4508—Management of client data or end-user data
- H04N21/4532—Management of client data or end-user data involving end-user characteristics, e.g. viewer profile, preferences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/458—Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/458—Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
- H04N21/4583—Automatically resolving scheduling conflicts, e.g. when a recording by reservation has been programmed for two programs in the same time slot
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
- H04N21/4622—Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/466—Learning process for intelligent management, e.g. learning user preferences for recommending movies
- H04N21/4668—Learning process for intelligent management, e.g. learning user preferences for recommending movies for recommending content, e.g. movies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47214—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for content reservation or setting reminders; for requesting event notification, e.g. of sport results or stock market
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/475—End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data
- H04N21/4756—End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data for rating content, e.g. scoring a recommended movie
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/482—End-user interface for program selection
- H04N21/4826—End-user interface for program selection using recommendation lists, e.g. of programs or channels sorted out according to their score
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/654—Transmission by server directed to the client
- H04N21/6543—Transmission by server directed to the client for forcing some client operations, e.g. recording
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6582—Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/84—Generation or processing of descriptive data, e.g. content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/765—Interface circuits between an apparatus for recording and another apparatus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/78—Television signal recording using magnetic recording
- H04N5/782—Television signal recording using magnetic recording on tape
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/79—Processing of colour television signals in connection with recording
- H04N9/80—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
- H04N9/82—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
- H04N9/8205—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
Definitions
- the present disclosure relates to recording programs, and in particular to determining whether a media controller is available to record a program based on previous usage data associated with the media controller.
- a media controller such as a digital video recorder (DVR) records a program by tuning to a frequency on which the program will be transmitted at a designated time.
- the media controller receives the program content, and stores the program content on a storage medium.
- the availability of a media controller to record a program is consequently based on the availability of a tuner.
- media controllers are made with multiple tuners to enable the media controller to perform multiple tasks concurrently, such as recording two programs simultaneously, or viewing one program while recording another.
- Locales such as a residence, increasingly have multiple media controllers to service multiple televisions.
- Media controllers are also increasingly network capable, and communications between media controllers coupled to a local area network are increasingly more common. It would be beneficial therefore, if a first media controller could request a second media controller to record a program. While the second media controller may relatively easily determine whether a tuner is immediately available to record a program, if the request is to record a future program, accepting such a request by the second media controller may only ultimately result in a similar conflict on the second media controller. Therefore, it would also be beneficial if it could be determined whether it is likely that the second media controller would be available to record the program at the future point in time.
- Embodiments of the present disclosure relate to determining the availability of a media controller to record a program.
- a media controller may determine a program time slot associated with a recording request, obtain previous usage data identifying previous usage of the media controller, and based on the previous usage data determine that the media controller will be available to schedule the recording of the program or will not be available to schedule the recording of the program.
- each media controller is provided previous usage data of other media controllers coupled to a local area network in a locale.
- a first media controller determines that a viewer desires to concurrently access a number of programs that exceeds the number of tuners of the first media controller. For example, the viewer desires to record three programs during a particular time slot, and the first media controller has only two tuners.
- the first media controller processes the previous usage data of one of the other media controllers coupled to the network, determines that a probability that the other media controller will be available to record the program during the time slot exceeds an availability threshold, and sends a request to the other media controller to record one of the three programs.
- the first media controller may process the previous usage data of multiple other media controllers until the first media controller locates an available media controller.
- a first media controller sends a request to a second media controller to schedule the recording of a program.
- the second media controller determines the program time slot of the program identified in the request, and processes previous usage data associated with the second media controller to determine an availability probability that the second media controller will be available to record the program. Determining the availability probability of the second media controller may include determining the availability probability of each of a plurality of tuners associated with the second media controller. If the availability probability of the second media controller exceeds an availability threshold, the second media controller may schedule the recording of the program and send a message to the first media controller indicating that the second media controller has scheduled the request.
- each media controller provides previous usage data associated with the respective media controller to a media server. If a viewer requests concurrent access to a number of programs that exceeds the number of tuners of a first media controller, the first media controller sends a request to the media server to determine whether another media controller may be available to schedule the recording of one of the programs.
- the media server may process the previous usage data of one or more second media controllers to determine if the probability of availability of any second media controller exceeds an availability threshold. If so, the media server may request that the second media controller record the program, and send a message to the first media controller indicating that the second media controller has been scheduled to record the program.
- the first media controller may ask each of a plurality of other media controllers if the other media controllers are available to schedule the recording of a program during the program time slot. After one or more of the other media controllers respond that they are available to record the program, the first media controller may cause a display identifying the other media controllers that are available to schedule the recording of the program to the viewer. The viewer may select one of the other media controllers, and in response to the viewer selection, the first media controller may send the selected media controller a request to record the program.
- FIG. 1 is an exemplary block diagram of a locale in which embodiments may be practiced
- FIG. 2 is a block diagram illustrating additional detail of a media controller according to one embodiment
- FIG. 3 is block diagram of an exemplary stored item record according to one embodiment
- FIG. 4 is a block diagram illustrating exemplary nodal data according to one embodiment
- FIG. 5 is a block diagram of an exemplary recorder according to one embodiment
- FIG. 6 is a block diagram of an exemplary merged guide according to one embodiment
- FIG. 7 is a flowchart illustrating an exemplary method for generating program records
- FIG. 8 is a block diagram illustrating exemplary update timestamp data according to one embodiment
- FIG. 9 is a flowchart illustrating an exemplary method for receiving and processing program metadata sent from one media controller to another media controller;
- FIG. 10 is a flowchart illustrating an exemplary method for sending program metadata to another media controller
- FIG. 11 illustrates an exemplary merged guide at a first point in time
- FIG. 12 illustrates the exemplary merged guide illustrated in FIG. 11 at a second point in time
- FIG. 13 is a block diagram illustrating exemplary mechanisms that may be used by a media controller to determine the identity of a particular viewer
- FIG. 14 is a flowchart illustrating an exemplary method for integrating viewer information with a program record
- FIG. 15 is block diagram illustrating exemplary requests that one media controller may make of another media controller
- FIG. 16 is a flow chart illustrating an exemplary method for determining if another media controller is available to schedule a recording of a program according to one embodiment
- FIG. 17 is a block diagram of an exemplary media controller usage (MCU) record 150 for storing consolidated previous usage data associated with the usage of a media controller according to one embodiment
- FIG. 18 is block diagram of an exemplary client server embodiment
- FIG. 19 is a flow chart illustrating an exemplary method for determining if another media controller is available to schedule a recording of a program
- FIG. 20 is block diagram of another exemplary embodiment implemented in a peer-to-peer architecture
- FIG. 21 is a flow chart illustrating an exemplary method for determining if another media controller is available to schedule the recording of a program
- FIG. 22 illustrates a window which may be displayed on the display device according to one exemplary embodiment
- FIG. 23 is a flowchart illustrating an exemplary method for providing a viewer an option to select another media controller to resolve a tuner conflict
- FIG. 24 illustrates an exemplary processing device which may be used to implement a media controller, or a server, according to some embodiments.
- Embodiments of the present disclosure relate to processing a request to record a program to determine the availability of a media controller tuner to record the program.
- a media controller may determine a program time slot associated with the request to record the program, obtain previous usage data identifying previous usage of the media controller during the program time slot, and based on the previous usage data determine that the media controller tuner will be available to record the program or will not be available to record the program.
- Embodiments may be implemented in any of several different system architectures, including peer-to-peer (P2P) architectures and client-server architectures.
- Embodiments may also be implemented in conjunction with a merged program guide comprising program data from a plurality of media controllers.
- FIG. 1 illustrates a locale 10 , such as a residence, in which media controllers 12 A and 12 B (generally, media controller 12 or media controllers 12 ) are located.
- the media controllers 12 may comprise any device capable of providing, presenting, or otherwise causing the display of content upon demand, such as, for example, a set top box, a digital video recorder, an intelligent gaming console, such as the Microsoft® Xbox®, Sony® PlayStation®, and Nintendo® GameCube®, a media console such as the Apple® TV®, personal computers, and the like.
- the media controllers 12 provide content to one or more viewers 14 by causing a display on a display device 16 .
- the display device 16 may comprise any display technology, such as a television, a computer monitor, a projector, and the like.
- causing” or “cause” to display it is meant that the media controllers 12 generate output streams that are provided to output connections on the media controllers 12 (not illustrated), which are directed to a respective display device 16 , typically via a cable or other signal-carrying mechanism. While for purposes of illustration the media controllers 12 and display devices 16 are illustrated as devices which are separate from one another, the display device 16 may be integral with the media controller 12 .
- a single unit may include both a media controller 12 , such as a digital video recorder, and a display device 16 , such as a television.
- a media controller 12 and display device 16 are integral, the signal-carrying connection between the two may not be by a connection cable, but rather by an internal bus or other signal-carrying mechanism.
- the media controller 12 A receives content from content providers 18 A and 18 B (generally content providers 18 , or content provider 18 ).
- the content providers 18 may comprise any provider of content, including service providers that provide content for a direct or indirect fee, cable operators, satellite operators, internet content providers, and the like.
- the content received by the media controllers 12 may be any content desirable for presentation, display or otherwise rendering to a viewer 14 , such as broadcast television, movies, video on demand, music, and the like.
- Units of content will be referred to herein as programs, and a program can refer to any unit of content that is referred to individually by the content provider, such as a particular television show, a particular movie, a song, and the like.
- Content is typically, but not necessarily, provided to the media controllers 12 in a content package that is defined by a particular subscription.
- the subscription between the media controller 12 and the content provider 18 defines which channels and features make up a particular content package, and therefore defines the programming that will be provided by the respective content provider 18 to the media controller 12 pursuant to the subscription.
- the media controller 12 A may receive a first content package that includes premium movies and high definition content from the content provider 18 A pursuant to a first subscription.
- the media controller 12 B may receive a second content package that includes only standard definition content and no premium movies from the content provider 18 D pursuant to a different subscription, even though the content provider 18 A may be the same content provider as the content provider 18 D.
- the same program may therefore be available to the same or different media controllers 12 .
- different versions of the same program may be available to the same or different media controllers 12 .
- the media controller 12 A may have access to a high-definition version of a particular episode of the network program Survivor, while the media controller 12 B has access only to a standard-definition version of Survivor based on the respective subscriptions.
- the content providers 18 typically provide a guide to the media controllers 12 that identifies programs available via the respective content provider 18 .
- Such guides are depicted in FIG. 1 in the form of respective local electronic programming guides 20 A, 20 B (generally, local guides 20 or local guide 20 ). While for purposes of illustration each media controller 12 is shown as having only a single local guide 20 , it will be understood that each media controller 12 may have multiple local guides 20 , since each content provider 18 may provide its own respective local guide 20 to the media controller 12 .
- Local guides 20 typically comprise program metadata identifying attributes and characteristics of particular programs.
- the program metadata may be provided to the media controller 12 continually on a particular channel, or upon request by the media controller 12 , or at certain predetermined times.
- the program metadata can include any data that may be useful or desirable to the viewer 14 (typically as determined by the respective content provider 18 ).
- program metadata may include a title, a description, identification of well-known actors, a channel on which the program will be provided, a genre, an MPAA rating, a duration, a version, a time and date the program will be provided, and the like.
- a viewer 14 accesses a local guide 20 via an input device (not illustrated) such as a remote control, wherein, upon receipt of a request via the remote control, the media controller 12 will cause a display of information from the local guide 20 on the display device 16 .
- an input device such as a remote control
- the media controllers 12 A, 12 B may also contain one or more respective recorded programs 22 A, 22 B (generally, recorded programs 22 or recorded program 22 ).
- the recorded programs 22 may have been previously selected by the viewer 14 for time-shifting purposes, for example, to enable the viewer 14 to view a program at a different time from when the program was originally provided by a content provider 18 .
- Different programs may be recorded at different media controllers 12 , and thus, for example, the recorded programs 22 A may differ from the recorded programs 22 B.
- the media controllers 12 may also be communicatively coupled to local entertainment libraries 24 that contain a variety of programs, such as movies, songs, videos and the like that may have been downloaded, ripped, or otherwise obtained by the viewer 14 .
- the media controllers 12 A, 12 B also preferably include respective recording schedules 23 A, 23 B which identify programs that are scheduled to be recorded on the respective media controllers 12 A, 12 B at a future point in time.
- Each of the media controllers 12 A, 12 B are communicatively coupled to one another via a local area network 26 .
- the local area network 26 may comprise any suitable communication mechanism that enables the media controllers 12 A, 12 B to communicate with one another, including, for example, an Ethernet network, Token Ring network, and the like.
- the media controllers 12 access the network 26 via communication links 28 , which may comprise any suitable technology for accessing the network 26 , such as, for example, WiFi, an Ethernet cable, and the like.
- the network 26 may use any suitable message transport protocol to enable message communications between the media controllers 12 A, 12 B, such as, for example, TCP/IP.
- each of the media controllers 12 A, 12 B also includes a respective merged guide 30 A, 30 B (generally, merged guides 30 or merged guide 30 ). While the generation and contents of the merged guide 30 will be discussed later in detail, generally, each merged guide 30 contains program records identifying programs available from a variety of different sources, including programs that are available at other media controllers 12 .
- the merged guide 30 A may contain program records identifying programs available from each of the content providers 18 A- 18 E, programs available in the entertainment libraries 24 A, 24 B, and recorded programs 22 A and 22 B.
- the merged guide 30 B associated with the media controller 12 B also preferably contains program records identifying programs available from each of the content providers 18 A- 18 E, programs available in the entertainment libraries 24 A, 24 B, and recorded programs 22 A and 22 B.
- the media controller 12 A may cause a display on the display device 16 which presents information contained in the merged guide 30 A.
- a viewer 14 may use any media controller 12 that is coupled to the network 26 to determine the entire collection of content that may be consumed by the viewer 14 .
- the media controllers 12 may discover one another on the network 26 using any suitable device discovery mechanism or techniques.
- Device discovery mechanisms are known to those skilled in the art and will not be described in detail herein.
- the media controller 12 A may use the Bonjour® service discovery protocol to discover the media controller 12 B, but the embodiments are not limited to any particular device discovery mechanism.
- the media controller 12 A also preferably maintains media controller previous usage data identifying previous usage of a media controller.
- Previous usage data may include data identifying that a viewer 14 viewed or recorded a particular program.
- the previous usage data stored on the media controller 12 A may comprise data identifying previous usage of the media controller 12 A.
- the previous usage data stored on the media controller 12 A may comprise data identifying previous usage of media controllers 12 other than the media controller 12 A.
- the media controller 12 A maintains remote media controller previous usage data 25 A (referred to hereinafter as “previous usage data 25 A” for purposes of simplicity) which identifies previous usage of another media controller 12 , such as the media controller 12 B, and any other media controllers 12 coupled to the network 26 .
- the word “remote” is merely a reference to a media controller 12 other than the media controller 12 A, and does not imply a particular physical distance.
- the media controller 12 B is remote with respect to the media controller 12 A, and vice versa.
- the previous usage data 25 A may be based on information received from the media controller 12 B, as discussed in greater detail herein.
- the media controller 12 A may use the previous usage data 25 A to determine previous usage of the media controller 12 B, and thereby determine an availability probability of the media controller 12 B for scheduling the recording of a program upon request by the media controller 12 A.
- the media controller 12 B similarly includes previous usage data 25 B which identifies previous usage of the media controller 12 A, and any other media controllers 12 coupled to the network 26 , for similar purposes.
- the media controllers 12 also have respective one or more tuners 34 which may be used to tune to a particular frequency to access a program being provided by one of the content providers 18 .
- FIG. 2 is a block diagram illustrating additional details of a media controller 12 according to one embodiment.
- the media controller 12 preferably includes nodal data 32 , which includes information that may be unique to the respective media controller 12 , such as, for example, a name of the media controller 12 , a serial number associated with the media controller 12 , log files generated by the media controller 12 , and the like. Exemplary nodal data 32 will be discussed in greater detail with reference to FIG. 3 .
- the media controller 12 includes one or more tuners 34 which are used to select particular content provided by a content provider 18 . For example, the content provider 18 may concurrently provide a number of different programs to the media controller 12 , each program being delivered on a particular frequency.
- the tuner 34 for example in response to a channel selection from a viewer 14 , tunes to a particular frequency and captures the program data being provided at the particular frequency.
- the tuner 34 then typically causes the program to be displayed on a display device 16 , or may record the program, as discussed in greater detail herein. While the tuner 34 has been discussed herein in terms of tuning to a particular frequency, it will be apparent that programs may be differentiated from one another by mechanisms other than a frequency, and the tuner 34 therefore is not limited to a frequency tuner, but may comprise any suitable tuning mechanism capable of selecting a desired program from a plurality of programs.
- the media controller 12 preferably includes a recorder 36 for recording a program.
- the recorder 36 preferably receives input from the tuner 34 , encodes the input into a desired format, if necessary, and stores the program data in a storage 38 .
- the storage 38 may comprise any suitable storage technology, such as a hard drive, flash drive, and the like.
- the storage 38 is preferably a persistent storage that survives the powering down of the media controller 12 , and may contain data from a variety of sources, including, for example, the local guide 20 , the merged guide 30 , the recording schedule 23 , the previous usage data 25 , and the like.
- the media controller 12 may also include a retransmitter 40 which enables the retransmission of a program received by the media controller 12 onto the network 26 .
- the retransmitter 40 may segment the program data received by the media controller 12 into packets and transmit the packets to another media controller 12 via the network 26 .
- the retransmitter 40 may encode the program differently from the way the program was encoded when initially received by the tuner 34 .
- a first media controller 12 may request from a second media controller 12 a program stream of a program currently being presented to viewers 14 by the second media controller 12 . The request may identify that a particular quality, or resolution, of the program stream is desired.
- the first media controller 12 may intend to display the program stream in a relatively small area of a display device 16 in conjunction with other information, and thus not require a high resolution program stream.
- the second media controller 12 may then encode the program into a sufficiently lower resolution version of the program prior to transmitting the program stream onto the network 26 to minimize network usage.
- the media controller 12 may also include a web server 42 for use in transferring program metadata between media controllers 12 .
- the web server 42 may respond to requests for program metadata from other media controllers 12 .
- the program metadata may be formatted and transferred in an XML format.
- the media controller 12 may also include update timestamp data 44 that identifies the times that other media controllers 12 last provided program metadata to the media controller 12 .
- the update timestamp data 44 may be used by the media controller 12 to quickly determine which program metadata received by another media controller 12 constitutes new program metadata. The receipt of program metadata by a media controller 12 and the use of the update timestamp data 44 will be described in greater detail herein.
- FIG. 3 is block diagram of a stored item record 50 - 1 that contains data associated with items stored in storage 38 , or elsewhere.
- the storage 38 may contain a plurality of stored item records 50 - 1 - 50 -N.
- the stored item record 50 - 1 contains information identifying, for example, a recorded program 22 , or a program in the entertainment library 24 .
- the stored item record 50 - 1 may include a globally unique identifier (GUID) field 52 that contains a GUID which uniquely identifies the stored item record. The generation of a GUID is known to those skilled in the art, and will not be discussed in detail herein.
- the stored item record 50 - 1 also includes a location field 54 identifying a location of the corresponding program.
- the location field 54 may indicate the program resides in the storage 38 , the entertainment library 24 , or elsewhere.
- the stored item record 50 - 1 preferably includes a metadata GUID field 56 that contains a metadata GUID which uniquely identifies a metadata record containing metadata pertaining to the corresponding program.
- the metadata record may be in the storage 38 , on a local server coupled to the network 26 , or on a remote server accessible by the media controller 12 over a wide area network coupled to the network 26 .
- FIG. 4 is a block diagram illustrating exemplary nodal data 32 according to one embodiment.
- the nodal data 32 can include a name field 58 that contains a name which identifies the respective media controller 12 .
- the name field 58 of the media controller 12 A may be “TIVO DVR”, and the name field 58 of the media controller 12 B may be “TimeWarner SetTop.”
- the name field 58 may contain a link or reference to a graphical image that depicts a particular type of media controller 12 .
- the nodal data 32 can include a description field 60 that provides a short textual description of the capabilities of the respective media controller 12 .
- a capabilities field 62 may identify operations performable by the respective media controller 12 , and power consumption characteristics.
- a serial number field 64 may contain a unique manufacturer serial number of the media controller 12 .
- a manufacturer field 66 may identify the manufacturer of the media controller 12 .
- a model field 68 may identify a particular model of the media controller 12 .
- Logs field 70 may comprise data generated during the operation of the media controller 12 , such as, for example, faults or errors that occur during the operation of the media controller 12 , and/or input selections received from viewers 14 , which programs were watched at which times, and the like.
- a service field 72 may contain service status information regarding the media controller 12 such as service intervals and/or wear counts.
- the wear count may indicate how many times particular “wear items” have been used.
- a media controller 12 containing a hard drive may provide a wear count on the hard drive indicating how many times the hard drive has been written to. This information may in turn be used to predict how much useful life is left on the drive.
- a state field 74 may contain a status of the media controller 12 , such as, for example “Booting”, “On”, “Recording”, “Sleep”, “Updating”, and the like.
- a location field 76 may identify a location of the media controller 12 within the locale 10 .
- the location field 76 of the media controller 12 A may contain “Den”, and the location field 76 of the media controller 12 B may contain “Living Room.”
- the nodal data 32 may also include a preference settings field 78 identifying preferences of one or more viewers 14 . Any desired preference data may be stored in the preference settings field 78 , such as, for example, genre preferences, actor preferences, time preferences, series preferences, and the like. Preference data may be used, for example, by the media controller 12 to provide program recommendations to a viewer 14 .
- FIG. 5 is a block diagram of the recorder 36 according to one embodiment.
- the recorder 36 receives a source 80 from the tuner 34 .
- the recorder 36 uses an encoder 82 to encode the source 80 in a desired format, such as the MPEG-2 format.
- the encoded program can be stored in the storage 38 .
- the recorder 36 may include a buffer 84 for use in temporarily storing segments of the source 80 while it is being encoded.
- FIG. 6 is an exemplary block diagram of a merged guide 30 according to one embodiment.
- the format of the merged guide 30 depicted in FIG. 6 is but one exemplary layout, and the embodiments are not limited thereto.
- the merged guide 30 may include a plurality of channel records 86 , such as channel records 86 - 1 - 86 -N.
- the phrase “record” as used throughout the disclosure means a structure which contains data and may be stored and accessed as necessary, and does not imply a particular format or internal layout.
- the channel record 86 - 1 may include an information field 88 that contains text identifying source attributes of the channel, such as the particular service provider, or other source.
- the information field 88 may contain the name of the cable company. Alternately, the channel information field 88 may contain the ultimate source of the content associated with the channel, such as NBC, ABC, and the like. Where the content associated with the channel is provided by a local source, such as the entertainment library 24 , the channel information field 88 may identify the entertainment library 24 by a name, such as “John's Video Library.”
- the channel 86 - 1 may also include a rating field 90 that generally describes the content associated with the channel 86 - 1 . For example, if the channel 86 - 1 is a mature adult channel, the rating field 90 may identify it as such.
- Each channel 86 may include one or more program records 92 .
- the channel 86 - 1 contains a plurality of program records 92 - 1 - 92 -N.
- Each program record 92 contains metadata associated with a particular program.
- each program record 92 corresponds to a particular program.
- the program record 92 may contain a GUID field 94 that contains a GUID which uniquely identifies the program.
- a title field 96 may contain a textual title of the program.
- a start field 98 may identify a present, past or future start time of the program.
- a duration field 100 identifies a length of the program.
- a rating field 102 may contain an MPAA rating of the program.
- a quality field 104 may identify the encoding quality of the program.
- An alt location field 106 may contain an alternate location of the program other than the location identified in the source field 116 .
- the location identified in the source field 116 may be the source of a highest quality version of the program, while the alt location field 106 may provide a lower quality version of the program.
- a uniform resource identifier represents the location indicated by the source field 116 and alt location field 106 .
- the URI may point to a local media item, or may reference a program available from another media controller 12 over the network.
- a requestors field 108 may contain information identifying one or more viewers 14 that have requested that the program be recorded.
- a viewers list 110 may identify one or more viewers 14 that were identified as being in proximity to the media controller 12 which presented the program.
- a metadata GUID field 112 may contain a metadata GUID which uniquely identifies a metadata record containing metadata describing additional attributes of the program. The metadata record may exist, for example, on a local or a remote server accessible by the media controller 12 .
- An originator field 115 may identify the particular media controller 12 which originated the respective program record 92 .
- a record update timestamp (TS) field 114 may contain a timestamp identifying the time of the last update to the record 92 - 1 .
- a source field 116 may identify a location of the program, and may comprise, for example, a URI.
- the program record 92 may also include an operation field 117 for identifying a particular operation performed on the corresponding program by the media controller identified in the originator field 115 .
- the operation field 117 may contain a value of 0 to indicate that no operation was performed on the program, a value of 1 to indicate the program was recorded, a value of 2 to indicate the program was presented to a viewer 14 , and a value of 3 to indicate that the program was both recorded and presented to a viewer 14 .
- the originator field 115 may also identify the particular tuner 34 that performed the identified operation.
- the operation field 117 may be used by the media controller 12 to relatively rapidly determine which program records 92 may be useful for determining the previous usage data associated with another media controller 12 . More particularly, upon receipt of a program record 92 having an operation value greater than zero, the media controller 12 may generate a copy of the program record 92 and store the copy in the previous usage data 25 .
- the use of separate previous usage data 25 while optional, provides a mechanism to store for desired periods of time previous usage data associated with other media controllers 12 , while allowing the merged guide 30 to maintain historical program records 92 for a much shorter duration.
- each media controller 12 coupled to the network 26 generates program records 92 for each program that is available at the respective media controller 12 .
- local guide 20 A may include guides for programs available from the content providers 18 A and 18 B.
- the media controller 12 A may read the local guide 20 A and generate a program record 92 for each program identified in the local guide 20 A.
- the media controller 12 A may also generate program records 92 for each recorded program 22 A, and each item available for presentation from the entertainment library 24 A. If program metadata for such programs is unavailable, the media controller 12 A may access well-known sources of program metadata from, for example, an Internet provider of such data, and use the program metadata to populate the fields of the program record 92 .
- FIG. 7 is a flowchart illustrating an exemplary method for generating program records 92 .
- the media controller 12 A is traversing a local guide 20 A, and determines that the local guide 20 A identifies a program that is not identified in the merged guide 30 A.
- the content provider 18 A may have recently provided the media controller 12 A new program guide data that identifies programs that will be available for presentation one week from the present date.
- the media controller 12 A generates a program record 92 (step 1000 ).
- the media controller 12 A then generates a GUID that uniquely identifies this program (step 1002 ).
- the media controller 12 A then populates the fields described above with regard to FIG. 6 with the appropriate data (step 1004 ).
- the media controller may insert the current time in the record update timestamp field 114 .
- the media controller 12 A then stores the program record 92 in the merged guide 30 (step 1006 ).
- Each media controller 12 preferably provides program metadata from the program records 92 which are available from the respective media controller 12 to the other media controllers 12 .
- the media controller 12 A provides the media controller 12 B program metadata from each of the program records 92 stored in the merged guide 30 A.
- the media controller 12 B similarly provides the media controller 12 A program metadata from each of the program records 92 in the merged guide 30 B.
- each media controller 12 contains program records 92 identifying programs available at not only the respective media controller 12 , but which are available at all media controllers 12 coupled to the network 26 .
- the program metadata may be provided in the same format as the program records 92 , or in a different format.
- the program metadata may be “pushed” as desired by a media controller 12 to the other media controllers, or may be “pulled” from a media controller 12 upon request.
- the program metadata may be provided in an XML file, which may have a format similar to the program record 92 .
- a media controller 12 may broadcast a signal on the network 26 to indicate that new program metadata is available. Referring again to FIG. 1 , assume that the media controller 12 A has generated one or more new program records 92 . The media controller 12 A may broadcast a signal on the network 26 indicating that the media controller 12 A has new program metadata for distribution.
- the media controller 12 B upon receipt of the signal, may send a message to the media controller 12 A requesting the program metadata.
- each media controller 12 may maintain a last update timestamp for each other media controller 12 . Such last update timestamps may be maintained in the update timestamp data 44 ( FIG. 2 ) associated with the respective media controller 12 .
- FIG. 8 is a block diagram illustrating exemplary update timestamp data 44 according to one embodiment.
- the update timestamp data 44 may include one or more last update timestamps 120 - 1 - 120 -N (generally, last update timestamps 120 ), each of which may correspond to a respective media controller 12 .
- the last update timestamps 120 identify the time of the last update of program metadata from the corresponding media controller 12 .
- a media controller 12 that has program metadata to provide to another media controller 12 will be referred to as a publishing media controller 12
- the media controller 12 receiving the program metadata will be referred to as a receiving media controller 12 .
- the receiving media controller 12 may use a last update timestamp 120 to indicate to the publishing media controller 12 which program records 92 are needed. For example, in the current example, assume that the last update timestamp 120 - 1 corresponds to the publishing media controller 12 . The receiving media controller 12 may provide the last update timestamp 120 - 1 to the publishing media controller 12 to indicate to the publishing media controller 12 that the receiving media controller 12 only requires program metadata from those program records 92 that contain a record update timestamp more recent than the last update timestamp 120 - 1 .
- the publishing media controller 12 may thus use the last update timestamp 120 - 1 to generate an XML file containing only program metadata for those program records 92 which have a record update timestamp that is more recent than the last update timestamp 120 - 1 .
- the receiving media controller 12 receives, and then processes, the program metadata and updates the last update timestamp 120 - 1 with the latest record update timestamp associated with any program record 92 provided by the publishing media controller 12 .
- FIG. 9 is a flowchart illustrating an exemplary method for receiving and processing program metadata sent from one media controller 12 to another media controller 12 .
- FIG. 9 will be discussed in conjunction with FIGS. 1 and 6 .
- the media controller 12 A will be assumed to have program metadata to distribute to the media controller 12 B, and will be referred to as the publishing media controller 12 A, and the media controller 12 B will be referred to as the receiving media controller 12 B.
- the publishing media controller 12 A broadcasts a notification that the publishing media controller 12 A has new program metadata available for distribution.
- the receiving media controller 12 B receives the notification (step 2000 ).
- the receiving media controller 12 B obtains the last update timestamp 120 - 1 which corresponds to the publishing media controller 12 A (step 2002 ).
- the receiving media controller 12 B generates a request containing the last update timestamp 120 - 1 and sends the request to the publishing media controller 12 A (steps 2004 , 2006 ).
- the publishing media controller 12 A uses the last update timestamp 120 - 1 to select program metadata from each program record 92 having a record update timestamp that is later than the last update timestamp 120 - 1 .
- the publishing media controller 12 A formats the program metadata and sends it to the receiving media controller 12 B.
- the receiving media controller 12 B receives the program metadata (step 2008 ).
- the receiving media controller 12 B may, for each program identified by the program metadata, attempt to match the program metadata to an existing program record 92 in the merged guide 30 B (step 2010 ). What constitutes a “match” may be system dependent.
- the receiving media controller 12 B may determine if various data in the provided program metadata matches corresponding data in any existing program record 92 . For example, the receiving media controller 12 B may determine that the program identified by the metadata matches a program identified by a program record 92 if the data from the title fields 96 match one another and the data from the start fields 98 match one another.
- the receiving media controller 12 B may generate a child program record 92 from the supplied program metadata, such that the matched program record 92 in the merged guide 30 A is stored in association with the child program record 92 (step 2014 ).
- establishing such a parent-child relationship between program records 92 enables the receiving media controller 12 B to cause the display of information to a viewer 14 that the same program is available at multiple media controllers 12 .
- the receiving media controller 12 B may generate a program record 92 as a parent program record 92 that is not a child program record 92 to any other program record 92 (step 2016 ). While for purposes of illustration only two program records 92 have been shown as stored in association with one another, it is apparent any number of program records 92 that identify the same program may be stored in association with one another.
- FIG. 10 is a flowchart illustrating an exemplary method for sending program metadata to another media controller.
- the publishing media controller 12 A has new program metadata to distribute.
- the publishing media controller 12 A broadcasts a notification signal onto the network 26 indicating that new program metadata is available (step 3000 ).
- the publishing media controller 12 A receives a request for data from the receiving media controller 12 B (step 3002 ).
- the publishing media controller 12 A obtains the last update timestamp 120 - 1 from the request for data (step 3004 ).
- the publishing media controller 12 A obtains program metadata from those program records 92 having a record update timestamp greater than the last update timestamp 120 - 1 (step 3006 ).
- FIGS. 11 and 12 are block diagrams illustrating exemplary relationships between several program records 92 .
- FIG. 11 illustrates that at a first point in time, the merged guide 30 A contains a plurality of program records 92 A- 92 C, each of which may be considered a parent program record 92 .
- the merged guide 30 B contains a plurality of program records 92 D- 92 F, each of which may also be considered a parent program record 92 .
- FIG. 12 illustrates an exemplary relationship between program records 92 after the media controller 12 A has communicated the program records 92 A- 92 C to the media controller 12 B, and has received from the media controller 12 B the program records 92 D- 92 F.
- the media controller 12 A determined that the program record 92 D identified the same program as identified by the program record 92 A, and consequently made the program record 92 D a child record to the program record 92 A.
- the program record 92 E was also determined to identify the same program as identified by the program record 92 B, and was therefore similarly made a child record to the program record 92 B. Because the program record 92 F did not match any other program record 92 in the merged guide 30 A, the program record 92 F is made a parent program record 92 F.
- the media controller 12 may determine the identity of the viewers 14 that are in proximity to the media controller 12 . This information may be stored in the viewers list 110 of the program records 92 for the corresponding programs that are presented by the media controller 12 .
- FIG. 13 is a block diagram illustrating exemplary mechanisms that may be used by a media controller 12 to determine the identity of a particular viewer.
- the media controller 12 A in a den 118 is communicatively coupled to an input device 128 . As the viewers 14 A, 14 B enter the den 118 , each viewer 14 A, 14 B uses the input device 128 to indicate that the respective viewer 14 A, 14 B is in the den 118 and watching programming presented by the media controller 12 A.
- each viewer 14 A, 14 B may use the input device 128 to indicate they are departing the den 118 .
- the media controller 12 A may maintain the identity of the viewers 14 who are in the den 118 , and for each program provided during the presence of a viewer 14 , update the viewers list 110 in the program record 92 corresponding to the presented program.
- the input device 128 may comprise any suitable device and interface, such as a keyboard, or a mouse and a computer having a user interface that enables a viewer 14 to simply click on a designated portion of a display to indicate the presence or departure of the viewer 14 from the den 118 .
- the computer may be wirelessly coupled to the media controller 12 A, and communicate the status of incoming and outgoing viewers 14 to the media controller 12 as appropriate.
- the media controller 12 B in the living room 122 includes a facial recognition processor 130 that is able to identify through facial processing technology the viewers 14 C- 14 E. Facial recognition technology is known to those skilled in the art, and will not be described in detail herein.
- the facial recognition processor 130 communicates the identity of the viewers 14 C- 14 E to the media controller 12 B. While the facial recognition processor 130 is illustrated as being integral with the media controller 12 B, in an alternate embodiment, the facial recognition processor 130 may be separate from but coupled to media controller 12 B via a wired or wireless communications channel, for example.
- the media controller 12 C in a bedroom 124 includes a radio frequency identification (RFID) processor 134 .
- the RFID processor 134 may receive a signal from a device worn, or carried, by the viewer 14 F. For example, a cell phone of the viewer 14 F may emit a signal that can be received by the RFID processor 134 . Upon receipt of such signal, the RFID processor 134 can communicate the identity of the viewer 14 F to the media controller 12 C.
- the media controller 12 D in a basement 126 is coupled to a wireless Bluetooth interface which enables the media controller 12 D to communicate with Bluetooth devices, such as a cell phone, that contain the appropriate software to interface with the media controller 12 D.
- Bluetooth devices such as a cell phone
- Such software may be programmed to emit a signal that can be detected by the media controller 12 D via the wireless Bluetooth interface 132 .
- the signal may contain an identifier identifying a particular viewer 14 G, 14 H.
- the media controller 12 D may periodically poll the cell phone to determine if the viewer 14 G, 14 H is still in proximity of the media controller 12 D. If the media controller 12 D does not receive a response to the poll, the media controller 12 D may determine that the viewers 14 G, 14 H are no longer in proximity of the media controller 12 D.
- FIG. 14 is a flowchart illustrating an exemplary method for storing viewer information into a program record 92 .
- the media controller 12 determines that a new viewer 14 is in proximity to the media controller 12 , and identifies the new viewer 14 (step 4000 ).
- the media controller 12 may use one of the mechanisms described with regard to FIG. 13 , or any other suitable mechanism.
- the media controller 12 obtains the program record 92 corresponding to the program that is currently being provided for display by the media controller 12 (step 4002 ).
- the media controller 12 updates the viewer list 110 of the program record 92 to include an identification of the new viewer 14 ( 4004 ).
- the media controller 12 also updates the record update timestamp of the program record 92 .
- the media controller 12 stores the program record 92 in the merged guide (step 4006 ). Note that the media controller 12 may also broadcast a notification signal to the network 26 to notify other media controllers 12 that the media controller 12 has new program metadata to distribute. In this manner, each media controller 12 coupled to the network 26 may be, substantially in real-time, provided data that identify who, in which room, is watching which programs.
- the one media controller 12 may send requests to another media controller 12 for information, or to direct the other media controller 12 to provide a desired function.
- FIG. 15 is block diagram illustrating certain requests that one media controller 12 may make of another media controller 12 according to one embodiment.
- the media controller 12 A may send an IDENTIFY_CURRENT_PROGRAM request 142 to the media controller 12 B.
- An IDENTIFY_CURRENT_PROGRAM request 142 requests that the media controller 12 B identify the specific program that is currently being provided by the media controller 12 B.
- the media controller 12 B may provide the media controller 12 A the program record 92 corresponding to the program that the media controller 12 B is currently presenting.
- the media controller 12 A may send the media controller 12 B a RECORDING_STATUS request 144 , which requests information regarding the recording status of the program that is currently being presented by the media controller 12 B.
- the media controller 12 B provides a message indicating whether the current program being provided by the media controller 12 B is being recorded.
- the media controller 12 A may send the media controller 12 B a RECORD PROGRAM REQUEST 146 , which requests that the media controller 12 B schedule the recording of a particular program.
- the RECORD PROGRAM REQUEST 146 may include the program record 92 corresponding to the program that is to be recorded.
- the media controller 12 B may determine that no tuner is available to record the program, or may begin recording the desired program, or may schedule the desired program for recording if the program has not begun yet, and if an availability probability of a tuner exceeds an availability threshold, as discussed in greater detail herein.
- the media controller 12 B may provide the media controller 12 A a message indicating success or failure of the request.
- the media controller 12 A may send the media controller 12 B a PROVIDE_CURRENT_PROGRAM request 148 , which requests that the media controller 12 B provide a program stream of the program that is currently being provided by the media controller 12 B.
- the media controller 12 B using the retransmitter 40 , may then provide a program stream of the program which is currently being provided by the media controller 12 B.
- Tuner conflicts may arise during the operation of a media controller 12 .
- the media controller 12 may have a single tuner 34 , and the viewer 14 may desire to record two programs in the future concurrently. If the media controller 12 has only a single tuner 34 , the media controller 12 is able to only record a single program at a time. In one embodiment, to resolve such a tuner conflict, the previous usage data of another media controller 12 is processed to determine if the media controller 12 can schedule the recording of one of the two programs.
- FIG. 16 is a flow chart illustrating an exemplary method for determining if another media controller 12 is available to schedule a recording of a program.
- FIG. 16 will be discussed in conjunction with FIG. 1 . Assume for purposes of illustration that the viewer 14 requests the media controller 12 A to record two programs concurrently during the same future time slot (step 5000 ). The media controller 12 A contains a single tuner 34 and determines a tuner conflict exists because the media controller 12 A can only record a single program at a time (step 5002 ).
- a similar situation may arise even without input from the viewer 14 where, for example, a first program has been scheduled to be recorded by the media controller 12 A at a future (but imminent) time, and the viewer 14 is watching a program on a second channel minutes prior to the scheduled recording of the first program.
- the media controller 12 A similarly may detect that recording the first program is likely to conflict with the viewer's 14 current use of the media controller 12 A.
- the media controller 12 A may determine if other media controllers 12 , such as the media controller 12 B, are currently communicatively coupled to the network 26 (step 5004 ).
- Device discovery mechanisms are known to those skilled in the art and will not be described in detail herein.
- the media controller 12 A may use the Bonjour® service discovery protocol to discover the media controller 12 B, but the embodiments are not limited to any particular device discovery mechanism. If no other media controllers 12 are available, the media controller 12 A may cause a display to the viewer 14 identifying the conflict, thereby enabling the viewer 14 to resolve the conflict by selecting one program over another program (step 5006 ).
- the media controller 12 A may then access the previous usage data 25 A (generally, previous usage data 25 ) to determine previous usage associated with the media controller 12 B (step 5008 ).
- the previous usage data 25 A may include data extracted from program records 92 wherein the value of the operation field 117 is greater than zero. Such data may identify previous usage of the media controller 12 B.
- the media controller 12 B similarly contains only a single tuner 34 B.
- the media controller 12 A determines an availability probability for the media controller 12 B (step 5010 ).
- the availability probability may be used to determine whether the tuner 34 B is likely to be available during the desired time slot. Exemplary mechanisms for determining an availability probability will be discussed herein with respect to FIG. 17 .
- the availability probability may comprise any indicator used to determine whether or not a media controller 12 is available to record a program at a future time based on previous usage data.
- the availability probability may, for example, comprise a numeric representation identifying a probability of availability of the media controller 12 B to record a program at a future time. In one embodiment the availability probability is based on a percentage, and will be discussed herein in terms of a percentage, or decimal representation of a percentage.
- the availability probability of the media controller 12 B is 70% (or 0.70).
- the availability probability of the tuner 34 is the same as the availability of the media controller 12 .
- the availability probability of the media controller 12 is a function of the availability probability of each of the tuners 34 .
- the media controller 12 A determines if the availability probability of the media controller 12 B exceeds an availability threshold (step 5012 ).
- the availability threshold may be a configurable value that may be adjustable by an administrator of the network 26 , or by a service provider.
- the availability threshold may be relatively high to decrease the likelihood that the receiving media controller 12 , i.e., the media controller 12 B in this example, will encounter a tuner conflict at the time of the scheduled recording.
- an availability threshold of 90 indicates that the media controller 12 B is not available to schedule the recording unless the availability probability exceeds 90%.
- a low availability threshold may be used to facilitate eliminating a current tuner conflict at the media controller 12 A at the potential risk of increasing the likelihood of a tuner conflict on the media controller 12 B at the time of the scheduled recording.
- the process returns to step 5004 where it is determined if another media controller 12 may be available to schedule the recording. Otherwise, if the availability probability exceeds the availability threshold (step 5012 ), the media controller 12 A may send the media controller 12 B a request to schedule the recording of the program (step 5014 ). In one embodiment, the media controller 12 B may accept or reject such a request. If the media controller 12 B rejects the request (step 5016 ), the process returns to step 5004 where it is determined if another media controller 12 may be available to schedule the recording. If the media controller 12 B accepts the request, the media controller 12 A may update the recording schedule 23 A to reflect that the program will not be recorded by the media controller 12 A.
- time slot is used herein to generally refer to a particular period of time.
- a future time slot may refer generally to a future period of time during which a program may be scheduled to be provided to a media controller 12 .
- the time slot corresponding to a particular program such as the Survivor series, may be the 8:00-8:59 time slot.
- a time slot preferably has a begin time and an end time, although the begin time and end times may vary.
- generally Survivor is scheduled to be provided in the 8:00 ET time slot, however, due to advertising and the like, may on particular dates begin at 8:01 or 8:02.
- time slots will be referred to herein generally as an hourly time slot, e.g., from 8:00-8:59 or 8:00-9:00, it will be apparent that time slots may be any desired length of time, such as 30 minutes.
- FIG. 17 is a block diagram of an exemplary media controller usage (MCU) record 150 for storing previous usage data associated with a media controller 12 .
- MCU media controller usage
- Previous usage data may be stored in multiple formats. For example, as discussed previously, previous usage data may be provided by each media controller 12 in the form of program records 92 . Each program record 92 identifies a particular previous usage of the media controller. Such information may also be consolidated based on a desired criteria, such as based on the day of the week of a previous usage, and the time slot associated with a previous usage.
- the MCU record 150 may be generated, for example, by consolidating information contained in multiple program records 92 over a predetermined period of time, such as the previous four weeks, or previous six weeks, for example.
- the media controller 12 A may process each program record 92 having an operation value greater than zero for each media controller 12 coupled to the network 26 that was created within the previous six weeks.
- the MCU record 150 is an example of one such consolidation, in particular, a consolidation based on tuner, day of the week, and time slot. However, embodiments are not limited to any particular consolidation of information.
- a previous usage data record may be defined that includes information such as the start field 98 , the duration field 100 , the originator field 115 and the operation field 117 .
- the media controller 12 B could generate a previous usage data record and broadcast the record to the other media controllers 12 on the network.
- Each recipient media controller 12 could then use the data to maintain a MCU record 150 for the media controller 12 B.
- the media controller 12 A has determined that a tuner conflict exists with regard to a request to schedule the recording of a program during a 23:00-23:59 time slot on Monday.
- the MCU record 150 contains information corresponding to the media controller 12 B.
- the media controller 12 A may continually update the MCU record 150 with new information as it is received from the media controller 12 B.
- the MCU record 150 includes a tuner usage record 152 for each tuner 34 contained in the media controller 12 B.
- the MCU record 150 includes a tuner usage record 152 A and a tuner usage record 152 B (generally, the tuner usage record 152 or the tuner usage records 152 ).
- Each tuner usage record 152 includes seven usage-by-day (UBD) records 154 .
- the tuner usage record 152 A thus contains UBD records 154 A- 1 - 154 A- 7 .
- Each UBD record 154 A contains previous usage data associated with a particular weekday.
- the tuner usage record 152 B similarly contains UBD records 154 B- 1 - 154 B- 7 .
- Each UBD record 154 contains a plurality of usage-by-time slot (UBT) records. Assuming hourly time slots, for example, the UBD record 154 A- 1 contains 24 UBT records 156 - 1 - 156 - 24 . Thus each UBT record 156 contains previous usage data associated with a particular hour of the particular day corresponding to a UBD record 154 . Similarly, the UBD record 154 A- 7 contains 24 UBT records 158 - 1 - 158 - 24 . Each UBT record 156 , 158 , 160 , and 162 identifies a usage factor of the respective tuner during a particular time slot.
- UBT usage-by-time slot
- the usage factor may represent the frequency, by percentage, that the corresponding tuner 34 is busy either presenting a program for display to a viewer or recording a program during the respective time slot. Alternately, the usage factor may represent the frequency that the corresponding tuner 34 is not busy.
- the availability probability (AP) of the tuner 34 during the respective time slot can thus be determined by the following formula:
- Timeslot (1 ⁇ usage factor Timeslot )
- the AP of Tuner A (tuner usage record 152 A) during Time Slot 24 of Day 1 (Monday) indicated by the UBT record 156 - 24 may be calculated in the following manner:
- the AP of Tuner B (tuner usage record 152 B) during Time Slot 24 of Day 1 (Monday) indicated by the UBT record 160 - 24 during Time Slot 24 of Day 1 (Monday) indicated by the UBT record 160 - 24 may be calculated in the following manner:
- each UBT record 156 - 162 could contain the availability probability rather than the usage factor. To derive or otherwise determine the aggregate availability probability of a media controller for a particular time slot the following formula may be used:
- AP mediacontroller Sum(AP each tuner )/number of tuners
- the media controller 12 A also preferably accesses the recording schedule 23 B of the media controller 12 B.
- the recording schedule 23 B identifies the scheduled recordings of the media controller 12 B.
- the recording schedule 23 B may identify that the one or both tuners 34 may be busy during the 23:00-23:59 time slot on Monday recording a program, and may identify the particular programs that are scheduled to be recorded. If the media controller 12 A determines that both tuners 34 of the media controller 12 B are scheduled to record a program during the 23:00-23:59 time slot on Monday, the media controller 12 A may determine the availability probability is 0 for the media controller 12 B prior to even accessing the MCU record 150 . However, if the media controller 12 A determines from the recording schedule 23 B that the program which the media controller 12 A would like the media controller 12 B to schedule for recording is already scheduled for recording on the media controller 12 B, the media controller 12 A may determine the availability probability is 100.
- the availability probability may be calculated as the lowest availability probability of either of the tuners 34 .
- FIG. 18 is block diagram of embodiments implemented in a client server architecture.
- Each media controller 12 sends previous usage records identifying previous usage of the respective media controller 12 to a computer server 164 , which stores such information in the media controller previous usage data 25 .
- a merged guide 30 is maintained on the server 164 , the information may be provided in program records 92 as discussed previously.
- a previous usage data record may be defined that includes information such as the start field 98 , the duration field 100 , the originator field 115 and the operation field 117 , as discussed previously, to provide such information to the server 164 .
- FIG. 19 is a flow chart illustrating an exemplary method for determining if another media controller 12 is available to schedule the recording of a program in the client-architecture illustrated in FIG. 18 .
- FIG. 19 will be discussed in conjunction with FIG. 18 .
- the media controller 12 A contains a single tuner 34 and determines a conflict exists because the media controller 12 A can only record a single program at a time.
- the media controller 12 A sends a request to the server 164 to locate another media controller 12 for scheduling the recording of one of the programs.
- the request may include information such as the program name, the day and time slot, the channel, and any other suitable information.
- the server 164 receives the request (step 6000 ).
- the server 164 determines if other media controllers 12 are present on the network (step 6002 ). Assume that the media controller 12 B is present.
- the server 164 obtains the previous usage data of the media controller 12 B from the media controller previous usage data 25 (step 6004 ). For example, the server 164 may obtain a MCU record 150 corresponding to the media controller 12 B.
- the server 164 determines the availability probability for the media controller 12 B (step 6006 ).
- the availability probability may be determined as discussed previously with regard to FIG. 16 , and for the sake of brevity will not be repeated again herein.
- the server 164 determines if the availability probability of the media controller 12 B is greater than the availability threshold (step 6008 ).
- the availability threshold may have been included in the request from the media controller 12 A, or may apply to all media controllers 12 and be stored on the server 164 . If the availability probability is not greater than the availability threshold, the process may return to step 6002 where the server 164 determines if there are other present media controllers 12 .
- the identity of the media controller 12 B may be stored in an available media controllers list (step 6010 ). In one embodiment, as soon as any media controller 12 is determined to be available to schedule a recording, the identity of the media controller 12 is provided to the media controller 12 A. In another embodiment, the availability probability of each media controller 12 coupled to the network 26 may be determined, and each media controller 12 that is determined to be available to schedule a recording is identified to the media controller 12 A.
- the server 164 determines whether any media controllers 12 were identified as being available to schedule the recording of the program (step 6012 ). If not, the server 164 may send the media controller 12 A a message indicating that there are no available media controllers 12 to schedule the recording of the program (step 6014 ). Otherwise, the server 164 sends the media controller 12 A a message identifying the available media controllers 12 . The media controller 12 A may select one of the available media controllers 12 , and send the selected media controller 12 a request to schedule the recording of the program.
- the server 164 may select an available media controller 12 and send the selected media controller 12 a request to schedule the recording of the program. Upon receipt of a confirmation from the selected media controller 12 , the server 164 may then identify the selected media controller 12 to the media controller 12 A, indicating that the selected media controller 12 has scheduled the recording of the program.
- FIG. 20 is block diagram of another exemplary embodiment implemented in a peer-to-peer architecture. Similar to FIG. 1 , each media controller 12 may have a merged guide 30 containing program records 92 of all media controllers 12 coupled to the network. However, as discussed previously, the merged guide 30 is optional, and embodiments may be practiced in the absence of the merged guide 30 .
- each media controller 12 contains media controller previous usage data 25 that contains previous usage data associated with the respective media controller 12 , rather than previous usage data of other media controllers 12 .
- the media controller previous usage data 25 A includes previous usage data of the media controller 12 A
- the media controller previous usage data 25 B includes previous usage data of the media controller 12 B.
- FIG. 21 is a flow chart illustrating an exemplary method for determining if another media controller 12 is available to schedule a recording of a program in the exemplary peer-to-peer architecture illustrated in FIG. 20 .
- FIG. 21 will be discussed in conjunction with FIG. 20 .
- a viewer 14 requests the media controller 12 A to record two programs concurrently during the same time slot.
- the media controller 12 A contains a single tuner 34 and determines a conflict exists because the media controller 12 A can only record a single program at a time.
- the media controller 12 A sends a request to the media controller 12 B scheduling the recording of one of the programs.
- the request may include information such as the program name, the day and time slot, the channel, and any other suitable information.
- the media controller 12 A may provide the program record 92 corresponding to the program that is to be recorded.
- the media controller 12 B receives the request (step 7000 ).
- the media controller 12 B obtains the previous usage data of the media controller 12 B from the media controller previous usage data 25 B (step 7002 ).
- the media controller 12 B determines the availability probability for the media controller 12 B (step 7004 ). The availability probability may be determined as discussed previously with regard to FIG. 16 , and for the sake of brevity will not be repeated again herein.
- the media controller 12 B determines if the availability probability of the media controller 12 B is greater than the availability threshold (step 7006 ). If so, the media controller 12 B may schedule the recording of the program (step 7008 ).
- the media controller 12 B may then update the recording schedule 23 B (step 7010 ).
- the media controller 12 B sends an acceptance message to the media controller 12 A (step 7012 ). If the availability probability of the media controller 12 B is less than the availability threshold (step 7006 ), the media controller 12 B may send the media controller 12 A a denial message indicating the media controller 12 B is not available to record the program (step 7014 ).
- FIG. 22 illustrates a window 168 which may be displayed on the display device 16 according to one exemplary embodiment.
- the media controller 12 A contains a single tuner 34 and determines a conflict exists because the media controller 12 A can only record a single program at a time.
- the media controller 12 A determines that two media controllers 12 are coupled to the network 26 that are available for scheduling a recording of one of the programs.
- the media controller 12 A may have determined this in conjunction with the server 164 ( FIG. 18 ), may have determined it by examining the remote media controller previous usage data 25 A containing previous usage data of other media controllers 12 ( FIG. 1 ), or may have determined it by asking each other media controller 12 if the media controller 12 is available to schedule the recording of the particular program.
- FIG. 23 is a flowchart illustrating an exemplary method for providing a viewer 14 an option to select another media controller 12 to resolve a tuner conflict.
- the media controller 12 A causes a display of the window 168 on the display device 16 A (step 8000 ).
- the window 168 may identify to the viewer 14 that a conflict exists, and identify that a media controller 12 identified as the “DEN DVR” and a media controller 12 identified as the “BEDROOM DVR” are each available for recording the selected program.
- the viewer 14 may select one of the identified media controllers 12 by, for example, actuating a check box adjacent to the selected media controller 12 , and actuating a “Use Selected” button.
- the viewer 14 may allow the media controller 12 A to select the media controller 12 by actuating a “Select One” button. Assume that that the viewer 14 selects the DEN DVR (step 8002 ). The media controller 12 A may then send the DEN DVR media controller 12 a request to schedule the recording of the program (step 8004 ). The media controller 12 A may then update the recording schedule 23 A as appropriate (step 8006 ).
- a media controller 12 may transfer the recorded program over the network 26 to the media controller 12 which requested that it be recorded.
- the window 168 may include a “copy back” option which the viewer 14 may actuate to indicate that the viewer 14 would like the DEN DVR media controller 12 to transmit the recorded program to the media controller 12 A upon completion of the recording. This may be communicated by the media controller 12 A to the DEN DVR media controller 12 in the request to schedule the recording of the program.
- the media controller 12 may implement all or part of the Universal Plug and Play (UPnP) set of networking protocols.
- One media controller 12 may serve as a UPnP control point when requesting another media controller 12 to schedule the recording of a program, for example.
- Each media controller 12 may implement at least certain UPnP services, such as ConnectionManager, to enable the streaming of programs from one media controller 12 to another media controller 12 , ContentDirectory to provide access to the recorded music and videos at a media controller 12 , and ScheduledRecordings to allow each media controller 12 access to the recording schedule 23 of the other media controllers 12 .
- ConnectionManager to enable the streaming of programs from one media controller 12 to another media controller 12
- ContentDirectory to provide access to the recorded music and videos at a media controller 12
- ScheduledRecordings to allow each media controller 12 access to the recording schedule 23 of the other media controllers 12 .
- FIG. 24 illustrates an exemplary processing device 170 which may be used to implement a media controller 12 , or a server 164 , according to some embodiments.
- the processing device 170 may, when implementing a media controller 12 , comprise a set top box, a digital video recorder, an intelligent gaming console, such as the Microsoft® Xbox®, Sony® PlayStation®, and Nintendo® GameCube®, a media console such as the Apple® TV®, personal computers, and the like.
- the exemplary processing device 170 may also include a central processing unit 172 , a system memory 174 , and a system bus 176 .
- the system bus 176 provides an interface for system components including, but not limited to, the system memory 174 and the central processing unit 172 .
- the central processing unit 172 can be any of various commercially available or proprietary processors. Dual microprocessors and other multi-processor architectures may also be employed as the central processing unit 172 .
- the media controller 12 may include one or more tuners 34 for selecting program content from a communications channel.
- the recorder 36 may receive a source input from the tuner 34 and store the content onto a storage device, such as the storage 38 .
- the retransmitter 40 may provide a stream of program content over the network 26 to another media controller 12 .
- the system bus 176 can be any of several types of bus structures that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures.
- the system memory 174 can include non-volatile memory 178 (e.g., read only memory (ROM), erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), etc.) and/or volatile memory 180 (e.g., random access memory (RAM)).
- a basic input/output system (BIOS) 182 can be stored in the non-volatile memory 178 , which can include the basic routines that help to transfer information between elements within the processing device 170 .
- the volatile memory 180 can also include a high-speed RAM such as static RAM for caching data.
- the processing device 170 may further include a storage 38 , which may comprise, for example, an internal hard disk drive (HDD) (e.g., enhanced integrated drive electronics (EIDE) or serial advanced technology attachment (SATA)) for storage.
- the processing device 170 may further include an optical disk drive 184 (e.g., for reading a compact disk or DVD 186 ).
- the drives and associated computer readable media provide non-volatile storage of data, data structures, computer-executable instructions, and so forth. For the processing device 170 , the drives and media accommodate the storage of any data in a suitable digital format.
- computer-readable media refers to an HDD and optical media such as a CD-ROM or DVD
- Zip disks magnetic cassettes, flash memory cards, cartridges, and the like
- any such media may contain computer-executable instructions for performing novel methods of the disclosed architecture.
- a number of program modules can be stored in the drives and volatile memory 180 including an operating system 188 and one or more program modules 190 which implement the functionality described herein. It is to be appreciated that the embodiments can be implemented with various commercially available operating systems or combinations of operating systems. All or a portion of the embodiments may be implemented as a computer program product, such as a computer usable medium having a computer-readable program code embodied therein.
- the computer-readable program code can include software instructions for implementing the functionality of embodiments described herein.
- the central processing unit 172 in conjunction with the program modules 190 in the volatile memory 180 may serve as a control system for the processing device 170 that is adapted to implement the functionality described herein.
- the program modules 190 may be implemented in software and stored in the volatile memory 180 .
- the present disclosure is not limited thereto, and in other embodiments, the program modules 190 may be implemented in software, hardware, firmware, or any combination thereof.
- a user can enter commands and information into the processing device 170 through one or more wired/wireless input devices, for example, a keyboard and a pointing device, such as a mouse (not illustrated).
- Other input devices may include a microphone, an infrared (IR) remote control, a joystick, a game pad, a stylus pen, a touch screen, or the like.
- IR infrared
- These and other input devices are often connected to the central processing unit 172 through an input device interface 192 that is coupled to the system bus 176 but can be connected by other interfaces such as a parallel port, an IEEE 1394 serial port, a game port, a universal serial bus (USB) port, an IR interface, etc.
- the processing device 170 may drive a separate or integral display device 16 , which may also be connected to the system bus 176 via an interface, such as a video output port 194 .
- the processing device 170 may operate in a networked environment using a wired and/or wireless communication network interface 196 .
- the network interface 196 can facilitate wired and/or wireless communications to the network 26 ( FIG. 1 ).
- the processing device 170 may be operable to communicate with any wireless devices or entities operatively disposed in wireless communication, for example, a printer, a scanner, a desktop and/or portable computer via wireless technologies, such as Wi-Fi and Bluetooth, for example.
Abstract
Description
- This application claims the benefit of provisional patent application Ser. No. 61/163,086, filed Mar. 25, 2009, the disclosure of which is hereby incorporated herein by reference in its entirety.
- The present disclosure relates to recording programs, and in particular to determining whether a media controller is available to record a program based on previous usage data associated with the media controller.
- A media controller, such as a digital video recorder (DVR), records a program by tuning to a frequency on which the program will be transmitted at a designated time. The media controller receives the program content, and stores the program content on a storage medium. The availability of a media controller to record a program is consequently based on the availability of a tuner. Increasingly, media controllers are made with multiple tuners to enable the media controller to perform multiple tasks concurrently, such as recording two programs simultaneously, or viewing one program while recording another.
- With the vast selection of program content available from content providers, it is increasingly likely the number of programs which a viewer wishes to access at any given time may exceed the number of tuners in a media controller. For example, a viewer may wish to view a first program and record two other programs simultaneously. If the media controller has only two tuners, a conflict arises. One way to resolve the conflict is to inform the viewer of the conflict and allow the viewer to prioritize the top two choices of the three desired programs. Unfortunately, this results in one program being unrecorded.
- Locales, such as a residence, increasingly have multiple media controllers to service multiple televisions. Media controllers are also increasingly network capable, and communications between media controllers coupled to a local area network are increasingly more common. It would be beneficial therefore, if a first media controller could request a second media controller to record a program. While the second media controller may relatively easily determine whether a tuner is immediately available to record a program, if the request is to record a future program, accepting such a request by the second media controller may only ultimately result in a similar conflict on the second media controller. Therefore, it would also be beneficial if it could be determined whether it is likely that the second media controller would be available to record the program at the future point in time.
- Embodiments of the present disclosure relate to determining the availability of a media controller to record a program. Generally, a media controller may determine a program time slot associated with a recording request, obtain previous usage data identifying previous usage of the media controller, and based on the previous usage data determine that the media controller will be available to schedule the recording of the program or will not be available to schedule the recording of the program.
- In one embodiment, each media controller is provided previous usage data of other media controllers coupled to a local area network in a locale. A first media controller determines that a viewer desires to concurrently access a number of programs that exceeds the number of tuners of the first media controller. For example, the viewer desires to record three programs during a particular time slot, and the first media controller has only two tuners. The first media controller processes the previous usage data of one of the other media controllers coupled to the network, determines that a probability that the other media controller will be available to record the program during the time slot exceeds an availability threshold, and sends a request to the other media controller to record one of the three programs. The first media controller may process the previous usage data of multiple other media controllers until the first media controller locates an available media controller.
- In another embodiment, a first media controller sends a request to a second media controller to schedule the recording of a program. The second media controller determines the program time slot of the program identified in the request, and processes previous usage data associated with the second media controller to determine an availability probability that the second media controller will be available to record the program. Determining the availability probability of the second media controller may include determining the availability probability of each of a plurality of tuners associated with the second media controller. If the availability probability of the second media controller exceeds an availability threshold, the second media controller may schedule the recording of the program and send a message to the first media controller indicating that the second media controller has scheduled the request.
- In another embodiment, each media controller provides previous usage data associated with the respective media controller to a media server. If a viewer requests concurrent access to a number of programs that exceeds the number of tuners of a first media controller, the first media controller sends a request to the media server to determine whether another media controller may be available to schedule the recording of one of the programs. The media server may process the previous usage data of one or more second media controllers to determine if the probability of availability of any second media controller exceeds an availability threshold. If so, the media server may request that the second media controller record the program, and send a message to the first media controller indicating that the second media controller has been scheduled to record the program.
- In yet another embodiment, the first media controller may ask each of a plurality of other media controllers if the other media controllers are available to schedule the recording of a program during the program time slot. After one or more of the other media controllers respond that they are available to record the program, the first media controller may cause a display identifying the other media controllers that are available to schedule the recording of the program to the viewer. The viewer may select one of the other media controllers, and in response to the viewer selection, the first media controller may send the selected media controller a request to record the program.
- Those skilled in the art will appreciate the scope of the present disclosure and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures.
- The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the disclosure, and together with the description serve to explain the principles of the disclosed embodiments.
-
FIG. 1 is an exemplary block diagram of a locale in which embodiments may be practiced; -
FIG. 2 is a block diagram illustrating additional detail of a media controller according to one embodiment; -
FIG. 3 is block diagram of an exemplary stored item record according to one embodiment; -
FIG. 4 is a block diagram illustrating exemplary nodal data according to one embodiment; -
FIG. 5 is a block diagram of an exemplary recorder according to one embodiment; -
FIG. 6 is a block diagram of an exemplary merged guide according to one embodiment; -
FIG. 7 is a flowchart illustrating an exemplary method for generating program records; -
FIG. 8 is a block diagram illustrating exemplary update timestamp data according to one embodiment; -
FIG. 9 is a flowchart illustrating an exemplary method for receiving and processing program metadata sent from one media controller to another media controller; -
FIG. 10 is a flowchart illustrating an exemplary method for sending program metadata to another media controller; -
FIG. 11 illustrates an exemplary merged guide at a first point in time; -
FIG. 12 illustrates the exemplary merged guide illustrated inFIG. 11 at a second point in time; -
FIG. 13 is a block diagram illustrating exemplary mechanisms that may be used by a media controller to determine the identity of a particular viewer; -
FIG. 14 is a flowchart illustrating an exemplary method for integrating viewer information with a program record; -
FIG. 15 is block diagram illustrating exemplary requests that one media controller may make of another media controller; -
FIG. 16 is a flow chart illustrating an exemplary method for determining if another media controller is available to schedule a recording of a program according to one embodiment; -
FIG. 17 is a block diagram of an exemplary media controller usage (MCU)record 150 for storing consolidated previous usage data associated with the usage of a media controller according to one embodiment; -
FIG. 18 is block diagram of an exemplary client server embodiment; -
FIG. 19 is a flow chart illustrating an exemplary method for determining if another media controller is available to schedule a recording of a program; -
FIG. 20 is block diagram of another exemplary embodiment implemented in a peer-to-peer architecture; -
FIG. 21 is a flow chart illustrating an exemplary method for determining if another media controller is available to schedule the recording of a program; -
FIG. 22 illustrates a window which may be displayed on the display device according to one exemplary embodiment; -
FIG. 23 is a flowchart illustrating an exemplary method for providing a viewer an option to select another media controller to resolve a tuner conflict; and -
FIG. 24 illustrates an exemplary processing device which may be used to implement a media controller, or a server, according to some embodiments. - The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the embodiments and illustrate the best mode of practicing the embodiments. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the disclosure and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.
- Embodiments of the present disclosure relate to processing a request to record a program to determine the availability of a media controller tuner to record the program. Generally, a media controller may determine a program time slot associated with the request to record the program, obtain previous usage data identifying previous usage of the media controller during the program time slot, and based on the previous usage data determine that the media controller tuner will be available to record the program or will not be available to record the program. Embodiments may be implemented in any of several different system architectures, including peer-to-peer (P2P) architectures and client-server architectures. Embodiments may also be implemented in conjunction with a merged program guide comprising program data from a plurality of media controllers.
- Certain embodiments disclosed herein may be implemented in conjunction with a merged program guide. Accordingly, prior to discussing mechanisms for determining the availability of a media controller to record a program based on previous usage data, the generation of a merged guide will be illustrated. While the merged program guide disclosed herein serves as one mechanism by which previous usage data may be maintained, other embodiments may be implemented in the absence of a merged program guide, as will be discussed in greater detail herein.
FIG. 1 illustrates alocale 10, such as a residence, in whichmedia controllers media controller 12 or media controllers 12) are located. Themedia controllers 12 may comprise any device capable of providing, presenting, or otherwise causing the display of content upon demand, such as, for example, a set top box, a digital video recorder, an intelligent gaming console, such as the Microsoft® Xbox®, Sony® PlayStation®, and Nintendo® GameCube®, a media console such as the Apple® TV®, personal computers, and the like. - The
media controllers 12 provide content to one ormore viewers 14 by causing a display on adisplay device 16. Thedisplay device 16 may comprise any display technology, such as a television, a computer monitor, a projector, and the like. By “causing” or “cause” to display it is meant that themedia controllers 12 generate output streams that are provided to output connections on the media controllers 12 (not illustrated), which are directed to arespective display device 16, typically via a cable or other signal-carrying mechanism. While for purposes of illustration themedia controllers 12 anddisplay devices 16 are illustrated as devices which are separate from one another, thedisplay device 16 may be integral with themedia controller 12. For example, a single unit may include both amedia controller 12, such as a digital video recorder, and adisplay device 16, such as a television. Where amedia controller 12 anddisplay device 16 are integral, the signal-carrying connection between the two may not be by a connection cable, but rather by an internal bus or other signal-carrying mechanism. - The
media controller 12A receives content fromcontent providers 18A and 18B (generallycontent providers 18, or content provider 18). Thecontent providers 18 may comprise any provider of content, including service providers that provide content for a direct or indirect fee, cable operators, satellite operators, internet content providers, and the like. The content received by themedia controllers 12 may be any content desirable for presentation, display or otherwise rendering to aviewer 14, such as broadcast television, movies, video on demand, music, and the like. Units of content will be referred to herein as programs, and a program can refer to any unit of content that is referred to individually by the content provider, such as a particular television show, a particular movie, a song, and the like. - Content is typically, but not necessarily, provided to the
media controllers 12 in a content package that is defined by a particular subscription. The subscription between themedia controller 12 and thecontent provider 18 defines which channels and features make up a particular content package, and therefore defines the programming that will be provided by therespective content provider 18 to themedia controller 12 pursuant to the subscription. For example, themedia controller 12A may receive a first content package that includes premium movies and high definition content from thecontent provider 18A pursuant to a first subscription. Themedia controller 12B may receive a second content package that includes only standard definition content and no premium movies from thecontent provider 18D pursuant to a different subscription, even though thecontent provider 18A may be the same content provider as thecontent provider 18D. The same program may therefore be available to the same ordifferent media controllers 12. Moreover, different versions of the same program may be available to the same ordifferent media controllers 12. For example, themedia controller 12A may have access to a high-definition version of a particular episode of the network program Survivor, while themedia controller 12B has access only to a standard-definition version of Survivor based on the respective subscriptions. - The
content providers 18 typically provide a guide to themedia controllers 12 that identifies programs available via therespective content provider 18. Such guides are depicted inFIG. 1 in the form of respective local electronic programming guides 20A, 20B (generally,local guides 20 or local guide 20). While for purposes of illustration eachmedia controller 12 is shown as having only a singlelocal guide 20, it will be understood that eachmedia controller 12 may have multiplelocal guides 20, since eachcontent provider 18 may provide its own respectivelocal guide 20 to themedia controller 12. - Local guides 20 typically comprise program metadata identifying attributes and characteristics of particular programs. The program metadata may be provided to the
media controller 12 continually on a particular channel, or upon request by themedia controller 12, or at certain predetermined times. The program metadata can include any data that may be useful or desirable to the viewer 14 (typically as determined by the respective content provider 18). For example, program metadata may include a title, a description, identification of well-known actors, a channel on which the program will be provided, a genre, an MPAA rating, a duration, a version, a time and date the program will be provided, and the like. Typically, aviewer 14 accesses alocal guide 20 via an input device (not illustrated) such as a remote control, wherein, upon receipt of a request via the remote control, themedia controller 12 will cause a display of information from thelocal guide 20 on thedisplay device 16. - The
media controllers programs viewer 14 for time-shifting purposes, for example, to enable theviewer 14 to view a program at a different time from when the program was originally provided by acontent provider 18. Different programs may be recorded atdifferent media controllers 12, and thus, for example, the recordedprograms 22A may differ from the recordedprograms 22B. Themedia controllers 12 may also be communicatively coupled tolocal entertainment libraries 24 that contain a variety of programs, such as movies, songs, videos and the like that may have been downloaded, ripped, or otherwise obtained by theviewer 14. Themedia controllers respective recording schedules respective media controllers - Each of the
media controllers local area network 26. Thelocal area network 26 may comprise any suitable communication mechanism that enables themedia controllers media controllers 12 access thenetwork 26 viacommunication links 28, which may comprise any suitable technology for accessing thenetwork 26, such as, for example, WiFi, an Ethernet cable, and the like. Thenetwork 26 may use any suitable message transport protocol to enable message communications between themedia controllers - According to one embodiment, each of the
media controllers merged guide merged guide 30 will be discussed later in detail, generally, eachmerged guide 30 contains program records identifying programs available from a variety of different sources, including programs that are available atother media controllers 12. For example, themerged guide 30A may contain program records identifying programs available from each of thecontent providers 18A-18E, programs available in the entertainment libraries 24A, 24B, and recordedprograms merged guide 30B associated with themedia controller 12B also preferably contains program records identifying programs available from each of thecontent providers 18A-18E, programs available in the entertainment libraries 24A, 24B, and recordedprograms media controller 12A may cause a display on thedisplay device 16 which presents information contained in themerged guide 30A. Thus, aviewer 14 may use anymedia controller 12 that is coupled to thenetwork 26 to determine the entire collection of content that may be consumed by theviewer 14. - The
media controllers 12 may discover one another on thenetwork 26 using any suitable device discovery mechanism or techniques. Device discovery mechanisms are known to those skilled in the art and will not be described in detail herein. For example, themedia controller 12A may use the Bonjour® service discovery protocol to discover themedia controller 12B, but the embodiments are not limited to any particular device discovery mechanism. - The
media controller 12A also preferably maintains media controller previous usage data identifying previous usage of a media controller. Previous usage data may include data identifying that aviewer 14 viewed or recorded a particular program. In some embodiments, the previous usage data stored on themedia controller 12A may comprise data identifying previous usage of themedia controller 12A. In other embodiments, the previous usage data stored on themedia controller 12A may comprise data identifying previous usage ofmedia controllers 12 other than themedia controller 12A. - In the embodiment illustrated in
FIG. 1 , themedia controller 12A maintains remote media controllerprevious usage data 25A (referred to hereinafter as “previous usage data 25A” for purposes of simplicity) which identifies previous usage of anothermedia controller 12, such as themedia controller 12B, and anyother media controllers 12 coupled to thenetwork 26. The word “remote” is merely a reference to amedia controller 12 other than themedia controller 12A, and does not imply a particular physical distance. For example, themedia controller 12B is remote with respect to themedia controller 12A, and vice versa. Theprevious usage data 25A may be based on information received from themedia controller 12B, as discussed in greater detail herein. Themedia controller 12A may use theprevious usage data 25A to determine previous usage of themedia controller 12B, and thereby determine an availability probability of themedia controller 12B for scheduling the recording of a program upon request by themedia controller 12A. Themedia controller 12B similarly includes previous usage data 25B which identifies previous usage of themedia controller 12A, and anyother media controllers 12 coupled to thenetwork 26, for similar purposes. Themedia controllers 12 also have respective one ormore tuners 34 which may be used to tune to a particular frequency to access a program being provided by one of thecontent providers 18. -
FIG. 2 is a block diagram illustrating additional details of amedia controller 12 according to one embodiment. Themedia controller 12 preferably includesnodal data 32, which includes information that may be unique to therespective media controller 12, such as, for example, a name of themedia controller 12, a serial number associated with themedia controller 12, log files generated by themedia controller 12, and the like. Exemplarynodal data 32 will be discussed in greater detail with reference toFIG. 3 . Themedia controller 12 includes one ormore tuners 34 which are used to select particular content provided by acontent provider 18. For example, thecontent provider 18 may concurrently provide a number of different programs to themedia controller 12, each program being delivered on a particular frequency. Thetuner 34, for example in response to a channel selection from aviewer 14, tunes to a particular frequency and captures the program data being provided at the particular frequency. Thetuner 34 then typically causes the program to be displayed on adisplay device 16, or may record the program, as discussed in greater detail herein. While thetuner 34 has been discussed herein in terms of tuning to a particular frequency, it will be apparent that programs may be differentiated from one another by mechanisms other than a frequency, and thetuner 34 therefore is not limited to a frequency tuner, but may comprise any suitable tuning mechanism capable of selecting a desired program from a plurality of programs. - The
media controller 12 preferably includes arecorder 36 for recording a program. Therecorder 36 preferably receives input from thetuner 34, encodes the input into a desired format, if necessary, and stores the program data in astorage 38. Thestorage 38 may comprise any suitable storage technology, such as a hard drive, flash drive, and the like. Thestorage 38 is preferably a persistent storage that survives the powering down of themedia controller 12, and may contain data from a variety of sources, including, for example, thelocal guide 20, themerged guide 30, therecording schedule 23, theprevious usage data 25, and the like. - The
media controller 12 may also include aretransmitter 40 which enables the retransmission of a program received by themedia controller 12 onto thenetwork 26. For example, theretransmitter 40 may segment the program data received by themedia controller 12 into packets and transmit the packets to anothermedia controller 12 via thenetwork 26. Theretransmitter 40 may encode the program differently from the way the program was encoded when initially received by thetuner 34. For example, in one embodiment, afirst media controller 12 may request from a second media controller 12 a program stream of a program currently being presented toviewers 14 by thesecond media controller 12. The request may identify that a particular quality, or resolution, of the program stream is desired. For example, thefirst media controller 12 may intend to display the program stream in a relatively small area of adisplay device 16 in conjunction with other information, and thus not require a high resolution program stream. Thesecond media controller 12 may then encode the program into a sufficiently lower resolution version of the program prior to transmitting the program stream onto thenetwork 26 to minimize network usage. - The
media controller 12 may also include aweb server 42 for use in transferring program metadata betweenmedia controllers 12. For example, theweb server 42 may respond to requests for program metadata fromother media controllers 12. In one embodiment the program metadata may be formatted and transferred in an XML format. Themedia controller 12 may also includeupdate timestamp data 44 that identifies the times thatother media controllers 12 last provided program metadata to themedia controller 12. Theupdate timestamp data 44 may be used by themedia controller 12 to quickly determine which program metadata received by anothermedia controller 12 constitutes new program metadata. The receipt of program metadata by amedia controller 12 and the use of theupdate timestamp data 44 will be described in greater detail herein. -
FIG. 3 is block diagram of a stored item record 50-1 that contains data associated with items stored instorage 38, or elsewhere. Thestorage 38 may contain a plurality of stored item records 50-1-50-N. The stored item record 50-1 contains information identifying, for example, a recorded program 22, or a program in theentertainment library 24. The stored item record 50-1 may include a globally unique identifier (GUID)field 52 that contains a GUID which uniquely identifies the stored item record. The generation of a GUID is known to those skilled in the art, and will not be discussed in detail herein. The stored item record 50-1 also includes alocation field 54 identifying a location of the corresponding program. Thelocation field 54 may indicate the program resides in thestorage 38, theentertainment library 24, or elsewhere. The stored item record 50-1 preferably includes ametadata GUID field 56 that contains a metadata GUID which uniquely identifies a metadata record containing metadata pertaining to the corresponding program. The metadata record may be in thestorage 38, on a local server coupled to thenetwork 26, or on a remote server accessible by themedia controller 12 over a wide area network coupled to thenetwork 26. -
FIG. 4 is a block diagram illustrating exemplarynodal data 32 according to one embodiment. Thenodal data 32 can include aname field 58 that contains a name which identifies therespective media controller 12. For example, thename field 58 of themedia controller 12A may be “TIVO DVR”, and thename field 58 of themedia controller 12B may be “TimeWarner SetTop.” Alternately, thename field 58 may contain a link or reference to a graphical image that depicts a particular type ofmedia controller 12. Thenodal data 32 can include adescription field 60 that provides a short textual description of the capabilities of therespective media controller 12. Acapabilities field 62 may identify operations performable by therespective media controller 12, and power consumption characteristics. Aserial number field 64 may contain a unique manufacturer serial number of themedia controller 12. Amanufacturer field 66 may identify the manufacturer of themedia controller 12. Amodel field 68 may identify a particular model of themedia controller 12. Logs field 70 may comprise data generated during the operation of themedia controller 12, such as, for example, faults or errors that occur during the operation of themedia controller 12, and/or input selections received fromviewers 14, which programs were watched at which times, and the like. - A
service field 72 may contain service status information regarding themedia controller 12 such as service intervals and/or wear counts. The wear count may indicate how many times particular “wear items” have been used. For example, amedia controller 12 containing a hard drive may provide a wear count on the hard drive indicating how many times the hard drive has been written to. This information may in turn be used to predict how much useful life is left on the drive. Astate field 74 may contain a status of themedia controller 12, such as, for example “Booting”, “On”, “Recording”, “Sleep”, “Updating”, and the like. Alocation field 76 may identify a location of themedia controller 12 within thelocale 10. For example, thelocation field 76 of themedia controller 12A may contain “Den”, and thelocation field 76 of themedia controller 12B may contain “Living Room.” Thenodal data 32 may also include a preference settings field 78 identifying preferences of one ormore viewers 14. Any desired preference data may be stored in thepreference settings field 78, such as, for example, genre preferences, actor preferences, time preferences, series preferences, and the like. Preference data may be used, for example, by themedia controller 12 to provide program recommendations to aviewer 14. -
FIG. 5 is a block diagram of therecorder 36 according to one embodiment. Therecorder 36 receives asource 80 from thetuner 34. Therecorder 36 uses anencoder 82 to encode thesource 80 in a desired format, such as the MPEG-2 format. The encoded program can be stored in thestorage 38. Therecorder 36 may include abuffer 84 for use in temporarily storing segments of thesource 80 while it is being encoded. -
FIG. 6 is an exemplary block diagram of amerged guide 30 according to one embodiment. The format of themerged guide 30 depicted inFIG. 6 is but one exemplary layout, and the embodiments are not limited thereto. Themerged guide 30 may include a plurality ofchannel records 86, such as channel records 86-1-86-N. The phrase “record” as used throughout the disclosure means a structure which contains data and may be stored and accessed as necessary, and does not imply a particular format or internal layout. The channel record 86-1 may include aninformation field 88 that contains text identifying source attributes of the channel, such as the particular service provider, or other source. For example, if the channel 86-1 is provided by a service provider via cable, theinformation field 88 may contain the name of the cable company. Alternately, thechannel information field 88 may contain the ultimate source of the content associated with the channel, such as NBC, ABC, and the like. Where the content associated with the channel is provided by a local source, such as theentertainment library 24, thechannel information field 88 may identify theentertainment library 24 by a name, such as “John's Video Library.” The channel 86-1 may also include arating field 90 that generally describes the content associated with the channel 86-1. For example, if the channel 86-1 is a mature adult channel, therating field 90 may identify it as such. - Each
channel 86 may include one or more program records 92. For example, the channel 86-1 contains a plurality of program records 92-1-92-N. Eachprogram record 92 contains metadata associated with a particular program. Thus, eachprogram record 92 corresponds to a particular program. Theprogram record 92 may contain aGUID field 94 that contains a GUID which uniquely identifies the program. Atitle field 96 may contain a textual title of the program. Astart field 98 may identify a present, past or future start time of the program. Aduration field 100 identifies a length of the program. Arating field 102 may contain an MPAA rating of the program. Aquality field 104 may identify the encoding quality of the program. Analt location field 106 may contain an alternate location of the program other than the location identified in thesource field 116. For example, the location identified in thesource field 116 may be the source of a highest quality version of the program, while thealt location field 106 may provide a lower quality version of the program. In one embodiment, a uniform resource identifier (URI) represents the location indicated by thesource field 116 andalt location field 106. The URI may point to a local media item, or may reference a program available from anothermedia controller 12 over the network. - A
requestors field 108 may contain information identifying one ormore viewers 14 that have requested that the program be recorded. A viewers list 110 may identify one ormore viewers 14 that were identified as being in proximity to themedia controller 12 which presented the program. Ametadata GUID field 112 may contain a metadata GUID which uniquely identifies a metadata record containing metadata describing additional attributes of the program. The metadata record may exist, for example, on a local or a remote server accessible by themedia controller 12. Anoriginator field 115 may identify theparticular media controller 12 which originated therespective program record 92. A record update timestamp (TS)field 114 may contain a timestamp identifying the time of the last update to the record 92-1. Asource field 116 may identify a location of the program, and may comprise, for example, a URI. - The
program record 92 may also include anoperation field 117 for identifying a particular operation performed on the corresponding program by the media controller identified in theoriginator field 115. For example, theoperation field 117 may contain a value of 0 to indicate that no operation was performed on the program, a value of 1 to indicate the program was recorded, a value of 2 to indicate the program was presented to aviewer 14, and a value of 3 to indicate that the program was both recorded and presented to aviewer 14. Where the operation value is greater than zero, and where themedia controller 12 identified in theoriginator field 115 has multiple tuners, theoriginator field 115 may also identify theparticular tuner 34 that performed the identified operation. Theoperation field 117 may be used by themedia controller 12 to relatively rapidly determine which program records 92 may be useful for determining the previous usage data associated with anothermedia controller 12. More particularly, upon receipt of aprogram record 92 having an operation value greater than zero, themedia controller 12 may generate a copy of theprogram record 92 and store the copy in theprevious usage data 25. The use of separateprevious usage data 25, while optional, provides a mechanism to store for desired periods of time previous usage data associated withother media controllers 12, while allowing themerged guide 30 to maintain historical program records 92 for a much shorter duration. - Preferably, each
media controller 12 coupled to thenetwork 26 generates program records 92 for each program that is available at therespective media controller 12. For example, referring again toFIG. 1 ,local guide 20A may include guides for programs available from thecontent providers 18A and 18B. Themedia controller 12A may read thelocal guide 20A and generate aprogram record 92 for each program identified in thelocal guide 20A. Themedia controller 12A may also generateprogram records 92 for each recordedprogram 22A, and each item available for presentation from the entertainment library 24A. If program metadata for such programs is unavailable, themedia controller 12A may access well-known sources of program metadata from, for example, an Internet provider of such data, and use the program metadata to populate the fields of theprogram record 92. -
FIG. 7 is a flowchart illustrating an exemplary method for generating program records 92. Assume that themedia controller 12A is traversing alocal guide 20A, and determines that thelocal guide 20A identifies a program that is not identified in themerged guide 30A. For example, thecontent provider 18A may have recently provided themedia controller 12A new program guide data that identifies programs that will be available for presentation one week from the present date. Themedia controller 12A generates a program record 92 (step 1000). Themedia controller 12A then generates a GUID that uniquely identifies this program (step 1002). Themedia controller 12A then populates the fields described above with regard toFIG. 6 with the appropriate data (step 1004). The media controller may insert the current time in the recordupdate timestamp field 114. Themedia controller 12A then stores theprogram record 92 in the merged guide 30 (step 1006). - Each
media controller 12 preferably provides program metadata from the program records 92 which are available from therespective media controller 12 to theother media controllers 12. For example, referring again toFIG. 1 , themedia controller 12A provides themedia controller 12B program metadata from each of the program records 92 stored in themerged guide 30A. Themedia controller 12B similarly provides themedia controller 12A program metadata from each of the program records 92 in themerged guide 30B. In this manner, eachmedia controller 12 contains program records 92 identifying programs available at not only therespective media controller 12, but which are available at allmedia controllers 12 coupled to thenetwork 26. - The program metadata may be provided in the same format as the program records 92, or in a different format. The program metadata may be “pushed” as desired by a
media controller 12 to the other media controllers, or may be “pulled” from amedia controller 12 upon request. In one embodiment, the program metadata may be provided in an XML file, which may have a format similar to theprogram record 92. In one embodiment, amedia controller 12 may broadcast a signal on thenetwork 26 to indicate that new program metadata is available. Referring again toFIG. 1 , assume that themedia controller 12A has generated one or more new program records 92. Themedia controller 12A may broadcast a signal on thenetwork 26 indicating that themedia controller 12A has new program metadata for distribution. Themedia controller 12B, upon receipt of the signal, may send a message to themedia controller 12A requesting the program metadata. According to one embodiment, eachmedia controller 12 may maintain a last update timestamp for eachother media controller 12. Such last update timestamps may be maintained in the update timestamp data 44 (FIG. 2 ) associated with therespective media controller 12. -
FIG. 8 is a block diagram illustrating exemplaryupdate timestamp data 44 according to one embodiment. Theupdate timestamp data 44 may include one or more last update timestamps 120-1-120-N (generally, last update timestamps 120), each of which may correspond to arespective media controller 12. The last update timestamps 120 identify the time of the last update of program metadata from the correspondingmedia controller 12. For purposes of illustration with regard toFIG. 8 , amedia controller 12 that has program metadata to provide to anothermedia controller 12 will be referred to as apublishing media controller 12, and themedia controller 12 receiving the program metadata will be referred to as a receivingmedia controller 12. The receivingmedia controller 12 may use alast update timestamp 120 to indicate to thepublishing media controller 12 which program records 92 are needed. For example, in the current example, assume that the last update timestamp 120-1 corresponds to thepublishing media controller 12. The receivingmedia controller 12 may provide the last update timestamp 120-1 to thepublishing media controller 12 to indicate to thepublishing media controller 12 that the receivingmedia controller 12 only requires program metadata from those program records 92 that contain a record update timestamp more recent than the last update timestamp 120-1. Thepublishing media controller 12 may thus use the last update timestamp 120-1 to generate an XML file containing only program metadata for those program records 92 which have a record update timestamp that is more recent than the last update timestamp 120-1. The receivingmedia controller 12 receives, and then processes, the program metadata and updates the last update timestamp 120-1 with the latest record update timestamp associated with anyprogram record 92 provided by thepublishing media controller 12. -
FIG. 9 is a flowchart illustrating an exemplary method for receiving and processing program metadata sent from onemedia controller 12 to anothermedia controller 12.FIG. 9 will be discussed in conjunction withFIGS. 1 and 6 . Again, for purposes of illustration with regard toFIG. 9 , themedia controller 12A will be assumed to have program metadata to distribute to themedia controller 12B, and will be referred to as thepublishing media controller 12A, and themedia controller 12B will be referred to as the receivingmedia controller 12B. Thepublishing media controller 12A broadcasts a notification that thepublishing media controller 12A has new program metadata available for distribution. The receivingmedia controller 12B receives the notification (step 2000). The receivingmedia controller 12B obtains the last update timestamp 120-1 which corresponds to thepublishing media controller 12A (step 2002). The receivingmedia controller 12B generates a request containing the last update timestamp 120-1 and sends the request to thepublishing media controller 12A (steps 2004, 2006). Thepublishing media controller 12A uses the last update timestamp 120-1 to select program metadata from eachprogram record 92 having a record update timestamp that is later than the last update timestamp 120-1. Thepublishing media controller 12A formats the program metadata and sends it to the receivingmedia controller 12B. - The receiving
media controller 12B receives the program metadata (step 2008). The receivingmedia controller 12B may, for each program identified by the program metadata, attempt to match the program metadata to an existingprogram record 92 in themerged guide 30B (step 2010). What constitutes a “match” may be system dependent. Generally, the receivingmedia controller 12B may determine if various data in the provided program metadata matches corresponding data in any existingprogram record 92. For example, the receivingmedia controller 12B may determine that the program identified by the metadata matches a program identified by aprogram record 92 if the data from the title fields 96 match one another and the data from the start fields 98 match one another. - If the receiving
media controller 12B determines that the provided program metadata matches a program identified by a program record 92 (step 2012), then the receivingmedia controller 12B may generate achild program record 92 from the supplied program metadata, such that the matchedprogram record 92 in themerged guide 30A is stored in association with the child program record 92 (step 2014). Among other advantages, establishing such a parent-child relationship between program records 92 enables the receivingmedia controller 12B to cause the display of information to aviewer 14 that the same program is available atmultiple media controllers 12. If the receivingmedia controller 12B determines that the program metadata does not match any existing program identified in a program record 92 (step 2012), the receivingmedia controller 12B may generate aprogram record 92 as aparent program record 92 that is not achild program record 92 to any other program record 92 (step 2016). While for purposes of illustration only twoprogram records 92 have been shown as stored in association with one another, it is apparent any number of program records 92 that identify the same program may be stored in association with one another. -
FIG. 10 is a flowchart illustrating an exemplary method for sending program metadata to another media controller. Assume again that thepublishing media controller 12A has new program metadata to distribute. Thepublishing media controller 12A broadcasts a notification signal onto thenetwork 26 indicating that new program metadata is available (step 3000). Thepublishing media controller 12A receives a request for data from the receivingmedia controller 12B (step 3002). Thepublishing media controller 12A obtains the last update timestamp 120-1 from the request for data (step 3004). Thepublishing media controller 12A obtains program metadata from those program records 92 having a record update timestamp greater than the last update timestamp 120-1 (step 3006). -
FIGS. 11 and 12 are block diagrams illustrating exemplary relationships between several program records 92.FIG. 11 illustrates that at a first point in time, themerged guide 30A contains a plurality ofprogram records 92A-92C, each of which may be considered aparent program record 92. Similarly, themerged guide 30B contains a plurality of program records 92D-92F, each of which may also be considered aparent program record 92.FIG. 12 illustrates an exemplary relationship betweenprogram records 92 after themedia controller 12A has communicated the program records 92A-92C to themedia controller 12B, and has received from themedia controller 12B the program records 92D-92F. As illustrated, themedia controller 12A determined that theprogram record 92D identified the same program as identified by theprogram record 92A, and consequently made theprogram record 92D a child record to theprogram record 92A. Theprogram record 92E was also determined to identify the same program as identified by theprogram record 92B, and was therefore similarly made a child record to theprogram record 92B. Because theprogram record 92F did not match anyother program record 92 in themerged guide 30A, theprogram record 92F is made aparent program record 92F. - A similar analysis was conducted by the
media controller 12B, and thus theprogram record 92A was made a child record of theprogram record 92D, and theprogram record 92B was made a child record of theprogram record 92E. - According to one embodiment, the
media controller 12 may determine the identity of theviewers 14 that are in proximity to themedia controller 12. This information may be stored in the viewers list 110 of the program records 92 for the corresponding programs that are presented by themedia controller 12.FIG. 13 is a block diagram illustrating exemplary mechanisms that may be used by amedia controller 12 to determine the identity of a particular viewer. Themedia controller 12A in a den 118 is communicatively coupled to aninput device 128. As theviewers viewer input device 128 to indicate that therespective viewer media controller 12A. Prior to exiting the den 118, eachviewer input device 128 to indicate they are departing the den 118. Themedia controller 12A may maintain the identity of theviewers 14 who are in the den 118, and for each program provided during the presence of aviewer 14, update the viewers list 110 in theprogram record 92 corresponding to the presented program. Theinput device 128 may comprise any suitable device and interface, such as a keyboard, or a mouse and a computer having a user interface that enables aviewer 14 to simply click on a designated portion of a display to indicate the presence or departure of theviewer 14 from the den 118. The computer may be wirelessly coupled to themedia controller 12A, and communicate the status of incoming andoutgoing viewers 14 to themedia controller 12 as appropriate. - The
media controller 12B in theliving room 122 includes afacial recognition processor 130 that is able to identify through facial processing technology theviewers 14C-14E. Facial recognition technology is known to those skilled in the art, and will not be described in detail herein. Thefacial recognition processor 130 communicates the identity of theviewers 14C-14E to themedia controller 12B. While thefacial recognition processor 130 is illustrated as being integral with themedia controller 12B, in an alternate embodiment, thefacial recognition processor 130 may be separate from but coupled tomedia controller 12B via a wired or wireless communications channel, for example. - The
media controller 12C in abedroom 124 includes a radio frequency identification (RFID)processor 134. TheRFID processor 134 may receive a signal from a device worn, or carried, by theviewer 14F. For example, a cell phone of theviewer 14F may emit a signal that can be received by theRFID processor 134. Upon receipt of such signal, theRFID processor 134 can communicate the identity of theviewer 14F to themedia controller 12C. - The
media controller 12D in abasement 126 is coupled to a wireless Bluetooth interface which enables themedia controller 12D to communicate with Bluetooth devices, such as a cell phone, that contain the appropriate software to interface with themedia controller 12D. Such software may be programmed to emit a signal that can be detected by themedia controller 12D via thewireless Bluetooth interface 132. The signal may contain an identifier identifying aparticular viewer media controller 12D may periodically poll the cell phone to determine if theviewer media controller 12D. If themedia controller 12D does not receive a response to the poll, themedia controller 12D may determine that theviewers media controller 12D. -
FIG. 14 is a flowchart illustrating an exemplary method for storing viewer information into aprogram record 92. Themedia controller 12 determines that anew viewer 14 is in proximity to themedia controller 12, and identifies the new viewer 14 (step 4000). Themedia controller 12 may use one of the mechanisms described with regard toFIG. 13 , or any other suitable mechanism. Themedia controller 12 obtains theprogram record 92 corresponding to the program that is currently being provided for display by the media controller 12 (step 4002). Themedia controller 12 updates theviewer list 110 of theprogram record 92 to include an identification of the new viewer 14 (4004). Preferably, themedia controller 12 also updates the record update timestamp of theprogram record 92. Themedia controller 12 stores theprogram record 92 in the merged guide (step 4006). Note that themedia controller 12 may also broadcast a notification signal to thenetwork 26 to notifyother media controllers 12 that themedia controller 12 has new program metadata to distribute. In this manner, eachmedia controller 12 coupled to thenetwork 26 may be, substantially in real-time, provided data that identify who, in which room, is watching which programs. - According to another embodiment, the one
media controller 12 may send requests to anothermedia controller 12 for information, or to direct theother media controller 12 to provide a desired function.FIG. 15 is block diagram illustrating certain requests that onemedia controller 12 may make of anothermedia controller 12 according to one embodiment. For example, themedia controller 12A may send anIDENTIFY_CURRENT_PROGRAM request 142 to themedia controller 12B. AnIDENTIFY_CURRENT_PROGRAM request 142 requests that themedia controller 12B identify the specific program that is currently being provided by themedia controller 12B. In response, themedia controller 12B may provide themedia controller 12A theprogram record 92 corresponding to the program that themedia controller 12B is currently presenting. Themedia controller 12A may send themedia controller 12B aRECORDING_STATUS request 144, which requests information regarding the recording status of the program that is currently being presented by themedia controller 12B. In response, themedia controller 12B provides a message indicating whether the current program being provided by themedia controller 12B is being recorded. - The
media controller 12A may send themedia controller 12B aRECORD PROGRAM REQUEST 146, which requests that themedia controller 12B schedule the recording of a particular program. TheRECORD PROGRAM REQUEST 146 may include theprogram record 92 corresponding to the program that is to be recorded. In response, themedia controller 12B may determine that no tuner is available to record the program, or may begin recording the desired program, or may schedule the desired program for recording if the program has not begun yet, and if an availability probability of a tuner exceeds an availability threshold, as discussed in greater detail herein. Themedia controller 12B may provide themedia controller 12A a message indicating success or failure of the request. Themedia controller 12A may send themedia controller 12B aPROVIDE_CURRENT_PROGRAM request 148, which requests that themedia controller 12B provide a program stream of the program that is currently being provided by themedia controller 12B. Themedia controller 12B, using theretransmitter 40, may then provide a program stream of the program which is currently being provided by themedia controller 12B. - Tuner conflicts may arise during the operation of a
media controller 12. For example, themedia controller 12 may have asingle tuner 34, and theviewer 14 may desire to record two programs in the future concurrently. If themedia controller 12 has only asingle tuner 34, themedia controller 12 is able to only record a single program at a time. In one embodiment, to resolve such a tuner conflict, the previous usage data of anothermedia controller 12 is processed to determine if themedia controller 12 can schedule the recording of one of the two programs. -
FIG. 16 is a flow chart illustrating an exemplary method for determining if anothermedia controller 12 is available to schedule a recording of a program.FIG. 16 will be discussed in conjunction withFIG. 1 . Assume for purposes of illustration that theviewer 14 requests themedia controller 12A to record two programs concurrently during the same future time slot (step 5000). Themedia controller 12A contains asingle tuner 34 and determines a tuner conflict exists because themedia controller 12A can only record a single program at a time (step 5002). A similar situation may arise even without input from theviewer 14 where, for example, a first program has been scheduled to be recorded by themedia controller 12A at a future (but imminent) time, and theviewer 14 is watching a program on a second channel minutes prior to the scheduled recording of the first program. Themedia controller 12A similarly may detect that recording the first program is likely to conflict with the viewer's 14 current use of themedia controller 12A. - The
media controller 12A may determine ifother media controllers 12, such as themedia controller 12B, are currently communicatively coupled to the network 26 (step 5004). Device discovery mechanisms are known to those skilled in the art and will not be described in detail herein. For example, themedia controller 12A may use the Bonjour® service discovery protocol to discover themedia controller 12B, but the embodiments are not limited to any particular device discovery mechanism. If noother media controllers 12 are available, themedia controller 12A may cause a display to theviewer 14 identifying the conflict, thereby enabling theviewer 14 to resolve the conflict by selecting one program over another program (step 5006). If anothermedia controller 12 is available, such as themedia controller 12B, themedia controller 12A may then access theprevious usage data 25A (generally, previous usage data 25) to determine previous usage associated with themedia controller 12B (step 5008). For example, theprevious usage data 25A may include data extracted fromprogram records 92 wherein the value of theoperation field 117 is greater than zero. Such data may identify previous usage of themedia controller 12B. For purposes of illustration, assume that themedia controller 12B similarly contains only asingle tuner 34B. - The
media controller 12A determines an availability probability for themedia controller 12B (step 5010). The availability probability may be used to determine whether thetuner 34B is likely to be available during the desired time slot. Exemplary mechanisms for determining an availability probability will be discussed herein with respect toFIG. 17 . The availability probability may comprise any indicator used to determine whether or not amedia controller 12 is available to record a program at a future time based on previous usage data. The availability probability may, for example, comprise a numeric representation identifying a probability of availability of themedia controller 12B to record a program at a future time. In one embodiment the availability probability is based on a percentage, and will be discussed herein in terms of a percentage, or decimal representation of a percentage. For example, if a probability that themedia controller 12B will be available during the desired time slot is 70% (i.e., 0.70), then the availability probability of themedia controller 12B is 70% (or 0.70). Where amedia controller 12 has asingle tuner 34, the availability probability of thetuner 34 is the same as the availability of themedia controller 12. Where amedia controller 12 hasmultiple tuners 34, the availability probability of themedia controller 12 is a function of the availability probability of each of thetuners 34. - The
media controller 12A determines if the availability probability of themedia controller 12B exceeds an availability threshold (step 5012). The availability threshold may be a configurable value that may be adjustable by an administrator of thenetwork 26, or by a service provider. The availability threshold may be relatively high to decrease the likelihood that the receivingmedia controller 12, i.e., themedia controller 12B in this example, will encounter a tuner conflict at the time of the scheduled recording. For example, an availability threshold of 90 indicates that themedia controller 12B is not available to schedule the recording unless the availability probability exceeds 90%. Alternately, a low availability threshold may be used to facilitate eliminating a current tuner conflict at themedia controller 12A at the potential risk of increasing the likelihood of a tuner conflict on themedia controller 12B at the time of the scheduled recording. - If the availability probability does not exceed the availability threshold (step 5012), the process returns to step 5004 where it is determined if another
media controller 12 may be available to schedule the recording. Otherwise, if the availability probability exceeds the availability threshold (step 5012), themedia controller 12A may send themedia controller 12B a request to schedule the recording of the program (step 5014). In one embodiment, themedia controller 12B may accept or reject such a request. If themedia controller 12B rejects the request (step 5016), the process returns to step 5004 where it is determined if anothermedia controller 12 may be available to schedule the recording. If themedia controller 12B accepts the request, themedia controller 12A may update therecording schedule 23A to reflect that the program will not be recorded by themedia controller 12A. - The phrase time slot is used herein to generally refer to a particular period of time. A future time slot, for example, may refer generally to a future period of time during which a program may be scheduled to be provided to a
media controller 12. For example, the time slot corresponding to a particular program, such as the Survivor series, may be the 8:00-8:59 time slot. A time slot preferably has a begin time and an end time, although the begin time and end times may vary. For example, generally Survivor is scheduled to be provided in the 8:00 ET time slot, however, due to advertising and the like, may on particular dates begin at 8:01 or 8:02. While time slots will be referred to herein generally as an hourly time slot, e.g., from 8:00-8:59 or 8:00-9:00, it will be apparent that time slots may be any desired length of time, such as 30 minutes. -
FIG. 17 is a block diagram of an exemplary media controller usage (MCU)record 150 for storing previous usage data associated with amedia controller 12.FIG. 17 will be discussed in conjunction withFIG. 1 . Previous usage data, as described herein, may be stored in multiple formats. For example, as discussed previously, previous usage data may be provided by eachmedia controller 12 in the form of program records 92. Eachprogram record 92 identifies a particular previous usage of the media controller. Such information may also be consolidated based on a desired criteria, such as based on the day of the week of a previous usage, and the time slot associated with a previous usage. TheMCU record 150 may be generated, for example, by consolidating information contained in multiple program records 92 over a predetermined period of time, such as the previous four weeks, or previous six weeks, for example. In particular, themedia controller 12A may process eachprogram record 92 having an operation value greater than zero for eachmedia controller 12 coupled to thenetwork 26 that was created within the previous six weeks. TheMCU record 150 is an example of one such consolidation, in particular, a consolidation based on tuner, day of the week, and time slot. However, embodiments are not limited to any particular consolidation of information. - Moreover, while embodiments have thus far been discussed in conjunction with the use of the
merged program guide 30, it should be apparent that media controller previous usage data identifying previous usage activity of themedia controller 12B could be generated and broadcast toother media controllers 12 without the existence of themerged guide 30. For example, a previous usage data record may be defined that includes information such as thestart field 98, theduration field 100, theoriginator field 115 and theoperation field 117. Each time an operation on themedia controller 12B occurs, themedia controller 12B could generate a previous usage data record and broadcast the record to theother media controllers 12 on the network. Eachrecipient media controller 12 could then use the data to maintain aMCU record 150 for themedia controller 12B. - For purposes of illustration assume that the
media controller 12A has determined that a tuner conflict exists with regard to a request to schedule the recording of a program during a 23:00-23:59 time slot on Monday. Assume that theMCU record 150 contains information corresponding to themedia controller 12B. Themedia controller 12A may continually update theMCU record 150 with new information as it is received from themedia controller 12B. - The
MCU record 150 includes a tuner usage record 152 for eachtuner 34 contained in themedia controller 12B. In this example, assume that themedia controller 12B contains twotuners 34, and thus theMCU record 150 includes atuner usage record 152A and atuner usage record 152B (generally, the tuner usage record 152 or the tuner usage records 152). Each tuner usage record 152 includes seven usage-by-day (UBD) records 154. Thetuner usage record 152A thus containsUBD records 154A-1-154A-7. EachUBD record 154A contains previous usage data associated with a particular weekday. Thetuner usage record 152B similarly contains UBD records 154B-1-154B-7. Each UBD record 154 contains a plurality of usage-by-time slot (UBT) records. Assuming hourly time slots, for example, theUBD record 154A-1 contains 24 UBT records 156-1-156-24. Thus each UBT record 156 contains previous usage data associated with a particular hour of the particular day corresponding to a UBD record 154. Similarly, theUBD record 154A-7 contains 24 UBT records 158-1-158-24. Each UBT record 156, 158, 160, and 162 identifies a usage factor of the respective tuner during a particular time slot. The usage factor may represent the frequency, by percentage, that the correspondingtuner 34 is busy either presenting a program for display to a viewer or recording a program during the respective time slot. Alternately, the usage factor may represent the frequency that the correspondingtuner 34 is not busy. - Assuming that the usage factor represents the frequency, by percentage, that the corresponding
tuner 34 is busy, the availability probability (AP) of thetuner 34 during the respective time slot can thus be determined by the following formula: -
APTuner— Timeslot=(1−usage factorTimeslot) -
- APTuner
— Timeslot is the availability probability of a tuner for a particular day of the week and a particular time slot of that day of the week, and usage factorTimeslot is the usage factor associated with that tuner during that day of the week and at that time slot.
- APTuner
- For example, the AP of Tuner A (
tuner usage record 152A) duringTime Slot 24 of Day 1 (Monday) indicated by the UBT record 156-24 may be calculated in the following manner: -
APTunerA— Timeslot24=(1−0.23)=0.78=78% - Similarly, the AP of Tuner B (
tuner usage record 152B) duringTime Slot 24 of Day 1 (Monday) indicated by the UBT record 160-24 duringTime Slot 24 of Day 1 (Monday) indicated by the UBT record 160-24 may be calculated in the following manner: -
APTunerB— Timeslot24=(1−0.92)=0.08=8% - It is apparent each UBT record 156-162 could contain the availability probability rather than the usage factor. To derive or otherwise determine the aggregate availability probability of a media controller for a particular time slot the following formula may be used:
-
APmediacontroller=Sum(APeach tuner)/number of tuners - In the present example, assuming the
media controller 12B contains twotuners 34, the following formula may be used: -
- The
media controller 12A also preferably accesses therecording schedule 23B of themedia controller 12B. Therecording schedule 23B identifies the scheduled recordings of themedia controller 12B. Therecording schedule 23B may identify that the one or bothtuners 34 may be busy during the 23:00-23:59 time slot on Monday recording a program, and may identify the particular programs that are scheduled to be recorded. If themedia controller 12A determines that bothtuners 34 of themedia controller 12B are scheduled to record a program during the 23:00-23:59 time slot on Monday, themedia controller 12A may determine the availability probability is 0 for themedia controller 12B prior to even accessing theMCU record 150. However, if themedia controller 12A determines from therecording schedule 23B that the program which themedia controller 12A would like themedia controller 12B to schedule for recording is already scheduled for recording on themedia controller 12B, themedia controller 12A may determine the availability probability is 100. - Where the
recording schedule 23B indicates that onetuner 34 will not be available due to a scheduled recording, the availability probability may be calculated as the lowest availability probability of either of thetuners 34. -
FIG. 18 is block diagram of embodiments implemented in a client server architecture. Eachmedia controller 12 sends previous usage records identifying previous usage of therespective media controller 12 to acomputer server 164, which stores such information in the media controllerprevious usage data 25. If amerged guide 30 is maintained on theserver 164, the information may be provided in program records 92 as discussed previously. If embodiments are being implemented in the absence of amerged guide 30, a previous usage data record may be defined that includes information such as thestart field 98, theduration field 100, theoriginator field 115 and theoperation field 117, as discussed previously, to provide such information to theserver 164. -
FIG. 19 is a flow chart illustrating an exemplary method for determining if anothermedia controller 12 is available to schedule the recording of a program in the client-architecture illustrated inFIG. 18 .FIG. 19 will be discussed in conjunction withFIG. 18 . Assume for purposes of illustration that a viewer requests themedia controller 12A to record two programs concurrently during the same time slot. Themedia controller 12A contains asingle tuner 34 and determines a conflict exists because themedia controller 12A can only record a single program at a time. Themedia controller 12A sends a request to theserver 164 to locate anothermedia controller 12 for scheduling the recording of one of the programs. The request may include information such as the program name, the day and time slot, the channel, and any other suitable information. Theserver 164 receives the request (step 6000). Theserver 164 determines ifother media controllers 12 are present on the network (step 6002). Assume that themedia controller 12B is present. Theserver 164 obtains the previous usage data of themedia controller 12B from the media controller previous usage data 25 (step 6004). For example, theserver 164 may obtain aMCU record 150 corresponding to themedia controller 12B. - The
server 164 determines the availability probability for themedia controller 12B (step 6006). The availability probability may be determined as discussed previously with regard toFIG. 16 , and for the sake of brevity will not be repeated again herein. Theserver 164 determines if the availability probability of themedia controller 12B is greater than the availability threshold (step 6008). The availability threshold may have been included in the request from themedia controller 12A, or may apply to allmedia controllers 12 and be stored on theserver 164. If the availability probability is not greater than the availability threshold, the process may return to step 6002 where theserver 164 determines if there are otherpresent media controllers 12. If the availability probability of themedia controller 12B is greater than the availability threshold, the identity of themedia controller 12B may be stored in an available media controllers list (step 6010). In one embodiment, as soon as anymedia controller 12 is determined to be available to schedule a recording, the identity of themedia controller 12 is provided to themedia controller 12A. In another embodiment, the availability probability of eachmedia controller 12 coupled to thenetwork 26 may be determined, and eachmedia controller 12 that is determined to be available to schedule a recording is identified to themedia controller 12A. - At
step 6002, if noother media controllers 12 are present then theserver 164 determines whether anymedia controllers 12 were identified as being available to schedule the recording of the program (step 6012). If not, theserver 164 may send themedia controller 12A a message indicating that there are noavailable media controllers 12 to schedule the recording of the program (step 6014). Otherwise, theserver 164 sends themedia controller 12A a message identifying theavailable media controllers 12. Themedia controller 12A may select one of theavailable media controllers 12, and send the selected media controller 12 a request to schedule the recording of the program. In another embodiment, rather than identify theavailable media controllers 12 to themedia controller 12A, theserver 164 may select anavailable media controller 12 and send the selected media controller 12 a request to schedule the recording of the program. Upon receipt of a confirmation from the selectedmedia controller 12, theserver 164 may then identify the selectedmedia controller 12 to themedia controller 12A, indicating that the selectedmedia controller 12 has scheduled the recording of the program. -
FIG. 20 is block diagram of another exemplary embodiment implemented in a peer-to-peer architecture. Similar toFIG. 1 , eachmedia controller 12 may have a mergedguide 30 containing program records 92 of allmedia controllers 12 coupled to the network. However, as discussed previously, themerged guide 30 is optional, and embodiments may be practiced in the absence of themerged guide 30. In the exemplary embodiment illustrated inFIG. 20 , eachmedia controller 12 contains media controllerprevious usage data 25 that contains previous usage data associated with therespective media controller 12, rather than previous usage data ofother media controllers 12. For example, the media controllerprevious usage data 25A includes previous usage data of themedia controller 12A, and the media controller previous usage data 25B includes previous usage data of themedia controller 12B. -
FIG. 21 is a flow chart illustrating an exemplary method for determining if anothermedia controller 12 is available to schedule a recording of a program in the exemplary peer-to-peer architecture illustrated inFIG. 20 . -
FIG. 21 will be discussed in conjunction withFIG. 20 . Assume for purposes of illustration that aviewer 14 requests themedia controller 12A to record two programs concurrently during the same time slot. Themedia controller 12A contains asingle tuner 34 and determines a conflict exists because themedia controller 12A can only record a single program at a time. Themedia controller 12A sends a request to themedia controller 12B scheduling the recording of one of the programs. The request may include information such as the program name, the day and time slot, the channel, and any other suitable information. - If the
media controller 12A includes themerged guide 30A, themedia controller 12A may provide theprogram record 92 corresponding to the program that is to be recorded. Themedia controller 12B receives the request (step 7000). Themedia controller 12B obtains the previous usage data of themedia controller 12B from the media controller previous usage data 25B (step 7002). Themedia controller 12B determines the availability probability for themedia controller 12B (step 7004). The availability probability may be determined as discussed previously with regard toFIG. 16 , and for the sake of brevity will not be repeated again herein. Themedia controller 12B determines if the availability probability of themedia controller 12B is greater than the availability threshold (step 7006). If so, themedia controller 12B may schedule the recording of the program (step 7008). Themedia controller 12B may then update therecording schedule 23B (step 7010). Themedia controller 12B sends an acceptance message to themedia controller 12A (step 7012). If the availability probability of themedia controller 12B is less than the availability threshold (step 7006), themedia controller 12B may send themedia controller 12A a denial message indicating themedia controller 12B is not available to record the program (step 7014). -
FIG. 22 illustrates awindow 168 which may be displayed on thedisplay device 16 according to one exemplary embodiment. Assume again for purposes of illustration that aviewer 14 requests themedia controller 12A to record two programs concurrently during the same time slot. Themedia controller 12A contains asingle tuner 34 and determines a conflict exists because themedia controller 12A can only record a single program at a time. Assume that themedia controller 12A determines that twomedia controllers 12 are coupled to thenetwork 26 that are available for scheduling a recording of one of the programs. Themedia controller 12A may have determined this in conjunction with the server 164 (FIG. 18 ), may have determined it by examining the remote media controllerprevious usage data 25A containing previous usage data of other media controllers 12 (FIG. 1 ), or may have determined it by asking eachother media controller 12 if themedia controller 12 is available to schedule the recording of the particular program. -
FIG. 23 is a flowchart illustrating an exemplary method for providing aviewer 14 an option to select anothermedia controller 12 to resolve a tuner conflict.FIG. 23 will be discussed in conjunction withFIG. 22 . Themedia controller 12A causes a display of thewindow 168 on thedisplay device 16A (step 8000). Thewindow 168 may identify to theviewer 14 that a conflict exists, and identify that amedia controller 12 identified as the “DEN DVR” and amedia controller 12 identified as the “BEDROOM DVR” are each available for recording the selected program. Theviewer 14 may select one of the identifiedmedia controllers 12 by, for example, actuating a check box adjacent to the selectedmedia controller 12, and actuating a “Use Selected” button. Alternatively, theviewer 14 may allow themedia controller 12A to select themedia controller 12 by actuating a “Select One” button. Assume that that theviewer 14 selects the DEN DVR (step 8002). Themedia controller 12A may then send the DEN DVR media controller 12 a request to schedule the recording of the program (step 8004). Themedia controller 12A may then update therecording schedule 23A as appropriate (step 8006). - In one embodiment, after a
media controller 12 records a program, it may transfer the recorded program over thenetwork 26 to themedia controller 12 which requested that it be recorded. Thus, thewindow 168 may include a “copy back” option which theviewer 14 may actuate to indicate that theviewer 14 would like the DENDVR media controller 12 to transmit the recorded program to themedia controller 12A upon completion of the recording. This may be communicated by themedia controller 12A to the DENDVR media controller 12 in the request to schedule the recording of the program. - In one embodiment, the
media controller 12 may implement all or part of the Universal Plug and Play (UPnP) set of networking protocols. Onemedia controller 12 may serve as a UPnP control point when requesting anothermedia controller 12 to schedule the recording of a program, for example. Eachmedia controller 12 may implement at least certain UPnP services, such as ConnectionManager, to enable the streaming of programs from onemedia controller 12 to anothermedia controller 12, ContentDirectory to provide access to the recorded music and videos at amedia controller 12, and ScheduledRecordings to allow eachmedia controller 12 access to therecording schedule 23 of theother media controllers 12. -
FIG. 24 illustrates anexemplary processing device 170 which may be used to implement amedia controller 12, or aserver 164, according to some embodiments. Theprocessing device 170 may, when implementing amedia controller 12, comprise a set top box, a digital video recorder, an intelligent gaming console, such as the Microsoft® Xbox®, Sony® PlayStation®, and Nintendo® GameCube®, a media console such as the Apple® TV®, personal computers, and the like. In addition to components discussed previously herein, theexemplary processing device 170 may also include acentral processing unit 172, asystem memory 174, and asystem bus 176. Thesystem bus 176 provides an interface for system components including, but not limited to, thesystem memory 174 and thecentral processing unit 172. Thecentral processing unit 172 can be any of various commercially available or proprietary processors. Dual microprocessors and other multi-processor architectures may also be employed as thecentral processing unit 172. - The
media controller 12 may include one ormore tuners 34 for selecting program content from a communications channel. Therecorder 36 may receive a source input from thetuner 34 and store the content onto a storage device, such as thestorage 38. Theretransmitter 40 may provide a stream of program content over thenetwork 26 to anothermedia controller 12. - The
system bus 176 can be any of several types of bus structures that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures. Thesystem memory 174 can include non-volatile memory 178 (e.g., read only memory (ROM), erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), etc.) and/or volatile memory 180 (e.g., random access memory (RAM)). A basic input/output system (BIOS) 182 can be stored in thenon-volatile memory 178, which can include the basic routines that help to transfer information between elements within theprocessing device 170. Thevolatile memory 180 can also include a high-speed RAM such as static RAM for caching data. - The
processing device 170 may further include astorage 38, which may comprise, for example, an internal hard disk drive (HDD) (e.g., enhanced integrated drive electronics (EIDE) or serial advanced technology attachment (SATA)) for storage. Theprocessing device 170 may further include an optical disk drive 184 (e.g., for reading a compact disk or DVD 186). The drives and associated computer readable media provide non-volatile storage of data, data structures, computer-executable instructions, and so forth. For theprocessing device 170, the drives and media accommodate the storage of any data in a suitable digital format. Although the description of computer-readable media above refers to an HDD and optical media such as a CD-ROM or DVD, it should be appreciated by those skilled in the art that other types of media which are readable by a computer, such as Zip disks, magnetic cassettes, flash memory cards, cartridges, and the like, may also be used in the exemplary operating environment, and further, any such media may contain computer-executable instructions for performing novel methods of the disclosed architecture. - A number of program modules can be stored in the drives and
volatile memory 180 including anoperating system 188 and one ormore program modules 190 which implement the functionality described herein. It is to be appreciated that the embodiments can be implemented with various commercially available operating systems or combinations of operating systems. All or a portion of the embodiments may be implemented as a computer program product, such as a computer usable medium having a computer-readable program code embodied therein. The computer-readable program code can include software instructions for implementing the functionality of embodiments described herein. Thecentral processing unit 172 in conjunction with theprogram modules 190 in thevolatile memory 180 may serve as a control system for theprocessing device 170 that is adapted to implement the functionality described herein. - In one embodiment, the
program modules 190 may be implemented in software and stored in thevolatile memory 180. However, the present disclosure is not limited thereto, and in other embodiments, theprogram modules 190 may be implemented in software, hardware, firmware, or any combination thereof. - A user can enter commands and information into the
processing device 170 through one or more wired/wireless input devices, for example, a keyboard and a pointing device, such as a mouse (not illustrated). Other input devices (not illustrated) may include a microphone, an infrared (IR) remote control, a joystick, a game pad, a stylus pen, a touch screen, or the like. These and other input devices are often connected to thecentral processing unit 172 through aninput device interface 192 that is coupled to thesystem bus 176 but can be connected by other interfaces such as a parallel port, an IEEE 1394 serial port, a game port, a universal serial bus (USB) port, an IR interface, etc. - The
processing device 170 may drive a separate orintegral display device 16, which may also be connected to thesystem bus 176 via an interface, such as avideo output port 194. Theprocessing device 170 may operate in a networked environment using a wired and/or wirelesscommunication network interface 196. Thenetwork interface 196 can facilitate wired and/or wireless communications to the network 26 (FIG. 1 ). - The
processing device 170 may be operable to communicate with any wireless devices or entities operatively disposed in wireless communication, for example, a printer, a scanner, a desktop and/or portable computer via wireless technologies, such as Wi-Fi and Bluetooth, for example. - Embodiments have been provided herein for purposes of illustration and explanation, but those skilled in the art will recognize that many additional and/or alternative embodiments are possible.
- Those skilled in the art will recognize improvements and modifications to the embodiments. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.
Claims (23)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/731,730 US20120114312A1 (en) | 2009-03-25 | 2010-03-25 | Method and system for determining the availability of a media controller |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16308609P | 2009-03-25 | 2009-03-25 | |
US12/731,730 US20120114312A1 (en) | 2009-03-25 | 2010-03-25 | Method and system for determining the availability of a media controller |
Publications (1)
Publication Number | Publication Date |
---|---|
US20120114312A1 true US20120114312A1 (en) | 2012-05-10 |
Family
ID=46019710
Family Applications (8)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/731,730 Abandoned US20120114312A1 (en) | 2009-03-25 | 2010-03-25 | Method and system for determining the availability of a media controller |
US12/731,817 Expired - Fee Related US9088757B2 (en) | 2009-03-25 | 2010-03-25 | Method and system for socially ranking programs |
US12/731,606 Expired - Fee Related US9288540B2 (en) | 2009-03-25 | 2010-03-25 | System and method for aggregating devices for intuitive browsing |
US12/731,771 Expired - Fee Related US9083932B2 (en) | 2009-03-25 | 2010-03-25 | Method and system for providing information from a program guide |
US12/731,676 Expired - Fee Related US9015757B2 (en) | 2009-03-25 | 2010-03-25 | Merged program guide |
US14/690,680 Abandoned US20150229993A1 (en) | 2009-03-25 | 2015-04-20 | Merged Program Guide |
US14/803,203 Abandoned US20150326938A1 (en) | 2009-03-25 | 2015-07-20 | Method And System For Socially Ranking Programs |
US15/069,203 Abandoned US20160196025A1 (en) | 2009-03-25 | 2016-03-14 | System And Method For Aggregating Devices For Intuitive Browsing |
Family Applications After (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/731,817 Expired - Fee Related US9088757B2 (en) | 2009-03-25 | 2010-03-25 | Method and system for socially ranking programs |
US12/731,606 Expired - Fee Related US9288540B2 (en) | 2009-03-25 | 2010-03-25 | System and method for aggregating devices for intuitive browsing |
US12/731,771 Expired - Fee Related US9083932B2 (en) | 2009-03-25 | 2010-03-25 | Method and system for providing information from a program guide |
US12/731,676 Expired - Fee Related US9015757B2 (en) | 2009-03-25 | 2010-03-25 | Merged program guide |
US14/690,680 Abandoned US20150229993A1 (en) | 2009-03-25 | 2015-04-20 | Merged Program Guide |
US14/803,203 Abandoned US20150326938A1 (en) | 2009-03-25 | 2015-07-20 | Method And System For Socially Ranking Programs |
US15/069,203 Abandoned US20160196025A1 (en) | 2009-03-25 | 2016-03-14 | System And Method For Aggregating Devices For Intuitive Browsing |
Country Status (1)
Country | Link |
---|---|
US (8) | US20120114312A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130073673A1 (en) * | 2011-09-19 | 2013-03-21 | Comcast Cable Communications, LLC. | Content Storage and Identification |
US20140195951A1 (en) * | 2013-01-07 | 2014-07-10 | Samsung Electronics Co. Ltd. | Method for managing schedule and electronic device thereof |
US8938467B2 (en) | 2009-03-25 | 2015-01-20 | Eloy Technology, Llc | System and method for intelligent storage of time shifted content |
US9392335B2 (en) | 2012-03-06 | 2016-07-12 | Comcast Cable Communications, Llc | Fragmented content |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5549903B2 (en) * | 2008-09-14 | 2014-07-16 | 雅英 田中 | Content receiving device and distribution device |
US9450818B2 (en) * | 2009-01-16 | 2016-09-20 | Broadcom Corporation | Method and system for utilizing a gateway to enable peer-to-peer communications in service provider networks |
US8200602B2 (en) * | 2009-02-02 | 2012-06-12 | Napo Enterprises, Llc | System and method for creating thematic listening experiences in a networked peer media recommendation environment |
US20120114312A1 (en) | 2009-03-25 | 2012-05-10 | Eloy Technology, Llc | Method and system for determining the availability of a media controller |
US9445158B2 (en) | 2009-11-06 | 2016-09-13 | Eloy Technology, Llc | Distributed aggregated content guide for collaborative playback session |
US8819566B2 (en) | 2010-05-04 | 2014-08-26 | Qwest Communications International Inc. | Integrated multi-modal chat |
US9003306B2 (en) | 2010-05-04 | 2015-04-07 | Qwest Communications International Inc. | Doodle-in-chat-context |
US9559869B2 (en) | 2010-05-04 | 2017-01-31 | Qwest Communications International Inc. | Video call handling |
US20110273576A1 (en) * | 2010-05-04 | 2011-11-10 | Qwest Communications International Inc. | Video Recording Environment |
US9501802B2 (en) | 2010-05-04 | 2016-11-22 | Qwest Communications International Inc. | Conversation capture |
US9356790B2 (en) | 2010-05-04 | 2016-05-31 | Qwest Communications International Inc. | Multi-user integrated task list |
EP2599001A4 (en) | 2010-07-28 | 2013-07-31 | Admiemobile Llc | Systems and methods for establishing and maintaining virtual computing clouds |
WO2012087285A1 (en) * | 2010-12-20 | 2012-06-28 | Intel Corporation | Techniques for management and presentation of content |
CN104363506B (en) * | 2011-02-16 | 2018-12-28 | Lg电子株式会社 | Television set |
US20120222074A1 (en) * | 2011-02-28 | 2012-08-30 | Stewart Lyle Mix | Methods and systems for providing electronic program guide data |
US9317530B2 (en) * | 2011-03-29 | 2016-04-19 | Facebook, Inc. | Face recognition based on spatial and temporal proximity |
US8843554B2 (en) * | 2011-05-26 | 2014-09-23 | Facebook, Inc. | Social data overlay |
US20120324491A1 (en) * | 2011-06-17 | 2012-12-20 | Microsoft Corporation | Video highlight identification based on environmental sensing |
CN102880608A (en) | 2011-07-13 | 2013-01-16 | 阿里巴巴集团控股有限公司 | Ranking and searching method and ranking and searching device based on interpersonal distance |
US9154821B2 (en) | 2011-11-03 | 2015-10-06 | Google Inc. | Systems and methods for displaying viewership and/or message data |
WO2013070177A1 (en) * | 2011-11-11 | 2013-05-16 | Echostar Ukraine L.L.C. | Video services receiver that provides a notification of upcoming program events having content that is preferred by the user, and related operating methods |
US9230212B2 (en) * | 2012-02-02 | 2016-01-05 | Peel Technologies, Inc. | Content based recommendation system |
WO2013137613A1 (en) * | 2012-03-12 | 2013-09-19 | Samsung Electronics Co., Ltd. | Method and apparatus for determining content type of video content |
CA2791935A1 (en) * | 2012-03-30 | 2013-09-30 | Disternet Technology, Inc. | Transcoding system and method |
US9875488B2 (en) * | 2012-03-30 | 2018-01-23 | Rewardstyle, Inc. | Targeted marketing based on social media interaction |
US20130347038A1 (en) * | 2012-06-21 | 2013-12-26 | United Video Properties, Inc. | Systems and methods for searching for media based on derived attributes |
CN102892043B (en) * | 2012-09-29 | 2016-06-22 | 中兴通讯股份有限公司 | The update method of mobile TV service instruction, television platform and terminal |
US9164979B1 (en) * | 2012-11-14 | 2015-10-20 | Amazon Technologies, Inc. | Implicit ratings |
US9609386B2 (en) | 2012-12-18 | 2017-03-28 | Rentak Corporation | System and methods for analyzing content engagement in conjunction with social media |
US9122759B2 (en) * | 2012-12-18 | 2015-09-01 | Eharmony, Inc. | Systems and methods for online social matchmaking |
US9191689B2 (en) * | 2012-12-21 | 2015-11-17 | Rovi Guides, Inc. | Systems and methods for translating generic requests into device specific requests based on location information |
KR20140085931A (en) * | 2012-12-28 | 2014-07-08 | 주식회사 알티캐스트 | Method and Apparatus for providing broadcast service through detecting of hand movement |
US9038106B2 (en) * | 2013-02-04 | 2015-05-19 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Display tag cloud viewer interactive interface for enabling a viewer to quickly and effectively access a desired television program for viewing |
MX2015011424A (en) * | 2013-03-06 | 2016-06-06 | Arthur J Zito Jr | Multi-media presentation system. |
US9137566B2 (en) * | 2013-06-28 | 2015-09-15 | Sony Corporation | Distribution system, reception apparatus, and methods for transitioning to new services |
US9411942B2 (en) * | 2013-08-30 | 2016-08-09 | D&M Holdings, Inc. | Network device, system and method for rendering an interactive multimedia playlist |
US9246867B2 (en) * | 2014-02-14 | 2016-01-26 | Internationa Business Machines Corporation | Excluding recipients of a message based on content of the message |
US10372747B1 (en) * | 2014-02-25 | 2019-08-06 | Google Llc | Defining content presentation interfaces based on identified similarities between received and stored media content items |
WO2015161787A1 (en) * | 2014-04-21 | 2015-10-29 | Huawei Technologies Co., Ltd. | System and method for servicing one or more user equipments through one or more streams |
US10405044B1 (en) * | 2014-09-30 | 2019-09-03 | Apple Inc. | Content notification system and method |
JP5744362B1 (en) * | 2014-10-10 | 2015-07-08 | 株式会社日立製作所 | Management system for managing computer systems |
US10841640B2 (en) * | 2014-11-04 | 2020-11-17 | Comcast Cable Communications, Llc | Methods and systems for displaying content based on preference information |
CN104394432B (en) * | 2014-11-26 | 2018-03-16 | 广州华多网络科技有限公司 | Creation method and service equipment between a kind of net cast |
US9613586B2 (en) * | 2014-12-23 | 2017-04-04 | Roku, Inc. | Providing a representation for a device connected to a display device |
US9977834B2 (en) * | 2015-04-03 | 2018-05-22 | Facebook, Inc. | Personalizing content associated with a third party system for presentation to an online system user based on interactions performed by the user with content from the third party system |
US9313552B1 (en) * | 2015-04-30 | 2016-04-12 | Ecopro Ict, Inc. | Method and apparatus for relaying terrestrial broadcast signal |
US11209972B2 (en) | 2015-09-02 | 2021-12-28 | D&M Holdings, Inc. | Combined tablet screen drag-and-drop interface |
US11113022B2 (en) * | 2015-05-12 | 2021-09-07 | D&M Holdings, Inc. | Method, system and interface for controlling a subwoofer in a networked audio system |
US20160337688A1 (en) * | 2015-05-15 | 2016-11-17 | Cox Communications, Inc. | Systems and Methods of Time Shifted Rewind |
US20160357364A1 (en) * | 2015-06-07 | 2016-12-08 | Apple Inc. | Graphical User Interface for a Document Viewing Application |
US10462524B2 (en) * | 2015-06-23 | 2019-10-29 | Facebook, Inc. | Streaming media presentation system |
CN105096144A (en) * | 2015-08-24 | 2015-11-25 | 小米科技有限责任公司 | Social relation analysis method and social relation analysis device |
US20170064405A1 (en) * | 2015-08-26 | 2017-03-02 | Caavo Inc | System and method for personalizing and recommending content |
US10212359B2 (en) | 2015-12-30 | 2019-02-19 | Cerner Innovation, Inc. | Camera normalization |
US9905267B1 (en) * | 2016-07-13 | 2018-02-27 | Gracenote, Inc. | Computing system with DVE template selection and video content item generation feature |
JP6743604B2 (en) * | 2016-09-12 | 2020-08-19 | ソニー株式会社 | Multi-camera system, camera, camera processing method, confirmation device, and confirmation device processing method |
CN106331817B (en) * | 2016-09-27 | 2019-03-22 | 北京四达时代软件技术股份有限公司 | Set-top box display interface providing method and device |
CN107566487A (en) * | 2017-09-01 | 2018-01-09 | 安徽教育网络出版有限公司 | The method of multiple terminal self-adapting matching based on Automatic Typesetting |
US10904615B2 (en) * | 2017-09-07 | 2021-01-26 | International Business Machines Corporation | Accessing and analyzing data to select an optimal line-of-sight and determine how media content is distributed and displayed |
US10571991B2 (en) * | 2018-04-30 | 2020-02-25 | Centurylink Intellectual Property Llc | Method and system for implementing auto-switching or auto-playing video content |
US20210352375A1 (en) * | 2018-09-11 | 2021-11-11 | Opentv, Inc. | Techniques for configuring and managing user interfaces of a content guide for multiple device types |
JP2023504814A (en) * | 2019-12-02 | 2023-02-07 | ウィーブ ピーティーワイ リミテッド | Method and system for aggregating live streams |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020097986A1 (en) * | 2001-01-23 | 2002-07-25 | Nec Corporation | Broadcast storage system with reduced user's control actions |
US20050028208A1 (en) * | 1998-07-17 | 2005-02-03 | United Video Properties, Inc. | Interactive television program guide with remote access |
US20060239642A1 (en) * | 2005-04-20 | 2006-10-26 | Sony Corporation | Communication system, recording apparatus and method, recording medium, and program |
US20070104456A1 (en) * | 2005-11-04 | 2007-05-10 | Guideworks, Llc | Systems and methods for recording programs using a network recording device as supplemental storage |
US20080216136A1 (en) * | 2007-03-03 | 2008-09-04 | Howard Pfeffer | Methods and apparatus supporting the recording of multiple simultaneously broadcast programs communicated using the same communications channel |
US20090010610A1 (en) * | 2007-07-06 | 2009-01-08 | At&T Knowledge Ventures, Lp | System and method of recording media content |
US20090100478A1 (en) * | 2007-10-12 | 2009-04-16 | Guideworks, Llc | Storage management of a recording device in a multi-user system |
US7546283B2 (en) * | 2005-08-15 | 2009-06-09 | Sony Corporation | Networked personal video recorder with shared resource and distributed content |
US20090220216A1 (en) * | 2007-08-22 | 2009-09-03 | Time Warner Cable Inc. | Apparatus and method for conflict resolution in remote control of digital video recorders and the like |
US20100135639A1 (en) * | 2005-09-30 | 2010-06-03 | Guideworks, Llc | Systems and methods for recording and playing back programs having desirable recording attributes |
US20120174178A1 (en) * | 2003-08-29 | 2012-07-05 | Sony Electronics Inc. | Preference based program deletion in a pvr |
Family Cites Families (284)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4468732A (en) | 1975-12-31 | 1984-08-28 | International Business Machines Corporation | Automated logical file design system with reduced data base redundancy |
US4965825A (en) | 1981-11-03 | 1990-10-23 | The Personalized Mass Media Corporation | Signal processing apparatus and methods |
US4694490A (en) | 1981-11-03 | 1987-09-15 | Harvey John C | Signal processing apparatus and methods |
US4827447A (en) | 1986-06-13 | 1989-05-02 | International Business Machines Corporation | Method for selectively returning to the beginning or the previous revision point in document edition |
CA1341310C (en) | 1988-07-15 | 2001-10-23 | Robert Filepp | Interactive computer network and method of operation |
US4956774A (en) | 1988-09-02 | 1990-09-11 | International Business Machines Corporation | Data base optimizer using most frequency values statistics |
US5121478A (en) | 1988-09-08 | 1992-06-09 | Xerox Corporation | Window system with independently replaceable window functionality |
US5115501A (en) | 1988-11-04 | 1992-05-19 | International Business Machines Corporation | Procedure for automatically customizing the user interface of application programs |
US5353121A (en) | 1989-10-30 | 1994-10-04 | Starsight Telecast, Inc. | Television schedule system |
JPH0792744B2 (en) | 1990-08-20 | 1995-10-09 | インターナショナル・ビジネス・マシーンズ・コーポレイション | A method of installing multi-level application software on a data processing device. |
US5587734A (en) | 1990-09-28 | 1996-12-24 | Ictv, Inc. | User interface for selecting television information services through pseudo-channel access |
US5594507A (en) | 1990-09-28 | 1997-01-14 | Ictv, Inc. | Compressed digital overlay controller and method for MPEG type video signal |
US5526034A (en) | 1990-09-28 | 1996-06-11 | Ictv, Inc. | Interactive home information system with signal assignment |
US5592660A (en) | 1991-03-04 | 1997-01-07 | Fujitsu Limited | Database management system to alternately perform retrieval process and updating process |
US6724431B1 (en) * | 1991-03-28 | 2004-04-20 | Texas Instruments Incorporated | Program network specific information for TV or radio |
CA2067650C (en) | 1991-07-24 | 1996-10-22 | Eric Jonathan Bauer | Method and apparatus for operating a computer-based file system |
US5343239A (en) * | 1991-11-20 | 1994-08-30 | Zing Systems, L.P. | Transaction based interactive television system |
US5446891A (en) | 1992-02-26 | 1995-08-29 | International Business Machines Corporation | System for adjusting hypertext links with weighed user goals and activities |
US5404510A (en) | 1992-05-21 | 1995-04-04 | Oracle Corporation | Database index design based upon request importance and the reuse and modification of similar existing indexes |
US5223924A (en) | 1992-05-27 | 1993-06-29 | North American Philips Corporation | System and method for automatically correlating user preferences with a T.V. program information database |
KR100295386B1 (en) * | 1992-12-09 | 2001-09-22 | 마크 홀린저 | Set-top terminals for cable television delivery systems |
US5719786A (en) | 1993-02-03 | 1998-02-17 | Novell, Inc. | Digital media data stream network management system |
US5579055A (en) | 1993-06-07 | 1996-11-26 | Scientific-Atlanta, Inc. | Electronic program guide and text channel data controller |
US5594509A (en) | 1993-06-22 | 1997-01-14 | Apple Computer, Inc. | Method and apparatus for audio-visual interface for the display of multiple levels of information on a display |
GB9315914D0 (en) | 1993-07-31 | 1993-09-15 | Smithkline Beecham Plc | Novel compound |
US5696897A (en) | 1994-01-31 | 1997-12-09 | Sun Microsystems, Inc. | Method and apparatus for a multi-layer system quiescent suspend and resume operation |
JP3500741B2 (en) | 1994-03-01 | 2004-02-23 | ソニー株式会社 | Channel selection method and channel selection device for television broadcasting |
EP1558028B1 (en) | 1994-05-20 | 2012-10-10 | United Video Properties, Inc. | Improved electronic television program schedule guide system and method |
US5948040A (en) | 1994-06-24 | 1999-09-07 | Delorme Publishing Co. | Travel reservation information and planning system |
US5528304A (en) | 1994-07-22 | 1996-06-18 | Zenith Electronics Corp. | Picture-in-picture feedback for channel related features |
US5598536A (en) | 1994-08-09 | 1997-01-28 | Shiva Corporation | Apparatus and method for providing remote users with the same unique IP address upon each network access |
US5760838A (en) | 1994-09-30 | 1998-06-02 | Intel Corporation | Method and system for configuring a display |
US5623613A (en) | 1994-11-29 | 1997-04-22 | Microsoft Corporation | System for displaying programming information |
US5758257A (en) | 1994-11-29 | 1998-05-26 | Herz; Frederick | System and method for scheduling broadcast of and access to video programs and other data using customer profiles |
EP0718784B1 (en) | 1994-12-20 | 2003-08-27 | Sun Microsystems, Inc. | Method and system for the retrieval of personalized information |
US5530852A (en) | 1994-12-20 | 1996-06-25 | Sun Microsystems, Inc. | Method for extracting profiles and topics from a first file written in a first markup language and generating files in different markup languages containing the profiles and topics for use in accessing data described by the profiles and topics |
US5596373A (en) | 1995-01-04 | 1997-01-21 | Sony Corporation | Method and apparatus for providing program oriented information in a multiple station broadcast system |
US5710884A (en) | 1995-03-29 | 1998-01-20 | Intel Corporation | System for automatically updating personal profile server with updates to additional user information gathered from monitoring user's electronic consuming habits generated on computer during use |
US5550576A (en) | 1995-04-17 | 1996-08-27 | Starsight Telecast Incorporated | Method and apparatus for merging television program schedule information received from multiple television schedule information sources |
US5666645A (en) | 1995-04-26 | 1997-09-09 | News America Publications, Inc. | Data management and distribution system and method for an electronic television program guide |
US5630119A (en) | 1995-05-05 | 1997-05-13 | Microsoft Corporation | System and method for displaying program listings in an interactive electronic program guide |
US5600378A (en) | 1995-05-22 | 1997-02-04 | Scientific-Atlanta, Inc. | Logical and composite channel mapping in an MPEG network |
US5701451A (en) | 1995-06-07 | 1997-12-23 | International Business Machines Corporation | Method for fulfilling requests of a web browser |
US5652613A (en) | 1995-06-07 | 1997-07-29 | Lazarus; David Beryl | Intelligent electronic program guide memory management system and method |
US5801753A (en) | 1995-08-11 | 1998-09-01 | General Instrument Corporation Of Delaware | Method and apparatus for providing an interactive guide to events available on an information network |
US5712979A (en) | 1995-09-20 | 1998-01-27 | Infonautics Corporation | Method and apparatus for attaching navigational history information to universal resource locator links on a world wide web page |
US5717860A (en) | 1995-09-20 | 1998-02-10 | Infonautics Corporation | Method and apparatus for tracking the navigation path of a user on the world wide web |
US5737599A (en) | 1995-09-25 | 1998-04-07 | Rowe; Edward R. | Method and apparatus for downloading multi-page electronic documents with hint information |
WO1997012328A1 (en) | 1995-09-25 | 1997-04-03 | Adobe Systems Incorporated | Optimum access to electronic documents |
US5844560A (en) | 1995-09-29 | 1998-12-01 | Intel Corporation | Graphical user interface control element |
US6388714B1 (en) | 1995-10-02 | 2002-05-14 | Starsight Telecast Inc | Interactive computer system for providing television schedule information |
WO1997017793A1 (en) | 1995-11-06 | 1997-05-15 | Philips Electronics N.V. | Television receiver with caller-id feature |
US5793438A (en) | 1995-11-13 | 1998-08-11 | Hyundai Electronics America | Electronic program guide with enhanced presentation |
US5695400A (en) | 1996-01-30 | 1997-12-09 | Boxer Jam Productions | Method of managing multi-player game playing over a network |
US5694176A (en) | 1996-02-29 | 1997-12-02 | Hughes Electronics | Method and apparatus for generating television program guides with category selection overlay |
US5774664A (en) | 1996-03-08 | 1998-06-30 | Actv, Inc. | Enhanced video programming system and method for incorporating and displaying retrieved integrated internet information segments |
US5778187A (en) | 1996-05-09 | 1998-07-07 | Netcast Communications Corp. | Multicasting method and apparatus |
US5784058A (en) | 1996-05-28 | 1998-07-21 | Sun Microsystems, Inc. | User-controllable persistent browser display pages |
US6034689A (en) | 1996-06-03 | 2000-03-07 | Webtv Networks, Inc. | Web browser allowing navigation between hypertext objects using remote control |
US5896444A (en) | 1996-06-03 | 1999-04-20 | Webtv Networks, Inc. | Method and apparatus for managing communications between a client and a server in a network |
US5727129A (en) | 1996-06-04 | 1998-03-10 | International Business Machines Corporation | Network system for profiling and actively facilitating user activities |
US5945988A (en) | 1996-06-06 | 1999-08-31 | Intel Corporation | Method and apparatus for automatically determining and dynamically updating user preferences in an entertainment system |
US5813007A (en) | 1996-06-20 | 1998-09-22 | Sun Microsystems, Inc. | Automatic updates of bookmarks in a client computer |
PT932398E (en) | 1996-06-28 | 2006-09-29 | Ortho Mcneil Pharm Inc | USE OF THE SURFACE OR ITS DERIVATIVES FOR THE PRODUCTION OF A MEDICINAL PRODUCT FOR THE TREATMENT OF MANIAC-DEPRESSIVE BIPOLAR DISTURBLES |
US5801747A (en) | 1996-11-15 | 1998-09-01 | Hyundai Electronics America | Method and apparatus for creating a television viewer profile |
US5867495A (en) | 1996-11-18 | 1999-02-02 | Mci Communications Corporations | System, method and article of manufacture for communications utilizing calling, plans in a hybrid network |
US6141058A (en) | 1996-12-16 | 2000-10-31 | Thomson Licensing S.A. | Television receiver having a user-editable telephone system caller-ID feature |
US5854897A (en) | 1996-12-27 | 1998-12-29 | Quantum Systems, Inc. | Network communications marketing system |
US6349297B1 (en) | 1997-01-10 | 2002-02-19 | Venson M. Shaw | Information processing system for directing information request from a particular user/application, and searching/forwarding/retrieving information from unknown and large number of information resources |
US5850218A (en) | 1997-02-19 | 1998-12-15 | Time Warner Entertainment Company L.P. | Inter-active program guide with default selection control |
US5907843A (en) | 1997-02-27 | 1999-05-25 | Apple Computer, Inc. | Replaceable and extensible navigator component of a network component system |
US6034683A (en) | 1997-03-26 | 2000-03-07 | Netscape Communications Corporation | Time line for desktop metaphor |
US5893091A (en) | 1997-04-11 | 1999-04-06 | Immediata Corporation | Multicasting with key words |
US20020038387A1 (en) | 1997-05-30 | 2002-03-28 | Fuiks Kenneth A. | Computer system environmental messaging structure |
IL121230A (en) | 1997-07-03 | 2004-05-12 | Nds Ltd | Intelligent electronic program guide |
US5990890A (en) | 1997-08-25 | 1999-11-23 | Liberate Technologies | System for data entry and navigation in a user interface |
US6119098A (en) | 1997-10-14 | 2000-09-12 | Patrice D. Guyot | System and method for targeting and distributing advertisements over a distributed network |
US6351467B1 (en) | 1997-10-27 | 2002-02-26 | Hughes Electronics Corporation | System and method for multicasting multimedia content |
US6442598B1 (en) | 1997-10-27 | 2002-08-27 | Microsoft Corporation | System and method for delivering web content over a broadcast medium |
US7954056B2 (en) * | 1997-12-22 | 2011-05-31 | Ricoh Company, Ltd. | Television-based visualization and navigation interface |
WO1999035849A1 (en) | 1998-01-05 | 1999-07-15 | Amiga Development Llc | System for combining electronic program guide data |
US6072486A (en) | 1998-01-13 | 2000-06-06 | Microsoft Corporation | System and method for creating and customizing a deskbar |
US7185355B1 (en) | 1998-03-04 | 2007-02-27 | United Video Properties, Inc. | Program guide system with preference profiles |
US6311175B1 (en) | 1998-03-06 | 2001-10-30 | Perot Systems Corp. | System and method for generating performance models of complex information technology systems |
US6459427B1 (en) | 1998-04-01 | 2002-10-01 | Liberate Technologies | Apparatus and method for web-casting over digital broadcast TV network |
US6400478B1 (en) * | 1998-04-02 | 2002-06-04 | Sorrento Networks, Inc. | Wavelength-division-multiplexed optical transmission system with expanded bidirectional transmission capacity over a single fiber |
US6742183B1 (en) * | 1998-05-15 | 2004-05-25 | United Video Properties, Inc. | Systems and methods for advertising television networks, channels, and programs |
US6735701B1 (en) | 1998-06-25 | 2004-05-11 | Macarthur Investments, Llc | Network policy management and effectiveness system |
JP2000013708A (en) | 1998-06-26 | 2000-01-14 | Hitachi Ltd | Program selection aiding device |
ES2188203T3 (en) | 1998-07-17 | 2003-06-16 | United Video Properties Inc | GUIDE SYSTEM OF INTERACTIVE TELEVISION PROGRAMS THAT HAVE MULTIPLE DEVICES IN A PARTICULAR ADDRESS. |
US6505348B1 (en) | 1998-07-29 | 2003-01-07 | Starsight Telecast, Inc. | Multiple interactive electronic program guide system and methods |
US7603685B2 (en) * | 1998-11-03 | 2009-10-13 | United Video Properties, Inc. | Program guide system with combination category search |
US6317881B1 (en) | 1998-11-04 | 2001-11-13 | Intel Corporation | Method and apparatus for collecting and providing viewer feedback to a broadcast |
US6823344B1 (en) | 1998-12-03 | 2004-11-23 | International Business Machines Corporation | File manager system providing faster and more efficient interactive user access to files in computer displays |
US6452612B1 (en) | 1998-12-18 | 2002-09-17 | Parkervision, Inc. | Real time video production system and method |
US6760916B2 (en) * | 2000-01-14 | 2004-07-06 | Parkervision, Inc. | Method, system and computer program product for producing and distributing enhanced media downstreams |
US7454777B1 (en) | 1999-03-01 | 2008-11-18 | Sony Corporation | Satellite system/internet system with display option palette with multiple filtering options |
US6694316B1 (en) * | 1999-03-23 | 2004-02-17 | Microstrategy Inc. | System and method for a subject-based channel distribution of automatic, real-time delivery of personalized informational and transactional data |
US6434621B1 (en) | 1999-03-31 | 2002-08-13 | Hannaway & Associates | Apparatus and method of using the same for internet and intranet broadcast channel creation and management |
US6486892B1 (en) | 1999-04-07 | 2002-11-26 | Joseph L. Stern | System and method for accessing, manipulating and viewing internet and non-internet related information and for controlling networked devices |
US8266657B2 (en) * | 2001-03-15 | 2012-09-11 | Sling Media Inc. | Method for effectively implementing a multi-room television system |
US6889382B1 (en) | 1999-07-27 | 2005-05-03 | Mediaone Group, Inc. | Remote TV control system |
WO2001016781A1 (en) | 1999-08-30 | 2001-03-08 | Kerbango, Inc. | Search engine to monitor and verify streaming audio sources |
US6476827B1 (en) | 1999-08-31 | 2002-11-05 | Xoucin, Inc. | Method and apparatus for creating and maintaining a scrapbook of information pages |
AU7588100A (en) * | 1999-09-16 | 2001-04-17 | Ixl Enterprises, Inc. | System and method for linking media content |
TW519836B (en) * | 1999-09-24 | 2003-02-01 | United Video Properties Inc | Interactive television program guide with enhanced user interface |
US7444661B1 (en) * | 1999-09-30 | 2008-10-28 | Gateway Inc. | Electronic program guide utilizing multiple tuning sources |
US7853974B2 (en) | 1999-10-05 | 2010-12-14 | Thomson Licensing | System for collating data from multiple sources to form a composite program guide for display |
US7958457B1 (en) * | 1999-12-20 | 2011-06-07 | Wireless Agents, Llc | Method and apparatus for scheduling presentation of digital content on a personal communication device |
US6754904B1 (en) * | 1999-12-30 | 2004-06-22 | America Online, Inc. | Informing network users of television programming viewed by other network users |
US7373650B1 (en) | 2000-02-01 | 2008-05-13 | Scientific-Atlanta, Inc. | Apparatuses and methods to enable the simultaneous viewing of multiple television channels and electronic program guide content |
CN100401754C (en) | 2000-03-17 | 2008-07-09 | 皇家菲利浦电子有限公司 | Method and apapratus for rating database objects |
US6642938B1 (en) * | 2000-03-17 | 2003-11-04 | At&T Corp. | Real time personal channel |
US7260564B1 (en) * | 2000-04-07 | 2007-08-21 | Virage, Inc. | Network video guide and spidering |
US7222163B1 (en) * | 2000-04-07 | 2007-05-22 | Virage, Inc. | System and method for hosting of video content over a network |
US20060259926A1 (en) | 2000-07-20 | 2006-11-16 | Digital Deck, Inc. | Adaptable programming guide for networked devices |
US20050022241A1 (en) | 2000-10-31 | 2005-01-27 | Griggs Theodore L. | Adaptable programming guide for networked devices |
US20020053081A1 (en) | 2000-10-31 | 2002-05-02 | Digitaldeck, Inc. | Adaptable programming guide for networked devices |
US7149511B1 (en) | 2000-08-31 | 2006-12-12 | Rosetta-Wireless Corporation | Wireless intelligent personal server |
US7689510B2 (en) | 2000-09-07 | 2010-03-30 | Sonic Solutions | Methods and system for use in network management of content |
US8302127B2 (en) * | 2000-09-25 | 2012-10-30 | Thomson Licensing | System and method for personalized TV |
CA2428946C (en) | 2000-11-14 | 2010-06-22 | Scientific-Atlanta, Inc. | Networked subscriber television distribution |
US20020112244A1 (en) * | 2000-12-19 | 2002-08-15 | Shih-Ping Liou | Collaborative video delivery over heterogeneous networks |
US6986154B1 (en) | 2001-01-31 | 2006-01-10 | Keen Personal Media, Inc. | System and method for selecting content to be presented to a user |
US20020166123A1 (en) * | 2001-03-02 | 2002-11-07 | Microsoft Corporation | Enhanced television services for digital video recording and playback |
US20020174428A1 (en) | 2001-03-28 | 2002-11-21 | Philips Electronics North America Corp. | Method and apparatus for generating recommendations for a plurality of users |
US8060906B2 (en) | 2001-04-06 | 2011-11-15 | At&T Intellectual Property Ii, L.P. | Method and apparatus for interactively retrieving content related to previous query results |
US8677416B2 (en) * | 2001-07-17 | 2014-03-18 | Ati Technologies, Inc. | Method, system and software for display of multiple media channels |
JP4201706B2 (en) * | 2001-08-06 | 2008-12-24 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | System and method for combining several EPG sources into one reliable EPG |
US20030048808A1 (en) | 2001-09-12 | 2003-03-13 | Stahl Thomas Anthony | Method and apparatus for changing received streaming content channels |
US8042132B2 (en) | 2002-03-15 | 2011-10-18 | Tvworks, Llc | System and method for construction, delivery and display of iTV content |
US8365230B2 (en) * | 2001-09-19 | 2013-01-29 | Tvworks, Llc | Interactive user interface for television applications |
US20030066074A1 (en) * | 2001-09-29 | 2003-04-03 | Koninklijke Philips Electronics N.V. | System and method for displaying group viewing statistics during television viewing |
US20030084452A1 (en) | 2001-10-11 | 2003-05-01 | Ryan Timothy L. | Entertainment portal |
US7246060B2 (en) | 2001-11-06 | 2007-07-17 | Microsoft Corporation | Natural input recognition system and method using a contextual mapping engine and adaptive user bias |
US7571452B2 (en) * | 2001-11-13 | 2009-08-04 | Koninklijke Philips Electronics N.V. | Method and apparatus for recommending items of interest to a user based on recommendations for one or more third parties |
US7136871B2 (en) * | 2001-11-21 | 2006-11-14 | Microsoft Corporation | Methods and systems for selectively displaying advertisements |
US7283992B2 (en) * | 2001-11-30 | 2007-10-16 | Microsoft Corporation | Media agent to suggest contextually related media content |
US20030110500A1 (en) * | 2001-12-06 | 2003-06-12 | Rodriguez Arturo A. | Prediction-based adaptative control of television viewing functionality |
US20030200336A1 (en) | 2002-02-15 | 2003-10-23 | Suparna Pal | Apparatus and method for the delivery of multiple sources of media content |
US7690012B2 (en) * | 2002-02-28 | 2010-03-30 | Scientific-Atlanta, Inc. | Positive parental control |
US20040078814A1 (en) | 2002-03-29 | 2004-04-22 | Digeo, Inc. | Module-based interactive television ticker |
AU2003239385A1 (en) * | 2002-05-10 | 2003-11-11 | Richard R. Reisman | Method and apparatus for browsing using multiple coordinated device |
US20030237093A1 (en) | 2002-06-19 | 2003-12-25 | Marsh David J. | Electronic program guide systems and methods for handling multiple users |
US20040003393A1 (en) * | 2002-06-26 | 2004-01-01 | Koninlkijke Philips Electronics N.V. | Method, system and apparatus for monitoring use of electronic devices by user detection |
US20040078807A1 (en) * | 2002-06-27 | 2004-04-22 | Fries Robert M. | Aggregated EPG manager |
DE10243096A1 (en) * | 2002-09-16 | 2004-03-25 | Michael Thiemann | Streaming portal, computer device with the streaming portal, method for providing the streaming portal, computer program product, computer-readable medium, computer network for providing the streaming portal, first, second and third computer systems and use thereof |
US20040060061A1 (en) | 2002-09-20 | 2004-03-25 | Imagictv Inc. | Multiple view video feed |
US20040068739A1 (en) | 2002-10-04 | 2004-04-08 | Russ Samuel H. | Networked multimedia system having a multi-room interactive network guide |
US20050155052A1 (en) | 2002-10-04 | 2005-07-14 | Barbara Ostrowska | Parental control for a networked multiroom system |
US7296295B2 (en) * | 2002-12-11 | 2007-11-13 | Broadcom Corporation | Media processing system supporting different media formats via server-based transcoding |
JP4651263B2 (en) | 2002-12-18 | 2011-03-16 | ソニー株式会社 | Information recording apparatus and information recording method |
WO2004064296A2 (en) | 2003-01-07 | 2004-07-29 | Home Box Office | Integrated media viewing environment |
US20040181811A1 (en) * | 2003-03-13 | 2004-09-16 | Rakib Selim Shlomo | Thin DOCSIS in-band management for interactive HFC service delivery |
JP2006524473A (en) | 2003-04-03 | 2006-10-26 | セドナ・パテント・サービシズ・エルエルシー | Content notification and delivery |
US20040268403A1 (en) * | 2003-06-26 | 2004-12-30 | Microsoft Corporation | Context-sensitive television tags |
US7373389B2 (en) | 2003-08-27 | 2008-05-13 | Spoke Software | Periodic update of data in a relationship system |
US7457872B2 (en) * | 2003-10-15 | 2008-11-25 | Microsoft Corporation | On-line service/application monitoring and reporting system |
US20050097595A1 (en) * | 2003-11-05 | 2005-05-05 | Matti Lipsanen | Method and system for controlling access to content |
US20050138659A1 (en) | 2003-12-17 | 2005-06-23 | Gilles Boccon-Gibod | Personal video recorders with automated buffering |
JP4900801B2 (en) * | 2003-12-23 | 2012-03-21 | ザ・ディレクティービー・グループ・インコーポレイテッド | System and method for distributing media in a pay-per-play architecture with remote playback within an enterprise |
US7895625B1 (en) | 2003-12-24 | 2011-02-22 | Time Warner, Inc. | System and method for recommending programming to television viewing communities |
US20050149987A1 (en) | 2003-12-24 | 2005-07-07 | Gilles Boccon-Gibod | Television viewing communities |
US20050193015A1 (en) | 2004-02-19 | 2005-09-01 | Sandraic Logic, Llc A California Limited Liability Company | Method and apparatus for organizing, sorting and navigating multimedia content |
US7293034B2 (en) | 2004-02-23 | 2007-11-06 | Microsoft Coporation | Dynamically customizing a user interface for the aggregation of content |
US8356317B2 (en) | 2004-03-04 | 2013-01-15 | Sharp Laboratories Of America, Inc. | Presence based technology |
US20050237699A1 (en) * | 2004-04-21 | 2005-10-27 | David Carroll | Multi-screen mobile computing system |
US20060053470A1 (en) * | 2004-04-30 | 2006-03-09 | Vulcan Inc. | Management and non-linear presentation of augmented broadcasted or streamed multimedia content |
US8943537B2 (en) | 2004-07-21 | 2015-01-27 | Cox Communications, Inc. | Method and system for presenting personalized television program recommendation to viewers |
US7380264B2 (en) * | 2004-08-13 | 2008-05-27 | Microsoft Corporation | Systems for unifying heterogeneous multimedia tuners |
US20070100834A1 (en) | 2004-09-15 | 2007-05-03 | John Landry | System and method for managing data in a distributed computer system |
US8386513B2 (en) * | 2004-11-12 | 2013-02-26 | Enr Services Inc. | System and method for analyzing, integrating and updating media contact and content data |
US20060117354A1 (en) | 2004-11-29 | 2006-06-01 | Mark Schutte | Consolidating video-on-demand (VOD) services with multi-room personal video recording (MR-PVR) services |
WO2006066052A2 (en) * | 2004-12-16 | 2006-06-22 | Sonic Solutions | Methods and systems for use in network management of content |
US20060168126A1 (en) | 2004-12-21 | 2006-07-27 | Jose Costa-Requena | Aggregated content listing for ad-hoc peer to peer networks |
US7966382B2 (en) * | 2004-12-29 | 2011-06-21 | Intel Corporation | Enabling access to media content in media servers in remote networks |
US8230456B2 (en) * | 2005-01-05 | 2012-07-24 | Yahoo! Inc. | Framework for delivering a plurality of content and providing for interaction with the same in a television environment |
US8381240B2 (en) | 2005-10-27 | 2013-02-19 | Ronald Jacoby | Framework for providing digital home services |
US7546623B2 (en) | 2005-01-05 | 2009-06-09 | Microsoft Corporation | Methods and systems for providing multi-source content in electronic program guides |
US20070143128A1 (en) | 2005-12-20 | 2007-06-21 | Tokarev Maxim L | Method and system for providing customized recommendations to users |
US20060161953A1 (en) | 2005-01-20 | 2006-07-20 | Sbc Knowledge Ventures, L.P. | System and method of providing a combined content guide for an entertainment system |
TW200704183A (en) * | 2005-01-27 | 2007-01-16 | Matrix Tv | Dynamic mosaic extended electronic programming guide for television program selection and display |
US8452885B2 (en) * | 2005-02-23 | 2013-05-28 | Cisco Technology, Inc. | Playout-dependent unicast streaming of digital video content |
US20060218581A1 (en) | 2005-03-01 | 2006-09-28 | Barbara Ostrowska | Interactive network guide with parental monitoring |
US20060212906A1 (en) * | 2005-03-18 | 2006-09-21 | Cantalini James C | System and method for digital media navigation and recording |
WO2006104968A2 (en) | 2005-03-28 | 2006-10-05 | The Directv Group, Inc. | Interactive mosaic channel video stream with barker channel and guide |
US20060248557A1 (en) * | 2005-04-01 | 2006-11-02 | Vulcan Inc. | Interface for controlling device groups |
US8584171B2 (en) | 2005-05-06 | 2013-11-12 | Starz Entertainment Group Llc | Local context navigation system |
JP2008544642A (en) | 2005-06-16 | 2008-12-04 | トムソン ライセンシング | Using a global positioning system for transmitter identification in mobile television |
US7716662B2 (en) * | 2005-06-22 | 2010-05-11 | Comcast Cable Holdings, Llc | System and method for generating a set top box code download step sequence |
WO2007002820A2 (en) | 2005-06-28 | 2007-01-04 | Yahoo! Inc. | Search engine with augmented relevance ranking by community participation |
US20070058832A1 (en) * | 2005-08-05 | 2007-03-15 | Realnetworks, Inc. | Personal media device |
US8726325B2 (en) * | 2005-08-08 | 2014-05-13 | Telvue Corporation | Method and apparatus for scheduling delivery of video and graphics |
US7805741B2 (en) | 2005-09-13 | 2010-09-28 | Cyberlink Corp. | Systems and methods for networking digital video recorders |
CA2622900C (en) * | 2005-09-15 | 2014-04-29 | Biap, Inc. | Self-contained mini-applications system and method for digital television |
US8683082B2 (en) * | 2005-11-14 | 2014-03-25 | Sandisk Technologies Inc. | Removable memory devices for displaying advertisement content on host systems using applications launched from removable memory devices |
US7900818B2 (en) | 2005-11-14 | 2011-03-08 | Packetvideo Corp. | System and method for accessing electronic program guide information and media content from multiple locations using mobile devices |
CA2631270A1 (en) * | 2005-11-29 | 2007-06-07 | Google Inc. | Detecting repeating content in broadcast media |
US20070143260A1 (en) | 2005-12-19 | 2007-06-21 | Microsoft Corporation | Delivery of personalized keyword-based information using client-side re-ranking |
US20070157281A1 (en) * | 2005-12-23 | 2007-07-05 | United Video Properties, Inc. | Interactive media guidance system having multiple devices |
US8607287B2 (en) * | 2005-12-29 | 2013-12-10 | United Video Properties, Inc. | Interactive media guidance system having multiple devices |
US20070157237A1 (en) | 2005-12-29 | 2007-07-05 | Charles Cordray | Systems and methods for episode tracking in an interactive media environment |
US20070157220A1 (en) * | 2005-12-29 | 2007-07-05 | United Video Properties, Inc. | Systems and methods for managing content |
US20070157240A1 (en) | 2005-12-29 | 2007-07-05 | United Video Properties, Inc. | Interactive media guidance system having multiple devices |
KR100772392B1 (en) * | 2006-02-07 | 2007-11-01 | 삼성전자주식회사 | Method and apparatus for processing contents using TV channel in home network |
GB0603237D0 (en) * | 2006-02-17 | 2006-03-29 | Mobile Compression Tech Ab | A system for submitting and delivering content events to remote devices |
US20070220566A1 (en) * | 2006-03-03 | 2007-09-20 | Comcast Cable Holdings, Llc | Method and system of distributing media content and generating playlists |
US7644425B2 (en) | 2006-03-22 | 2010-01-05 | Alcatel Lucent | Picture-in-picture mosaic |
US8316394B2 (en) * | 2006-03-24 | 2012-11-20 | United Video Properties, Inc. | Interactive media guidance application with intelligent navigation and display features |
US7925723B1 (en) * | 2006-03-31 | 2011-04-12 | Qurio Holdings, Inc. | Collaborative configuration of a media environment |
US20090089838A1 (en) * | 2006-04-07 | 2009-04-02 | Pino Jr Angelo J | Template Based System, Device and Method for Providing Interactive Content |
US9167208B2 (en) * | 2006-04-07 | 2015-10-20 | Your Choice Interactive, Inc. | System and method for providing supplementary interactive content |
US8046411B2 (en) * | 2006-04-28 | 2011-10-25 | Yahoo! Inc. | Multimedia sharing in social networks for mobile devices |
JP4971692B2 (en) | 2006-06-07 | 2012-07-11 | 株式会社日立製作所 | Receiver |
EP1868385A1 (en) | 2006-06-16 | 2007-12-19 | Nokia Siemens Networks Gmbh & Co. Kg | Electronic program guide |
US8261300B2 (en) * | 2006-06-23 | 2012-09-04 | Tivo Inc. | Method and apparatus for advertisement placement in a user dialog on a set-top box |
US7673327B1 (en) * | 2006-06-27 | 2010-03-02 | Confluence Commons, Inc. | Aggregation system |
US8392947B2 (en) * | 2006-06-30 | 2013-03-05 | At&T Intellectual Property I, Lp | System and method for home audio and video communication |
US8024765B2 (en) * | 2006-07-26 | 2011-09-20 | Hewlett-Packard Development Company, L.P. | Method and system for communicating media program information |
US7985134B2 (en) * | 2006-07-31 | 2011-07-26 | Rovi Guides, Inc. | Systems and methods for providing enhanced sports watching media guidance |
US8695031B2 (en) * | 2006-08-02 | 2014-04-08 | Concurrent Computer Corporation | System, device, and method for delivering multimedia |
US20080034043A1 (en) | 2006-08-03 | 2008-02-07 | International Business Machines Corporation | Electronic mail message replay constraints |
JP2010502116A (en) | 2006-08-18 | 2010-01-21 | ソニー株式会社 | System and method for selective media content access by recommendation engine |
US7991019B2 (en) * | 2006-09-19 | 2011-08-02 | Sharp Laboratories Of America, Inc. | Methods and systems for combining media inputs for messaging |
US20080086746A1 (en) | 2006-10-06 | 2008-04-10 | King John K | Simultaneously Viewing Multiple Programs Within A Television Program Guide |
US8316307B2 (en) * | 2006-10-13 | 2012-11-20 | At&T Intellectual Property I, Lp | Method and apparatus for abstracting internet content |
US8091032B2 (en) | 2006-11-30 | 2012-01-03 | Red Hat, Inc. | Automatic generation of content recommendations weighted by social network context |
US8601515B2 (en) * | 2006-12-28 | 2013-12-03 | Motorola Mobility Llc | On screen alert to indicate status of remote recording |
US20080163059A1 (en) | 2006-12-28 | 2008-07-03 | Guideworks, Llc | Systems and methods for creating custom video mosaic pages with local content |
US8397264B2 (en) * | 2006-12-29 | 2013-03-12 | Prodea Systems, Inc. | Display inserts, overlays, and graphical user interfaces for multimedia systems |
US8015581B2 (en) * | 2007-01-05 | 2011-09-06 | Verizon Patent And Licensing Inc. | Resource data configuration for media content access systems and methods |
US9009589B2 (en) * | 2007-03-30 | 2015-04-14 | Google Inc. | Conversion of portable program modules for constrained displays |
US20100180029A1 (en) * | 2007-04-06 | 2010-07-15 | Clive Fourman | Content delivery system and method of delivering content |
US20090015657A1 (en) | 2007-07-09 | 2009-01-15 | Jason Wong | Method and system for adapting video according to associated audio |
US20090044237A1 (en) * | 2007-07-13 | 2009-02-12 | Zachary Ryan Keiter | Sport video hosting system and method |
US20090024910A1 (en) | 2007-07-19 | 2009-01-22 | Media Lasso, Inc. | Asynchronous communication and content sharing |
US8209171B2 (en) * | 2007-08-07 | 2012-06-26 | Aurix Limited | Methods and apparatus relating to searching of spoken audio data |
US8375068B1 (en) * | 2007-10-04 | 2013-02-12 | Lucid Design Group, Llc | Extensible framework and graphical user interface for sharing, comparing, and displaying resource usage data |
US8332893B2 (en) * | 2007-10-16 | 2012-12-11 | Microsoft Corporation | Hybrid channel map |
US8312494B2 (en) * | 2007-10-26 | 2012-11-13 | International Business Machines Corporation | Presenting a continuous programming sequence at a client terminal |
US8272015B2 (en) * | 2007-11-01 | 2012-09-18 | Microsoft Corporation | Alternate source conflict resolution |
WO2009067560A1 (en) * | 2007-11-20 | 2009-05-28 | Big Stage Entertainment, Inc. | Systems and methods for generating 3d head models and for using the same |
JP2011504710A (en) * | 2007-11-21 | 2011-02-10 | ジェスチャー テック,インコーポレイテッド | Media preferences |
US20090150806A1 (en) | 2007-12-10 | 2009-06-11 | Evje Bryon P | Method, System and Apparatus for Contextual Aggregation of Media Content and Presentation of Such Aggregated Media Content |
US20090158337A1 (en) | 2007-12-13 | 2009-06-18 | Mobitv, Inc. | Mosaic video content selection mechanism |
US20090165053A1 (en) | 2007-12-19 | 2009-06-25 | General Instrument Corporation | Method and apparatus for providing access to and control of multimedia content information across multimedia processing devices |
US8381245B2 (en) | 2007-12-19 | 2013-02-19 | Verizon Patent And Licensing Inc. | Program guide image objects for media content access systems and methods |
US20090319512A1 (en) * | 2008-01-18 | 2009-12-24 | Douglas Baker | Aggregator, filter, and delivery system for online content |
US9477776B2 (en) | 2008-04-02 | 2016-10-25 | Paypal, Inc. | System and method for visualization of data |
US8225354B2 (en) | 2008-04-11 | 2012-07-17 | Microsoft Corporation | Merging electronic program guide information |
US9489383B2 (en) * | 2008-04-18 | 2016-11-08 | Beats Music, Llc | Relevant content to enhance a streaming media experience |
US8307395B2 (en) * | 2008-04-22 | 2012-11-06 | Porto Technology, Llc | Publishing key frames of a video content item being viewed by a first user to one or more second users |
KR101517769B1 (en) * | 2008-04-24 | 2015-05-06 | 삼성전자주식회사 | Method for recommending broadcasting contents in media contents reproducing device and apparatus thereof |
US20110191318A1 (en) * | 2008-05-16 | 2011-08-04 | David Gilbey | Community search system with relational ranking |
US9246613B2 (en) * | 2008-05-20 | 2016-01-26 | Verizon Patent And Licensing Inc. | Method and apparatus for providing online social networking for television viewing |
US9071797B2 (en) | 2008-05-23 | 2015-06-30 | At&T Intellectual Property I, Lp | Systems and methods for remote access to programming information |
US8370396B2 (en) * | 2008-06-11 | 2013-02-05 | Comcast Cable Holdings, Llc. | System and process for connecting media content |
US8875181B2 (en) | 2008-08-05 | 2014-10-28 | At&T Intellectual Property I, L.P. | Method and system for presenting media content |
US8458153B2 (en) * | 2008-08-26 | 2013-06-04 | Michael Pierce | Web-based services for querying and matching likes and dislikes of individuals |
US20100070995A1 (en) | 2008-09-15 | 2010-03-18 | Yang Pan | System and method of rendering advertisements by employing switching-on screen of television |
US20100077435A1 (en) | 2008-09-24 | 2010-03-25 | Concert Technology | System and method for smart trick mode display |
US7752265B2 (en) * | 2008-10-15 | 2010-07-06 | Eloy Technology, Llc | Source indicators for elements of an aggregate media collection in a media sharing system |
US8321401B2 (en) * | 2008-10-17 | 2012-11-27 | Echostar Advanced Technologies L.L.C. | User interface with available multimedia content from multiple multimedia websites |
US7966641B2 (en) * | 2008-10-23 | 2011-06-21 | Sony Corporation | User identification using Bluetooth and audio ranging |
US8875183B2 (en) * | 2008-10-31 | 2014-10-28 | International Business Machines Corporation | Intelligent TV mosaic for IPTV |
US8386954B2 (en) * | 2008-11-21 | 2013-02-26 | Microsoft Corporation | Interactive media portal |
US8407733B2 (en) | 2008-12-19 | 2013-03-26 | General Instrument Corporation | Method and apparatus for establishing individualized subscription plans in a switched digital video system |
US8862691B2 (en) | 2008-12-22 | 2014-10-14 | Microsoft Corporation | Media aggregation and presentation |
US20100162314A1 (en) * | 2008-12-23 | 2010-06-24 | Meare David P | Enhanced electronic program guides, systems and methods |
US8572645B2 (en) | 2009-01-18 | 2013-10-29 | Lg Electronics Inc. | IPTV and method for controlling emergency alert system widget in IPTV |
US8375409B2 (en) * | 2009-02-05 | 2013-02-12 | Purplecomm Inc. | Meta channel based media system control technology |
US20120114312A1 (en) | 2009-03-25 | 2012-05-10 | Eloy Technology, Llc | Method and system for determining the availability of a media controller |
US20120117632A1 (en) * | 2009-04-29 | 2012-05-10 | Eloy Technology, Llc | Method and system for authenticating a data stream |
US8850328B2 (en) * | 2009-08-20 | 2014-09-30 | Genesismedia Llc | Networked profiling and multimedia content targeting system |
US9445158B2 (en) | 2009-11-06 | 2016-09-13 | Eloy Technology, Llc | Distributed aggregated content guide for collaborative playback session |
US8631428B2 (en) * | 2009-11-30 | 2014-01-14 | Charles Scott | System and method for displaying media usage |
WO2011156783A2 (en) * | 2010-06-10 | 2011-12-15 | Cricket Communications, Inc. | Mobile handset for media access and playback |
US20120117026A1 (en) * | 2010-06-10 | 2012-05-10 | Cricket Communications, Inc. | Play list management |
WO2012094350A2 (en) * | 2011-01-03 | 2012-07-12 | Sava Cvek | Selectively networked extension and retraction arrangements |
US8789096B2 (en) * | 2011-04-27 | 2014-07-22 | Echostar Technologies L.L.C. | Apparatus, systems and methods for transmitting media content events |
US9854318B2 (en) * | 2011-06-06 | 2017-12-26 | Rovi Guides, Inc. | Systems and methods for sharing interactive media guidance information |
US9076259B2 (en) * | 2011-09-14 | 2015-07-07 | Imagine Communications Corp | Geospatial multiviewer |
US20140245334A1 (en) * | 2013-02-26 | 2014-08-28 | Rawllin International Inc. | Personal videos aggregation |
US9716737B2 (en) * | 2013-05-08 | 2017-07-25 | Qualcomm Incorporated | Video streaming in a wireless communication system |
-
2010
- 2010-03-25 US US12/731,730 patent/US20120114312A1/en not_active Abandoned
- 2010-03-25 US US12/731,817 patent/US9088757B2/en not_active Expired - Fee Related
- 2010-03-25 US US12/731,606 patent/US9288540B2/en not_active Expired - Fee Related
- 2010-03-25 US US12/731,771 patent/US9083932B2/en not_active Expired - Fee Related
- 2010-03-25 US US12/731,676 patent/US9015757B2/en not_active Expired - Fee Related
-
2015
- 2015-04-20 US US14/690,680 patent/US20150229993A1/en not_active Abandoned
- 2015-07-20 US US14/803,203 patent/US20150326938A1/en not_active Abandoned
-
2016
- 2016-03-14 US US15/069,203 patent/US20160196025A1/en not_active Abandoned
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050028208A1 (en) * | 1998-07-17 | 2005-02-03 | United Video Properties, Inc. | Interactive television program guide with remote access |
US20020097986A1 (en) * | 2001-01-23 | 2002-07-25 | Nec Corporation | Broadcast storage system with reduced user's control actions |
US20120174178A1 (en) * | 2003-08-29 | 2012-07-05 | Sony Electronics Inc. | Preference based program deletion in a pvr |
US20060239642A1 (en) * | 2005-04-20 | 2006-10-26 | Sony Corporation | Communication system, recording apparatus and method, recording medium, and program |
US7546283B2 (en) * | 2005-08-15 | 2009-06-09 | Sony Corporation | Networked personal video recorder with shared resource and distributed content |
US20100135639A1 (en) * | 2005-09-30 | 2010-06-03 | Guideworks, Llc | Systems and methods for recording and playing back programs having desirable recording attributes |
US20070104456A1 (en) * | 2005-11-04 | 2007-05-10 | Guideworks, Llc | Systems and methods for recording programs using a network recording device as supplemental storage |
US20080216136A1 (en) * | 2007-03-03 | 2008-09-04 | Howard Pfeffer | Methods and apparatus supporting the recording of multiple simultaneously broadcast programs communicated using the same communications channel |
US20090010610A1 (en) * | 2007-07-06 | 2009-01-08 | At&T Knowledge Ventures, Lp | System and method of recording media content |
US20090220216A1 (en) * | 2007-08-22 | 2009-09-03 | Time Warner Cable Inc. | Apparatus and method for conflict resolution in remote control of digital video recorders and the like |
US20090100478A1 (en) * | 2007-10-12 | 2009-04-16 | Guideworks, Llc | Storage management of a recording device in a multi-user system |
US20120230649A1 (en) * | 2007-10-12 | 2012-09-13 | Rovi Guides, Inc. | Storage management of a recording device in a multi-user system |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8938467B2 (en) | 2009-03-25 | 2015-01-20 | Eloy Technology, Llc | System and method for intelligent storage of time shifted content |
US9507785B2 (en) | 2009-03-25 | 2016-11-29 | Eloy Technology, Llc | Flexible content storage management for DVRS |
US9535916B2 (en) | 2009-03-25 | 2017-01-03 | Eloy Technology, Llc | System and method for intelligent storage of time shifted content |
US20130073673A1 (en) * | 2011-09-19 | 2013-03-21 | Comcast Cable Communications, LLC. | Content Storage and Identification |
US9386063B2 (en) * | 2011-09-19 | 2016-07-05 | Comcast Cable Communications, Llc | Content storage and identification |
US11089074B2 (en) | 2011-09-19 | 2021-08-10 | Comcast Cable Communications, Llc | Content storage and identification |
US9392335B2 (en) | 2012-03-06 | 2016-07-12 | Comcast Cable Communications, Llc | Fragmented content |
US20140195951A1 (en) * | 2013-01-07 | 2014-07-10 | Samsung Electronics Co. Ltd. | Method for managing schedule and electronic device thereof |
Also Published As
Publication number | Publication date |
---|---|
US9088757B2 (en) | 2015-07-21 |
US9015757B2 (en) | 2015-04-21 |
US20120117471A1 (en) | 2012-05-10 |
US20120117595A1 (en) | 2012-05-10 |
US20150229993A1 (en) | 2015-08-13 |
US20160196025A1 (en) | 2016-07-07 |
US9288540B2 (en) | 2016-03-15 |
US20120117581A1 (en) | 2012-05-10 |
US20120117598A1 (en) | 2012-05-10 |
US20150326938A1 (en) | 2015-11-12 |
US9083932B2 (en) | 2015-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20120114312A1 (en) | Method and system for determining the availability of a media controller | |
US9641791B2 (en) | Bandwidth aware digital video recording (DVR) scheduling | |
US7797722B2 (en) | System and method for content delivery | |
US20120114311A1 (en) | Method and system for distributing the recording of a media item | |
US9535916B2 (en) | System and method for intelligent storage of time shifted content | |
US8683526B2 (en) | Resource data configuration for media content access systems and methods | |
US8079053B2 (en) | System and method of deferring multimedia content delivery | |
EP1377061B1 (en) | Access authorization controlled content exchange | |
US9418031B2 (en) | Media content asset recovery methods and systems | |
US9326016B2 (en) | Systems and methods for mirroring and transcoding media content | |
EP2039058B1 (en) | Multi-dvr node communication | |
US20080307485A1 (en) | Automatic extension of recording using in-band and out-of-band data sources | |
EP2362644A1 (en) | Recording system | |
US7715687B2 (en) | System and method of recording and recording apparatus | |
US7937736B2 (en) | Media content rebroadcast | |
US9083934B2 (en) | Systems and methods for controlling media recording devices via a media recorder proxy device | |
US20140270717A1 (en) | System and method for controlling and managing digital media recording | |
US8626621B2 (en) | Content stream management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ELOY TECHNOLOGY, LLC, DELAWARE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SUTHERLAND, HAROLD;SVENDSEN, HUGH;SIGNING DATES FROM 20100324 TO 20100325;REEL/FRAME:024138/0523 |
|
AS | Assignment |
Owner name: CONCERT DEBT, LLC, NEW HAMPSHIRE Free format text: SECURITY INTEREST;ASSIGNOR:ELOY TECHNOLOGY, LLC;REEL/FRAME:036472/0875 Effective date: 20150801 Owner name: CONCERT DEBT, LLC, NEW HAMPSHIRE Free format text: SECURITY INTEREST;ASSIGNOR:ELOY TECHNOLOGY, LLC;REEL/FRAME:036473/0108 Effective date: 20150501 |
|
AS | Assignment |
Owner name: CONCERT DEBT, LLC, NEW HAMPSHIRE Free format text: SECURITY INTEREST;ASSIGNOR:CONCERT TECHNOLOGY CORPORATION;REEL/FRAME:036515/0471 Effective date: 20150501 Owner name: CONCERT DEBT, LLC, NEW HAMPSHIRE Free format text: SECURITY INTEREST;ASSIGNOR:CONCERT TECHNOLOGY CORPORATION;REEL/FRAME:036515/0495 Effective date: 20150801 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |
|
AS | Assignment |
Owner name: NAPO ENTERPRISES, LLC, NEW HAMPSHIRE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ELOY TECHNOLOGY, LLC;REEL/FRAME:042834/0085 Effective date: 20170404 |
|
AS | Assignment |
Owner name: CONCERT TECHNOLOGY CORPORATION, NEW HAMPSHIRE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NAPO ENTERPRISES, LLC;REEL/FRAME:051457/0503 Effective date: 20191203 |