Systems and methods for managing local storage of on-demand content

Abstract
On-demand systems and methods are provided to manage locally-stored on-demand content. A user's equipment controls the deletion of and/or access to on-demand content from a local storage device based on constraining criteria that may include rental conditions, dynamic factors, and keys.
Description
BACKGROUND OF THE INVENTION

This invention relates to on-demand systems. More particularly, this invention relates to managing local storage of on-demand content in on-demand systems.


On demand systems (e.g., video-on-demand (VOD) systems) have been developed that allow a user to order content (e.g., a video program) from an on demand server for playback (or execution, in the case of an application) by the user's equipment. In some approaches, a rental period associated with a VOD program defines a period of time during which a user may access the content. Rental periods may, or may not, be fee based.


For example, in a VOD system, it may be desirable to store a VOD program or a portion of a VOD program at the user's equipment to allow, for example, local VCR-like playback control. If the locally-stored VOD program were accessible by the user beyond an applicable rental period, the user would be able to, perhaps, watch the VOD program in contravention of the VOD provider's viewing policies and fee structure. Thus, it is desirable to prevent the user from retrieving, or to otherwise control the user's access to, locally-stored VOD programs beyond the expiration of the applicable rental period. More generally, it is desirable to control a user's access to locally cached on-demand content beyond an applicable use period defined by the content provider.


SUMMARY OF THE INVENTION

It is an object of this invention to provide systems and methods for storing on-demand content in a local storage device and managing usage of the locally-stored on-demand content. As used herein “on-demand content” includes on-demand programs (and/or data and/or audio), on-demand applications (e.g., games and interactive mini-guides) and content related to one or more on-demand programs such as special features related to on-demand programs, on-demand program previews, related on-demand programs, on-demand associated applications (e.g., bound or unbound OpenCable Applications Platform (OCAP) applications) or a combination of such content provided as part of a package. For clarity, and not by way of limitation, the invention is at times herein discussed in the context of managing the playback of locally-cached on-demand video program content, but the principles of the invention may also be applied to managing other suitable on-demand content.


In response to a user's request for playback of on-demand content from an on-demand server, the on-demand server sends a content stream of the on-demand content to an on-demand client implemented on a user's equipment. The on-demand client stores the content stream (or a portion of it) on a local storage device to allow local playback control. The on-demand client uses constraint criteria to control the deletion of and/or access to locally-stored on-demand content. The constraint criteria may include on-demand rental conditions, dynamic factors, and/or keys, which are associated with one or more on-demand contents or categories of on-demand content. In some embodiments, the constraint criteria used to control access to locally-stored on-demand content may be different from the constraint criteria used to control deletion of locally-stored on-demand content.





BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects and advantages of the invention will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:



FIG. 1 is a block diagram of an on-demand system in accordance with one embodiment of the present invention.



FIG. 2 is a flow chart of an illustrative process for retrieving and displaying on-demand content from a local storage device in accordance with one embodiment of the present invention.



FIGS. 3 and 4 are flow charts of two illustrative processes for managing on-demand content in a local storage device as a function of dynamic factors that affect the availability in the local storage device in accordance with one embodiment of the present invention.



FIG. 5 is a flow chart of an illustrative process for deleting on-demand content in a local storage device as a function of a dynamic factor and on-demand rental conditions, in accordance with one embodiment of the invention.



FIG. 6 is a flow chart of another illustrative process for deleting on-demand content from a local storage device as a function of a dynamic factor and on-demand rental conditions, in accordance with one embodiment of the invention.



FIG. 7 is a flow chart of an illustrative process for managing locally-stored on-demand content as a function of keys and other constraint criteria in accordance with one embodiment of the present invention.



FIG. 8 is a flow chart of an illustrative process for managing locally-stored on-demand content as a function of a time period in accordance with one embodiment of the invention.



FIG. 9 is a flow chart of an illustrative process for managing locally-stored on-demand content as a function of a maximum amount of on-demand content viewing time in accordance with another embodiment of the present invention.



FIG. 10 is a flow chart of an illustrative process for managing locally-stored on-demand content as a function of a maximum number of on-demand content viewings in accordance with one embodiment of the present invention.



FIG. 11 is a flow chart of an illustrative process for managing locally-stored on-demand content as a function of a maximum number of on-demand contents that is allowed to be concurrently stored in a local storage device, in accordance with one embodiment of the invention.



FIG. 12 is a flow chart of an illustrative process for managing locally-stored on-demand content using flags in accordance with one embodiment of the invention.





DETAILED DESCRIPTION OF THE INVENTION


FIG. 1 is a simplified block diagram of one embodiment of an on-demand system 100 according to the present invention. On-demand system 100 includes user equipment 110 and remote on-demand server 150. In some embodiments, on-demand content may be distributed from a headend or remote site (not shown) to, and stored on, remote on-demand server 150. Although FIG. 1 illustrates one remote on-demand server 150 for clarity, on-demand system 100 may include more than one remote on-demand server 150 and/or additional types of servers that interface with user equipment 110.


Remote on-demand server 150, which may include a storage device and processing circuitry, communicates with user equipment 110 over communications path 136. Communications path 136 may be a satellite path, a fiber-optic path, a cable path, an Internet Protocol (IP) path, or any other suitable wired or wireless path. Data (e.g., an on-demand content stream, on-demand constraint criteria, on-demand-related messages, etc.) is sent or exchanged via communications path 136 using a synchronous delivery mechanism (e.g., MPEG-2 transport over a hybrid-fiber coax network), an asynchronous delivery mechanism (e.g., store-and-forward, best-effort, or Internet Protocol (IP)), or a combination of synchronous and asynchronous delivery mechanisms. Although communications path 136 is shown as a single path for clarity, communications path 136 may include multiple paths (e.g., multiple IP paths between user equipment 110 and multiple distributed remote on-demand servers 150).


In practice, there may be many installations of user equipment 110, but only one has been shown to avoid over-complicating the drawing. User equipment 110 may be any in-home equipment suitable for providing on-demand functionality, such as a suitably equipped television, set-top box, digital video recorder (DVR), personal video recorder (PVR), or PCTV. Whatever the chosen equipment, user equipment 110 may include at least user input device 120, processing circuitry 130, storage device 134, and display device 140. User input device 120 may be any suitable device or combination of input devices including, for example, a remote control, a keyboard, a mouse, a touch pad, a touch screen, or a voice recognition interface. Display device 140 may be any suitable device configured to provide for the output of video and audio such as, for example, a television, plasma display, LCD, or computer monitor.


Processing circuitry 130 may include a processor, such as a microprocessor, and any other suitable circuitry for providing on-demand-related functionality, including, for example, caching circuitry, video-decoding circuitry, direct memory access circuitry, input-output circuitry (including communications circuitry for communicating with remote on-demand server 150 over communications path 136), decryption circuitry, and transcryption circuitry.


Storage device 134 may be any suitable storage device or combination of coupled storage devices for storing on-demand client programming logic, data, and on-demand content including, for example, RAM, flash memory, one or more hard disk drives, removable storage media, one or more CD-ROM drives, or one or more networked drives on an in-home entertainment network.


Processing circuitry 130 executes the on-demand client to perform multiple functions, including: (1) receiving commands from user input device 120 over communications path 122 and either sending the commands to remote on-demand server 150 or processing the commands locally, (2) playing back on-demand content from storage device 134 and/or remote on-demand server 150, (3) storing on-demand content in storage device 134, and (4) controlling the deletion of and/or access to on-demand content stored on storage device 134 as a function of constraint criteria. In some embodiments the on-demand client is part of, or communicates with, an interactive television application such as an interactive television program guide.


Communications path 138 may be any suitable display interface such as, for example, a Digital Visual Interface (DVI) or FireWire Interface (IEEE 1394). Communications path 122 may be any suitable wired or wireless path (e.g., an infrared path).


In a typical use scenario, a user of on-demand system 100 selects content for playback using user input device 120. User input device 120 sends a signal to the on-demand client which, in response, requests the selected on-demand content from on-demand server 150. On-demand server 150 retrieves the on-demand content and transmits it to user equipment 110 as a digital stream (e.g., an MPEG stream). The on-demand client stores the stream in storage device 134 and may begin playing back the content from storage device 134 before the entire stream is received (i.e., when only a portion of the content is stored), or in some approaches may store the entire content stream before playing back the content. In still other approaches, the entire on-demand content is not stored locally, and a circular cache is used to store or buffer only a portion of the content at a given point in time.


