The present invention relates generally to multimedia content, and more particularly to displaying information about the multimedia content.
The amount of multimedia content, such as television programming, movies and other such multimedia content, delivered directly to viewers at home has increased dramatically. Additionally, the types of content and the types of programming available to viewers have similarly increased.
Viewers are watching more programming and thus being exposed to a greater spectrum of content. To aid viewers in identifying those programs that a viewer might be interested in seeing, many program providers and/or broadcasters additionally supply programming guide data that allow some televisions and/or cooperating systems to display a guide that lists available channels and the programming that can be seen on each channel.
Viewers of substantially all ages utilize these guides to help in identifying and/or locating programming of interest. The programming guide data includes, in some instances, a significant amount of data to the viewer. For example, some programming guides provide titles of programming content as well as description and/or summary data.
The present embodiments advantageously address the needs above as well as other needs through the provision of the methods, apparatuses, and systems for use in controlling the display of information relative to the playback of programming content and displaying programming guide data. Some embodiments provide a method for use in controlling the display of an electronic programming guide. The method receives programming guide data, determines whether the programming guide data is to be filtered, filters the programming guide data when it is determined that the programming guide data is to be filtered comprising replacing at least a first title with a generic title, determines whether limits are to be applied to the programming guide data, applies the limits to the programming guide data when it is determined that the limits are to be applied to the programming guide data comprising replacing at least a second title with the generic title, and displays a programming guide according to programming guide data as filtered and as limited.
In some alternative embodiments, methods are provided for use in controlling the display of information relative to the playback of programming content. These methods receive programming content, initiate a main application to playback a main program from at least a portion of the programming content, display a main progress bar associated with the main application that is active, determine whether first additional applications are active in addition to the main application, display a first additional progress bar for each of the first additional applications that are active, determine whether at least two of the active applications are capable of implementing a first trick command, wherein the active applications comprise the main application and the first additional application, mark at least one progress bar associated with the at least two active application capable of receiving the first trick command so as to provide at least one first-marked progress bar, and execute the first trick command through the active application associated with the at least one first-marked progress bar.
Some further embodiments provide and apparatus for use in controlling the display programming information. The apparatus includes an input port for receiving programming content and programming guide data, means for natural language filtering that filters the programming guide data, means for generating programming guide using the programming guide data as filtered by the means for natural language filtering, means for playing back programming content, means for recording programming content, means for monitoring the progress of the means for playing back programming content and means for recording programming content, and means for generating a plurality of progress bars according to the means for monitoring the progress.
A better understanding of the features and advantages of the present invention will be obtained by reference to the following detailed description of the invention and accompanying drawings which set forth an illustrative embodiment in which the principles of the invention are utilized.
The above and other aspects, features and advantages of the present invention will be more apparent from the following more particular description thereof, presented in conjunction with the following drawings wherein:
Corresponding reference characters indicate corresponding components throughout the several views of the drawings. Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of various embodiments of the present invention. Also, common but well-understood elements that are useful or necessary in a commercially feasible embodiment are often not depicted in order to facilitate a less obstructed view of these various embodiments of the present invention.
The program content received at the STB 122 often is accompanied by information about the program content, often referred to as programming information and/or programming guide data. The STB utilizes this programming guide data to generate and/or allow users to access a guide or electronic programming guide (EPG). In some embodiments, the guide includes a listing of possible programs defined according to channels from which the individual programs can be tuned. The guide can further include additional information about one or more of the programs a user can potentially access, such as a brief description of the program, a rating of the program (G, PG, PG-13, R, etc.), content codes that define the type of content of the program (e.g., close-captioned, high-definition, sub-titled, violence, graphic violence, nudity, strong sexual contact, profanity, and other such codes), and other similar information. The STB 122 utilizes the information to generate the programming guide allowing users to view the guide and identify those programs the users might be interesting in viewing.
In some embodiments, the STB 122 further includes one or more internal recorders 230-231 that receive programming data from the tuners and records the content. The recorders in some implementations direct the content to internal memory 240, and/or external memory or recording devices 144, 146. Similarly, the STB in some embodiments includes one or more playback devices 234-235 for retrieving program content from internal memory 240 or other memory and plays back the content on the TV. In some embodiments, the system and/or STB include one or more personal video recorder (PVR) and/or digital video recorder (DVR) applications 236-237 that incorporate the one or more recorders 230-231 and/or playback devices 234-235 to allow the recording and/or playback of received programming content. The recorders and/or playback devices, however, can be independent devices and/or separate from PVRs/DVRs. The STB typically further includes a wireless detector/receiver 250 that receives commands from a remote control unit operated by a user. Some embodiments further include manual controls 252 allowing a user to manually control the STB directly at the STB.
The memory 240 is utilized by the processor 226 to store applications 260, executables 261, program data 262 associated with one or more programs on channels accessible by the tuners 222-223, programming guide data 263 for a plurality of channels, program content 264, channel lists 265, favorites lists 266, and other similar data. The memory can include any type of memory and/or combinations of memory, such as non-volatile memory (e.g., read only memory (ROM)), random access memory (RAM), optical memory (e.g., digital video data (DVD), compact disc (CD)), and substantially any other memory and/or combinations of memory.
The data compiler 322 retrieves the programming guide data and compiles, sort and/or categorizes the data so that the data can be displayed by the guide generator 324 according to a user's requested information. For example, the data compiler sorts the data to only display those channels defined in a users “Favorites List” as stored in memory 240 (or in memory internal to the processor 226).
The processor 226 further includes a control input processor 340 that receives and implements controls from the user (e.g., from a remote control 150, manual control or other such control). Similarly, the processor includes a user interface control 342 that implements control interfaces allowing users to configure and control the STB, the content available through the STB, and other features as described below.
In some embodiments, the processor includes a recording processor 344 and a playback processor 346 that cooperate with the one or more recorders 230-231 and the playback devices 234-235, respectively, to control the recording and/or playback. One or more progress bar generators 350 are further included in some implementations for generating status bars according to the status of one or more programs being recorded, played back, and/or otherwise accessed by a user as fully described below. Similarly, the processor in some embodiments includes a trick command processor 352 that implements commands directed to playback and recording of content as fully described below.
The control interface 420, in some embodiments, further includes a log-in prompt 432. The log-in prompt allows individual users to log-in to the system allowing the STB define the type and amount of information provided in the programming guide according to the logged-in user. For example, the present embodiments allow a system administrator (e.g., a parent) to prevent access and/or set up limited access to certain programming for some young viewers. Additionally, the control interface includes a system administrator option 434 that directs a user to a system administrator control interface 510.
The user profile option 524, in some embodiments, allows the system administrator to define one or more users, where the system administrator can define a scope of access for each specified user. As indicated above, users can log-in to the system. Upon log-in, the system only displays programming data and only allows that user to access programming content that is defined according to a user profile established by the system administrator. In some embodiments, upon selection of the user profile option 524, addition options are provided allowing the system administrator to enter a new user 526 which routes the system administrator to a user profile interface 1120 to define user access, edit user profile 530, copy user profile 532 which allows the system administrator to copy a profile then edit the profile reducing the amount of data the system administrator has to enter, and other such user profile controls.
The locks and limits interface 610 includes any number of parameters 612 that are typically associated with programs and/or programming data received from the broadcasters and/or distributors. In some embodiments, the locks and limits interface 610 includes a user selection option 524, similar to the user selection option of the system administrator interface, that allows the system administrator to select one or more users for which the locks and limits that the system administrator specifies are to apply.
The parameters 612 of the locks and limits interface typically include a predefined list of known parameters. In some preferred embodiments, the processor 226 further searches programming data for additional parameters to be included. As such, the locks and limits list, according to some embodiments, is an expanding list that incorporates additional parameters as the processor detects the inclusion of additional parameters in the programming data.
The parameters 612 can include substantially any type of programming information that is supplied with the programming data and/or programming content. For example, the parameters can include a ratings option 620, a violence option 622, a brief nudity option 624, a nudity option 626, strong sexual content option 630, profanity option 632 and many other parameters. Some options allow the system administrator to define the level of the parameter that the user or users can access. For example, the ratings option 620 includes a listing 640 of the potential ratings (G, PG, PG-13, R, Unrated, etc.), allowing the system administrator to select all those ratings for which a user or users can have access, and/or simply specifies the highest level (e.g., PG-13) for which a user can have access. The listing 640 can be a continuously displayed list, a pull-down list, or other such lists. Other parameters include additional lists and/or options. For example, the violence parameter 622 in some implementations includes levels of violence. Some parameters are simply on/off parameters with a toggle allowing the system administrator to define whether the user or users should have access to such content. For example, the nudity parameter 626, in some embodiments, includes a on/off or Yes/No toggle 644 that allows the system administrator to define whether a user should have access to programming content and/or whether programming data should be included in a programming guide when a specific program includes nudity.
In some embodiments, the locks and limits interface 610 further includes channel block option 650. The channel block option allows the system administrator to define specific channels that are to be blocked for different users in defining each user's profile. In blocking the channel, the defined user cannot access the programming content associated with that channel. Similarly, by blocking a channel, the present embodiment eliminates this channel entry from the programming guide.
When the block channel option 650 is selected, in some implementations, a listing of channels 652 is provided (and/or a new block channel interface is provided) that lists the possible channels available through the system 120. Typically, only a portion of the available channels are displayed at a time and allows the user to scroll and/or traverse through the list to access the additional channels. The system administrator traverses through the list and select those channels 654 that that are to be blocked (alternatively selects those channels that are allowed) for the defined user(s) (e.g., first user). When the system administrator is finished, the unblocked channels define the active channel list for that user. The list shall be stored in memory 240 of the set-top-box 122.
For example, with a channel restricted from a first user, that channel could not be tuned in because it effectively does not exist in the channel line-up when the first user is logged-in. Further, because the channel effectively does not exist for the first user, the program guide does not display the channel information for that blocked channel, and thus the first user (e.g., a younger viewer) would not even have access to read the program information from the programming guide for a blocked channel. As described above, the system 120 can define multiple users, and each user (or group of users) of the system can be configured with separate channel lists. In some preferred embodiments, the system 120 allows the system administrator to also setup a default and/or guest user channel list. The guest user is the user that is active when all defined users are logged-out and/or initially invoked when the system is initially powered up. The default and/or guest user is fully described below. In some embodiments, individual users can similarly limit the channels for which they have access and/or limit the channels displayed on the program guide. However, individual users typically cannot change the channel lists as set by the system administrator.
When a user with a defined profile logs-in the channel list is read from the memory for that user. The user then only has access to those channels in the allowed list. The set-top-box operates as if the allowed channels of the list were the only channels available through the system and thus displays only channel information in the program guide that reflects those allowed channels. The locks and limits parameters override substantially any setting defined by the user. For example, if a first user defines a favorites channel lists, and subsequently the system administrator defines and/or edits the allowed channel list to exclude one or more of those channels defined in the favorites list, the favorites list is edited by the system to delete references to those channels, and/or alternatively ignores those channels in the favorites list that have been restricted.
The utilization of the locks and limits, as described above, allows the system administrator to limit the programming content accessed by a user (e.g., first user), and further limits the programming data displayed through the programming guide 710. FIG. 9 depicts a simplified diagram of an electronic programming guide 710 generated according to a first user profile and implementing locks and limits set by the system administrator for the first user. The programming guide 710 identifies the currently logged-in user 920 (e.g., first user). In the example shown in
Similarly, the present embodiment generates the programming guide 710 such that those programs having ratings greater than PG are restricted 922. The locks and limits restrict the programming guide from being displayed with entries that fail to satisfy the conditions and/or parameters set by the system administrator. Typically, because the restricted title is defined at a time and with a duration, the positioning of the entry in the electronic program guide is preserved by replacing the entry with a default and/or generic entry (e.g., replacing the listing with a “Restricted” graphics box or other similar indicator).
The displayed programming guide is further dictated by the allowed channel selection (and/or blocked channel selections) specified by the system administrator. As such, the present embodiment further limits the display of the programming guide to include only those channels 720 the first user is allowed to access. Therefore, the programming guide does not include the blocked channels (e.g., not displaying channels 104, 110, 190) and only showing those allowed channels (e.g., showing instead channels 202, 305, and 500). Further, the present embodiments prevent the first user from accessing programming summary data 820 for those channels block, as well as for those programs restricted according to locks and limits. Therefore, young viewers, for example, are restricted from accessing inappropriate data associated with inappropriate programming content.
In some embodiments, the present embodiments generate the programming guide 710 to display the predetermined number of channels (e.g., eight channels). Each program to be display in the program guide window 710 is scanned prior to display to determine whether the program content is restricted based on the locks & limit settings. For those programs that are restricted, the program title is removed from the program guide and a generic title is inserted (e.g. Restricted, Restricted Program, or the like). Since the program title is removed, access to the summary and/or description of that program is also restricted. In some implementations, a generic description (e.g., Restricted) is alternatively provided if a user attempts to view a summary of the restricted program content. In some embodiments, all entries of a programming guide are evaluated prior to displaying any of the programming guide, and those programs that are to be restricted as well as any channels that are defined as blocked for a defined user are flagged and/or eliminated. As such, when the programming guide for the user is displayed, the guide does not show the blocked channels and incorporates the generic title (e.g., Restricted) into the displayed guide. In some alternative embodiments, as the program guide is traversed by the user (for example user scrolls up or down to display additional channels, or scrolls right or left to display other times (and thus other programs)), new or subsequent program titles or groups of titles to be displayed are evaluated against the locks & limits settings and/or channel blocks. Thus, the program titles are filtered as the program guide is displayed while the user shifts through the guide.
When a profile exists, step 1024 is entered where the user profile for the identified user is accessed. In step 1026 the programming guide data is accessed. The programming guide data is typically received from the broadcaster/distributed and stored in memory 263. For example, the programming guide data is stored as a database of data containing the relevant information, such as channel numbers, time periods, titles associated with channel numbers and time periods, program description/summary data associated with the titles (when available), parameters 612 that further define the programming content (e.g., high-definition, ratings, violence level, nudity, etc.), and other such data.
In step 1030, the process determines from the user profile whether there are blocked channels defined. When the profile does not have blocked channels the process continues to step 1034. Alternatively, when the profile includes defined blocked channels, step 1032 is entered where the programming guide data is searched for the blocked channels and the blocked channels are flagged with a block flag for the specific user. For example, the database maintains flagging information for each registered user (including a guest and/or default if defined). In some alternative embodiments, the channel and associated data (e.g., titles, descriptions, etc.) to be blocked are simply removed from the programming guide data and a revised programming guide data is saved for the identified user.
In step 1034, the process determines if the user profile includes locks and limits. If there are no locks and limits defined, the process 1010 terminates. When locks and limits are defined, step 1036 is entered where a first or next lock/limit (e.g., limit programs that are PG-13 or greater) is identified. In step 1040, the programming guide data is evaluated based on the lock and/or limit. In step 1042, the titles that are to be limited are flagged with a limit flag. In step 1044, it is determined whether all of the locks and limits have been evaluated. If locks and limits remain, the process 1010 returns to step 1036, otherwise the process terminates.
In displaying the programming data the system identifies those channels that have been flagged with block flags for the current user and prevents those channels from being displayed. Similarly, the system identifies those titles and/or summaries that have been lock/limit flagged (or filter flagged as described below) and replaces them with the generic entry (e.g. “Restricted”), and displays them with the generic entry.
In some embodiments, the user list 1122 further includes a user entry for a default or guest user 1126. As described above, the guest or default user is activated once a user logs-out and/or upon an initial start-up and/or power-on of the STB 122. The system administrator defines the profile of the default user in substantially the same manner as defining a specific user. In some embodiments, the default user can be equated to one of the specifically defined user's profiles (e.g., user 1 profile). As such, the system administrator does not have to specifically define a default profile, and the default user profile tracks the changes made by the system administrator to the specific user's profile. Additionally and/or alternatively, an independent profile is generated for the default user 1126, and is automatically equated to one of the specifically defined users having the most limited access to potentially available program content. In some alternative embodiments, the system administrator can copy a specifically defined user's profile (e.g., the users having the most limited access) as the default user profile. The default user profile can be implemented and/or altered by the system administrator through similar processes used to implement and/or alter user's profiles.
In some embodiments, the user profile interface 1110 further includes options to add one or more users 1130, remove one or more users 1132, edit locks and limits 1134, edit filters 1136, and other options. Further, the user profile interface can include a profile copy option 1140 that allows the system administrator to select a user and copy the profile for an additional user. This can reduce the amount of data entering the system administrator has to perform in creating a profile.
In some embodiments, the filter control interface includes a word list filter 1222. The word list filter includes an enable or on/off function 1224 to enable or disable the word filtering. A list of words and/or phrases 1226 is utilized by the word list filter to filter the programming guide data and/or access to programming content. The words and/or phrases of the word list 1226 are included into the list by the system administrator and/or system, and can include substantially any word or phrase that the system administrator want to be filtered (e.g., gun, drugs, and other such words that the system administrator does not want a viewer to access). The list of words or phases is stored in memory.
The program guide processor 320 accesses the list and searches the programming guide data for each of the words and/or phrases listed in the word list 1226. When an entry in the programming guide data is identified as including one or more of the words/phrases of the list, the entry is flagged. Upon display of the programming data, any entry flagged as including one or more words from the word list is removed from the programming guide and/or identified as restricted. Typically, the programming guide data that is searched includes the title, summary/description and other data associated with a program to be potentially displayed on the programming guide. Some embodiments further prevent users from accessing program content (e.g., selecting the channel) that is associated with the entry in the programming guide that is restricted and/or removed from the guide. Alternatively, in some implementations just the word(s) are removed from the entry in the programming guide. The system administrator can define the level of filtering according to options in the filter control interface 1220, such as prevent access to content option 1230, remove word(s) from programming guide data, and/or other similar options.
In some embodiments, the word list filter 1222 also allows the system administrator (and/or other users in some implementations) to add words or phrases to the word list 1226 through the selection of an add word option 1240. Similarly, the system administrator can remove words and/or phrases from the word list by selecting the remove word option 1242. A list of letters and/or a key pad 1244 is included (and/or displayed after selection of the add option 1240) to allow the user to enter words or phrases. The displayed key board can be operated through the remote control 150 and/or manual controls. Additionally and/or alternatively, an external keyboard is coupled with the system 120 is some embodiments to allow the user to directly type in the words and/or phrases.
The word list filtering is typically independent of other locks and limits settings, and utilized in cooperation with the locks and limits. Before the program guide 1320 is displayed, the restricted word list is accessed in memory. The words and/or phrases of the word list are compared against words in the titles and descriptions/summaries. When a title and/or summary is identified as containing a restricted word, that entry in the program guide is restricted and the title and description are replace in the programming guide database with a generic title and description.
In some embodiments, the broadcaster and/or distributor of program content employ a delayed description fetch, where a description of a program is downloaded at the time the program title is highlighted as the user traverses through the program guide. The information fetched is compared against the restricted word list (and/or locks and limits) prior to display. If a word or phrase in the description matches words in the restricted word list, the description information is restricted and/or replaced with a generic description. In this instance, the title is displayed in the program guide, however, the description information is restricted, and in some implementations, the user is prevented from accessing to the program content.
Referring back to
The natural language filter 1250 of
The categories 1254 can include substantially any category. For example, some embodiments provide for a language selection 1260 allowing the system administrator to set the natural language processor to filter according to a predefined language (e.g., English, Spanish, French, and substantially any language). Some embodiments further allow multiple languages to be set. The language selection can include a pull-down menu that lists the possible languages from which the system administrator selects. The categories can further include substantially any category that a system administrator would want to filter, such as violence 1262, sexual content 1263, drugs 1264, profanity 1265, and substantially any other such categories. In some embodiments, the categories are simply enabled or disabled (e.g., through a toggle switch selected by the system administrator). Additionally and/or alternatively, some embodiments provide one or more categories with levels 1267 of offensiveness or obscenity that are selectable by system administrator (e.g., levels from zero to 10 (or some other value); or some other level indication), which can be specified directly by the system administrator by entering a number, selecting from a pull-down, positioning a slider on a slide bar, or other such selection procedures. The categories 1254 allow the system administrator to refine the natural language filtering and further define what the filter is to identify as a word or words that are to be restricted and/or blocked according to their usage (e.g., obscene, vulgar, profane, sexually explicit, and other such usage).
When the context of the title and/or description is interpreted to be offensive and/or is identified to include language that is to be filtered, the title and description pair are restricted from the programming guide. Again, because the title is represented in the program guide by a time and duration, its position in the electronic program guide is preserved, in some implementations, with a generic title (e.g., Restricted).
This setting for the natural language filtering allow the filtering to operate independent of other filtering, locks and/or limit settings. Typically, however, the natural language filtering in operated in cooperation with the other filtering, locks and/or limits. In some embodiments, the natural language filtering overrides the word list filter. For example, if a title is restricted because it includes a word defined in the word list, the natural language filter further analyzes that entry to determine the usage of the word. If the natural language filtering determines that the word is not used in an offensive or obscene manner as defined by the system administrator, the title is not filtered even though the title includes a word from the word list.
When a user initiates a display of the electronic program guide, the STB standard algorithm (e.g., as defined by the user and/or system administrator) for determine which channels to display and how much program information to display at one time is employed. Before displaying the program guide, the natural language processor options are read from memory and the programming guide data is filtered prior to display.
When the electronic program guide processor 320 generates a programming guide database for display, the natural language filtering scans the database for offensive and/or inappropriate material according to the defined categories 1254 and/or options. When the natural language filtering detects restricted context, that entry in the program guide is restricted and the title and description is replaced in the displayed programming guide with a generic title and/or description. In some preferred embodiments, the user is prevented from accessing the program content for those entries that are restricted.
For applications that have a delayed description fetch that, for example, download descriptions at the time the program-title is highlighted as the user traverses through the program guide, the fetched description information is initially processed by the natural language filtering before the description is displayed. If the natural language processing determines that the context of the downloaded description includes offensive language based on the set categories, the description is not displayed and a generic description is alternatively provided. In this case, the title is displayed, while the description information is not displayed.
In some implementations, the programming guide processor 320 generates a complete programming guide database of all available data once filtered according to the natural language filtering (and other filtering and/or locks and limits) and records the programming guide as a database in memory. Upon activation of the programming guide, the programming guide processor accesses memory to retrieve the appropriate entries to be displayed (e.g., eight entries). As the user scrolls through the data, the programming guide processor retrieves the subsequent entries requested by the user without having to further filter.
In some alternative embodiments, the programming guide is generated as the user repositions/scrolls through the guide (e.g., through different channels, and/or through different time periods) to display other channel information. A database of entries for the new data to be displayed is generated for each change of the programming guide. Before displaying the additionally information, the natural language filter is applied (when enabled). Thus, as the user moves through the programming guide, the programming guide is filtered based on the natural language filtering.
In step 1530 it is determined whether the filtering includes word filtering. When the filtering does not include word filtering, the process continues to step 1540. Alliteratively, step 1532 is entered where a first word (or a subsequent word as described below) of the word list is identified. In step 1534 the titles and descriptions/summaries of programming guide data is searched for the restricted word, and titles are flagged with a filter flag or restriction flag when a restricted word is found in the title and/or summary. Typically, the word search is implemented to search for the specific words and derivatives of the word (e.g., when the restricted word is gun, the word guns is identified as restricted), however, in some embodiments, the filter interface allows the user to disable and/or enable derivates for words. In step 1536 the process determines whether all of the words of the word list have been searched. When all of the words have not been searched the process returns to step 1532 to identify the next word of the list.
In step 1540 it is determined whether natural language filtering is to be performed. If natural language filtering is not to be performed, the process 1510 terminates. Alternatively, step 1542 is entered where a first or subsequent category (e.g., a specified violence level) is identified. In step 1544 the programming guide data (titles, summary, and/or parameters) is searched for natural language according to the identified category (e.g., violence). In step 1546 it is determined whether identified natural language defining violence exceeds the level or threshold set by the system administrator. If the level is not exceeded the process continues to step 1552.
If the level is exceeded, the title that has natural language that exceeds set threshold is flagged using a filter or restriction flag in step 1550. In step 1552 it is determined whether all natural language categories have been search, and returns to step 1542 when additional categories are to be searched. Alternatively, the process 1510 terminates.
In step 1626 the process determines whether one or more titles or summaries for the channel being evaluated and during the period of time to be displayed are flagged (e.g., whether a title is flagged with a lock/limit flag and/or a filter flag). If the titles are not flagged, the process continues to step 1630. If a title is flagged, the title (and associated summary) is replaced in step 1628 with a generic title (and summary). In step 1630 the channel and associated non-restricted titles and generic titles are displayed. In step 1632 the process determines if the predefined number of channels (e.g., 10 channels) are displayed. When the predefined number of channels are not displayed, the process returns to step 1622 to evaluate a next channel of the programming guide data, otherwise the process terminates.
In some alternative embodiments, the programming guide data is revised to remove entries that are blocked and/or restricted and saved as a revised programming guide data. Upon display of the programming guide, a process determines whether revised programming guide data was stored. If revised programming guide data was stored, the display of the programming utilizes the revised data and does not have to analyze the data as the programming guide is displayed. In some implementations, when a user logs in, the programming guide data is evaluated based on the blocked channels, locks and limits, filtering and other restrictions, and the revised programming guide data is stored for use in generating the displayed programming guide.
In some embodiments, the programming guide includes one or more status or progress bars that define the state of programs currently being accessed by the STB for viewing, recording and/or playback.
In some embodiments, the program being viewed is a recorded program and is being played back by the user. As such, the progress bar 1922 defines the status of the playback. One or more progress bars are similarly provided in some embodiments, during some implementations for the recording of programs. Still further, some embodiments display one or more progress bars 1922 independent of the programming guide 1920.
Some embodiments of the system include one or more personal video recorder (PVR) and/or digital video recorder (DVR) applications 236, 237 that allow the recording and playback of received programming content. Generally, PVRs are consumer electronics devices and/or are incorporated into consumer electronic devices (e.g., STB) that record broadcast programming content to a memory (e.g., hard disk). The recorded content allows users to play back the content at a time convenient for the user, and also allows for trick modes and/or commands such as pausing live TV, instant replay of interesting scenes, skipping advertising, and other trick commands. In some implementations, the system 120 includes PVR/DVR devices 144 coupled with and external to the STB. Alternatively and/or additionally in some implementations, the STB includes one or more PVR/DVR devices 230-231, 234-235. The PVR/DVR applications utilize and/or include one or more tuners 222-223 to simultaneously record multiple programs.
In some embodiments, the STB includes PVR/DVR applications cooperated with multiple timers to allow the recording of multiple programs simultaneously. Further, the PVR/DVR applications are capable of simultaneously playing back currently received programs (live programs) and/or one or more previously recorded programs, while further recording one or more additional programs. The present embodiments provide for the display of one or more progress bars, and/or a multi-level progress bar to be displayed on the main window of the display 2020 and/or in the program guide 710 showing the progress of currently viewed live programs, the progress of one or more playbacks of previously recorded programs, and/or the progress of one or more recordings of programs.
In some implementations, a user initiates the display of the progress bar/bars through the remote and/or manual controls. For example, the remote control can include a progress bar button and/or a button with more than one function with one of those functions being the initiation of displaying one or more progress bars. When multiple progress bars are displayed, they are displayed one above the other in some implementations. In other implementations the bars can be divided horizontally along the screen; displayed proximate the PIPs 2024; and other such placements.
The display of the progress bars can be achieved in substantially any order and/or configuration. For example, just the record progress bars can be displayed, just the playback status bars can be displayed, just the main playback progress bar can be display, or other such configurations and/or combinations. In some implementations, each selection of the expand button causes a progress bar to be replace by a subsequent progress bar when multiple applications (multiple playback and/or record applications) are in progress. For example, with three playbacks and two records active, the selection of the progress bar five successive times results in just the fifth progress bar being displayed.
In some implementations, the titles of the programs being playback and/or the recorded (e.g., “TITLE 1”, “TITLE 2”, “TITLE 3”, etc.) are displayed within and/or adjacent to the progress bars to identify which progress bar is associate with which playback and/or record. To further aid in distinguishing between playback progress bars and record only progress bars, the record progress bars can be depicted in a first color, while playback only and/or playback/record progress bars are depicted in a second color. In some embodiments, the bars associated with playbacks are each depicted in a different color with a frame around the main program and/or the PIP windows with corresponding colors. Other similar distinctions can be employed to further distinguish between progress bars.
Many PVR/DVR devices incorporate the use of trick commands, such as pause, replay/rewind, fast-forward, and other such trick commands. In some present embodiments, trick commands are utilized to control one or more active playback and/or record applications. Typically, trick commands only apply to playback. In some implementations, however, the recording can be paused, rewound (rewind back over a commercial during other commercials before a program resumes), and other such functions, and thus trick commands are utilized to control record applications in some implementations.
Because the present embodiment allows multiple simultaneous playback and/or record applications, some embodiments allow users to specify one or more of the currently active applications for which selected trick commands are to apply. In some embodiments, when multiple progress bars are displayed, the present embodiment initially identifies and/or distinguishes one of the progress bars as being a controlling or focused application. For example, a progress bar is marked, highlighted 2150 (see
In some implementations, when multiple progress bars are initially displayed, the main program progress bar 2030 by default is highlighted as the focus application. The user simply shifts the highlighting to another progress bar to shift the focus to an alternate playback or record application. In some embodiments, the user can simultaneously select multiple progress bars (e.g., pressing a select button on the remote control to select a progress bar, using up arrow key to shift to a second progress bar and again pressing the select button to highlight a second progress bar, etc.). With multiple progress bars selected, trick commands received are applied to each of the applications selected.
Allowing the selection of one or more playback and/or record applications allows the user to control each of the applications. For example, with one or more PIP playback applications, a user can pause the playback while directing his/her attention to the main program during a critical period, and then resume the PIP playback following the critical period.
In some embodiments, the one or more progress bars are displayed for a predefined period of time. When this predefined period expires, the progress bars are automatically removed from the display. The time out period is reset, in some implementations, each time the user implements some command associated with one or more of the progress bars, for example, switching the focus between two progress bars causes a reset of the time period. Additionally and/or alternatively, the system in some embodiments allows the user to remove one or more progress bars from the display. For example, the user can select a condense or undisplay button on the remote control 150. Alternatively, the user can continue to select the progress bar button which causes progress bars to be removed from the display once of the progress bars for each currently active application has been displayed.
In some embodiments, the first time a progress bar is to be displayed, the progress bar associated with the main program in the main window is displayed. While the first progress bar is being displayed, and an expand button is activated it is determined whether other playback applications are in progress (e.g., PIP applications). If another playback is in progress, the progress bars associated with each active playback is displayed (e.g., displayed above the main progress bar 2030). In some implementations, a focus or highlight rectangle 2150 is further displayed around the main progress bar indicating that received trick commands are apply to the playback of the main window. If it is determined following the detection of the expand command that there are no other currently active playback applications, the system determines whether there are any active records applications. If one or more record applications are in progress, the progress bars associated with the record applications are displayed. In some embodiments, record applications cannot receive trick commands, and because the main playback application is the only active application capable of receiving trick commands, the focus or highlight rectangle is not displayed around the progress bar 2030 of the main program. In some preferred embodiments, if the focus changes between first and second progress bars in the middle of a trick command operation on the first associated application, the trick command for that application continues, while subsequent trick command(s) are applied to the second application, thus allowing multiple trick mode operations per session.
In some implementations, the reception of a second expand command while multiple playback applications are active and multiple playback progress bars are displayed (including main progress bar), causes the system to determine whether any records applications are active. If there are active record applications, record progress bars are additionally displayed (e.g., above the playback progress bars). If there are no active record applications when the second expand command is received, then no new progress bar are displayed. In some embodiments, future detections of expand commands have no effect. Alternatively, some embodiments remove one or more progress bars for each additional detection of expand commands (e.g., remove record application progress bars on a first additional expand command, remove additional playback progress bars upon a second additional expand command, and remove main progress bar upon a third additional expand command). Additionally and/or alternatively, a compress button is defined on the remote in some implementations that initiates the removal of progress bars. For example, compress commands cause the removal of record application progress bars, followed by the additional playback progress bars. When all of the progress bars except for the main progress bar are removed, the focus rectangle is also removed and trick commands are applied to the main progress bar.
As introduced above, some embodiments employ a timeout period, and the period of time associated with each level of displayed progress bars can vary. For example, when only main progress bar is displayed, the timeout period for erasing the progress bar is relatively short. When multiple progress bars are displayed the timeout period is extended so that a user does not have to redisplay the list of progress bars multiple times because the timeout expired.
In step 2326, the process determines whether an expand command is received. If the expand command is received, the process enters step 2330 where it determines whether there are any additional playback applications currently active. If there are no additional playback applications active, the process continues to step 2340
If there are additional active playback applications, step 2332 is entered where the status of each additional playback application is determined. In step 2334, one additional progress bar is displayed for each identified active playback application. The process then continues to step 2336 where it is determined whether an expand command is again received. If the expand command is received, the process continues to step 2340, otherwise the process continues to step 2346.
In step 2340 it is determined whether there are record applications that are currently active. If there are active record applications, the process enters step 2342 where the status of each active record application is determined. In step 2344, progress bars are generated for each active record application. If there are not active record applications the process proceeds to step 2380 where one or more progress bars (e.g., main progress bar) are removed from the display and the process terminates.
If the expand command is not received in step 2326, the process continues to step 2346 where the process determines whether a command has been received. If a command has not been received, the process continues to step 2382 where it determines whether a time limit has expired. If not the process returns to step 2326, otherwise the process enters step 2380 where one or more progress bars are removed from the display and the process terminates.
If it is determined in step 2346 that commands are received, step 2350 is entered where it is further determined whether the command is a selection command to initiate the selection and/or highlighting of one or more of the progress bars and thus focusing trick commands on associated playback and/or record applications. If a selection is received, the selection is implemented in step 2352. Following step 2352 and if the received command is not a selection command, step 2354 is entered where it is determined if the command received was a trick command. If the received command is a trick command, step 2360 is entered where it is determined if one or more progress bars are displayed. If there is more than one bar displayed, step 2362 is entered where the process determines which of the plurality of bars are focused and/or selected. Following step 2362 and if there is only one bar selected in step 2360, step 2364 applies the requested trick commands to each playback and/or record application selected and/or highlighted. The process then returns to step 2326 to determine if additional commands are received.
If it is determined in step 2354 that the received command is not a trick command, the process enters step 2366 where it is determined whether the command is an additional expand command and/or an undisplay command. If the command is an additional expand command and/or an undisplay command, one or more progress bars are removed from the display at step 2370. In step 2372, it is determined whether additional progress bars are still displayed. If no other bars are displayed the process 2310 terminates, alternatively, step 2374 implements the alternate command. The process then returns to step 2326 to await additional commands.
While the invention herein disclosed has been described by means of specific embodiments and applications thereof, numerous modifications and variations could be made thereto by those skilled in the art without departing from the scope of the invention set forth in the claims.
Number | Name | Date | Kind |
---|---|---|---|
5532754 | Young et al. | Jul 1996 | A |
5583576 | Perlman et al. | Dec 1996 | A |
5621456 | Florin et al. | Apr 1997 | A |
5699125 | Rzeszewski et al. | Dec 1997 | A |
6118492 | Milnes et al. | Sep 2000 | A |
6172674 | Etheredge | Jan 2001 | B1 |
6639687 | Neilsen | Oct 2003 | B1 |
6701523 | Hancock et al. | Mar 2004 | B1 |
6732367 | Ellis et al. | May 2004 | B1 |
6756997 | Ward, III et al. | Jun 2004 | B1 |
6785901 | Horiwitz et al. | Aug 2004 | B1 |
6847778 | Vallone et al. | Jan 2005 | B1 |
7200854 | Moir | Apr 2007 | B2 |
20010033343 | Yap et al. | Oct 2001 | A1 |
20010055017 | Ording | Dec 2001 | A1 |
20020013851 | Crandall | Jan 2002 | A1 |
20020054750 | Ficco et al. | May 2002 | A1 |
20020174430 | Ellis et al. | Nov 2002 | A1 |
20020180795 | Wright | Dec 2002 | A1 |
20030009495 | Adjaoute | Jan 2003 | A1 |
20030070168 | Stone | Apr 2003 | A1 |
20030088873 | McCoy et al. | May 2003 | A1 |
20030095792 | Ogikubo | May 2003 | A1 |
20030110514 | West et al. | Jun 2003 | A1 |
20030115592 | Johnson | Jun 2003 | A1 |
20030149981 | Finster et al. | Aug 2003 | A1 |
20030154477 | Hassell et al. | Aug 2003 | A1 |
20030163811 | Luehrs | Aug 2003 | A1 |
20040123135 | Goddard | Jun 2004 | A1 |
20050044570 | Poslinski | Feb 2005 | A1 |
20050076367 | Johnson et al. | Apr 2005 | A1 |
20050166230 | Gaydou et al. | Jul 2005 | A1 |
20070226766 | Poslinski et al. | Sep 2007 | A1 |
20080320523 | Morris et al. | Dec 2008 | A1 |
20090235198 | Migos et al. | Sep 2009 | A1 |
Number | Date | Country | |
---|---|---|---|
20060048184 A1 | Mar 2006 | US |