BACKGROUND OF THE INVENTION
This invention relates generally to multi-user media systems and, more particularly, to multi-user media systems supporting recorded media assets.
Today's media systems provide viewers with a large array of media content. Broadcast television content, pay-per-view (PPV) content, on-demand content (e.g., video on-demand (VOD) content), and digital music may all be accessed in a viewer's home using suitable user equipment. In addition, recording equipment, such as a digital video recorder (DVR), allows viewers to record various types of the aforementioned content for later access or playback at the user's leisure.
In addition to allowing a user to record media content for playback at a later time, some of today's media systems allow a user to resume watching content where the user last left off. For example, the user equipment may save a reference or index to the user's current viewing position within an asset after the user stops watching the asset. In this way, the user can resume the asset at the correct viewing position at a later time.
Modern in-home media systems, however, may be designed for multi-user access or are multi-room systems including a plurality of user equipment devices. For example, each member of a family may access media content via a single user equipment device or a plurality of networked user equipment devices in a home. The plurality of networked user equipment devices may be connected to a “master” user equipment device or local media server. The master user equipment device or local media server may cache local content and access recorded content on behalf of all the networked user equipment devices.
Accordingly, it would be desirable to provide an index point management system that maintains index points for more than one user and/or across more than one user equipment device so that index points may be accessed and updated at any user equipment device in the media system. It would also be desirable to provide a robust index point management system with an enhanced user interface for creating and managing personal user index points in multi-room or multi-user media systems. The enhanced index point management system may implement a more flexible index point management scheme whereby multiple index points may be maintained for a single content selection or media asset.
SUMMARY OF THE INVENTION
In accordance with the principles of the present invention, an interactive media guidance application with enhanced index point management support is provided. In connection with the enhanced index point management support, users may establish personal index points into a media asset or content selection. As used herein, a media asset or content selection refers to any media content capable of being indexed by a user's equipment. Examples of commonly indexed assets include recorded content (e.g., content recorded to a digital video recorder (DVR) or other storage device), on-demand content (e.g., video on-demand (VOD) content), pay-per-view content, DVD content, and digital music. In addition, indexed assets may include playlists, or ordered lists of content. Systems and methods for providing playlists of media content are described in more detail in Radloff U.S. patent application Ser. No. 11/324,191, filed Dec. 29, 2005 and Radloff et al. U.S. patent No. 11/366,863, filed Mar. 2, 2006, both of which are hereby incorporated by reference herein in their entireties.
After a user equipment device receives a request to view a media asset, the interactive media guidance application may access a list of available index points associated with the requested asset. Each index point in the list of available index points may reference a current viewing location within the asset. The interactive media guidance application may then present a listing of the available index points to the user. To access the requested asset, the user may select one of the available index points or create a new index point.
In some embodiments, the current viewing location within an asset is represented by the viewing time from the start of the asset. For example, an index point may reference a current viewing location of 0 hours, 28 minutes, and 13 seconds (00:28:13) from the start of the asset. Other representations may also be used. For example, for playlists of assets, an asset number and a current viewing location within that particular asset may be referenced by the index point. Alternatively, the total elapsed time from the beginning on the playlist may be references by the index point. In other embodiments, frame numbers, user application state data, or any other suitable information may be referenced by an index point to keep track of a user's viewing progress or current location within the asset. After a user accesses an asset using an index point, the index point is updated as the user progresses through the asset.
In some embodiments, a user may associate a custom identifier with an index point. For example, the user may associate the user's name, handle or nickname, or a brief descriptive label with the index point to help identify the index point for later access. The interactive media guidance application is configured to display index point identifiers in an index point listing screen in accordance with some embodiments of the invention.
Index points may be maintained for each user of the system, each user equipment device, or both. In addition, a default index point may be defined for each asset (or for each user equipment device) so that a user may additionally or alternatively access an asset at the location referenced by the default index point. In some embodiments, the default index point is used after a timeout period expires and no user selection of a custom index point has been received.
To further help identify an index point, cached video of the asset around the current index point may be presented in a visual index point listing screen in some embodiments. This cached video may correspond to a portion of video (e.g., a loop or just a single frame) before the viewing location referenced by the index point, a portion of pre-decoded video after the viewing location referenced by the index point, or both a portion of video before and after the location referenced by the index point. The video may be continuously looped and presented to the user to help remind the user of the location associated with the index point.
After a user accesses an asset using an index point, the user's viewing progress is monitored and the index point is updated accordingly. In some embodiments, index points are continuously updated (or periodically updated, e.g., every 5 seconds) as the user progresses through an asset. In other embodiments, index points are updated only after the user stops, pauses, or otherwise tunes away from the asset (e.g., to watch another asset). The user may then access an index point again at a later time to resume the asset at the new location referenced by the index point.
BRIEF DESCRIPTION OF THE DRAWINGS
The above and other features of the present invention, its nature and various advantages will be more apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, and in which:
FIG. 1 is a diagram of an illustrative interactive media system in accordance with one embodiment of the present invention;
FIG. 2 is a diagram of an illustrative multi-user or multi-room media system in accordance with one embodiment of the present invention;
FIGS. 3A and 3B show illustrative index point timelines and windows in accordance with one embodiment of the present invention;
FIG. 4 shows an illustrative index point record for a particular asset in accordance with one embodiment of the present invention;
FIGS. 5-12 show illustrative index point management display screens in accordance with various embodiments of the present invention;
FIG. 13 shows an illustrative process for accessing a media asset in accordance with one embodiment of the present invention;
FIG. 14 shows an illustrative process for presenting cached video around an index point in accordance with one embodiment of the present invention; and
FIGS. 15A and 15B show an illustrative process for requesting an index point from any user device in a media system in accordance with one embodiment of the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
FIG. 1 shows illustrative interactive media system 100 in accordance with one embodiment of the invention. User equipment 102 receives content in the form of signals from content source 130 over communications path 150. Any suitable number of users may have user equipment, such as user equipment 102, coupled to content source 130 and data sources 140. For the clarity of the figure, however, the user equipment of only a single user is shown. In addition, although in practice there may be numerous instances of content source 130, for clarity only one instance has been shown in FIG. 1.
Content source 130 may be any suitable content source such as, for example, a cable system headend, satellite television distribution facility, television broadcast facility, on-demand server (e.g., video-on-demand (“VOD”) server), Internet or network media/web server, or any other suitable facility or system for originating or distributing passive or interactive media content to user equipment 102. Media content that may be provided by content source 130 to user equipment 102 includes broadcast programs, broadcast series, VOD programs, digital music, news, interactive applications (e.g., interactive games), Internet resources and web services (e.g., websites, newsgroups, and chat rooms), and any other media content capable of being displayed by, presented to, recorded, or interacted with, using user equipment 102.
Content source 130 may be configured to transmit signals to user equipment 102 over any suitable communications path 150 including, for example, a satellite path, a fiber-optic path, a cable path, or any other suitable wired or wireless path. Although in the example of FIG. 1 only communications path 150 is shown, in actual implementations, numerous communications paths may connect user equipment 102 and content source 130. The signals may be transmitted as a broadcast, multicast, unicast, or any other suitable transmission stream. Content source 130 may also include control circuitry 132 for performing operations on the signals transmitted by the content source such as, for example, generating new signals or communicating with user equipment 102 to provide on-demand content.
User equipment 102 may receive interactive application data from one or more instances of data sources 140 and/or content source 130. Data sources 140 may provide data for a particular type of content or for a particular application running on user equipment 102. For example, one data source 142 may provide data for an interactive media guidance application and another data source 142 may provide data for an interactive home shopping application, for example. In some embodiments, data sources 140 may provide data to the applications running on user equipment 102 using a client-server model. There may be one server per data source, one server for all sources, or, in some embodiments, a single server may communicate as a proxy between user equipment 102 and various data sources 140.
Content source 130 and data sources 140 are shown in FIG. 1 as separate elements. In practice, their functionality may be combined into a single mechanism and provided from a single system at a single facility, or their functionality may be provided by multiple systems at multiple facilities. For example, content source 130 and data source 142 may be combined to provide broadcast television content and associated broadcast television data, including ratings information, program data, or other suitable information to user equipment 102.
User equipment 102 may include any equipment suitable for providing an interactive media experience. For example, user equipment 102 may include computer equipment, such as a personal computer with a television card (PCTV). User equipment 102 may also include television equipment such as a television and set-top box, a recording device, a video player, a user input device (e.g., remote control, a keyboard, a mouse, a touch pad, a touch screen, and/or a voice recognition/verification module) or any other device suitable for providing a complete, interactive experience. For example, user equipment 102 may include a DCT 2000, 2500, 5100, 6208 or 6412 set-top box provided by Motorola, Inc. User equipment 102 may also include various mobile communications devices with integrated or attached displays, such as PDAs, laptop computers, cellular telephones, and the like.
In the example of FIG. 1, user equipment 102 includes at least control circuitry 110, display device 104, interactive media guidance application 106, recording device 112, and user input device 108, all of which may be implemented as separate devices or as a single, integrated device. In addition to interactive media guidance application 106, other interactive applications may be implemented on user equipment 102. These interactive applications may direct a tuner in control circuitry 110 to display, on display device 104, the content transmitted by content source 130 over communications path 150 and to provide interactive application features.
Display device 104 may be any suitable device capable of presenting human-perceivable media, such as, for example, a television monitor, computer monitor, LCD or plasma display, video projection device, holographic projector, virtual reality simulator, etc. Display device 104 may also be configured to provide audio and other sensory output.
Control circuitry 110 is adapted to receive user input from input device 108, execute the instructions of interactive media guidance application 106, execute the instructions of any other interactive applications, and direct display device 104 to display media content and interactive application display screens and overlays. Control circuitry 110 may include one or more tuners (e.g., analog or digital tuners), encoders and decoders (e.g., MPEG encoders and decoders), processors (e.g., Motorola or MIPS family processors), memory (i.e., RAM and hard disks), communications circuitry (e.g., cable modem and ATSC 256QAM receiver circuitry), input/output circuitry (e.g., graphics circuitry), connections to the various devices of user equipment 102 (e.g., recording device 112), and any other suitable components for providing analog or digital media content, including television programming, interactive media applications and games, digital music, and other interactive features. Control circuitry 110 may be configured to execute the instructions of interactive media guidance application 106 from memory, which can include any type of storage or memory mechanism (e.g., RAM, ROM, hybrid types of memory, hard disks, and/or optical drives). In one embodiment, control circuitry 110 may be included as part of one of the devices of user equipment 102 such as, for example, part of display 104 or any other device (e.g., a set-top box, television, and/or video player).
Control circuitry 110 may also be connected to recording device 112 for storing data and assets from data sources 140 or content source 130. Recording device 112 may include any media storage or recording device, including a digital video recorder (DVR), file system, or gaming system. The data and assets stored on recording device 112 may include data for use by interactive media guidance application 106 (e.g., media content information, index point information, or any other suitable information) as well as any media content accessible by user equipment 102.
Although, in the illustrated embodiment of FIG. 1, interactive media guidance application 106 is internal to user equipment 102, interactive media guidance application 106 may be implemented externally or partially implemented externally to user equipment 102. For example, interactive media guidance application 106 may be implemented at content source 130 and may run using a client-server or distributed architecture where some of the application is implemented locally on user equipment 102 in the form of a client process and some of the application is implemented at a remote location in the form of a server process. Interactive media guidance application 106 may also be implemented on any suitable server, computer equipment, or set-top box accessible by user equipment 102. In some embodiments, interactive media guidance application 106 is integrated with another interactive application or is implemented as a standalone application, subprocess, or class (e.g., in an OCAP environment).
In at least some embodiments, interactive media guidance application 106 is implemented in software. However, an implementation of software and/or hardware may be used in other embodiments. These arrangements are merely illustrative. Other suitable techniques for implementing interactive media guidance application 106 may be used if desired.
Interactive media guidance application 106 may store and maintain index points for users of user equipment 102. Interactive media guidance application 106 may also display, on display device 104, various index point management display screens and overlays, such as the display screens and overlays shown in FIGS. 5-12. User index point information may be stored and maintained at user equipment 102 (e.g., in a database in memory 112) or at a suitable content or data source (e.g., data source 142) in media system 100. If index points are stored remote from user equipment 102, the index point information may be retrieved on-demand or periodically from a remote location. For example, when user equipment 102 receives a user request for an indexed asset, user equipment 102 may request a listing of all available index points for the requested asset from a remote server or data source. In some embodiments, index points may be shared by users at diverse locations (e.g., after a user login or authentication process) or index points may be accessed only by the user equipment device, home network, or user that created the index points.
In some embodiments, a local media server is co-located with one or more user equipment devices. For example, FIG. 2 shows illustrative multi-user or multi-room system 200 in accordance with one embodiment of the invention. System 200 may be located at a single location or facility (e.g., a user's home) or multiple locations or facilities (e.g., a user's primary residence, secondary residence, and summer home). System 200 may include N instances of user equipment devices 210, where N is any positive number. User equipment devices 210 may include all the components, features, and network connections described in respect to user equipment 102 (FIG. 1).
User equipment devices 210 may be connected to local media sever 230 via communications path 216. Communications path 216 may include a satellite path (with telephone backlink), a fiber-optic path, a cable path, an Ethernet network, a DOCSIS cable modem network, or any other suitable wired or wireless path or network. Some very relevant specific communications networks include the Internet Protocol over cable/coax networks including the one specified by the Multimedia Over Coax Alliance (MOCA) (http://www.mocalliance.org), as well as applications and services that run on such networks including those specified by the Digital Living Network Alliance (http://www.dlna.org). User equipment devices 210 may also be connected to one another via the same communications path or a different path. For example, user equipment devices 210 may be connected to local media server 230 via a cable path while the user equipment devices may be connected to one another via fiber-optic paths.
Local media server 230 may include any media server, content aggregator, or user equipment device capable of recording assets and accessing stored assets. For example, local media server 230 may include an Explorer 8300 DVR server by Scientific Atlanta or a DCT 6400 series high-definition networked set-top box as part of Motorola's Whole Home Media Solutions (WHMS) or a personal computer (e.g., equipped with a tuner card or Open Cable Unidiretional Receiver (OCUR) card and optionally running MediaCenter software from Microsoft Corporation of Redmond, Wash.). If local media server 230 is a set-top box, it may be configured as the master set-top box in a master/slave arrangement. For example, in some embodiments, user equipment devices 210 may not have direct access to recorded assets, but rather must retrieve recorded assets on recording device 260 through local media server 230. In this arrangement, local media server 230 processes asset requests on behalf of user equipment devices 210.
Local media server 230 may include at least control circuitry 232, display device 240, recording device 260, and user input device 220. Local media servers may often be without displays, for example, when they serve as network black box storage devices. Local media server 230 may also include audio and/or video encoding or transcoding circuitry (not shown) in order to convert media content from one format and/or asset type to another and/or asset type. Control circuitry 232, like control circuitry 110 (FIG. 1), may execute the instructions of one or more interactive applications, such as an interactive media guidance application. In some embodiments, control circuitry 232 executes application instructions from memory (e.g., RAM, ROM, and hybrid types of memory). Local media server 230 may also include one or more attached or integrated recording or storage devices, such as recording device 260. Recording device 260 may include one or more digital video recorders, hard drives, optical drives, media players, gaming systems, or any other suitable device for recording or storing media assets. Media server 230 may be a PCTV running Microsoft's Media Center Edition (MCE) software, for example, and, in such an example, one or more of user equipment devices 210 may be an XBOX 360 game machine (also a product of Microsoft Corporation). Some or all of the media assets stored on recording device 260 may be capable of being indexed. For example, recording device 260 may include a plurality of recorded television programs, feature movies, and interactive applications and games accessible by user equipment devices 210 upon request.
Assets may also be accessed and cached to local media server 230 from a remote media server. For example, after a user equipment device requests an on-demand or pay-per-view asset from a remote on-demand or pay-per-view server, local media server 230 may cache a portion or all of the requested asset. An index point may then be assigned to the asset. As the user watches the asset, local media server 230 may monitor the user's progress through the requested asset and advance the index point accordingly in order to track the user's viewing progress. Likewise, the index point may be adjusted when the user fast-forwards, rewinds, restarts, or otherwise interacts with the presentation of the asset. In the case of game assets, index points may correspond to a level and/or location within the game and other game attributes (e.g., player health, weapons, kills, score, and rank).
In some embodiments, user equipment devices 210 may have different capabilities. For example, the user equipment devices may be configured to display different types of content and run different types of software on different platforms. For example, user equipment devices 210 may include set-top boxes, media servers, personal computers, and various mobile communications devices, such as cellular telephones and PDAs. Each user equipment device may have a different bandwidth capability for receiving data. For example, a wireless user equipment device may receive data from local media server 230 at a lower data rate than a user equipment device connected to local media server 230 via a wired (e.g., cable) path. In addition, a wireless device may not be configured to display high-definition content, while other user equipment device may have high-definition display support.
To support index point management and access from any user equipment device in systems 200 of FIG. 2 or 100 (FIG. 1), multiple formats of a single asset may be available. For example, a high-definition, standard-definition, and H.264 format of a particular asset may all be available on recording device 260 or content source 130 (FIG. 1). Depending on the capabilities of the requesting user equipment device, the appropriate version of the asset may be automatically accessed after an index point is requested. Since typically the length of assets does not change across different asset formats (e.g., a high-definition and a standard-definition asset), the index point management system may update index points in a similar fashion as the user progresses through any format of the asset associated with the index point.
In some embodiments, user equipment devices 210 cache a short video clip (or one or more individual frames) of requested assets around each index point. For example, when a user stops or pauses the presentation of an asset, the user equipment device may cache the previous 15 seconds of video before the index stop point. The user equipment device may also pre-decode and cache content after the index stop point. In some embodiments, a portion of video before and a portion of video after the index stop point are both cached. This video is then associated with the index point. A user may view the cached video in an index point listing screen (such as display screen 900 of FIG. 9) to help remind the user what position in the asset the index point references.
A user may interact with local media server 230 using user input device 220. User input device 220 may include, for example, a remote control, a keyboard, a mouse, a touch pad, a touch screen, and/or a voice recognition/verification module. User input device 220 may be connected to control circuitry 232 over any suitable communications path, which may include a FireWire (IEEE 1394), infrared, or optical connection. Using user input device 220, a user may instruct control circuitry 232 to display interactive application screens, overlays, and media assets on display device 240. Additionally or alternatively, using input devices local to a user equipment device 210, a user may cause application screens, overlays, and media assets generated on media server 230 or locally on user equipment device 210 to be displayed local to user equipment device 210.
FIGS. 3A and 3B show illustrative index point timelines in accordance with one embodiment of the invention. Timeline 300 shows several user index points 302, 304, 306, and 308 in a playlist. The playlist defines four assets to be presented, displayed, or accessed in the order established by the playlist. The playlist may include homogenous or heterogeneous types of content, including, for example, broadcast television programs, digital music, recorded content, on-demand content, and interactive applications and games. In the example of FIG. 3A, asset 1 has a duration of 30 minutes, asset 2 has a duration of 45 minutes, asset 3 has a duration of 15 minutes, and asset 4 has a duration of 30 minutes. Each of assets 1 through 4 will be presented, displayed, or accessed for the designated time period. Typically this time period corresponds to the length of the asset, but this is not always the case. For example, some assets (e.g., a game or web access session) included in a playlist may not be associated with a duration or asset length. For these assets, the user may specify the asset's access or presentation duration in the playlist or the system may automatically provide a default duration (e.g., 30 minutes).
Although timeline 300 shows a playlist timeline with individual asset demarcations, the index points associated with a playlist may or may not reference the individual asset or asset number within a playlist. For example, index point 306 may be represented by the appropriate asset number (i.e., 2 in the example of FIG. 3A) and the amount of elapsed time within that asset. Additionally or alternatively, index point 306 may be represented by the total elapsed time from the start of the playlist. For example, if index point 306 is 18 minutes and 21 seconds into asset 2, index point 306 may be represented by the asset number in the playlist followed by the elapsed time within that asset (e.g., “2—00:18:21”), the total elapsed time in the playlist (e.g., “00:48:21”), or by both (e.g., “00:48:21, 2—00:18:21”).
Although only four index points are shown in FIG. 3A, any number of index points for any number of users may be maintained for a single asset. As described in more detail with regard to FIG. 4, below, index points may be associated with a particular user, a particular user equipment device, or both. For example, in FIG. 3A user equipment device “A” has two user index points in playlist timeline 300 (i.e., index points 302 and 306). Although FIG. 3A shows an index point timeline associated with a playlist of four assets, any number of assets may be defined in a playlist. Moreover, a plurality of index points may be associated with individual assets (as opposed to playlists of assets).
As mentioned above, at least a portion of video (or one or more frames) may be cached (and optionally compressed and/or encrypted) around each index point after a user stops, pauses, or otherwise tunes away from an asset associated with an index point. This video may then be presented to the user in an index point listing display screen (such as display screen 900 of FIG. 9 or display screen 1000 of FIG. 10) to help remind the user what position in the asset the index point references. To facilitate the display of a portion of video (or one or more frames) with an index point listing, the user equipment, local media server, or other suitable storage device, in some embodiments, may maintain one or more of sliding video cache window 310 and incremental video cache window 320, as shown in FIG. 3B. In some embodiments, an asset is pre-decoded continuously as it is played back. For example, sliding window 310 includes a 15-minute pre-decoded portion of video yet to be viewed and a 15-minute cached portion of already-presented video. The user index point may remain centered in the sliding window. Video behind the sliding window may be discarded (or cached until a low storage space condition requires the video to be discarded). The size of window 310 may be any suitable size and may be dynamically adjusted on-the-fly as warranted by storage space conditions on the user equipment or local media server.
Video segments may be cached on an incremental basis as well. For example, incremental video cache window 320 may access and decode video in 30-minute segments (or any other suitable segment size). A segment of new video may be accessed and decoded only when the user's index point is at the end (or some pre-determined distance from the end) of incremental video cache window 320. Incremental decoding and caching may yield better performance on some systems depending on such factors as the type of asset, the type of encoding, compression, and/or encryption used, and system processing power.
FIG. 4 shows index point record 400 for an illustrative asset. Each asset may have a plurality of index points associated with the asset. In the example of record 400, index points are represented by rows in a table of a relational database, but any suitable data structure or storage mechanism may be used in other embodiments. The record or other data structure may be stored at local media server 230 or on one or more of user equipment devices 210 (both of FIG. 2).
In some embodiments, index point records for recorded assets are stored on the same user equipment device, recording device, server, or other device that the actual recorded asset is stored on. For example, if local media server 230 (FIG. 2) holds all the recorded assets in system 200 (FIG. 2), then all index point records for recorded assets may all be stored at the local media server. In other embodiments, recorded assets may be stored at two or more devices within system 200 (FIG. 2). In these embodiments, an index point record may be located on the same device the asset associated with the record is stored on, or all index point records may be centrally stored on a single device. For example, if all the index point records are stored on local media server 230 (FIG. 2), local media server 230 (FIG. 2) may be responsible for monitoring content access and updating index point records.
Index point record 400 shows six index points for a particular asset. These six index points may represent all the index points available in system 200 (FIG. 2) for the particular asset. Each index point may be associated with a particular user equipment device (such as one of user equipment devices 210), a particular user, or both a user equipment device and a particular user. Index point record 400 includes user equipment device column 402, user column 404, index pointer column 406, index position column 408, and name column 410.
User equipment device column 402 includes an identification of the user equipment device that created (or last accessed) the index point. The identification of the user equipment device may take the form of a unique identifier, unit address, network address, or any other suitable identifier. In some embodiments, the user equipment device identified in user equipment column 402 may be the device the actual asset is stored on. In this way, other devices accessing the index point may know where to access the actual asset.
User column 404 includes an identification of the user that created (or last accessed) the index point. Users may be identified, for example, by name, login ID (e.g., username), or unique identifier. The identification of the user in column 404 may be unique across the user equipment device listed in user equipment column 402 or unique across all user equipment devices in system 200 (FIG. 2) or 100 (FIG. 1).
Index pointer column 406 includes a reference or pointer to the index point. For example, as shown in FIG. 4, index pointer column 406 contains unique numeric identifiers. These identifiers may be used to uniquely reference a memory or storage location holding cached video, graphics, or frames for the particular asset. The pointer may also include a URL or other reference to a remote storage device that holds the cached video or frames as well as an offset (e.g., timecode, frame number, memory reference) into that remote storage device. In some embodiments, index pointer column 406 is not included in index point record 400. In such embodiments, each index point may be uniquely identified by the combination of the user equipment identifier and the user identifier. This approach is viable in embodiments of the invention where each user may only create one index point per asset. In some embodiments, however, a single user may create multiple index points for a given asset, in which case the index pointer in record 400 may be helpful to uniquely identify the index point. An example of where multiple index points into an asset might be useful is where the asset is an exercise program (video or application) where an index into the abdominals workout is stored as well as an index into the thighs workout. These indices become in some ways, like bookmarks.
Index position column 408 includes the position (e.g., number of hours, minutes, and seconds) within the asset. The value in this column reflects the current viewing position associated with the index point. As described above, the current viewing position need not be represented by the elapsed time from the start of the asset (although this value may be preferably used for most assets). The current viewing position may also be given by frame number, or any other reference point that can be used to determine the current viewing position within the asset.
Finally, name column 410 includes a custom name, label, or short description created by the user (or automatically by the system) to help identify the index point. The name in name column 410 may be displayed in an index point listing display screen (such as display screen 700 of FIG. 7) to help identify the index point. In some embodiments, the information is name column 410 may be automatically populated by the media guidance application. For example, if an index point is created by a recognized user (e.g., a user who has logged into the system), the user's name (or nickname) may be the default name for the index point. The user may then edit the default name to associate any desirable custom name, label, or description with the index point. As described above, in some embodiments, the system may additionally maintain a default index point. Default index points may not be named and they may include a NULL, “0”, or blank entry in name column 410.
In the example of FIG. 4, index point row 412 may correspond to a default index point for the asset associated with index point record 400. There may be one default index point per asset, one default index point per user equipment device, or multiple default index points per asset. Default index points may be used after a timeout period elapses and no user selection of an index point is received. Index point row 412 indicates that the index point was created (or last accessed) by user “1” at user equipment “A”. The row also indicates that the viewing position associated with the index point is 0 hours, 13 minutes, and 14 seconds and that no custom name has been assigned to the index point. Index point row 414 corresponds to another index point for the asset. This index point was created (or last accessed) by user “1” at user equipment “B”. The viewing position associated with this index point is 0 hours, 56 minutes, and 49 seconds, and the user has associated the custom label, name, or description “RockStar” with the index point.
FIG. 5 shows illustrative interactive media guidance application menu display screen 500 in accordance with one embodiment of the invention. A user may be presented with menu display screen 500 after issuing a suitable command via input device 108 (FIG. 1) (e.g., pressing a “Guide” or “Menu” button on a remote control). Menu display screen 500 includes several user-selectable options, including index points option 504. A user may use input device 108 (FIG. 1) to move a highlight region or cursor about any user-selectable option presented in menu display screen 500. After index points option 504 is highlighted or selected, a description of the index points option may appear in details area 502. For example, details area 502 may inform the user that the user may access and manage user index points via selecting index points option 504. After selecting index points option 504, display screen 600 (FIG. 6) may be presented to the user.
FIG. 6 shows in progress display screen 600 in accordance with one embodiment of the invention. Display screen 600 includes a list of available assets with at least one associated index point. Display screen 600 may include listings for recorded episodes of a program series, such as listing 604, feature movies accessed via an on-demand or pay-per-view service, such as listings 606, and playlists, such as listing 608, as well as any other content capable of being indexed (e.g., interactive applications and games). Each listing in display screen 600 may include current viewing position 612 and date 614. Date 614 may correspond to the date the index point was last accessed or, in the case of episodic content, the date the asset was broadcast. Details area 602 may present additional information about the selected index point, the asset, or any other suitable information. For playlist assets, the listing may also include an asset number within the playlist. For example, playlist listing 608 includes asset number 612. The current viewing position associated with playlists may correspond to the elapsed time within the asset or the elapsed time from the start of the playlist.
Since assets typically are associated with more than one index point, in some embodiments, the listings in display screen 600 correspond to the first or default index point for the particular asset. To indicate that an asset is associated with more than one index point, more information icon 610 may be presented in the asset listing. After selecting any listing in display screen 600 with more information icon 610, an index point details screen, such as index point details display screen 700 (FIG. 7), may be presented to the user. After selecting a listing without more information icon 610, the asset may be automatically presented to the user starting at the current viewing position displayed in the listing.
In some embodiments, the index point listings in display screen 600 are presented after a user logs into a user equipment device (e.g., using a username and password). Once logged in, the user may be presented only with the index points created by the user. In this way, the user may be presented with a filtered listing in display screen 600 of only the user's own index points. The user may also establish permissions for other users to access or modify the user's index points, if desired. An authentication module (which may be part of the interactive media guidance application) may validate all login requests and enforce all index point permissions.
FIG. 7 shows illustrative index point details display screen 700 in accordance with one embodiment of the invention. Display screen 700 may list all the available index points associated with a particular asset. For example, after selecting listing 604 (FIG. 6), display screen 700 may be displayed to the user. Each index point listing in display screen 700, such as index point listing 702, may include the index point name, label, or description (if available), current viewing position 704, and date 706. Date 706 may indicate the date the index point was last accessed. The information displayed in display screen 700 may be derived from an index point data record, such as record 400 (FIG. 4).
To return to now playing display screen 600 (FIG. 6), the user may select back icon 708. To start viewing a selected asset at the current viewing location associated with an index point, the user may highlight an index point and select resume icon 710. To reset, or restart, an index point (e.g., back to 00:00:00), the user may select reset icon 712. To delete or remove an index point, the user may select delete icon 714. After resetting or deleting an index point, the interactive media guidance application may make the appropriate change to the index point record associated with the asset.
Although some common index point action icons are displayed in display screen 700, other icons associated with other index point actions may also be displayed. For example, a fast-forward or rewind action may be defined. After selecting the fast-forward or rewind action icons, the current viewing position associated with an index point may be altered accordingly. Icons for these additional actions may be displayed near action icons 708, 710, 712, and/or 714, if desired.
Index points for a particular asset may also be grouped by user equipment device in some embodiments. For example, FIG. 8 shows all devices index point listing display screen 800 in accordance with one embodiment of the invention. In this embodiment, each user equipment device in system 200 (FIG. 2) or system 100 (FIG. 1) may maintain its own index point for each asset. For example, listing 802 represents an index point for a Motorola DCT 5100 set-top box. This index point is associated with current viewing position 804 and date 806. Date 806 may represent the date the index point was last accessed. Any user in the multi-room media system may access an index point created at another user equipment device by accessing a centrally stored index point data record, such as data record 400 (FIG. 4). For example, a user may create an index point from one user equipment device and wish to access the index point from another user equipment device.
Each listing in display screen 800 may also include an identification of the user equipment device, such as label 808 and an identification of the location of the user equipment device, such as location label 810 (e.g., “Ben's Room”). The identifying labels may help a user identify the desired index point from which to resume accessing the asset. In some embodiments, user equipment label 808 and location label 810 may be automatically updated after a user accesses an index point from a new user equipment device. In this way, user equipment label 808 and location label 810 may always reflect the most recent user equipment device to access the index point. In other embodiments, labels 808 and 810 may correspond to the user equipment device that created the index point and may remain static regardless of which user equipment device last accessed the index point. Similar to display screen 700 (FIG. 7), display screen 800 may also include index point action icons below the index point listing area.
Sometimes, a user may not be able to identify which index point the user last accessed. This may be true despite presenting an index point name or descriptive label, a current viewing position indication, and a last access date in the index point listing. To further help identify an index point, a short video clip (e.g., a portion of the video cached using sliding video cache window 310 and/or incremental video cache window 320, both of FIG. 3) may be presented to the user after the user highlights or selects an index point listing in some embodiments. The video clip may include a portion of video around or near the current viewing location associated with the index point. For example, a 30-second video including 15 seconds before the current viewing position and 15 seconds after the current viewing position may be looped and presented to the user.
FIG. 9 shows illustrative display screen 900 with such a video window. Display screen 900, like display screen 700 (FIG. 7), may include a listing of all index points associated with a particular asset. After highlighting a listing for an index point, such as listing 904, video window 902 may present a looping video to the user to help identify the index point. After the user moves the cursor or highlight region to another listing for a different index point, the video presented in video window 902 may automatically change to a new video clip associated with the newly selected index point. The video clip may be of any suitable length and may continuously loop or repeat, if desired.
Although only one video window 902 is shown in the example of FIG. 9, it is to be clearly understood that a plurality of video windows, or cells, may be displayed as well. For example, display screen 900 could include a video mosaic screen with a plurality of video windows or cells presented simultaneously in a single display, as shown in display screen 1000 of FIG. 10. Each video window or cell, such as cell 1002, may correspond to a different index point associated with the asset identified in name area 1004. A user may select any video window or cell to access the asset at the viewing position corresponding to the selected video window. In some embodiments, detailed index point information is displayed along side or near each video window or cell. For example, detailed information 1008 may include the custom name or label associated with the index point, the current viewing position, and the date the index point was last accessed (or created). To view more video cells of index points associated with the content identified in name area 1004, the user may select more icon 1006.
Although only four video windows are shown in the example of FIG. 10, any suitable number of video windows may be presented simultaneously in a single display screen (e.g., 2, 6, 8, or 10 windows). Each video window may contain video around or near a different index point associated with the asset. For an example of systems and methods for supporting video mosaic displays and screens and video-rich navigation, see U.S. patent application Ser. Nos. 11/395,380, filed Mar. 30, 2006, 11/510,247, filed Aug. 24, 2006, and 11/510,363, filed Aug. 24, 2006, all of which are hereby incorporated by reference herein in their entireties.
FIG. 11 shows illustrative more information display screen 1100 in accordance with one embodiment of the invention. While watching an indexed asset, the user may wish to view more information about the asset or the index point. For example, the user may press an “Info” button on a remote control to be presented with overlay 1122. While overlay 1122 is displayed, the asset in main window 1120 may be paused or may continue playing. Overlay 1122 may include the name of the asset, a description of the asset, rating information, channel information, and any other suitable information. In addition, more information overlay 1122 may include an indication of the index point name, such as name 1102, and an indication of the current viewing position associated with the index point, such as viewing position 1116. The user may perform common index point management function using icons 1108, 1110, 1112, and 1114.
For example, to return to now playing display screen 600 (FIG. 6), the user may select back icon 1108. To resume viewing the asset, the user may select resume icon 1110. To reset, or restart, the index point (e.g., back to 00:00:00), the user may select reset icon 1112. To delete or remove the index point, the user may select delete icon 1114. After resetting or deleting an index point, the interactive media guidance application may make the appropriate change to the index point record (e.g., record 400 of FIG. 4) associated with the asset. As described above with regard to FIG. 7, other action icons may also be provided (e.g., fast-forward or rewind).
FIG. 12 shows illustrative display screen 1200 with index point pairings. The single index points discussed thus far have been “watched to” index points. In some embodiments, however, index points may be grouped in a “watched from” and “watched to” pairing. Display screen 1200 shows an example of an index point pairing display for the asset listed in title area 1202. For example, if a user watches an asset from its beginning to, for example, time 00:05:36 and then fast forwards the asset to a later time, the system may create an unpaired “watched to” index at 00:05:36. A video loop or one or more frames of video at or around this index point may be stored and presented in video cell 1204. If the user then stops fast-forwarding the asset and resumes normal speed playback at, for example, time 00:10:33, and then subsequently stops or pauses the asset at some later time (e.g., time 00:25:09), the system may create both a “watched from” index at the location where the user resumed normal playback of the program (e.g., time 00:10:33) as well as a “watched to” index indicating the location the user paused/stopped viewing (e.g., time 00:25:09). A video loop or one or more frames of video at or around these index points may also be stored and presented in video cells, such as cells 1206 and 1208.
In some embodiments, these “watched to” and “watched from” index points are indicated as paired in the graphical user interface (e.g., with graphical lines of linkage). For example, pair highlight 1210 may surround video cells 1206 and 1208 to indicate that these cells are paired. In addition, indicator 1218 may indicate that these two indices are paired in progress bar 1214. A user may navigate between index points and pairs of index points using input device 108 (FIG. 1). For example, the user may press the left or right arrow keys on a remote control device to select or highlight a different index point displayed in display screen 1200. A “resume from” function may be applicable to any of these indices to start viewing the asset at the appropriate location corresponding to the selected index. A single asset may have multiple such pairs of watched to and watched from indices, from a single user or from multiple users and/or multiple devices. Various rules would apply to the updating of these indices, depending on watching through or past them, based on various privilege levels, as can be appreciated by one skilled in the art.
In some of these embodiments, an asset is depicted graphically using a transport bar or progress bar, such as progress bar 1214. The watched to and from points as well as pairings may be overlaid on the transport bar and different colors used to indicate the progress, watched areas, and skipped areas of the asset. In addition markers (such as marker 1216) may appear above, below, or within the transport or progress bar. The markers may indicate the type of index point (e.g., “watched to” (“WT”) or watched from or (“WF”)). Paired markers may be displayed in the same color to distinguish them from unpaired markers. Above the transport bar, in some embodiments, a video loop or graphic corresponding to each index point may be displayed providing a visual indication of the scenes at or surrounding the index points. As show in the example of FIG. 12, cells 1204, 1206, and 1208 are positioned above their corresponding index points. Label 1212 may be associated with each cell and may indicate the viewing position and date viewed. In order to view more index point pairs associated with the asset listed in title area 1202, the user may select more icon 1220. In some embodiments, index pairs for multiple assets may be displayed in the same display screen.
FIG. 13 shows illustrative process 1300 for accessing media content in according with one embodiment of the invention. At step 1302, a request is received to view an asset. For example, the user may press a suitable button or key on user input device 108 (FIG. 1) or 220 (FIG. 2) to request an asset. The user may also request a playlist of assets. At step 1304, the interactive media guidance application determines if there are any index points associated with the requested asset. For example, the media guidance application may determine (e.g., by querying a database) if an index point record, such as record 400 (FIG. 4), exists for the asset. If no index points exist for the asset, a new index point may be created for the asset at step 1310. To create a new index point, a new record, similar to record 400 (FIG. 4), may be created for the asset and stored in an index point database or data source.
If the requested asset is associated with at least one index point, at step 1306 a listing of available index points may be presented to the user. For example, display screen 700 (FIG. 7) or display screen 800 (FIG. 8) may be displayed. After presenting a listing of available index points to the user, a user selection of one of the index points may be received at step 1308. The asset may then be presented on the user equipment at the selected index point's current viewing position at step 1312. If a new index point is created at step 1310, the asset may be presented from the beginning of the asset at step 1312. Finally, at step 1314, the media guidance application may monitor the user's progress through the asset and update the index point accordingly.
In practice, one or more steps shown in process 1300 may be combined with other steps, performed in any suitable order, performed in parallel (e.g., simultaneously or substantially simultaneously) or removed.
FIG. 14 shows illustrative process 1400 for updating an index point and caching a video of an asset at a location based on the index point. At step 1402, a request to stop or pause an asset is received. For example, a user may turn or tune away from an asset or return to an interactive media guidance application display screen (such as menu display screen 500 of FIG. 5). After receiving the request to stop or pause the asset, the interactive media guidance application may determine if the asset is associated with an index point at step 1404. For example, an index point database may be queried to determine if an index point record, such as record 400 (FIG. 4), exists for the asset. If an index point is not associated with the asset, a new index point may be created for the asset at step 1406. For example, a new record similar to record 400 (FIG. 4), may be created. The current viewing position associated with the index point may be the point in the asset that the user stopped or paused the asset.
After creating a new index point at step 1406 or if a determination is made that the asset is associated with an index point at step 1404, video of the asset may be cached at step 1408. For example, in some embodiments, a portion of video ahead of the current viewing position associated with the index point is pre-decoded and cached to the user equipment. In other embodiments, previously presented video behind the index point is cached to the user equipment, or a portion of video both ahead of the index point and behind the index point may be cached. In some embodiments, the video may already be cached to the user equipment as part of the regular asset decoding process. For example, sliding video cache window 310 and/or incremental video cache window 320 (both of FIG. 3) may be used in the asset decoding process.
Then, at step 1410, a listing of available index points is simultaneously presented to the user with at least a portion of the cached video. For example, display screen 900 (FIG. 9) shows video window 902 presenting a video clip of the asset associated with the selected index point listing. This video may help the user determine which index point the user last accessed without altering the actual viewing position of the index point. If the user wishes to resume the presentation of the asset, a user selection of an index point is received at step 1412, and the asset is presented at the selected index point at step 1414.
In practice, one or more steps shown in process 1400 may be combined with other steps, performed in any suitable order, performed in parallel (e.g., simultaneously or substantially simultaneously) or removed.
FIGS. 15A and 15B show illustrative process 1500 for requesting an index point from a user device. Because index points (and their associated assets) may be accessed from a variety of user devices (e.g., cellular telephones, set-top boxes, personal computers, and PDAs), in some embodiments, the index point management system attempts to locate a supported media format for display on the requesting device. At step 1502, a request may be received for an index point from a user device. For example, a user at one of user equipment devices 210 may select an index point from an index point listings screen, such as display screen 700 (FIG. 7). After receiving the user request for an index point, at step 1504 the location of the asset associated with the index point is determined. For example, user equipment column 402 of index point data record 400 (both of FIG. 4) may identify the source of the asset. The source of the asset may include a remote or local media server, a user equipment device, or any other storage location.
If the asset is not stored locally, at step 1506 the asset storage device is located. For example, the asset may be stored on a remote media server, such as an on-demand or pay-per-view server. After the asset storage device is located or after a determination is made that the asset is available locally, at step 1508 the asset format and/or the asset type may be determined. Asset types may include, for example, video, audio, interactive media, applications, games, and Internet content. Asset formats for video may include, for example, high-definition (HD) video, standard-definition (SD) video, and H.264 video.
At step 1510, the media guidance application may determine if the asset type and/or format associated with the requested index point is supported by the requesting device. For example, high-definition assets may not be supported by all devices. If the asset format and/or type is not supported, then at step 1512 the media guidance application may determine if a supported type and/or format of the asset is available. For example, one data source (e.g., data source 142 of FIG. 1) may provide high-definition content while another data source may provide standard-definition content. The interactive media guidance application may search the available data sources and recording devices for supported formats stored locally or available from a remote server.
If, at step 1512, a supported asset type or format is not available, conversion of an unsupported type or format may be attempted in some embodiments at step 1514. Local media server 230 (FIG. 2) or user equipment devices 210 (FIG. 2) may access encoding or transcoding circuitry (or any other suitable circuitry) for creating a supported format of the asset from an unsupported format. For example, if the requesting device is a cellular telephone capable of supporting only H.264 video and a particular bitrate, a high-definition or standard-definition format of the asset may be converted to a compatible H.264 version. After converting the asset to a supported version at step 1514, after a determination is made that a supported format of the asset is available at step 1512, or after a determination is made that the requested asset is supported by the requesting device at step 1510, illustrative process 1500 may continue in FIG. 15B.
At step 1516 in FIG. 15B, the requesting device may determine if the index point record is stored locally. For example, the requesting device may be one of user equipment devices 210 (FIG. 2) with an attached storage or recording device. If the index point record is stored locally, the index point viewing position is read at step 1520. For example, index point record 400 (FIG. 4) may be accessed, and the entry corresponding to the requested index point in position column 408 (FIG. 4) may be read. If the index point record is not stored locally (e.g., the index point information is centrally stored on a local or remote media server, such as media server 230 of FIG. 2), then, at step 1518, the index point record storage device may be located before accessing the index point record at step 1520.
After the current viewing position associated with the index point is read at step 1520, the asset may be presented starting from the current viewing position at step 1522. Although the term “viewing position” is sometimes used herein, this term may also include positions within digital audio assets that are not viewed visually. For example, the elapsed time from the start of an audio clip may be recorded and used to present a digital audio asset at the position the user last terminated playback.
The asset may be presented until, at step 1524, the asset is paused, stopped, or otherwise tuned away from. In some embodiments, after the asset is paused, stopped, or otherwise tuned away from, the index point viewing position information is updated to reflect the new viewing position (i.e., the pause or stop point). In other embodiments, the viewing position associated with an index point is updated continuously or on a regular, periodic basis (e.g., every 5 seconds). To update the viewing position, a row in index point record 400 (FIG. 4) may be updated or changed. For example, one or more entries in position column 406 (FIG. 4) may be updated. Shared database access controls, such as mutex and semaphores, can be used to prevent dual access hazards that might occur in this environment, as would be understood to one skilled in the art.
At step 1528, video around or near the new index point viewing position may be cached. For example, a 15-second clip of looping video may be stored to the requesting device or a local media server (such as local media server 230 of FIG. 2). This video clip may then be presented in an index point listing screen or an index point listing video mosaic screen, such as display screen 900 (FIG. 9).
In practice, one or more steps shown in process 1500 may be combined with other steps, performed in any suitable order, performed in parallel (e.g., simultaneously or substantially simultaneously) or removed.
The above described embodiments of the present invention are presented for purposes of illustration and not of limitation, and the present invention is limited only by the claims which follow.