Given the overhead already required to establish the communications link between remote on-demand server 150 and user equipment 110, the additional overhead required to store the entire on-demand content compared to storing a portion of the on-demand content may be minimal. Thus in some embodiments, the on-demand client stores the entirety of the on-demand content independent of whether the user actually watches the entire on-demand content. In such embodiments, the on-demand client may stop storing the entirety of an on-demand content in response to, for example, a tuner or communications path becoming unavailable, if recording the entire on-demand content is undesirable as a result of other system requirements, or if access to the program violates constraint criteria as described below.


In some embodiments, remote on-demand server 150 may encode and compress the content stream before transmitting it to user equipment 110. In such embodiments, the on-demand client stores the encoded and compressed content stream in storage device 134. The on-demand client may immediately start playing the on-demand content by retrieving the content stream from storage device 134 in a first-in, first-out (FIFO) fashion, and decoding and decompressing the stream for output to display device 140. The on-demand client may also access the stream at a later time (such as to provide the user with local playback control, or when the entire stream is stored before it is played back).


In the prior art, on-demand content stored on storage device 134, until deleted, may remain accessible to the user beyond the expiration of the on-demand service provider's rental period (which may or may not be fee-based, depending on the desired implementation). This would be undesirable as the on-demand provider could lose control over what the user does with the on-demand content. For example, the user could store the on-demand content in storage device 134 as long as the user wants (e.g., until the user deletes the on-demand content from storage device 134), or view the on-demand content as many times as the user wants.


To avoid this undesirable result, the on-demand client controls the deletion of and/or access to the on-demand content (or portions of the on-demand content) stored in storage device 134 as a function of constraint criteria associated with each content or groups of contents (e.g., on-demand contents of a particular genre, contents that cost a similar fee, or any other suitable group). The on-demand client may control the deletion of on-demand content stored in storage device 134 using the same criteria as, or different criteria from, the constraint criteria used to control access to the content. As used herein, “control access” may include, for example, controlling (a) the retrieval of the on-demand content from storage device 134, (b) the decoding of an encoded content stream, and (c) the decryption (or transcryption) of an encrypted (or transcrypted) content stream, or controlling any other activity the user may perform when accessing the locally stored on-demand content.


In some embodiments, remote on-demand server 150 transmits constraint criteria to user equipment 110. In other embodiments, another suitable server such as, for example, a different remote on-demand server 150 (i.e., an on-demand server other than the one that provided the stored on-demand content), an interactive program guide server, a digital rights management server, or an authentication server (e.g., RADIUS server), may transmit the constraint criteria. Processing circuitry 130 stores the constraint criteria in storage device 134.


Remote on-demand server 150, or another suitable server, may transmit the constraint criteria as part of, or independent from (such as part of a distinct metadata stream along the same communications path 136 or along a different communications path 136), the content stream. The constraint criteria may be transmitted prior to, at the same time as, or after the transmission of the content stream (but typically before the rental window expires). For example, constraint criteria may be transmitted at certain times (e.g., daily, weekly, monthly, or any time the constraint criteria changes) in response to a user (1) enrolling in the on-demand service, (2) the first time that the user requests playback of any on-demand content from remote on-demand server 150, (3) each time that the user requests playback of any on-demand content from remote on-demand server 150, (4) just prior to a time at which the on-demand client determines whether to delete and/or prevent the user from accessing the on-demand content from storage device 134 (but before the rental window expires), or (5) at any other suitable time.


In some embodiments, the constraint criteria may be initially stored in processing circuitry 130, storage device 134, or other circuitry in user equipment 110. In still other embodiments, a portion of the constraint criteria is provided by remote on-demand server 150 or another suitable server, and a portion is initially stored in user equipment 110.


The constraint criteria may include on-demand rental conditions. These are conditions related to the system provider's rental policies (which may or may not be fee-based). The on-demand rental conditions may, for example, specify an on-demand rental window, one or more other time periods, usage limits, or a combination of these or other suitable rental conditions. The rental conditions may, for example, specify characteristics of other on-demand content that are permitted to be, or forbidden from being, stored on storage device 134 with content or contents associated with the rental condition. Such characteristics may include, for example, availability, size, duration, pricing, marketing, whether part of a common series, whether part of a common promotional package, and other suitable factors relating to the other on-demand content.


Rental condition time periods may be defined in any suitable manner. In some embodiments, the time period is based on the time when the on-demand content was initially stored in storage device 134. For example, the on-demand client may, as a function of this time period, delete the on-demand content from, or prevent the user from accessing the on-demand content from, storage device 134 twenty-four hours after the on-demand content is stored in storage device 134.


A time period may be based, for example, on the time when the on-demand content was initially made available from remote on-demand server 150 (which is independent from the actual time that the on-demand content is ordered (e.g., by a user) and/or the time when the on-demand content was stored locally). For example, the on-demand client may, as a function of the time period, delete the on-demand content from, or prevent the user from accessing the on-demand content from, storage device 134 seven days after the on-demand content was initially made available from remote on-demand server 150.


As another example, a time period may be based on the time when the on-demand content will be removed from remote on-demand server 150. For example, the on-demand client may, as a function of the time period, delete the on-demand content from, or prevent the user from accessing the on-demand content from, storage device 134 at the same time that, or some period after, the on-demand content is removed from remote on-demand server 150.


In yet another example, a time period may be based on the time when the user first requested playback of the on-demand content from storage device 134. For example, the on-demand client may, as a function of the time period, delete the on-demand content from, or prevent the user from accessing the on-demand content from, storage device 134 twelve hours after the user initially requests playback of the on-demand content from storage device 134. The user may have ordered (e.g., purchased) the on-demand content at the same time as, or prior to, the time in which the user requested playback of the on-demand content.


In a final example, the time period may be based on the current date and time. For example, the on-demand client may, as a function of the time period, delete on-demand content from storage device 134 each Sunday at midnight.


Rental condition usage limits may also be defined in any suitable manner. The usage limit may be an allowable number of times that the user has requested playback of the on-demand content from storage device 134. For example, the on-demand client may, as a function of this rental condition, delete the on-demand content from, or prevent the user from accessing the on-demand content from, storage device 134 after the user has requested and viewed the on-demand content from storage device 134 three times.


The usage limit may be a cumulative time that the user may spend viewing the on-demand content from storage device 134. For example, the on-demand client may, as a function of this rental condition, delete the on-demand content from, or prevent the user from accessing the on-demand content from, storage device 134 after the user has spent a total of eighteen hours viewing the on-demand content in its entirety or in various portions.


The usage limit may be a parental control that limits the number of times and/or the cumulative time that a user may request and/or view an on-demand content that exceeds a particular rating (or a combination of on-demand contents that exceeds a set of ratings) from storage device 134.


The usage limit may be an allowable number of currently stored on-demand contents. For example, the on-demand client may only allow a user to store a maximum of four on-demand contents at any given time in storage device 134. In response to the user requesting a fifth on-demand content, the on-demand client may delete and/or prevent access to one of the on-demand contents currently stored in storage device 134. This maximum may be based on the number of on-demand contents in one or more categories (e.g., first-run, classic, action, comedy, movies starring a particular actor, movies in a particular series, etc.) concurrently stored in storage device 134. For example, the on-demand client may only allow a user to concurrently store a maximum of five first-run movies and/or ten classics. In response to the user requesting a sixth first-run movie (or an eleventh classic), the on-demand client may delete and/or prevent access to one of the first-run movies (or classics) currently stored in storage device 134.


In some embodiments, the constraint criteria may include dynamic factors that specify conditions of the user's equipment. Such factors may include, for example, whether the user is actively watching the on-demand content, dynamic factors regarding the availability in the local storage device (e.g., whether other system activities require use of the local storage device or other conflicts), whether the portion of the on-demand content stored in the local storage device meets a “keep” criterion (e.g., a threshold amount of the on-demand content that needs to be stored in the local storage device below which the user's equipment deletes the on-demand content from the local storage device) or a combination of such factors.


