systems and methods for rewinding a video to a point before the video was first viewed. video transmitted by a media source is cached by a remote server. Upon a trick-play request for the video, the server generates a rewind stream that includes the video that was transmitted by the media source before the user started to view the video. Upon receiving the rewind stream, the user's equipment may cache the rewind stream in a rewind buffer and rewind or play from the rewind buffer. The server may also generate and transmit a forward stream of the video that the media source has not yet transmitted. The user's equipment may cache the forward stream in a forward buffer. To perform trick-play operations with the video, the user's equipment may migrate the playback of the video to the rewind and forward buffers and rewind or fast-forward the video from the buffers.
|
1. A method of displaying a sequence of video frames, the method comprising:
receiving information representative of the sequence of video frames for a display to be generated, the display comprising at least one other element that is relatively static in relation to at least a first portion of the sequence of video frames being displayed;
receiving video information associated with the at least the first portion of the sequence of video frames, wherein the received video information includes a rewind stream that includes at least a third portion of the sequence of video frames corresponding to a first play position that is prior to the current play position and wherein the received video information includes a forward stream that includes at least a fourth portion of the sequence of video frames corresponding to a second play position that is after to the current play position;
storing the received rewind stream in a rewind buffer;
storing the received forward stream in a forward buffer;
generating, for inclusion in the display during play of the at least the first portion of the sequence of video frames, a play position indication region for display within or proximate to the display of the at least the first portion of the sequence of video frames, wherein the play position indication region represents at least a portion of a duration of playing of the at least the first portion of the sequence of video frames, and wherein proximate to the play position indication region during at least some portion of the play of the at least the first portion of the sequence of video frames is a first indicator of a current play position within the sequence of video frames relative to the duration of the play of the at least the first portion of the sequence of video frames;
detecting an input associated with a second indicator that is identified independently from the first indicator of the current play position, from a user, during play of the at least the first portion of the sequence of video frames, associated with the play position indication region, that visually distinguishes another play position at any available point in time displaced along the play position indication region from the current play position, the visually distinguished another play position representing a first point in the sequence of video frames that is different from a second point in the sequence of video frames represented by the current play position indicator;
identifying that a portion of the received video information corresponds at least approximately to the first point in the sequence of video frames substantially temporally with the detecting of the input;
processing at least a portion of the identified portion of the received video information, substantially temporally with the detecting, based on the identified portion of the video information, such that a first image can be generated to represent at least one of the video frames in the sequence of video frames, the first image being at least an approximation of what the generated display would be during play of at least a second portion of the sequence of video frames at about the another play position at the any available point in time in the sequence of video frames, the first image being generated to correspond to the another play position at the any available point in time visually distinguished by the input from the user;
generating, using the identified portion of the video information based on the processing, substantially temporally with the detecting of the input, the first image for display, in response to the detecting of the input from the user that visually distinguishes the another play position at the any available point in time, within or proximate to the play position indication region and the at least the first portion of the sequence of video frames being generated for the display, wherein the first image at least approximates a second image of the at least the second portion of the sequence of video frames substantially proximate to the sequence of video frames at the first point represented by the visually distinguished another play position, and wherein the first image when displayed within or proximate to the at least the first portion of the sequence of video frames is displayed in a first region of the display that is smaller than a second region in which the first portion of the sequence of video frames is being displayed;
generating for display, a rewind indicator associated with the first play position; and
generating for display, a forward indicator associated with the second play position.
9. A system for causing a display of a sequence of video frames, the system comprising:
control circuitry configured to:
receive information representative of the sequence of video frames for a display to be generated, the display comprising at least one other element that is relatively static in relation to at least a first portion of the sequence of video frames being displayed;
receive video information associated with the at least the first portion of the sequence of video frames,
wherein the received video information includes a rewind stream that includes at least a third portion of the sequence of video frames corresponding to a first play position that is prior to the current play position and wherein the received video information includes a forward stream that includes at least a fourth portion of the sequence of video frames corresponding to a second play position that is after to the current play position;
store the received rewind stream in a rewind buffer;
store the received forward stream in a forward buffer;
generate, for inclusion in the display during play of the at least the first portion of the sequence of video frames, a play position indication region for display within or proximate to the display of the at least the first portion of the sequence of video frames, wherein the play position indication region represents at least a portion of a duration of playing of the at least the first portion of the sequence of video frames, and wherein proximate to the play position indication region during at least some portion of the play of the at least the first portion of the sequence of video frames is a first indicator of a current play position within the sequence of video frames relative to the duration of the play of the at least the first portion of the sequence of video frames;
detect an input associated with a second indicator that is identified independently from the first indicator of the current play position, from a user, during play of the at least the first portion of the sequence of video frames, associated with the play position indication region, that visually distinguishes another play position at any available point in time displaced along the play position indication region from the current play position, the visually distinguished another play position representing a first point in the sequence of video frames that is different from a second point in the sequence of video frames represented by the current play position indicator;
identify that a portion of the received video information corresponds at least approximately to the first point in the sequence of video frames substantially temporally with the detecting of the input;
process at least a portion of the identified portion of the received video information, substantially temporally with the detecting, based on the identified portion of the video information, such that a first image can be generated to represent at least one of the video frames in the sequence of video frames, the first image being at least an approximation of what the generated display would be during play of at least a second portion of the sequence of video frames at about the another play position at the any available point in time in the sequence of video frames, the first image being generated to correspond to the another play position at the any available point in time visually distinguished by the input from the user;
generate, using the identified portion of the video information based on the processing, substantially temporally with the detecting of the input, the first image for display, in response to the detecting of the input from the user that visually distinguishes the another play position at the any available point in time, within or proximate to the play position indication region and the at least the first portion of the sequence of video frames being generated for the display, wherein the first image at least approximates a second image of the at least the second portion of the sequence of video frames substantially proximate to the sequence of video frames at the first point represented by the visually distinguished another play position, and wherein the first image when displayed within or proximate to the at least the first portion of the sequence of video frames is displayed in a first region of the display that is smaller than a second region in which the first portion of the sequence of video frames is being displayed;
generate for display, a rewind indicator associated with the first play position; and
generate for display, a forward indicator associated with the second play position.
2. The method of
4. The method of
5. The method of
6. The method of
7. The method of
identifying advertisements in the received sequence of video frames; and
storing some of the sequence of video frames to skip the identified advertisements.
8. The method of
10. The system of
12. The system of
13. The system of
14. The system of
15. The system of
identify advertisements in the received sequence of video frames; and
store some of the sequence of video frames to skip the identified advertisements.
16. The system of
receive a user selection of the first image; and
play at least the second portion of the sequence of video frames from the play position associated with the first image in response to receiving the user selection.
|
This application is a continuation of U.S. patent application Ser. No. 13/102,763, filed on May 6, 2011, which is a continuation of U.S. patent application Ser. No. 11/365,787, filed on Feb. 28, 2006, and issued on Jun. 14, 2011 as U.S. Pat. No. 7,962,942, each of which is hereby incorporated herein by reference in its entirety.
This invention is directed to systems and methods for trick-play functions in video or audio entertainment systems.
Interactive media guidance applications, such as interactive television program guides, are well known in the art. Some interactive media guidance applications provide video entertainment device users with the ability to perform “trick-play” functions upon video. Such trick-play functions include pause, rewind, and fast-forward. The interactive media guidance applications cache video programs that are transmitted over a network or transmission system (e.g., satellite, cable, or off-the-air) to allow users to trick-play through the video programs. To provide trick-play functions, these systems may begin caching video when the user tunes to the program, which may be in progress. As a result, users of such systems can rewind to the point in time when they first tuned to the program, but not to any prior point in time.
Accordingly, it would be desirable to provide systems and methods for trick-play functions by which the user may rewind a video to a time prior to when the user first started viewing the video and fast-forward to a point beyond where the real-time transmission is presently streaming.
In accordance with the principles of the present invention, systems and methods are provided for supporting trick-play functions in video entertainment systems. For purposes of clarity, and not by way of limitation, the present invention may sometimes be described herein in the context of providing rewind, pause, and fast-forward functions for videos, such as television programs, but may be applied to any other suitable non-on-demand media (e.g., audio).
In various embodiments of the present invention, videos are distributed to the equipment of a user (or group of users) in a non-on-demand fashion in digital or analog real-time streams. For example, in television systems, the videos may be delivered via broadcast, cable, or satellite, and are provided according to a schedule. A server, remote from the user, caches or records the videos before or during their distribution.
A client application, sometimes referred to herein as a “trick-play client,” is implemented on the user's equipment. When a user starts watching a stream, the client begins to cache the video that is being watched so that the user may rewind through the buffer to the point at which the user started watching the stream. Concurrently or after the user accesses a video that began before the user accessed it (e.g., automatically or in response to a user request), the client receives from the server a rewind stream generated by the server from the server-cached or server-recorded copy of the video. The rewind stream streams the full-scale video (e.g., without skipping any frames) backwards from the point at which the user first accessed the video. The client locally caches the rewind stream so that the user may rewind the program anytime after the rewind stream is received to a point in the video that corresponds to content that was transmitted before the user had first accessed the video.
In some embodiments, the client also caches the video as it is received. This allows the user to rewind and watch the program from a point before the user first accessed the video, and continue watching (or fast-forward) the video as the user desires to a point beyond that when the user first accessed the video.
In some embodiments, the client receives from the server a forward stream generated by the server from the cached or recorded copy of the video. The forward stream streams the full-scale video (e.g., without skipping any frames) forward from the point at which the user first accessed the video at a speed that is faster than real-time. The client locally caches the forward stream so that the user may fast-forward the program as soon as the forward stream is received to a point that is ahead of the real-time stream of the video. The real-time stream of the video may be provided by, for example, a primary real-time video feed (e.g., broadcast feed).
In some embodiments, the client receives the rewind and/or forward streams automatically. In other embodiments, the client requests the rewind and/or forward streams upon, for example, the user accessing the video, or after determining that the user has interest in the video such that caching the rewind and/or forward stream is warranted.
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 in which:
Media source 120 may be any suitable media source such as, for example, a cable system headend, satellite media distribution facility, media broadcast facility, internet protocol television (IPTV) headend, on-demand server (e.g., VOD server), website, game service provider (e.g., for online gaming), or any other suitable facility or system for originating or distributing media. Media source 120 may be configured to transmit signals over any suitable communications path 122 including, for example, a satellite path, a fiber-optic path, a cable path, an Internet path, or any other suitable wired or wireless path. The signals may carry any suitable media such as, for example, television programs, games, music, news, web services, video, or any other suitable media. In some embodiments, media source 120 may include control circuitry for executing the instructions of a trick-play client or an interactive media guidance application such as, for example an online interactive media guidance application.
User equipment 110 may include any equipment suitable for providing an interactive media experience. User equipment 110 may include television equipment such as a television, set-top box, recording device, video player, user input device (e.g., remote control, keyboard, mouse, touch pad, touch screen or voice recognition interface), or any other device suitable for providing an interactive media experience. For example, user equipment 110 may include a DCT 2000, 2500, 5100, 6208 or 6412 set-top box provided by Motorola, Inc. In some embodiments, user equipment 110 may include computer equipment, such as a personal computer with a television card (PCTV). In some embodiments, user equipment 110 may include a fixed electronic device such as, for example, a gaming system (e.g., X-Box, PlayStation, or GameCube) or a portable electronic device, such as a portable DVD player, a portable gaming device, a cellular telephone, a PDA, a music player (e.g., MP3 player), or any other suitable fixed or portable device.
In the example of
Display device 112 may be any suitable device such as, for example, a television monitor, a computer monitor, or a display incorporated in user equipment 110 (e.g., a cellular telephone or portable music player display). Display device 112 displays the media transmitted by media source 120 over path 122, and the displays of the trick-play client. Display device 112 may also be configured to provide for the output of audio.
Recording device 118 may be a personal video recorder (PVR), digital video recorder (DVR), video cassette recorder (VCR), DVD-recorder, or any other suitable video recorder. Recording device 118 may include one or more tuners. The trick-play client directs recording device 118 to cache the rewind and forward streams from server 130.
Control circuitry 116 is adapted to receive user inputs from input device 114 and execute the instructions of the trick-play client. Control circuitry 116 may include one or more tuners (e.g., analog or digital tuners), encoders and decoders (e.g., MPEG decoders), processors (e.g., Motorola 68000 family processors), memory 117 (i.e., RAM and hard disks), communications circuitry (e.g., cable modem circuitry), input/output circuitry (e.g., graphics circuitry), connections to the various devices of user equipment 110, and any other suitable component for providing analog or digital media programming, program recording, and interactive media guidance features. In some embodiments, control circuitry 116 may be included as part of one of the devices of user equipment 110 such as, for example, part of display 112 or any other device (e.g., a set-top box, television and video player).
In some embodiments, the trick-play client may provide features to the user with a client/server approach. There may be one server for each instance of user equipment 110, one for multiple instances of user equipment 110, or a single server may serve as a proxy for each instance of user equipment 110.
Any suitable number of users may have equipment, such as user equipment 110, connected to media source 120 and data sources 124. But for the clarity of the figure, the equipment of only a single user is shown. The equipment of the plurality of users may be connected to media source 120 and data source 124 using a cable television network, a satellite television network, a local area network (LAN), a wireless network, the Internet, or any other suitable means. In some embodiments, the equipment of the plurality of users may be connected to each other using any suitable means.
User equipment 110 may receive interactive media guidance application data from one or more data sources 124. Data sources 124 may provide data for a particular type of media or for a particular application. For example, one data source 124 may provide data for non-on-demand media (e.g., non-pay and pay-per-view programs), and another may provide data for on-demand media (e.g., VOD programs). Or, for example, a single data source may provide both of these types of data. For example, one data source 124 may provide data for an interactive television program guide. Another data source 124 may, for example, provide data for another interactive application (e.g., a home shopping application). In some embodiments, data sources 124 may provide data to the trick-play client using a client/server approach. There may be one server per data source, one for all sources or, in some embodiments, a single server may communicate as a proxy between user equipment 110 and various data sources 124. In some embodiments, data sources 124 may provide data as an online interactive media guidance application. In such embodiments, data source 124 may include control circuitry for executing the instructions of the online media guidance application.
Illustrative interactive television system 100 includes server 130. Server 130 includes control circuitry 132 and memory 134 for executing, for example, operations requested by media source 120 or user equipment 110 (e.g., providing a cached video to the trick-play client). Control circuitry 132 may include one or more tuners, processors, encoders/decoders, communications circuitry, and I/O circuitry connected to the various devices of interactive television system 100, or any other suitable component. Control circuitry 132 may access video or other media provided by media source 120 in any suitable manner, for example by directing a tuner to tune to the channel transmitted by media source 120. As another example, server 130 may access the video directly, for example via an internet protocol connection (e.g., file transfer protocol or DOCSIS QAM stream) to media source 120.
Server 130 may be incorporated in media source 120 (e.g., at the head-end of a cable plant), data source 124, a VOD server (not shown), user equipment 110 (e.g., as a second recording device, or a hard drive on a home computer), an Internet server, or any other suitable device. Alternatively, server 130 may be a stand alone device (e.g., a commercial network recording device, or a DVR device in a home or neighborhood network). In some embodiments, all media provided by media source 120 may first be transmitted to server 130, which may subsequently transmit the media to user equipment 110. In such embodiments, the server may record (in systems where user-initiated server-based recording is provided) or cache the media as it is received, and subsequently or simultaneously transmit the media to the user's equipment. In other embodiments, the media source may simultaneously provide media both to the server and to the user's equipment. In such embodiments, the server may only provide rewind and/or forward streams of the media that is has recorded or cached to the user's equipment in response to a request by the trick-play client. In some embodiments, the server may cache or record videos before they are provided to users by media source 120.
Server 130 may receive instructions from user equipment 110 or media source 120 (or any other device of interactive media system 100) to perform suitable operations. Such operations may include, for example, recording or caching some or all of the videos that are transmitted by media source 120. In some embodiments, server 130 may cache every video that is transmitted by media source 120. In some embodiments, server 130 may only cache particular videos (e.g., particular broadcast programs) or particular channels (e.g., user favorite channels). The user's equipment or the media source may identify a particular video in any suitable manner (e.g., from the channel map and the program map table of a QAM stream, or a program identifier), and communicate a request to control circuitry 132 to record or cache the video in memory 134. In some embodiments, users may record videos on server 130. In such embodiments, server 130 may use the recorded video (which may have been recorded for users other than the one using the enhanced rewind functionality) as “cached” video for the rewind and/or forward stream.
The trick-play client, the media source, or the server may select, based on any suitable criteria, the videos that the server records or caches and for which the enhanced rewind and fast-forward functionality of the present invention is available. Such criteria may include, for example, a user's viewing history, the programs or channels that a user typically watches, records, or sets reminders for, user interests as identified by a user profile (e.g., a profile established by asking the user a series of questions). In some embodiments, the criteria may include identifying the programs that the user watches while another program is recorded, the two or more simultaneously transmitted programs among which the user switches, or the programs that the user starts watching after the beginning of the program. If the server has limited memory capabilities, or if the user is allotted a small amount of server memory, the trick-play client may be more discriminating in the selection of videos that the server records or caches for the user.
Other criteria for selecting the videos for which the enhanced rewind and fast-forward functionality is available may include the viewing histories or user profiles of some or all of the users of the interactive media system, the popular programs of some or all of the users, or any other criteria derived from more than one user or from a family of users of the interactive media system. As another example, only videos provided by preferred media providers (e.g., providers who pay a fee) may be recorded or cached on the server. Such videos may be identified to users as “provided with enhanced trick play,” for example, letting users know that they may rewind, potentially to the beginning of the video even if they joined the video after the video began. In some embodiments, a channel may be identified as “provided with enhanced trick play.” The rewind buffer length may be sufficient to allow the user (after some time) to rewind to a point prior to the beginning of the program (e.g., two or three hours, or to yesterday's videos).
Recorded and cached videos are stored by server 130 in memory 134. Memory 134 may be any suitable memory for recording or caching video such as, for example, one or more hard-drive arrays, hard discs, server arrays, RAM, SRAM, DRAM, ROM, flash memory, or any other suitable memory. In some embodiments, memory 134 may store instructions from control circuitry 132, user equipment 110, media source 120, or any other device of interactive media system 100 related to recorded or cached video. Such instructions may include, for example, how long to keep the video in memory, which users have access to the video (e.g., in a tier-based system), or any other suitable instruction. In the example of
When a user of user equipment 110 accesses a non-on-demand video (such as, for example, by tuning to a channel), the trick-play client may automatically direct recording device 118 of user equipment 110 to cache the video in one or more buffers. In addition, the trick-play client may send a request to server 130 for a rewind stream that includes the portions of the video that were transmitted before the user first started viewing the video.
In some embodiments, the trick-play client may also send a request to server 130 for a forward stream that includes the portions of the video that the trick-play client has not yet cached. The trick-play client may first determine whether the entire video is cached or recorded by server 130 before requesting a forward stream. Alternatively, the trick-play client may systematically request the forward stream and wait for a response from server 130 regarding whether the forward stream portions of the video are available.
The trick-play client may request the rewind and/or forward streams at any suitable time including, for example, as soon as the user starts viewing a video (e.g., tunes to a channel), after a given amount of time (e.g., 1 minute or 5 minutes), in response to a trick-play request from the user (e.g., pause or rewind), or at any other suitable time.
In response to receiving the requests for the rewind and/or forward streams, server 130 may generate and transmit rewind and/or forward streams to user equipment 110, if they are available. For example, if the trick-play client requests both rewind and forward streams for a sporting event that is broadcast live, server 130 may generate and transmit only the rewind stream because the server has not cached or recorded the entire sporting event. The forward stream, if provided to user equipment 110, may include the full feature video (e.g., without skipping any frames) and may be transmitted at a speed that is faster than the real-time video is transmitted, (e.g., 2× faster). The forward stream therefore may require more bandwidth than the real-time video. Similarly, the rewind stream may include the full feature video (e.g., without skipping any frames) and may be transmitted at a speed that is faster than real-time.
Server 130 may provide the rewind and forward streams to user equipment 110 using any suitable transmission scheme (e.g., MPEG-2 QAM stream or DOCSIS QAM stream). For example, the rewind and forward streams may each be added as separate programs in the live QAM stream used to transmit the video (e.g., the rewind stream is placed in a first PID (packet identifier), and the forward stream is placed in a second PID, where the PIDs are in the QAM stream). As another example, the rewind and forward streams may both be added as a single program in the live QAM stream (e.g., a single PMT (program map table) PID may identify both the rewind video and audio, and the forward video and audio as well as the primary real-time video and audio). As still another example, the server may generate one or more new QAM streams each containing one of the rewind and forward streams.
The video of the rewind stream may be provided in any suitable manner such as, for example, reverse order bitwise (e.g., as if the user is rewinding from the moment the buffers were created), reverse order by block, reverse order by packet, or by randomly filling in bits of data that are missing (e.g., a bit torrent approach). For approaches other than the reverse order bitwise, the rewind functionality is only available once the video cached by the trick-play client is sufficiently continuous to support playback.
The trick-play client may direct recording device 118 to cache the rewind and/or forward streams provided by server 130 in one or more buffers.
The video provided by the rewind stream is cached in rewind buffer 222. The current frame cached in the rewind buffer, Fi−r, is identified by pointer 232. Rewind buffer 222 begins with frame Fn, the frame that was displayed when the user started viewing the video, and ends with frame F0, which is the first frame of the video. The rewind buffer is filled backwards substantially continuously from frame Fn to frame F0 (e.g., in reverse order bitwise) with the video of the rewind stream. Similarly, the video provided by the forward stream is cached in forward buffer 224. The current frame in the forward buffer, Fi−f, is identified by pointer 234. Forward buffer 224 begins with frame Fn and ends with frame Fy, which is the last frame of the video. The trick-play client may preferably cache video in forward buffer 224 at a speed that is faster than real time. If the trick-play client does not receive a forward stream, the trick-play client may instead cache the real-time stream of the video in forward buffer 224.
In some embodiments, the trick-play client does not request or receive rewind and/or forward streams until after the user has viewed the video for a given time. If recording device 118 cached the real-time stream during the given time (e.g., in a real-time buffer), the trick-play client may request that the rewind stream begin when the user started viewing the video and that the forward stream begin after the given time. Then, as shown in
When the user calls a trick-play function, the trick-play client may seamlessly migrate the video from the real-time video stream to the video cached in the rewind buffer and the real-time and/or forward buffer. The user's trick-play functionality is then provided by the buffers stored locally in the recording device, and not remotely, from the server. To play back the video cached in the rewind buffer, the trick-play client may direct recording device 118 to provide the video cached in rewind buffer 222 from frame F0 to frame Fn. To play back the video cached in the forward buffer, the trick-play client may direct recording device 118 to provide the video cached in forward buffer 224 from frame Fn to frame Fy. The trick-play client may identify which buffers to play back using table 210 (e.g., connecting the buffers like a linked list).
The trick-play client may display a visual representation of the rewind and forward buffers using an enhanced transport control bar.
Enhanced transport control bar 410 includes mark 430 identifying when the user first started viewing the video. Enhanced transport control bar 410 also includes visual representations of the rewind and forward buffers into which the rewind and forward streams are cached, respectively. In particular, rewind buffer representation 432 begins at mark 430 and moves backwards in time towards the beginning of the video, and forward buffer representation 434 begins at mark 430 and moves forward in time towards the end of the video. For videos that server 130 has not recorded or cached in their entirety, and for which forward streams are not available, forward buffer representation 434 may represent the real-time buffer that is cached with the video from the real-time stream.
In some embodiments, the rewind and forward cursors may correspond to the frames of the rewind and forward streams that the trick-play client is currently caching. Alternatively, the rewind and forward cursors may correspond to trick-play requests of the user (e.g., rewinding or fast-forwarding in preview images 624 or 628). The trick-play client may automatically display one or both of preview images 624 and 628, or the user may request the preview images be displayed. When the user has identified a portion of the video in preview image 624 or 628 that the user would like to play back, the user may display the preview image in full screen and play back the video at the playback position of the selected preview image.
The buffers for caching the video may be arbitrarily limited in size, or limited only by the space available on recording device 118. If the buffers are limited in size or recording device 118 has limited space available, the buffer may not be large enough to cache an entire video. To provide enhanced trick-play functions to the user, the trick-play client may cache the rewind and/or forward streams in buffers, and overwrite the rewind and/or forward buffers as necessary to comply with a user trick-play request (e.g., in response to a rewind request that extends to video not cached in the rewind buffer, request a new rewind stream that is cached in place of the forward buffer). The trick-play client may, instead or in addition, identify advertisements in the rewind and forward streams (e.g., from packet identifiers) and not cache the advertisements.
Once the entire video is cached in buffers, the client may, automatically or in response to a user instruction, save the cached video as a recording for future viewing. In some embodiments, the client may, automatically or in response to a user instruction, save an incomplete video that is cached in the buffers.
In some embodiments, server 130 may not cache or record every video that is provided to user equipment 110. The trick-play client may then, before requesting a rewind and/or forward stream, determine whether server 130 has cached or recorded the video. For example, the trick-play client may receive an indication from server 130 whether the video is available. In response to determining that the video is in fact available, the trick-play client may request the rewind and/or forward streams from server 130.
The trick-play client may determine whether server 130 has cached or recorded a partially or in its entirety video at any suitable time. For example, server 130 may identify for the trick-play client the videos that the server has or will cache or record for a given time period (e.g., the next day or week) at regular intervals. Server 130 may further specify to the trick-play client the time at which the videos will be cached or recorded in their entirety. The trick-play client may in turn identify the videos for the user. For example, the trick-play client may display an icon, shade the listing, change a color, or provide any other suitable indication on the transport control bar or in a program grid.
The following flow charts serve to illustrate processes involved in some embodiments of this invention.
At step 820, the trick-play client determines whether the user has a sufficient interest in the video to warrant requesting a rewind stream. For example, the trick-play client may determine whether the user has viewed the video for a given amount of time, or whether the user has called a trick-play function (e.g., “rewind”). In some embodiments, prior to step 820, the trick-play client may determine whether server 130 has cached or recorded the selected video. In the process shown in
If instead, at step 820, the trick-play client determines that the user has a sufficient interest in the video to warrant requesting a rewind stream, process 800 moves to step 830. At step 830, the trick-play client requests a rewind stream from server 130. The rewind stream includes the video that was transmitted by media source 120 prior to the time when the user first selected the video. The video of the rewind stream may begin at the time when the user first selected the video, and stream backwards in time to the beginning of the video. The rewind stream may provide the video content in any suitable manner such as, for example, reverse-order bitwise.
At step 840, the trick-play client receives the rewind stream from server 130 over communications path 122 and directs recording device 118 to cache the rewind stream in one or more rewind buffers. At step 850, the trick-play client rewinds the video to a point prior to when the user first selected the video by rewinding the video through the one or more rewind buffers. The trick-play client may then play back the video from the one or more rewind buffers. Process 800 ends at step 852.
At step 920, the trick-play client determines whether server 130 has recorded or cached the entire video. For example, the trick-play client may request an indication from server 130 of the videos that have been recorded or cached in their entirety. As another example, the trick-play client may determine that server 130 recorded or cached a video if the video is a re-run or a repeated program (e.g., a repeat episode of a popular series). If the trick-play client determines that server 130 has not recorded or cached the video, process 900 moves to step 962 and ends.
If instead, at step 920, the trick-play client determines that server 130 has recorded or cached the video, process 900 moves to step 930. At step 930, the trick-play client determines whether the user has a sufficient interest in the video to warrant requesting a forward stream. For example, the trick-play client may determine whether the user has viewed the video for a given amount of time, or whether the user has called a trick-play function (e.g., “fast-forward”). If the trick-play client determines that the user does not have a sufficient interest in the video to warrant requesting a forward stream, process 900 moves to step 962 and ends.
If instead, at step 930, the trick-play client determines that the user has a sufficient interest in the video to warrant requesting a forward stream, process 900 moves to step 940. At step 940, the trick-play client requests a forward stream from server 130. The forward stream includes the entire video (e.g., without skipping any video frames) that was transmitted by media source 120 at least after the time when the user first selected the video (e.g., after the time at which the user requested the forward stream). In some embodiments, server 130 provides the forward stream to user equipment 110 at a speed that is greater than the speed of the real-time stream (e.g., at a speed greater than 1×).
At step 950, the trick-play client receives the forward stream from server 130 over communications path 122 and directs recording device 118 to cache the forward stream in one or more forward buffers. At step 960, the trick-play client fast-forwards the video through the forward buffer. The trick-play client may then play back the video from the one or more cached forward buffers. Process 900 ends at step 962.
If, at step 1020, the server determines that no videos are to be recorded or cached, process 1000 moves to step 1062 and ends. If instead, at step 1020, the server determines that at least one particular video is to be recorded or cached, process 1000 caches the at least one particular video and moves to step 1030. In some embodiments, process 1000 may skip step 1020 and simply record or cache every video.
At step 1030, server 130 receives a request from the trick-play client implemented on user equipment 110 for a video. The trick-play client may request a rewind stream of video that was transmitted before the user of the trick-play client started viewing the video. The trick-play client may also or instead request a forward stream of video that has not yet been transmitted by the real-time stream provided by the media source.
At step 1040, server 130 determines whether server 130 has recorded or cached the video required for the requested streams. For example, when a user requests a forward stream, the server may determine whether it has already recorded or cached the requested video in its entirety. If server 130 determines that it has not recorded or cached the video required for all of the requested streams, process 1000 moves to step 1062 and ends.
If instead, at step 1040, server 130 determines that it has recorded or cached at least some of the video required for the requested streams, process 1000 moves to step 1050. For example, server 130 may determine that it has cached the video needed for a rewind stream, but not the video required for a forward stream. At step 1050, server 130 generates at least one requested stream (e.g., a forward stream or a rewind stream) with the video required for the stream. At step 1060, server 130 transmits the at least one requested stream generated at step 1050 over communications path 122 to the trick-play client implemented on user equipment 110. Process 1000 ends at step 1062.
At step 1120, the trick-play client identifies the video frame from which the user would like to start playing back the video. For example, if the user, while rewinding the video from the rewind buffer, selects a “play” key, the trick-play client may identify the video frame displayed at the time the user selected the “play” key.
At step 1130, the trick-play client determines whether the video frame identified at step 1120 is in the rewind buffer. If the trick-play client determines that the video frame is in the rewind buffer, process 1100 moves to step 1140. At step 1140, the trick-play client displays the identified frame on display device 112, and subsequently moves towards the beginning of the rewind buffer and displays the next frames cached in the rewind buffer. For example, if the rewind buffer begins at frame Fn, ends at frame F0 (i.e., the beginning of the program), and the trick-play client identified frame Fi, the trick-play client displays frame Fi, then frame Fi+1, frame all the way to frame Fn. In other words, the trick-play client moves through the buffer with a first-in, last-out scheme.
At step 1150, the trick play client displays the last frame of the rewind buffer and migrates to the forward buffer. In some embodiments, the trick-play client may instead migrate to a real-time buffer (e.g., if there is no forward buffer, or if there is a real-time buffer between the rewind buffer and the forward buffer).
At step 1160, the trick play client displays the first frame of the forward buffer on display device 112, and subsequently moves towards the end of the forward buffer and displays the next frames cached in the forward buffer. For example, if the forward buffer begins at frame Fn, ends at frame Fy (i.e., the end of the program), the trick-play client displays frame Fn, then frame Fn+1, frame Fn+2, all the way to frame Fy. In other words, the trick-play client moves through the buffer with a first-in, first-out scheme.
Process 1100 may also access step 1160 if, at step 1130, the trick-play client determines that the video frame is not in the rewind buffer (e.g., the identified frame is in the forward buffer). In that case, instead of the trick-play client first displaying the first frame of the forward buffer, the trick-play client first displays the frame identified at step 1120. Process 1100 then ends at step 1162.
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.
Patent | Priority | Assignee | Title |
11678030, | Jul 16 2021 | ADEIA GUIDES INC | Personalized screencaps for trickplay slider |
ER934, |
Patent | Priority | Assignee | Title |
4355415, | Apr 29 1980 | RCA LICENSING CORPORATION, TWO INDEPENDENCE WAY, PRINCETON, NJ 08540, A CORP OF DE | Tuning mode arrangement useful for restricting channel selection to certain channels |
4605964, | Dec 19 1981 | PARENTAL GUIDE OF TEXAS, INC | Method and apparatus for editing the output of a television set |
4694490, | Nov 03 1981 | PERSONALIZED MASS MEDIA CORPORATION, THE | Signal processing apparatus and methods |
4718107, | Feb 14 1986 | TELEVISION ANALOG COMPRESSION CORPORATION | Parental control for CATV converters |
4857999, | Dec 20 1988 | PEAC Media Research, Inc. | Video monitoring system |
4908707, | Jul 20 1987 | NXP B V | Video cassette recorder programming via teletext transmissions |
4930158, | Sep 02 1987 | GUARDIAN MEDIA TECHNOLOGIES LTD | Selective video playing system |
4959720, | Apr 06 1989 | RCA Licensing Corporation | Tuner control apparatus having tune-by-label capability |
4977455, | Jul 15 1988 | STARSIGHT TELECAST, INC | System and process for VCR scheduling |
5047867, | Jun 08 1989 | U S PHILIPS CORPORATION | Interface for a TV-VCR system |
5109279, | Mar 28 1988 | Kabushiki Kaisha Toshiba | Television receiver with teletext receiving function and a method for superimposing a teletext picture on a television picture |
5134719, | Feb 19 1991 | DIGIMEDIA HOLDINGS, LLC | Apparatus and methods for identifying broadcast audio program selections in an FM stereo broadcast system |
5172413, | Dec 20 1990 | SASKTEL, 2121 SASKATCHEWAN DRIVE, REGINA, SASKATCHEWAN, CANADA, S4P 3Y2 | Secure hierarchial video delivery system and method |
5200822, | Apr 23 1991 | NATIONAL BROADCASTING COMPANY, INC | Arrangement for and method of processing data, especially for identifying and verifying airing of television broadcast programs |
5253066, | May 30 1990 | GEMSTAR-TV GUIDE INTERNATIONAL, INC | TV recording and viewing control system |
5335277, | Nov 03 1981 | PERSONALIZED MASS MEDIA CORPORATION, THE | Signal processing appparatus and methods |
5412720, | Sep 27 1990 | ACTIVEVIDEO NETWORKS, INC | Interactive home information system |
5442389, | Dec 28 1992 | AT&T IPM Corp | Program server for interactive television system |
5461415, | Mar 15 1994 | Cisco Technology, Inc | Look-ahead scheduling to support video-on-demand applications |
5479266, | Feb 18 1994 | Rovi Guides, Inc | User interface for television schedule system |
5479268, | Sep 10 1990 | Rovi Guides, Inc | User interface for television schedule system |
5479302, | Dec 03 1993 | The DIRECTV Group, Inc | Single deck dual tape path VCR system |
5485197, | Sep 28 1990 | ACTIVEVIDEO NETWORKS, INC | Carousel display |
5517254, | Dec 27 1993 | MATSUSHITA ELECTRIC INDUSTRIAL CO , LTD | Program table displaying apparatus |
5517257, | Mar 28 1995 | Microsoft Technology Licensing, LLC | Video control user interface for interactive television systems and method for controlling display of a video movie |
5524195, | May 24 1993 | Sun Microsystems, Inc | Graphical user interface for interactive television with an animated agent |
5534911, | Nov 02 1994 | S F IP PROPERTIES 19 LLC | Virtual personal channel in a television system |
5539449, | May 03 1993 | RPX Corporation | Integrated television services system |
5550576, | Apr 17 1995 | Rovi Guides, Inc | Method and apparatus for merging television program schedule information received from multiple television schedule information sources |
5583561, | Jun 07 1994 | Unisys Corporation | Multi-cast digital video data server using synchronization groups |
5583563, | Jan 12 1995 | COMCAST MO GROUP, INC | Method and system for delivering an application in an interactive television network |
5585838, | May 05 1995 | Rovi Technologies Corporation | Program time guide |
5585858, | Apr 15 1994 | OPENTV, INC | Simulcast of interactive signals with a conventional video signal |
5585866, | May 20 1994 | Rovi Guides, Inc; TV GUIDE, INC ; UV CORP | Electronic television program guide schedule system and method including virtual channels |
5589892, | Sep 09 1993 | Rovi Guides, Inc; TV GUIDE, INC ; UV CORP | Electronic television program guide schedule system and method with data feed access |
5592551, | Dec 01 1992 | Cisco Technology, Inc | Method and apparatus for providing interactive electronic programming guide |
5602582, | Nov 22 1994 | COMCAST MO GROUP, INC | Method and system for processing a request based on indexed digital video data |
5630119, | May 05 1995 | Microsoft Technology Licensing, LLC | System and method for displaying program listings in an interactive electronic program guide |
5648824, | Mar 28 1995 | Microsoft Technology Licensing, LLC | Video control user interface for controlling display of a video |
5654748, | May 05 1995 | Rovi Technologies Corporation | Interactive program identification system |
5654886, | Mar 14 1995 | DTN, LLC | Multimedia outdoor information system |
5657072, | Apr 10 1996 | Rovi Technologies Corporation | Interactive entertainment network system and method for providing program listings during non-peak times |
5666645, | Apr 26 1995 | Rovi Guides, Inc; TV GUIDE, INC ; UV CORP | Data management and distribution system and method for an electronic television program guide |
5684525, | Apr 17 1995 | Rovi Guides, Inc | Merging multi-source information in a television system |
5694163, | Sep 28 1995 | Intel Corporation | Method and apparatus for viewing of on-line information service chat data incorporated in a broadcast television program |
5717452, | Sep 09 1993 | Alcatel N.V. | Interactive control system for multiservice installations including a television program distribution server and a PABX |
5721829, | May 05 1995 | Microsoft Technology Licensing, LLC | System for automatic pause/resume of content delivered on a channel in response to switching to and from that channel and resuming so that a portion of the content is repeated |
5732216, | Oct 02 1996 | PERSONAL AUDIO LLC | Audio message exchange system |
5745710, | May 24 1993 | Sun Microsystems, Inc. | Graphical user interface for selection of audiovisual programming |
5751282, | Jun 13 1995 | Microsoft Technology Licensing, LLC | System and method for calling video on demand using an electronic programming guide |
5752159, | Jan 13 1995 | COMCAST MO GROUP, INC | Method for automatically collecting and delivering application event data in an interactive network |
5754771, | Feb 12 1996 | SYBASE, INC | Maximum receive capacity specifying query processing client/server system replying up to the capacity and sending the remainder upon subsequent request |
5760821, | Jun 07 1995 | Rovi Guides, Inc; TV GUIDE, INC ; UV CORP | Electronic program guide schedule localization system and method |
5761607, | Sep 08 1993 | Opticom ASA | System for local processing/accessing and representation of large volumes of data |
5768528, | May 24 1996 | Silicon Valley Bank | Client-server system for delivery of online information |
5771354, | Nov 04 1993 | EMC Corporation; DECHO CORP ; IOMEGA CORP ; CARBONITE INC ; AUTONOMY, INC ; Pro Softnet Corporation | Internet online backup system provides remote storage for customers using IDs and passwords which were interactively established when signing up for backup services |
5778181, | Mar 08 1996 | OPENTV, INC | Enhanced video programming system and method for incorporating and displaying retrieved integrated internet information segments |
5778182, | Nov 07 1995 | AT&T Corp. | Usage management system |
5781226, | Nov 13 1995 | Google Technology Holdings LLC | Network virtual memory for a cable television settop terminal |
5781228, | Sep 07 1995 | Microsoft Technology Licensing, LLC | Method and system for displaying an interactive program with intervening informational segments |
5796952, | Mar 21 1997 | THE NIELSEN COMPANY US , LLC, A DELAWARE LIMITED LIABILITY COMPANY | Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database |
5801787, | Jun 14 1996 | Rovi Guides, Inc | Television schedule system and method of operation for multiple program occurrences |
5802284, | Dec 13 1995 | RPX Corporation | System and method using cover bundles to provide immediate feedback to a user in an interactive television environment |
5805763, | May 05 1995 | Rovi Technologies Corporation | System and method for automatically recording programs in an interactive viewing system |
5805804, | Nov 21 1994 | ARRIS Enterprises, Inc | Method and apparatus for scalable, high bandwidth storage retrieval and transportation of multimedia data on a network |
5809204, | Jul 15 1988 | Rovi Guides, Inc | User interface for television schedule system |
5812123, | Nov 29 1994 | Rovi Technologies Corporation | System for displaying programming information |
5818438, | Apr 25 1995 | AT&T Intellectual Property I, L P | System and method for providing television services |
5819019, | Dec 01 1995 | ESPIAL, INC | System/method for recovering network resources in a distributed environment, via registered callbacks |
5828945, | Mar 28 1996 | Rovi Guides, Inc | Merging multi-source information in a television system |
5850218, | Feb 19 1997 | Time Warner Cable Enterprises LLC | Inter-active program guide with default selection control |
5949954, | Sep 10 1990 | Rovi Guides, Inc | System and process for control of recording and reproducing apparatus |
6006257, | Sep 29 1995 | MAVENIR, INC | Multimedia architecture for interactive advertising in which secondary programming is varied based upon viewer demographics and content of primary programming |
6052145, | Jan 05 1995 | Gemstar Development Corporation | System and method for controlling the broadcast and recording of television programs and for distributing information to be displayed on a television screen |
6091883, | Jul 13 1995 | THOMSON LICENSING S A | Method and device for recording and reading on a large-capacity medium |
6125230, | Sep 05 1995 | Sony Corporation | Magnetic tape recording and reproducing apparatus for video signal |
6147715, | Mar 15 1996 | Index Systems, Inc. | Combination of VCR index and EPG |
6167188, | Sep 10 1990 | Starsight Telecast, Inc. | User interface for television schedule system |
6177931, | Aug 12 1997 | Rovi Guides, Inc | Systems and methods for displaying and recording control interface with television programs, video, advertising information and program scheduling information |
6208335, | Jan 13 1997 | Comcast IP Holdings I, LLC | Method and apparatus for providing a menu structure for an interactive information distribution system |
6324338, | Aug 07 1998 | The DIRECTV Group, Inc | Video data recorder with integrated channel guides |
6334022, | Feb 27 1997 | Hitachi, Ltd. | Video information recording and reproducing apparatus |
6441832, | Nov 28 1996 | Sony Corporation | Hierarchical processing apparatus and hierarchical processing method for video and audio data |
6473559, | Sep 05 1997 | UNITED VIDEO PROPERTIES, INC ; TV GUIDE, INC ; Rovi Guides, Inc | Program guide system for recording television programs |
6487362, | Aug 19 1991 | Index Systems, Inc. | Enhancing operations of video tape cassette players |
6498895, | Sep 10 1990 | Starsight Telecast, Inc. | User interface for television schedule system |
6571390, | May 05 1995 | Microsoft Technology Licensing, LLC | Interactive entertainment network system and method for customizing operation thereof according to viewer preferences |
6597375, | Mar 10 2000 | Adobe Systems Incorporated | User interface for video editing |
6738980, | Nov 15 2001 | Industrial Technology Research Institute | Methods and systems for video streaming with VCR functionality |
6820278, | Jul 23 1998 | Rovi Guides, Inc; TV GUIDE, INC ; UV CORP | Cooperative television application system having multiple user television equipment devices |
6850693, | Sep 10 1990 | Starsight Telecast, Inc. | User interface for television schedule system |
6934964, | Feb 08 2000 | S I SV EL SOCIETA ITALIANA PER LO SVILUPPO DELL ELETTRONICA S P A | Electronic program guide viewing history generator method and system |
6988244, | Sep 17 1998 | Sony Corporation | Image generating apparatus and method |
7010801, | Jun 11 1999 | SYNAMEDIA LIMITED | Video on demand system with parameter-controlled bandwidth deallocation |
7017173, | Mar 30 1999 | COX COMMUNICATIONS, INC | System enabling user access to secondary content associated with a primary content stream |
7024678, | Nov 30 1998 | COX COMMUNICATIONS, INC | Method and apparatus for producing demand real-time television |
7027711, | Jun 26 2000 | Panasonic Intellectual Property Corporation of America | Editing apparatus for an optical disk, computer-readable storage medium, and computer program |
7047548, | Apr 17 2001 | Verizon Patent and Licensing Inc | Recall of previous program channel |
7073189, | May 03 2002 | Time Warner Cable Enterprises LLC | Program guide and reservation system for network based digital information and entertainment storage and delivery system |
7194188, | Apr 02 2003 | Xylon LLC | System and method for facilitating fast-forwarding of first-run programs |
7401351, | Dec 14 2000 | FUJI XEROX CO , LTD | System and method for video navigation and client side indexing |
7668434, | Sep 25 2003 | NEC PERSONAL COMPUTERS, LTD | Apparatus and method for replaying digital data |
7802285, | Jul 14 1998 | Rovi Guides, Inc; TV GUIDE, INC ; UV CORP | Client-server based interactive television program guide with server recording |
7962942, | Feb 28 2006 | ADEIA GUIDES INC | Systems and methods for enhanced trick-play functions |
8107795, | Mar 30 1999 | TIVO SOLUTIONS INC | Multimedia visual progress indication system |
8185926, | Mar 06 2002 | BISON PATENT LICENSING, LLC | System and method for providing media stream related applications |
8302144, | Mar 13 2002 | COX COMMUNICATIONS, INC | Distribution of content in an information distribution system |
20010043795, | |||
20020013949, | |||
20020056096, | |||
20020075572, | |||
20020124099, | |||
20020167540, | |||
20020170067, | |||
20020174430, | |||
20020174438, | |||
20030093801, | |||
20030121055, | |||
20030149988, | |||
20030163824, | |||
20030184598, | |||
20030188315, | |||
20030188316, | |||
20030208763, | |||
20040008971, | |||
20040078829, | |||
20040128686, | |||
20040181814, | |||
20040197072, | |||
20040221311, | |||
20050044567, | |||
20050044570, | |||
20050069283, | |||
20050076359, | |||
20050086703, | |||
20050120377, | |||
20050160465, | |||
20050166230, | |||
20050204388, | |||
20060020966, | |||
20060080716, | |||
20060150225, | |||
20060277581, | |||
20070016611, | |||
20070157253, | |||
20080066107, | |||
20120174167, | |||
EP753964, | |||
EP762756, | |||
EP940985, | |||
EP1283639, | |||
EP1339060, | |||
EP1465417, | |||
JP11185317, | |||
JP2000125260, | |||
JP2000253337, | |||
JP2003061012, | |||
JP2004023787, | |||
JP2004296408, | |||
JP2005136974, | |||
JP2005277847, | |||
JP6111413, | |||
JP6303541, | |||
RE37881, | Dec 03 1993 | ReplayTV; REPLAYTV, INC | Single deck dual tape path VCR system |
RO247388, | |||
WO4706, | |||
WO16548, | |||
WO33568, | |||
WO62299, | |||
WO2005062617, | |||
WO8804507, | |||
WO9504431, | |||
WO9631980, | |||
WO9634491, | |||
WO9641478, | |||
WO9713368, | |||
WO9740623, | |||
WO9746943, | |||
WO9747124, | |||
WO9810589, | |||
WO9817064, | |||
WO9834405, | |||
WO9847283, | |||
WO9903267, | |||
WO9960790, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Feb 28 2006 | CRANER, MICHAEL L | GuideWorks, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 034094 | /0311 | |
Feb 26 2010 | GuideWorks, LLC | Rovi Guides, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 034094 | /0288 | |
Aug 27 2014 | Rovi Guides, Inc. | (assignment on the face of the patent) | / | |||
Nov 22 2019 | Rovi Technologies Corporation | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 051110 | /0006 | |
Nov 22 2019 | Rovi Guides, Inc | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 051110 | /0006 | |
Nov 22 2019 | TIVO SOLUTIONS, INC | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 051110 | /0006 | |
Nov 22 2019 | Veveo, Inc | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 051110 | /0006 | |
Nov 22 2019 | Rovi Solutions Corporation | HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 051143 | /0468 | |
Nov 22 2019 | Rovi Technologies Corporation | HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 051143 | /0468 | |
Nov 22 2019 | Rovi Guides, Inc | HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 051143 | /0468 | |
Nov 22 2019 | TIVO SOLUTIONS, INC | HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 051143 | /0468 | |
Nov 22 2019 | Veveo, Inc | HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 051143 | /0468 | |
Nov 22 2019 | Rovi Solutions Corporation | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 051110 | /0006 | |
Jun 01 2020 | iBiquity Digital Corporation | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | MORGAN STANLEY SENIOR FUNDING, INC | TIVO SOLUTIONS, INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053481 | /0790 | |
Jun 01 2020 | MORGAN STANLEY SENIOR FUNDING, INC | Veveo, Inc | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053481 | /0790 | |
Jun 01 2020 | HPS INVESTMENT PARTNERS, LLC | Rovi Solutions Corporation | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053458 | /0749 | |
Jun 01 2020 | HPS INVESTMENT PARTNERS, LLC | Rovi Technologies Corporation | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053458 | /0749 | |
Jun 01 2020 | HPS INVESTMENT PARTNERS, LLC | Rovi Guides, Inc | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053458 | /0749 | |
Jun 01 2020 | HPS INVESTMENT PARTNERS, LLC | TIVO SOLUTIONS, INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053458 | /0749 | |
Jun 01 2020 | HPS INVESTMENT PARTNERS, LLC | Veveo, Inc | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053458 | /0749 | |
Jun 01 2020 | Rovi Technologies Corporation | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | Rovi Solutions Corporation | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | MORGAN STANLEY SENIOR FUNDING, INC | Rovi Guides, Inc | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053481 | /0790 | |
Jun 01 2020 | MORGAN STANLEY SENIOR FUNDING, INC | Rovi Technologies Corporation | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053481 | /0790 | |
Jun 01 2020 | MORGAN STANLEY SENIOR FUNDING, INC | Rovi Solutions Corporation | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053481 | /0790 | |
Jun 01 2020 | PHORUS, INC | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | DTS, INC | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | TESSERA ADVANCED TECHNOLOGIES, INC | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | Tessera, Inc | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | INVENSAS BONDING TECHNOLOGIES, INC | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | Invensas Corporation | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | Veveo, Inc | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | TIVO SOLUTIONS INC | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | Rovi Guides, Inc | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Aug 15 2022 | Rovi Guides, Inc | ADEIA GUIDES INC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 069085 | /0138 |
Date | Maintenance Fee Events |
Aug 08 2019 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Aug 15 2023 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Feb 23 2019 | 4 years fee payment window open |
Aug 23 2019 | 6 months grace period start (w surcharge) |
Feb 23 2020 | patent expiry (for year 4) |
Feb 23 2022 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 23 2023 | 8 years fee payment window open |
Aug 23 2023 | 6 months grace period start (w surcharge) |
Feb 23 2024 | patent expiry (for year 8) |
Feb 23 2026 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 23 2027 | 12 years fee payment window open |
Aug 23 2027 | 6 months grace period start (w surcharge) |
Feb 23 2028 | patent expiry (for year 12) |
Feb 23 2030 | 2 years to revive unintentionally abandoned end. (for year 12) |