In some embodiments, the on-demand client may employ cryptographic techniques (e.g., encryption/decryption and transcryption). In such embodiments, the constraint criteria may include keys. The on-demand client uses the keys from the constraint criteria to process (e.g., decrypt, transcrypt) the content stream for display to the user. Remote on-demand server 150 can send an encrypted (or transcrypted) content stream, or a portion thereof, to user equipment 110. The on-demand client may decrypt (or transcrypt) the content stream using the keys prior to, or after, storing the content stream in storage device 134. If desired, the keys and other sensitive information may be stored in a secure memory device or otherwise handled in a secure manner.


Prior to deleting and/or preventing the user from accessing an on-demand content from storage device 134 as a function of the constraint criteria, the on-demand client may provide the user the option to extend the viewing time window of the on-demand content or otherwise relax the constraint criteria associated with the on-demand content. When the user does not accept such an option, the on-demand client may then delete and/or prevent the user from accessing the on-demand content from storage device 134. When the user accepts the option, the user may be charged a fee (e.g., at the original fee or at a discount), or may receive incentives such as special features related to the on-demand content or previews of related on-demand contents. This extended viewing time window may have the same constraint criteria as, or different constraint criteria from, the original constraint criteria for the locally-stored on-demand content.



FIG. 2 is a flow chart of an illustrative process for retrieving and displaying locally-stored on-demand contents in accordance with one embodiment of the present invention. In this embodiment, the on-demand client may begin playback prior to storing the entire content in storage device 134.


Process 200 starts at step 202 where the on-demand client receives a request for a segment (e.g., at least a portion) of on-demand content (e.g., from a local user). At step 204, the on-demand client determines whether the entire on-demand content is locally stored (e.g., in storage device 134). If the entire on-demand content is not locally stored, process 200 proceeds to step 206 where the on-demand client determines whether retrieval of the on-demand content from remote on-demand server 150 is underway. If it is not, process 200 then moves to step 208 where the on-demand client initiates the retrieval of the on-demand content from remote on-demand server 150. If at step 206 it is determined that the on-demand client has already initiated retrieval of the on-demand content, or after step 208, process 200 then moves to step 210. Under certain conditions, step 208 may be skipped. For example, it may be undesirable to attempt to retrieve an entire on-demand content when, necessary resources are unavailable, such as when a user in a single-tuner system tunes away from the on-demand content. Thus, in such a circumstance, process 200 may move directly to step 210.


At step 210, the on-demand client determines whether the requested segment of the on-demand content is available on local storage device 134. If the requested segment is not available, process 200 moves to step 212 where the on-demand client determines whether there is a resource timeout (e.g., an error state, or an exceptional delay on a tuner resource or an IP connection). If a resource timeout is detected, then in step 214, the on-demand client informs the user or system of the problem. Process 200 then ends at step 220. If a resource timeout is not detected at step 212, process 200 returns to step 210.


If the requested segment is available at step 210 or step 204, process 200 moves to step 216 where the requested segment is retrieved from local storage device 134. Then at step 218, the on-demand client decodes and displays the requested segment. Process 200 ends at step 220.



FIGS. 3-11 are flow charts of illustrative processes that the on-demand client may perform to control the deletion of and/or access to locally stored on-demand contents as a function of various combinations of constraint criteria. The on-demand client may initiate these processes in response to, for example, a triggering event or timer. In some embodiments, the on-demand client may perform one or more of these processes periodically or continuously (such as in a round-robin fashion). These processes are only illustrative as other embodiments may combine the constraint criteria in the processes of FIGS. 3-11 in any suitable combination, and may use other types of constraint criteria not shown in the figures.



FIGS. 3 and 4 are flow charts of two illustrative processes for managing on-demand content in a local storage device as a function of dynamic factors that affect the availability in the local storage device. In these examples, the dynamic factors specified by the constraint criteria include determining whether the user is watching the program and determining whether storage is needed for other system activities (FIGS. 3 and 4), and whether “keep” criteria are met (FIG. 4). These examples assume as an initial state that the rental period has not expired (determining whether the rental period has not expired is not shown). Process 300 of FIG. 3 starts at step 302. At step 304, the on-demand client determines whether the user is actively watching an on-demand content that has been stored in local storage device 134 (FIG. 1). If the user is actively watching the on-demand content, the process repeats step 304 until the user is no longer watching the on-demand content.


If the user is not actively watching, or once the user is no longer actively watching, the on-demand content, process 300 moves to step 306 where the on-demand client determines whether the portion of local storage device 134 storing the on-demand content is needed by the system for other activities (such as storing new on-demand content. If space on local storage device 134 is not presently needed for other system activities, process 300 returns to step 304. If, space on local storage device 134 is needed for other system activities, the on-demand client deletes the on-demand content, making that portion of local storage device 134 available for other system activities (step 308). As described herein, deleting on-demand content includes deleting a portion of the on-demand content or deleting the entirety of the on-demand content stored in local storage device 134. Only a portion of the on-demand content may be deleted when only that portion is stored in local storage device 134 or when less disk space is needed than is used for the entire on-demand content stored in local storage device 134. Process 300 then ends at step 310.


Process 400 of FIG. 4 starts at step 402. At step 404, the on-demand client determines whether the user is actively watching an on-demand content that has been stored in local storage device 134. If the user is actively watching the on-demand content, the process repeats step 404 until the user is no longer watching the on-demand content.


If the user is not actively watching, or once the user is no longer actively watching, the on-demand content, process 400 moves to step 406 where the on-demand client determines whether the portion of local storage device 134 storing the on-demand content is needed by the system for other activities. If the portion local storage device 134 is not presently needed for other system activities, process 400 moves to step 408 where the on-demand client determines whether the portion of the stored on-demand content meets a “keep” criterion. For example, the on-demand content may be “kept” if, relative to the size of the entire on-demand content and/or the space available on the local storage device, a threshold amount of the program has been stored. If the keep criterion is met, process 400 returns to step 404. If local storage device 134 is needed for other system activities at step 406, or if the keep criterion is not met at step 408, process 400 moves to step 410 where the on-demand client deletes the on-demand content, making that portion of storage device 134 available for other system activities. Process 400 then ends at step 412.


In one or more variants of processes 300 and 400, the test of step 306 of process 300 and/or the test of step 406 of process 400 is further conditioned by a priority determination. In other words, the test is modified to read “Is storage needed for other ‘higher priority’ system activities.”



FIG. 5 is a flow chart of an illustrative process for deleting on-demand content in a local storage device as a function of a dynamic factor (in this example, whether the user is watching the on-demand content) and on-demand rental conditions, in accordance with one embodiment of the invention. In this illustrative process, on-demand rental conditions are used by the on-demand client as deletion criteria for determining whether to delete a locally stored on-demand content. In such an approach, other rental conditions are used to otherwise control access to the programs.


Process 500 starts at step 502. At step 504, the on-demand client determines whether the user is actively watching an on-demand content that has been stored in local storage device 134. If the user is actively watching the on-demand content, the process repeats step 504 until the user is no longer watching the on-demand content. In some embodiments, the on-demand client may, based on some on-demand rental conditions (e.g., an outstanding balance overdue on a user's account), delete a locally-stored on-demand content, or prevent a user from viewing locally-stored on-demand content, even when the user is actively engaged in watching a program. This is not shown in process 500 to avoid overcomplicating the drawing.


If the user is not actively watching, or once the user is no longer actively watching, the on-demand content, process 500 moves to step 506 where the on-demand client determines whether the on-demand content meets the on-demand rental conditions and therefore should be deleted from local storage device 134 in this circumstance. If the on-demand content does not meet the on-demand rental condition's deletion criteria, process 500 returns to step 504. If the on-demand content meets the on-demand rental condition's deletion criteria, then in step 508, the on-demand client deletes the on-demand content, making the portion of the local storage device 134 available for other system activities. Process 500 then ends at step 510.



FIG. 6 is a flow chart of an illustrative process for deleting on-demand content from a local storage device as a function of a dynamic factor (in this example, whether the user is watching a locally-stored on-demand content), and on-demand rental conditions, including whether the on-demand content needs to be securely erased, in accordance with one embodiment of the invention. In this illustrative process, on-demand rental conditions are used by the on-demand client as deletion criteria for determining whether to delete a locally stored on-demand content. In such an approach, other rental conditions are used to otherwise control access to the programs.


Note that typically, freeing storage in a computer system does not necessarily remove the data (and thus leaves it accessible). For example, in a Unix-based computer system, the system function free( ) simply removes pointers to the stored data, but leaves the data intact until the space is later overwritten by another process writing to a newly malloc( )'ed block that overlaps the previously freed portion of memory.


Process 600 starts at step 602. At step 604, the on-demand client determines whether the user is actively watching an on-demand content that has been stored in the local storage device. If the user is actively watching the on-demand content, the process repeats step 604 until the user is no longer watching the on-demand content. In some embodiments, the on-demand client may, based on some on-demand rental conditions (e.g., an outstanding balance overdue on a user's account), delete a locally-stored on-demand content, or prevent a user from viewing locally-stored on-demand content, even when the user is actively engaged in watching a program. This is not shown in process 600 to avoid overcomplicating the drawing.


If the user is not actively watching, or once the user is no longer actively watching, the on-demand content, process 600 moves to step 606 where the on-demand client determines whether the on-demand content meets the on-demand rental conditions that would indicate whether the on-demand content should be deleted from the local storage device 134 in this circumstance. If the on-demand content does not meet the on-demand rental condition's deletion criteria, process 600 returns to step 604. If the on-demand content meets the on-demand rental condition's deletion criteria, then in step 608, the on-demand client determines whether the on-demand content was distribution controlled (e.g., whether the copyrighted material was subject to distribution limitations).


If the on-demand content is distribution controlled, process 600 moves to step 610 where the on-demand client securely erases the on-demand content from local storage device 134. This can occur by overwriting the on-demand content (e.g., writing with multiple passes of various patterns to reduce the probability of recovery of the content) or by corrupting key portions of the on-demand content (e.g., using quantization matrices, CRC checks, headers) to render the on-demand content more difficult to play. Secure erasure can also be as simple a technique as setting a “broadcast” flag in the on-demand content to indicate that the content can no longer be distributed. Alternatively, a “never copy” flag can be set, or a “play once” flag can be reset, in digital rights management protocols such as IEEE 1394 5C. More information on IEEE 1394 5C can be found in “Digital Transmission Content Protection Specification Revision 1.4 (Informational Version),” Feb. 28, 2005, DTLA, www.dtcp.com, which is incorporated herein by reference in its entirety.


If the on-demand content is not distribution controlled or, alternatively, after step 610, process 600 moves to step 612 where the on-demand client deletes the on-demand content from the local storage device, making that portion of the local storage device available for other system activities. Process 600 then ends at step 614.



FIG. 7 is a flow chart of an illustrative process for managing locally-stored on-demand content as a function of keys and other constraint criteria in accordance with one embodiment of the present invention. Process 700 starts at step 702. At step 704, the on-demand client sends a request for playback of an on-demand content to remote on-demand server 150. At step 706, the on-demand client receives an encrypted content stream of the on-demand content and constraint criteria for the on-demand content from remote on-demand server 150. The constraint criteria include one or more keys and other constraint criteria (e.g., rental conditions or dynamic factors) for the on-demand content. At step 708, the on-demand client stores the encrypted content stream for the on-demand content in storage device 134. At step 710, the on-demand client receives a request to initiate playback of the on-demand content from storage device 134 via user input device 120. Note that this request may have been implicit in the request of step 704 or it may precede it.


At step 712, the on-demand client determines whether to prevent the playback of the on-demand content based on criteria other than the security-key specific constraint criteria. If playback of the on-demand content is prevented, process 700 moves to step 714 where processing circuitry informs the user, via a suitable display, of the nature of the restriction (e.g., nonpayment of a bill, expiration of the rental period, unavailability of the on-demand content) and the process ends at step 726. The user may also be offered an opportunity to enable the playback of the on-demand content (e.g., to pay an outstanding bill using a credit card, to purchase an extension on the rental period). Although not shown, if the user enables the playback of the on-demand content, process 700 then moves to step 716.


If playback of the on-demand content is not prevented at step 712, then at step 716, the on-demand client retrieves the encrypted content stream for the on-demand content from storage device 134. At step 718, it decrypts the encrypted content stream based on the keys from the constraint criteria. At step 720, it renders the decrypted content stream to display device 140.


At step 722, the on-demand client again checks the criteria other than the security-key specific constraint criteria and determines whether to delete and/or prevent access to the content stream from storage device 134. If the content stream is to be deleted from, and/or access is to be prevented from, storage device 134 at step 722, the on-demand client corrupts or overwrites the content stream in storage device 134 (step 724) and process 700 ends at step 726. If the content stream is to be maintained in, and retrievable from, storage device 134 at step 722, process 700 ends at step 726.



FIG. 8 is a flow chart of an illustrative process for managing locally-stored on-demand content as a function of a time period in accordance with one embodiment of the invention. Process 800 starts at step 802. At step 804, the on-demand client sends a request for playback of an on-demand content to remote on-demand server 150. At step 806, the on-demand client receives from remote on-demand server 150 a content stream for the on-demand content and as a rental condition, a time period for deleting and/or controlling access to the program. At step 808, the on-demand client stores the content stream for the on-demand content and the time period in storage device 134. At step 810, the on-demand client automatically deletes and/or prevents access to the content stream from storage device 134 after the specific time period. The process ends at step 812.



FIG. 9 is a flow chart of an illustrative process for managing locally-stored on-demand content as a function of a maximum amount of on-demand content viewing time in accordance with one embodiment of the present invention. Process 900 starts at step 902. At step 904, the on-demand client sends a request for playback of an on-demand content to remote on-demand server 150. At step 906, the on-demand client receives from remote on-demand server 150 a content stream for the on-demand content and a rental condition specifying a total viewing time for the on-demand content. At step 908, the on-demand client stores the content stream for the on-demand content and the condition in storage device 134. At step 910, the on-demand client receives a request to initiate playback of the on-demand content from storage device 134 via user input device 120. Note that this request may have been implicit in the request of step 904, or it may precede it. At step 912, the on-demand client retrieves the content stream for the on-demand content from storage device 134. At step 913, the on-demand client transmits the content stream to display device 140 for display.


At step 916, the on-demand client determines, as a function of the viewing time specified in the rental conditions, whether the amount of time spent viewing the on-demand content is greater than or equal to a maximum viewing time T (e.g., T is four hours or another suitable time). If the viewing time is less than the maximum viewing time, process 900 moves to step 918 where the on-demand client determines whether playback of the on-demand content has terminated. If playback of the content has not terminated, process 900 returns to step 913. Although not shown, while the on-demand client performs steps 916 and 918, if playback of the on-demand content has not terminated, it continues to send the content stream to display device 140 for display. If playback of the content has terminated at step 918, process 900 returns to step 910 where the on-demand client receives subsequent requests to initiate the playback of the content.


If the viewing time is greater than or equal to the maximum viewing time in step 916, process 900 moves to step 920 where the on-demand client automatically deletes and/or prevents access to the content stream from storage device 134. The process ends at step 922.



FIG. 10 is a flow chart of an illustrative process for managing locally-stored on-demand content as a function of a maximum number of on-demand content viewings in accordance with one embodiment of the present invention. Process 1000 starts at step 1002. At step 1004, the on-demand client sends a request for playback of an on-demand content to remote on-demand server 150. At step 1006, the on-demand client receives from remote on-demand server 150 a content stream for the on-demand content and a rental condition specifying a maximum number of viewings for the on-demand content. At step 1008, the on-demand client stores the content stream for the on-demand content and the rental condition in storage device 134. At step 1010, the on-demand client receives a request to initiate playback of the on-demand content from storage device 134 via user input device 120. Note that this request may have come prior to step 1004. At step 1012, the on-demand client retrieves the content stream for the on-demand content from storage device 134. At step 1014, the on-demand client sends the content stream to display device 140 for display. Note that here and in related embodiments, step 1014 may include sending only a portion of the on-demand content to the display.


At step 1016, the on-demand client determines whether the number of viewings of the on-demand content is equal to a maximum number of viewings N specified in the rental condition. If the number of viewings is less than the maximum number of viewings, process 1000 returns to step 1010 where the on-demand client receives subsequent requests to initiate the playback of the content. If the number of viewings is equal to the maximum number of viewings, process 1000 moves to step 1018 where the on-demand client automatically deletes and/or prevents access to the content stream from storage device 134. The process ends at step 1020.



FIG. 11 is a flow chart of an illustrative process for managing locally-stored on-demand content as a function of a maximum number of on-demand contents that are allowed to be concurrently stored in the local storage device, in accordance with one embodiment of the invention. Process 1100 starts at step 1102. At step 1104, the on-demand client sends a request for playback of an on-demand content, received from user input device 120, to remote on-demand server 150. At step 1106, the on-demand client receives from remote on-demand server 150 a rental condition indicating a maximum number S of contents C that may be stored by storage device 134. At step 1108, the on-demand client determines whether the number of on-demand contents C stored in storage device 134 is equal to the maximum number of on-demand contents S (e.g., four).


In this embodiment, the on-demand client maintains the counter C that indicates the number of on-demand contents currently stored in storage device 134. If the number of on-demand contents stored in storage device 134 is equal to the maximum number of on-demand contents, process 1100 moves to step 1110 where the on-demand client informs the user through a suitable display that the maximum number of on-demand contents are stored in storage device 134, and provides the user with an option to select one of the on-demand contents currently stored in storage device 134 for deletion. At step 1112, the on-demand client deletes the selected on-demand content from storage device 134 and decrements counter C by one (represented in FIG. 11 by the following programming code syntax: “C−−”). In another embodiment, the user may have the option to select more than one on-demand content currently stored in storage device 134 for removal at step 1110. In such an embodiment, counter C is decremented to reflect the number of on-demand contents removed from storage device 134. In yet another embodiment, the on-demand client may automatically delete one of the on-demand contents stored in storage device 134. After step 1112, process 1100 returns to step 1108.


If the number of on-demand contents C stored in storage device 134 is less than the maximum number of on-demand contents S at step 1108, process 1100 moves to step 1114 where the on-demand client receives a content stream for the on-demand content from remote on-demand server 150. At step 1116, the on-demand client stores the content stream for the on-demand content in storage device 134 and increments counter C by one (represented in FIG. 11 by the following programming code syntax: “C++”). At step 1118, the on-demand client receives a request to initiate playback of the on-demand content from storage device 134 via user input device 120. This request may be part of, or may precede the request of step 1104. At step 1120, the on-demand client retrieves the content stream for the on-demand content from storage device 134. At step 1122, the on-demand client sends the content stream to display device 140 for display. Process 1200 then ends at step 1124.


In some embodiments, the on-demand client may associate flags with locally-stored on-demand content to control the deletion of and/or access to the on-demand content. These flags may be stored, for example, in a table or directory on storage device 134. There may be a delete flag, a control access flag, or one flag for deleting and controlling access to a given on-demand content. The on-demand client may set the flags as a function of the constraint criteria including, for example, the on-demand rental conditions, the keys, or dynamic factors.


For example, the on-demand client may set a control-access flag when an on-demand content is content-protected (e.g., single-user purchased, copyright protected, or distribution-limited) and constraint criteria are met to indicate that the program is not to be accessed, or accessed only with a key. The on-demand client may, upon determining that a control-access flag is set, alter (e.g., corrupt) the bit representation of the content stream stored in storage device 134 to prevent the user from viewing the video after the on-demand rental period. The on-demand client may alter the bit representation of the video by randomly modifying cyclic redundancy check (CRC) bits in various packets of the stored video, inserting null packets at regular intervals of the stored video, replacing quantization matrices with zero bits, reordering various packets of the stored video, or any other suitable alteration. Upon or during an attempted playback of the on-demand content, the on-demand client may examine the control-access flag, see that it is set, and determine whether it has the appropriate key for decoding the program. If it does not, the on-demand client may indicate to the user that the program is not accessible, or that the user may gain access only after paying a fee.


As another example of how flags are used, the on-demand client may set a flag indicating that the on-demand content is to be deleted from storage device 134. When another on-demand content is to be recorded (or when space on recording device 134 is otherwise needed), the on-demand client may examine the delete flag to determine if it is set, and overwrite the program with the new one.



FIG. 12 is a flow chart of an illustrative process for managing locally-stored on-demand content using flags in accordance with one embodiment of the invention. Process 1200 starts at step 1202. At step 1204, the on-demand client determines whether to prevent the user from accessing the on-demand content from storage device 134 by determining whether a control-access flag (Flag A) associated with the on-demand content is set (e.g., to binary “1”). If the control-access flag is not set, process 1200 moves to step 1206.


If the control-access flag is set, process 1200 moves to step 1208 where the on-demand client prevents the user from accessing the on-demand content from storage device 134 (e.g., by altering the bit representation of the on-demand content). At step 1210, the on-demand client resets the control-access flag (e.g., to binary “0”). This second flag may be subsequently used in association with another on-demand content that is later stored in storage device 134. Process 1200 then ends at step 1216.


At step 1206, the on-demand client determines whether to delete an on-demand content from storage device 134 by determining whether a deletion flag (Flag B) associated with the on-demand content is set. If the deletion flag is not set, process 1200 returns to step 1204. If the deletion flag is set, process 1200 moves to step 1212 where the on-demand client deletes the on-demand content from storage device 134 by, for example, replacing the on-demand content with other content. At step 1214, the on-demand client resets the second flag.


In some embodiments, after the on-demand client prevents the user from accessing the on-demand content from storage device 134 at step 1208 and resets the control-access flag at step 1210, it may continue to check the delete flag (at step 1206) until the delete flag is set in order to delete the on-demand content from storage device 134.


Although not shown, during process 1200, the on-demand client continually monitors the on-demand rental conditions associated with each locally-stored on-demand content. In response to any of the on-demand contents satisfying an on-demand rental condition, the flags corresponding to that on-demand content are set accordingly.


The processes shown in FIGS. 3-12 are illustrative. Steps may be performed in a different order, steps may be omitted, or steps may be added as appropriate.


Thus, it is seen that systems and methods are provided for storing on-demand content in a local storage device and managing the locally-stored on-demand content as a function of certain on-demand constraint criteria. One skilled in the art will appreciate that the invention can be practiced by other than the described embodiments, which are presented for purposes of illustration and not of limitation, and the present invention is limited only by the claims which follow.

Claims
  • 1. A method for managing at least a portion of on-demand content provided by an on-demand server and stored in a storage device that is local to an on-demand client, the method comprising: receiving an on-demand rental condition, from a remote server, which constrains deletion of the at least a portion of the on-demand content that is stored on the storage device, in accordance with an on-demand provider's rental policies, wherein the on-demand rental condition is defined without input from a user and specifies a maximum number of times the user can request playback of the on-demand content allowed by the on-demand provider and a maximum total viewing time for the on-demand content allowed by the on-demand provider, wherein the maximum total viewing time is the total time the content plays;providing, a plurality of viewing sessions for the content, wherein each viewing session is separated by a period of time and comprises: a request to playback the content;playing back the content in response to the request to playback the content;receiving a request to terminate playback of the content; andterminating the playback of the content in response to the request to terminate playback of the content, wherein the playback comprises a play time and wherein the play time is the time during the viewing session the content plays;receiving a request, subsequent to the plurality of viewing sessions, to playback the content; responsive to the request, subsequent to the plurality of viewing sessions, playing back the content in a new viewing session until determining that the maximum total viewing time is reached, wherein determining that the maximum total viewing time is reached comprises determining whether the total play times of the viewing sessions and the current play time of the new session equals or exceeds the maximum total viewing time; andcontrolling deletion of the least a portion of the on-demand content as a function of the on-demand rental condition.
  • 2. The method of claim 1 wherein the on-demand rental condition is received from at least one of the on-demand server and a third-party rights-management server.
  • 3. The method of claim 1 wherein the on-demand rental condition further specifies at least one usage limit specifying a maximum number of on-demand contents stored in the storage device at a given time, and further comprising: receiving a second request to access a second on-demand content, andrestricting access to the second request in response to determining that the number of on-demand contents currently stored in the storage device has reached the usage limit.
  • 4. The method of claim 1 wherein the on-demand rental condition is a function of a rating of the on-demand content.
  • 5. The method of claim 1 further comprising: receiving a key according to which the at least a portion of the on-demand content may be decrypted;decrypting the at least a portion of the on-demand content as a function of the key; andplaying back the decrypted at least a portion of the on-demand content.
  • 6. The method of claim 1 further comprising: receiving a dynamic factor which constrains deletion of the at least a portion of the on-demand content stored on the storage device based on conditions of equipment on which the on-demand client is implemented; andcontrolling deletion of the at least a portion of the on-demand content as a function of the dynamic factor.
  • 7. The method of claim 6 wherein the dynamic factor specifies at least one of: determining whether the user is watching the on-demand content;determining whether the storage device is available; anddetermining whether the at least a portion of the on-demand content meets a keep criterion.
  • 8. The method of claim 6 wherein controlling deletion of the at least a portion of the on-demand content on the storage device comprises: determining that a user of the on-demand client is not actively watching the at least a portion of the on-demand content; anddeleting the at least a portion of the on-demand content from the storage device in response to the determining.
  • 9. The method of claim 6 wherein controlling deletion of the at least a portion of the on-demand content on the storage device comprises: determining that a user of the on-demand client is not watching the at least a portion of the on-demand content and space on the storage device is needed for other system activities; anddeleting the at least a portion of the on-demand content from the storage device in response to the determining.
  • 10. The method of claim 1 wherein controlling deletion of the at least a portion of the on-demand content on the storage device comprises: determining that the user of the on-demand client is not watching the at least a portion of the on-demand content, space on the storage device is needed for other system activities, and the space used by the at least a portion of the on-demand content on the storage device is less than a specified minimum keep threshold; anddeleting the at least a portion of the on-demand content from the storage device in response to the determining.
  • 11. User equipment on which an on-demand client is implemented, the user equipment comprising: a storage device configured to store at least a portion of on-demand content; andprocessing circuitry configured to: direct the storage device to store the at least a portion of the on-demand content;receive an on-demand rental condition, from a remote server, which constrains deletion of the at least a portion of on-demand content in accordance with an on-demand provider's rental policies, wherein the on-demand rental condition is defined without input from a user and specifies a maximum number of times the user can request playback of the on-demand content allowed by the on-demand provider and a maximum total viewing time for the on-demand content allowed by the on-demand provider, wherein the maximum total viewing time is the total time the content plays;provide, a plurality of viewing sessions for the content, wherein each viewing session is separated by a period of time and comprises:a request to playback the content;play back the content in response to the request to playback the content;receive a request to terminate playback of the content; andterminate the playback of the content in response to the request to terminate playback of the content, wherein the playback comprises a play time and wherein the play time is the time during the viewing session the content plays;receive a request, subsequent to the plurality of viewing sessions, to playback the content;responsive to the request, subsequent to the plurality of viewing sessions, playing back the content in a new viewing session until determining that the maximum total viewing time is reached, wherein determining that the maximum total viewing time is reached comprises determining whether the total play times of the viewing sessions and the current play time of the new session equals or exceeds the maximum total viewing time; andcontrol deletion of the at least a portion of the on-demand content as a function of the on-demand rental condition.
  • 12. The user equipment of claim 11 wherein the on-demand rental condition is received by the processing circuitry from at least one of an on-demand server and a third-party rights-management server.
  • 13. The user equipment of claim 11 wherein the on-demand rental condition further specifies at least one usage limit specifying a maximum number of on-demand contents stored in the storage device at a given time, and further comprising: receiving a second request to access a second on-demand content, andrestricting access to the second request in response to determining that the number of on-demand contents currently stored in the storage device has reached the usage limit.
  • 14. The user equipment of claim 11 wherein the on-demand rental condition is a function of a rating of the on-demand content.
  • 15. The user equipment of claim 11 wherein the processing circuitry is further configured to: receive a key according to which the at least a portion of the on-demand content may be decrypted; anddecrypt the at least a portion of the on-demand content as a function of the key; andplay back the decrypted at least a portion of the on-demand content on the storage device.
  • 16. The user equipment of claim 11 wherein the processing circuitry is further configured to: receive a dynamic factor which constrains deletion of the at least a portion of the on-demand content on the storage device based on conditions of the user equipment; andfurther control deletion of the at least a portion of the on-demand content on the storage device as a function of the dynamic factor.
  • 17. The user equipment of claim 16 wherein the dynamic factor specifies at least one of: a determination as to whether the user is watching the on-demand content;a determination as to whether the storage device is available; anda determination as to whether the at least a portion of the on-demand content meets a keep criterion.
  • 18. The user equipment of claim 16 wherein the processing circuitry is further configured to: determine that a user of the on-demand client is not actively watching the at least a portion of the on-demand content; andin response to the determination, direct the storage device to delete the at least a portion of the on-demand content.
  • 19. The user equipment of claim 16 wherein the processing circuitry is further configured to: determine that a user of the on-demand client is not watching the at least a portion of the on-demand content and space on the storage device is needed for other uses of resources in the user equipment; andin response to the determination, direct the storage device to delete the at least a portion of the on-demand content.
  • 20. The user equipment of claim 11 wherein the processing circuitry is further configured to: determine that the user of the on-demand client is not watching the at least a portion of the on-demand content, space on the storage device is needed for other uses of resources in the user equipment, and the space used by the at least a portion of the on-demand content on the storage device is less than a specified minimum keep threshold; andin response to the determination, direct the storage device to delete the at least a portion of the on-demand content.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 12/506,086, filed Jul. 20, 2009, which is a continuation of U.S. patent application Ser. No. 11/240,552, filed on Sep. 30, 2005, now abandoned. These prior applications are hereby incorporated by reference herein in their entireties.

US Referenced Citations (261)
Number Name Date Kind
4355415 George et al. Oct 1982 A
4488179 Krüger et al. Dec 1984 A
4602279 Freeman Jul 1986 A
4694490 Harvey et al. Sep 1987 A
4704725 Harvey et al. Nov 1987 A
4706121 Young Nov 1987 A
4718107 Hayes Jan 1988 A
4745549 Hashimoto May 1988 A
4751578 Reiter et al. Jun 1988 A
4787063 Muguet Nov 1988 A
4847698 Freeman Jul 1989 A
4857999 Welsh Aug 1989 A
4908707 Kinghorn Mar 1990 A
4930158 Vogel May 1990 A
4959720 Duffield et al. Sep 1990 A
4963994 Levine Oct 1990 A
4965825 Harvey et al. Oct 1990 A
4977455 Young Dec 1990 A
5027400 Baji et al. Jun 1991 A
5047867 Strubbe et al. Sep 1991 A
5109279 Ando Apr 1992 A
5109414 Harvey et al. Apr 1992 A
5134719 Mankovitz Jul 1992 A
5151789 Young Sep 1992 A
5155591 Wachob Oct 1992 A
5200822 Bronfin et al. Apr 1993 A
5231493 Apitz Jul 1993 A
5233654 Harvey et al. Aug 1993 A
5249043 Grandmougin et al. Sep 1993 A
5299006 Kim et al. Mar 1994 A
5335277 Harvey et al. Aug 1994 A
5339434 Rusis Aug 1994 A
5341350 Frank et al. Aug 1994 A
5353121 Young et al. Oct 1994 A
5357276 Banker et al. Oct 1994 A
5404567 DePietro et al. Apr 1995 A
5410344 Graves et al. Apr 1995 A
5426699 Wunderlich et al. Jun 1995 A
5442389 Blahut et al. Aug 1995 A
5461415 Wolf et al. Oct 1995 A
5465385 Ohga et al. Nov 1995 A
5502504 Marshall et al. Mar 1996 A
5517257 Dunn et al. May 1996 A
5523794 Mankovitz et al. Jun 1996 A
5524195 Clanton, III et al. Jun 1996 A
5524271 Hollmann et al. Jun 1996 A
5537141 Harper et al. Jul 1996 A
5539449 Blahut et al. Jul 1996 A
5539880 Lakhani Jul 1996 A
5541638 Story Jul 1996 A
5541738 Mankovitz Jul 1996 A
5548338 Ellis et al. Aug 1996 A
5550576 Klosterman Aug 1996 A
5550825 McMullan, Jr. et al. Aug 1996 A
5555441 Haddad Sep 1996 A
5557338 Maze et al. Sep 1996 A
5559548 Davis et al. Sep 1996 A
5559549 Hendricks et al. Sep 1996 A
5574778 Ely et al. Nov 1996 A
5576755 Davis et al. Nov 1996 A
5583561 Baker et al. Dec 1996 A
5583563 Wanderscheid et al. Dec 1996 A
5585838 Lawler et al. Dec 1996 A
5592551 Lett et al. Jan 1997 A
5594509 Florin et al. Jan 1997 A
5594779 Goodman Jan 1997 A
5602582 Wanderscheid et al. Feb 1997 A
5606642 Stautner et al. Feb 1997 A
5616876 Cluts Apr 1997 A
5619247 Russo Apr 1997 A
5619249 Billock et al. Apr 1997 A
5619274 Roop et al. Apr 1997 A
5623613 Rowe et al. Apr 1997 A
5625678 Blomfield-Brown Apr 1997 A
5629867 Goldman May 1997 A
5630119 Aristides et al. May 1997 A
5632007 Freeman May 1997 A
5635987 Park et al. Jun 1997 A
5648824 Dunn et al. Jul 1997 A
5652613 Lazarus et al. Jul 1997 A
5654747 Ottesen et al. Aug 1997 A
5654748 Matthews, III Aug 1997 A
5654886 Zereski, Jr. et al. Aug 1997 A
5657072 Aristides et al. Aug 1997 A
5666645 Thomas et al. Sep 1997 A
5675743 Mavity Oct 1997 A
5694163 Harrison Dec 1997 A
5696765 Safadi Dec 1997 A
5708961 Hylton et al. Jan 1998 A
5710601 Marshall et al. Jan 1998 A
5717452 Janin et al. Feb 1998 A
5721829 Dunn et al. Feb 1998 A
5727060 Young Mar 1998 A
5732216 Logan et al. Mar 1998 A
5734119 France et al. Mar 1998 A
5742443 Tsao et al. Apr 1998 A
5745710 Clanton, III et al. Apr 1998 A
5751282 Girard et al. May 1998 A
5752159 Faust et al. May 1998 A
5752160 Dunn May 1998 A
5754771 Epperson et al. May 1998 A
5758257 Herz et al. May 1998 A
5758258 Shoff et al. May 1998 A
5758259 Lawler May 1998 A
5760821 Ellis et al. Jun 1998 A
5768528 Stumm Jun 1998 A
5774170 Hite et al. Jun 1998 A
5778182 Cathey et al. Jul 1998 A
5778187 Monteiro et al. Jul 1998 A
5781226 Sheehan Jul 1998 A
5781227 Goode et al. Jul 1998 A
5790198 Roop et al. Aug 1998 A
5790423 Lau et al. Aug 1998 A
5793412 Asamizuya Aug 1998 A
5793971 Fujita et al. Aug 1998 A
5794217 Allen Aug 1998 A
5796952 Davis et al. Aug 1998 A
5802284 Karlton et al. Sep 1998 A
5805154 Brown Sep 1998 A
5805763 Lawler et al. Sep 1998 A
5805804 Laursen et al. Sep 1998 A
5805806 McArthur Sep 1998 A
5808608 Young et al. Sep 1998 A
5808694 Usui et al. Sep 1998 A
5809246 Goldman Sep 1998 A
5812123 Rowe et al. Sep 1998 A
5812205 Milnes et al. Sep 1998 A
5815146 Youden et al. Sep 1998 A
5818438 Howe et al. Oct 1998 A
5819019 Nelson Oct 1998 A
5819160 Foladare et al. Oct 1998 A
5822530 Brown Oct 1998 A
RE35954 Levine Nov 1998 E
5841979 Schulhof et al. Nov 1998 A
5844620 Coleman et al. Dec 1998 A
5850218 LaJoie et al. Dec 1998 A
5861906 Dunn Jan 1999 A
5881245 Thompson Mar 1999 A
5884028 Kindell et al. Mar 1999 A
5886707 Berg Mar 1999 A
5886732 Humpleman Mar 1999 A
5887243 Harvey et al. Mar 1999 A
5892915 Duso et al. Apr 1999 A
5894589 Reber et al. Apr 1999 A
5896414 Meyer et al. Apr 1999 A
5898441 Flurry Apr 1999 A
5898456 Wahl Apr 1999 A
5899582 DuLac May 1999 A
5900904 Okada et al. May 1999 A
5903234 Kimura May 1999 A
5903263 Emura May 1999 A
5903264 Moeller et al. May 1999 A
5905522 Lawler May 1999 A
5905847 Kobayashi et al. May 1999 A
5909638 Allen Jun 1999 A
5911046 Amano Jun 1999 A
5913039 Nakamura et al. Jun 1999 A
5914941 Janky Jun 1999 A
5915090 Joseph et al. Jun 1999 A
5915094 Kouloheris et al. Jun 1999 A
5916303 Scott Jun 1999 A
5917538 Asamizuya Jun 1999 A
5917835 Barrett et al. Jun 1999 A
5920702 Bleidt et al. Jul 1999 A
5920800 Schafer Jul 1999 A
5922045 Hanson Jul 1999 A
5922048 Emura Jul 1999 A
5923361 Sutton, Jr. Jul 1999 A
5926204 Mayer Jul 1999 A
5926205 Krause et al. Jul 1999 A
5926624 Katz et al. Jul 1999 A
5928327 Wang et al. Jul 1999 A
5929850 Broadwin et al. Jul 1999 A
5930473 Teng et al. Jul 1999 A
5930493 Ottesen et al. Jul 1999 A
5931901 Wolfe et al. Aug 1999 A
5933603 Vahalia et al. Aug 1999 A
5933835 Adams et al. Aug 1999 A
5935206 Dixon et al. Aug 1999 A
5936569 Ståhle et al. Aug 1999 A
5940071 Treffers et al. Aug 1999 A
5940073 Klosterman et al. Aug 1999 A
5943046 Cave et al. Aug 1999 A
5943047 Suzuki Aug 1999 A
5945987 Dunn Aug 1999 A
5947746 Tsai Sep 1999 A
5949411 Doerr et al. Sep 1999 A
5956482 Agraharam et al. Sep 1999 A
5959659 Dokic Sep 1999 A
5963202 Polish Oct 1999 A
5964455 Catanzarite et al. Oct 1999 A
5969714 Butcher Oct 1999 A
5973680 Ueda Oct 1999 A
5973722 Wakai et al. Oct 1999 A
5974217 Haraguchi Oct 1999 A
5977963 Gaughan et al. Nov 1999 A
5978567 Rebane et al. Nov 1999 A
5978843 Wu et al. Nov 1999 A
5986650 Ellis et al. Nov 1999 A
5990881 Inoue et al. Nov 1999 A
5999970 Krisbergh et al. Dec 1999 A
6002394 Schein et al. Dec 1999 A
6002720 Yurt et al. Dec 1999 A
6005564 Ahmad et al. Dec 1999 A
6005600 Hill Dec 1999 A
6009465 Decker et al. Dec 1999 A
6012089 Hasegawa Jan 2000 A
6012091 Boyce Jan 2000 A
6014381 Troxel et al. Jan 2000 A
6014693 Ito et al. Jan 2000 A
6014694 Aharoni et al. Jan 2000 A
6014706 Cannon et al. Jan 2000 A
6018359 Kermode et al. Jan 2000 A
6018765 Durana et al. Jan 2000 A
6020912 De Lang Feb 2000 A
6022223 Taniguchi et al. Feb 2000 A
6023725 Ozawa et al. Feb 2000 A
6025868 Russo Feb 2000 A
6028600 Rosin et al. Feb 2000 A
6029064 Farris et al. Feb 2000 A
6038591 Wolfe et al. Mar 2000 A
6052145 Macrae et al. Apr 2000 A
6141488 Knudson et al. Oct 2000 A
6157377 Shah-Nazaroff et al. Dec 2000 A
6160546 Thompson et al. Dec 2000 A
6208335 Gordon et al. Mar 2001 B1
6314575 Billock et al. Nov 2001 B1
6564379 Knudson et al. May 2003 B1
6609253 Swix Aug 2003 B1
6671881 Tamer Dec 2003 B1
6731447 Bunker et al. May 2004 B2
6757907 Schumacher et al. Jun 2004 B1
7010801 Jerding et al. Mar 2006 B1
7159232 Blackketter Jan 2007 B1
7206892 Kim Apr 2007 B2
20010046366 Susskind Nov 2001 A1
20020042920 Thomas Apr 2002 A1
20020057799 Kohno May 2002 A1
20020078176 Nomura et al. Jun 2002 A1
20020083438 So et al. Jun 2002 A1
20020129371 Emura Sep 2002 A1
20030037068 Thomas et al. Feb 2003 A1
20030067554 Klarfeld et al. Apr 2003 A1
20030149988 Ellis et al. Aug 2003 A1
20030182567 Barton et al. Sep 2003 A1
20040111756 Stuckman et al. Jun 2004 A1
20040117839 Watson et al. Jun 2004 A1
20040213557 Krakirian et al. Oct 2004 A1
20040261093 Rebaud et al. Dec 2004 A1
20050086696 Daniels Apr 2005 A1
20050091164 Varble Apr 2005 A1
20050155079 Chen et al. Jul 2005 A1
20050160465 Walker Jul 2005 A1
20050198677 Lewis Sep 2005 A1
20050240961 Jerding et al. Oct 2005 A1
20060026663 Kortum Feb 2006 A1
20060075441 Gauba et al. Apr 2006 A1
20060080703 Compton Apr 2006 A1
20060085824 Bruck et al. Apr 2006 A1
20060218604 Riedl Sep 2006 A1
20070079342 Ellis et al. Apr 2007 A1
Foreign Referenced Citations (101)
Number Date Country
0424469 May 1991 EP
0535749 Apr 1993 EP
0572090 Dec 1993 EP
0624039 Nov 1994 EP
0662771 Jul 1995 EP
0682452 Nov 1995 EP
0711076 May 1996 EP
0725539 Aug 1996 EP
0758833 Feb 1997 EP
0763938 Mar 1997 EP
0854645 Jul 1998 EP
0874524 Oct 1998 EP
0924927 Jun 1999 EP
0944253 Sep 1999 EP
0986046 Mar 2000 EP
1938603 Jul 2008 EP
2256115 Nov 1992 GB
6061935 Mar 1994 JP
2001338049 Dec 2001 JP
2002007732 Jan 2002 JP
2002118547 Apr 2002 JP
2002259282 Sep 2002 JP
2003050954 Feb 2003 JP
2003186751 Jul 2003 JP
2003186755 Jul 2003 JP
2003259284 Sep 2003 JP
2003288538 Oct 2003 JP
2003319370 Nov 2003 JP
2003348566 Dec 2003 JP
2004166286 Jun 2004 JP
2004252722 Sep 2004 JP
247388 May 1995 TW
WO-8804507 Jun 1988 WO
WO-8912370 Dec 1989 WO
WO-9000847 Jan 1990 WO
WO-9100670 Jan 1991 WO
WO-9107050 May 1991 WO
WO-1992004801 Mar 1992 WO
WO-9308542 Apr 1993 WO
WO-9322877 Nov 1993 WO
WO-9501058 Jan 1995 WO
WO-9515658 Jun 1995 WO
WO-9531069 Nov 1995 WO
WO-9532583 Nov 1995 WO
WO-9532584 Nov 1995 WO
WO-9532585 Nov 1995 WO
WO-9532587 Nov 1995 WO
WO-9609721 Mar 1996 WO
WO-9617467 Jun 1996 WO
WO-9625821 Aug 1996 WO
WO-9634467 Oct 1996 WO
WO-96033572 Oct 1996 WO
WO-9641472 Dec 1996 WO
WO-9713368 Apr 1997 WO
WO-9721291 Jun 1997 WO
WO-9732434 Sep 1997 WO
WO-9734413 Sep 1997 WO
WO-9734414 Sep 1997 WO
WO-9737500 Oct 1997 WO
WO-9742763 Nov 1997 WO
WO-9746016 Dec 1997 WO
WO-9746943 Dec 1997 WO
WO-9747124 Dec 1997 WO
WO-9748228 Dec 1997 WO
WO-9749237 Dec 1997 WO
WO-9801995 Jan 1998 WO
WO-9807277 Feb 1998 WO
WO-9810589 Mar 1998 WO
WO-9812872 Mar 1998 WO
WO-9817033 Apr 1998 WO
WO-9817064 Apr 1998 WO
WO-9818260 Apr 1998 WO
WO-9819459 May 1998 WO
WO-9826528 Jun 1998 WO
WO-9826584 Jun 1998 WO
WO-9826596 Jun 1998 WO
WO-9831115 Jul 1998 WO
WO-9831116 Jul 1998 WO
WO-9834405 Aug 1998 WO
WO-9838831 Sep 1998 WO
WO-9847279 Oct 1998 WO
WO-9903267 Jan 1999 WO
WO-9904561 Jan 1999 WO
WO-9911060 Mar 1999 WO
WO-9912320 Mar 1999 WO
WO-9927681 Jun 1999 WO
WO-9928897 Jun 1999 WO
WO-9939466 Aug 1999 WO
WO-9956473 Nov 1999 WO
WO-9960790 Nov 1999 WO
WO-9965244 Dec 1999 WO
WO-9966725 Dec 1999 WO
WO-0004706 Jan 2000 WO
WO-0005885 Feb 2000 WO
WO-0011869 Mar 2000 WO
WO-0016548 Mar 2000 WO
WO-0033560 Jun 2000 WO
WO-0101677 Jan 2001 WO
WO-0101689 Jan 2001 WO
WO-0135662 May 2001 WO
WO-0150743 Jul 2001 WO
Non-Patent Literature Citations (22)
Entry
“Addressable Converters: A New Development at CableData,” Via Cable, vol. 1, No. 12 (Dec. 1981).
“Description of Digital Audio-Visual Functionalities,” Digital Audio-Visual Council, DAVIC 1.3.1 Specification Part 1, Technical Report, 86 pages, 1998.
“Digital Video Broadcasting (DVB); DVB specification for data broadcasting”, European Telecommunications Standards Institute, Draft EN 301 192 V1.2.1 (Jan. 1999).
“Electronic Programme Guide (EPG); Protocol for a TV Guide using electronic data transmission” by European Telecommunication Standards Institute, May 1997, Valbonne, France, publication No. ETS 300 707.
Apple Computer, Inc., Apple QuickTime, various webpages, http://www.apple.com/quicktime/, accessed Jan. 19, 2006.
Apple Computer, Inc., QuickTime 7 Technology Brief, Nov. 2005.
Apple Computer, Inc., QuickTime 7 User's Guide, Nov. 16, 2005.
Apple Computer, Inc., QuickTime Guide for Windows, Jan. 10, 2006.
Article: “Windows 98 Feature Combines TV, Terminal and the Internet”, New York Times, Aug. 18, 1998.
BrugLiera, . “Digital On-Screen Display—A New Technology for the Consumer Interface,” Symposium Record Cable Sessions, 18th International Television Symposium and Technical Exhibition, Montreux, Switzerland Jun. 10-15, 1993, pp. 571-586 (Jun. 11, 1993).
CableData brochure, “A New Approach to Addressability” (undated).
Chang, Y. et al., “An Open-Systems Approach to Video on Demand,” IEEE Communications Magazine, vol. 32, No. 5 pp. 68-80 (May 1994).
David M. Rudnick, U.S. Appl. No. 09/283,681, filed Apr. 1, 1999, entitled “Interactive Television Program Guide System Having Graphic Arrangements of Program Event Regions”.
Hofmann, et al., “Videotext Programmiert Videorecorder,” Rundfunktechnische Mitteilungen, Nov.-Dec. 1982, pp. 254-257 (translation abstract attached).
Microsoft Corporation, Microsoft Windows Media Player, various webpages, http://www.microsoft.com/ windows/windowsmedia/, accessed Jan. 24, 2006.
Miller, M.D., “A Scenario for the Deployment of Interactive Multimedia Cable Television Systems in the United States in the 1990's,” Proceedings of the IEEE, vol. 82, No. 4, pp. 585-589 (Apr. 1994).
Movielink, LLC, Movielink website, various webpages, http://www.movielink.com/, accessed Jan. 19, 2006.
Patent abstract for Japanese patent Publication No. JP 10 065978, Patent Abstracts of Japan, vol. 1998, No. 08, Jun. 3, 1998.
Patent abstract for Japanese patent Publication No. JP 11 205711, Patent Abstracts of Japan, vol. 1999, No. 12, Jul. 30, 1999.
Patent abstract for Japanese patent Publication No. Jp 11 032272, Patent Abstracts of Japan, vol. 1999, No. 05, Feb. 2, 1999.
Sorce, J. et al., “Designing a Broadband Residential Entertainment Service: A Case Study,” 13th International Symposium Human Factors in Telecommunications, Torino, Italy, Sep. 10-14, 1990 pp. 141-148.
The New York Times Website Article, “2 Makers Plan Introductions of Digital VCR”, by John Markoff, Mar. 29, 1999.
Related Publications (1)
Number Date Country
20160066027 A1 Mar 2016 US
Continuations (2)
Number Date Country
Parent 12506086 Jul 2009 US
Child 14842756 US
Parent 11240552 Sep 2005 US
Child 12506086 US