# Patent

## Title
Single file PVR per service ID

## Abstract

Systems and methods for recording multiple broadcast television programs to a single file may include receiving user selection for recording a first media content and a second media content, determining the first media content and the second media content are provided on a single television service, and tuning to the television service to receive the first media content via a tuner of the television receiver. The systems and methods may include recording the first media content as a first permanent recording to a master file, receiving the second media content via the tuner of the television receiver, and recording the second media content as a second permanent recording to the master file.

## Background
CROSS-REFERENCES TO RELATED APPLICATIONS
N/A
BACKGROUND
Television viewers may watch and/or record broadcast television programs at their television receivers, such as via personal video recorder (“PVR”) capabilities offered by most television receivers. Typically, for each watching and/or recording event, a separate file is saved to a hard drive, even if media contents for the watching and/or recording events are received via a common service identification (“ID”), e.g. on the same television channel. Such saved data may include watching data, such as buffers temporarily saved for a user viewing television programs, and/or recording data, such as pre-scheduled and/or manually initiated event recordings. Often, duplicate data is recorded, which may complicate the recording by requiring additional memory and handling by the television receiver. Further, recordings may be truncated or skipped. This invention is intended to address such issues and to provide related advantages.
SUMMARY
In general, systems and methods disclosed herein are directed to recording media contents, and more particularly, to recording television programs received at a common television channel to a single recording file.
In one aspect, a method for recording multiple broadcast television programs to a single file may include receiving, by a television receiver, user selection for recording a first media content and a second media content. The method may include determining, by the television receiver, the first media content and the second media content are provided on a single television service, and/or tuning, by the television receiver, to the television service to receive the first media content via a tuner of the television receiver. Further, the method may include recording, by the television receiver, the first media content as a first permanent recording to a master file, receiving, by the television receiver, the second media content via the tuner of the television receiver, and/or recording, by the television receiver, the second media content as a second permanent recording to the master file.
Various embodiments of the method may include one or more of the following features. The first media content and the second media content may be received consecutively at the same tuner of the television receiver. The method may include recording, by the television receiver, additional media contents received at the single television service as additional permanent recordings. The single television service may include a single television channel. Further, the user selection for recording at least one of the first and second media contents may include at least one of a scheduled recording and an event recording. The event recording may include receiving a user input to record media content while the media content is being output, by the television receiver, to a display device. In some cases, the method includes detecting, by the television receiver, manual initiation of a record function via a remote control for the user selection of the event recording.
Further features of the method may include recording, by the television receiver, a soft trim segment of media content immediately preceding the first permanent recording. The soft trim segment may be received at the tuner prior to a timer starting for the first permanent recording. The method may include removing, by the television receiver, the recorded soft trim segment from the master file. The method may include recording, by the television receiver, at least one non-permanent segment of media content received at the tuner after recording the first media content and before recording the second media content. The non-permanent segment may be recorded to the master file between an end of the first permanent recording and a beginning of the second permanent recording. Further, the method may include removing, by the television receiver, the at least one recorded non-permanent segment from the master file.
Further, the method may include removing, by the television receiver, the at least one recorded non-permanent segment from the master file in response to detecting, by the television receiver, that the single television service is no longer being accessed for at least one of viewing and recording. In some cases, the method includes determining, by the television receiver, that the single television service is no longer being accessed by detecting, by the television receiver, that no tuners located on least one of the television receiver and secondary television receivers in operative communication with the television receiver are accessing the single television service for at least one of viewing and recording.
The method may include creating, by the television receiver, a first virtual file corresponding to the first permanent recording and a second virtual file corresponding to the second permanent recording, whereby each of the first and second virtual files may include metadata indicating a location in the master file for the first or second permanent recordings, respectively. The metadata of each of the first and second virtual files may include presentation timestamps (“PTS”) corresponding to a start time and an end time of the first and second permanent recordings, respectively. The first virtual file and the second virtual file may indicate portions of the master file that are not deleted upon closing, by the television receiver, the master file.
Still further, the method may include creating, by the television receiver, a delay buffer file mirroring the master file, and/or deleting, by the television receiver, the delay buffer file upon detecting, by the television receiver, that the single television service is no longer being accessed for at least one of viewing and recording. The method may include recording, by the television receiver, the delay buffer file upon tuning to the television service to receive the first media content. In some cases, the method may include deleting, by the television receiver, the delay buffer upon detecting that the master file is closed. Detecting that the master file is closed may include receiving, by the television receiver, a user selection to power down the television receiver. The master file may include a transport stream .tsp file that is written to a local hard drive at the television receiver.
In another aspect, a computer-readable medium having stored thereon a series of instructions which, when executed by a processor, cause the processor to record multiple television programs to a single file may include receiving, by a television receiver, user selection for recording a first media content and a second media content, and/or determining, by the television receiver, the first media content and the second media content are provided on a single television service. The instructions may include tuning, by the television receiver, to the television service to receive the first media content via a tuner of the television receiver and/or recording, by the television receiver, the first media content as a first permanent recording to a master file. Further, the method may include receiving, by the television receiver, the second media content via the tuner of the television receiver, and/or recording, by the television receiver, the second media content as a second permanent recording to the master file.
In yet another aspect, a system for recording multiple television programs to a single file may include one or more processors and a memory communicatively coupled with and readable by the one or more processors and having stored therein processor-readable instructions. When executed by the one or more processors, the processor-readable instructions may cause the one or more processor to receive, by a television receiver, user selection for recording a first media content and a second media content, and/or determine, by the television receiver, the first media content and the second media content are provided on a single television service. The processor-readable instructions may cause the one or more processor to tune, by the television receiver, to the television service to receive the first media content via a tuner of the television receiver, and/or record, by the television receiver, the first media content as a first permanent recording to a master file. Further, the processor-readable instructions may cause the one or more processors to receive, by the television receiver, the second media content via the tuner of the television receiver, and/or record, by the television receiver, the second media content as a second permanent recording to the master file.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows an example method according to the present disclosure;
FIG. 2 shows an example satellite system according to the present disclosure;
FIG. 3 shows an example block diagram for a television receiver according to the present disclosure;
FIG. 4 shows an example schematic diagram of various features of a single file PVR per service identification (“ID”) according to the present disclosure;
FIG. 5 shows an example schematic diagram of various features of a single file PVR per service ID for back to back timers according to the present disclosure; and
FIG. 6 shows an example block diagram for a computing system upon which various features of the present disclosure may be provided.



It is noted that any of the elements and/or steps provided in the block diagrams, flow diagrams, method diagrams, and other illustrations of the figures may be optional, replaced, and/or include additional components, such as combined and/or replaced with other elements and/or steps from other figures and text provided herein. Various embodiments of the present invention are discussed below, and various combinations or modifications thereof may be contemplated.
DETAILED DESCRIPTION
In general, the systems and methods disclosed herein may record different television programs received at a common television channel, herein referred to as a common service identification (“ID”), to a single master file. Further, the systems and methods disclosed herein may clean-up the master file by removing unnecessary and/or non-permanent recordings upon detection that the service ID is no longer being accessed by any tuners at the television receiver, and/or by any secondary television receivers connected thereto. Other variations and embodiments are possible, as disclosed herein.
Numerous benefits of the systems and methods may be contemplated. The systems and methods disclosed herein may reduce and/or eliminate duplicate data, such as duplicate recordings of media content being permanently and/or temporarily stored to the television receiver during viewing and/or recording of media contents. By way of example, such saved data may include watching data, such as buffers temporarily saved for a user viewing television programs, and/or recording data, such as pre-scheduled and/or manually initiated event recordings. In this way, complexity of the recordings may be reduced, along with reduced system requirements for handling and storing the recorded files.
In another aspect, a number of tuners required for a plurality of viewing and/or recording events may be reduced by providing the common, master file as accessible by a plurality of television receivers, e.g. primary and additional television receivers, and/or other user devices having similar capabilities. In this way, fewer tuners may be required for watching and/or recording media content, which may reduce possibilities of programs being truncated and/or skipped due to back to back timers operating on the same service ID. In further aspects, buffering the video stream received at the service ID may be simplified by the systems and methods disclosed herein. Other benefits may be contemplated.
Turning now to FIG. 1, an example method 100 for providing a single file PVR per service ID is provided. The method 100 may be implemented by a television receiver, and/or any other device that may receive and/or record media content. Further, the method 100 shown, and any other methods disclosed herein, may include additional and/or alternative steps in relation to the steps being shown. Any of the steps may be optional, rearranged, and/or combined. Numerous variations are possible.
As shown in FIG. 1, the method 100 may include receiving, by a television receiver, user selection(s) to record one or more media contents (step 102). In some examples, the television receiver may receive user selection for recording a plurality of media contents, such as a plurality of broadcast television programs. In one example, the television receiver receives instruction and/or action from a user to record a first media content and a second media content, although several additional media contents may be designated by the user(s) for recording. The user selection for recording media contents may include a scheduled recording, such as recordings that are scheduled by user input and specified with a broadcast channel and/or broadcast time. In other cases, the user selection for recording may include an event recording, whereby the television receives user input to record media content while the media content is being output, by the television receiver, to a display device or television screen. An example of such user input may include detecting, by the television receiver, manual initiation of a record function via a remote control during the output of the media content for viewing. For instance, the user may press a record button on the television receiver and/or a remote control connected thereto.
It is noted that the television receiver contemplated herein may include personal video recorder (“PVR”) or digital video recorder (“DVR”) services, although other variations are possible. Further, it is noted that secondary television receivers may also receive user selection to record one or more media contents, and/or to view the one or more media contents. Such requests handled at the secondary television receivers may be communicated to a primary television receiver, such as the television receiver contemplated herein for example purposes. In this way, the main or primary television receiver may detect if the additional secondary television receivers are recording and/or watching, e.g. being output for display, media contents, which may be provided for on a same service identification (“ID”), e.g. same television channel, as the first and second media contents being recorded. For instance, the television receiver may detect if a user at a secondary television receiver has tuned in to the same service ID while a scheduled and/or event recording is occurring at the primary television receiver. Other examples are possible.
As further shown in FIG. 1, the method 100 may include determining, by the television receiver, that the media contents selected for recording are provided for on a same television service (step 104). For instance, the television receiver may determine that the first media content and the second media content are provided on a single television service, such as a single or same television channel or service ID. For instance, the first and second media contents may be received consecutively at the same tuner of the television receiver. In some cases, the first and second media contents may be received back-to-back at the same tuner and/or television channel. In other cases, the first and second media contents may be separated in the video stream of the single television channel by other programs, which may not be specifically designated for recording by the user. It is contemplated that the first and second media contents may include first and second television programs that are schedule and/or event recorded, or a combination thereof. Further, the television receiver may determine that a plurality of media contents that have been chosen for recording are provided for on the same service ID. Other examples are possible.
Further shown in FIG. 1, the method 100 may include recording, by the television receiver, the media contents as permanent recordings to a single, master file (step 106). For instance, the method 100 may include tuning, by the television receiver, to the television service to receive the first media content via a tuner of the television receiver, and recording, by the television receiver, the first media content as a first permanent recording to the master file. Subsequently, the method 100 may include receiving, by the television receiver, the second media content via the tuner of the television receiver, and recording, by the television receiver, the second media content as a second permanent recording to the master file. If additional media content is designated for recording and determined to be provided on the same service ID, the television receiver may further record the additional media contents as additional permanent recordings on the master file.
In some cases, as mentioned above, other programs that are not intended for recording are provided for on the service ID. Such recordings may include intermediary segments of video content that exist before, in-between, and/or after the desired media contents to be permanently recorded. It is contemplated that the other programs may also be recorded to the master file as non-permanent segments which may be automatically deleted from the master file at a later time, as discussed below. In a specific example, the television receiver may record at least one non-permanent segment of media content received at the tuner after recording the first media content and before recording the second media content. In that case, the non-permanent segment may be recorded to the master file between an end of the first permanent recording and a beginning of the second permanent recording. The television receiver may remove, e.g. automatically delete, the at least one recorded non-permanent segment from the master file upon detection of one or more events during a clean-up routine, as described in further detail below.
In a further aspect, prior to recording the first media content, the television receiver may record, temporarily, a soft trim segment of media content, whereby the soft trim segment immediately precedes the first permanent recording. The soft trim segment may be received at the tuner prior to a timer starting for the first permanent recording, e.g. upon tuning to the single television channel in preparation for recording the first media content. Merely by way of example, tuning to the single television channel may include a user tuning to the channel and/or the television receiver automatically tuning to the channel based on a preprogrammed, scheduled recording. It is noted that the television receiver may actively remove, while performing the recordings, the recorded soft trim segment from the master file. It is further noted that the master file may include a transport stream file or .tsp file. Other file formats that may be common for digital television PVR and/or DVR may be contemplated. Merely by way of example, the master file may also be provided as a .wtt file, .art file, and/or a .bm file.
In another aspect, during, after, and/or otherwise in relation to the recording of the first and/or second media contents, the television receiver may create virtual files linked to each of the permanent recordings. For instance, the television receiver may create a first virtual file corresponding to the first permanent recording and a second virtual file corresponding to the second permanent recording. It is contemplated that the virtual files each contain metadata also created by the television receiver to indicate a location in the master file for the recording linked thereto. It is contemplated that the virtual files are only created for permanent recordings, i.e. the first, second, and/or any other additional permanent recordings. The virtual files may be accessed by the television receiver for locating the permanent recordings when the television receiver receives user input to view a particular recording, and/or for indicating which recordings should or should not be deleted. For example, non-permanent segments that are recorded do not have an associated virtual file(s), which may indicate that they are removable, as discussed further in the steps below.
In some examples, the metadata of each virtual file includes presentation timestamps (“PTS”) corresponding to a start time and an end time of the permanent recording to determine a location of the permanent recording in the master file. The PTS data may be included in the video stream received at the tuner and may be parsed out by the television receiver for determining the metadata. In another example, the metadata may include storing a byte offset into or related to the recording in the master file. For instance, instead of searching and parsing for PTS data, the television receiver may provide metadata that indicates that the permanent recording begins at a position that is 30 bytes into the file. It is contemplated that the television receiver may implement such PTS and/or byte count data as metadata to indicate or otherwise determine a location of the permanent recording in the master file. In other aspects, similar concepts may be used to identify which portions of the video stream received at the tuner should be permanently recorded.
In a further aspect, a delay buffer file may be created during viewing and/or recording of the service ID. The viewing and/or recording may be performed by the television receiver, and/or one or more secondary television receivers connected thereto. It is contemplated that the delay buffer file may be created and/or begin to be recorded by the television receiver at a moment coinciding with the television receiver tuning to the service ID in preparation for receiving the first media content. The delay buffer file may be maintained and updated until the television receiver detects that the tuner at the receiver, and/or any other secondary television receivers connected thereto, are no longer accessing the service ID for any viewing and/or recording purposes, whereupon the delay buffer file may be deleted. In another aspect, the delay buffer file may be deleted by the television receiver upon detecting that the master file has been closed and/or is no longer being accessed by any television receivers. It is noted that the delay buffer file may comprise a temporary recording file that is separate from the master file. In another aspect, the delay buffer file may mirror the master file while both are being recorded and/or created by the television receiver.
Further shown in FIG. 1, the method 100 may include determining, by the television receiver, that the television service or service ID is no longer being accessed for watching and/or recording media content (step 108). In some cases, determination of this stage may be based on an access status of each of the television receivers, such as the television receiver and secondary television receivers connected thereto. The access status may indicate that the television receiver is powered off, is receiving the media content for watching and/or recording, and/or specify if the television receiver is on standby but still operably performing a scheduled recording. In a particular example, when the television receiver detects that a last permanent recording has been completed and that a last television viewer, e.g. television receiver, of the service ID has left the service ID, the television receiver may determine that the service ID is no longer being accessed by any of the television receivers. Leaving the service ID may include changing to a different television channel and/or powering down the television receiver delivering to the last television viewer. Further, it is noted that a television receiver in standby mode that is recording, or has a scheduled recording for, a television program on the service ID is considered to be accessing the service ID. Other examples are possible.
Still further shown in FIG. 1, the method 100 may include removing non-permanent recordings from the master file (step 110). For example, the television receiver may remove, e.g. automatically delete, the at least one recorded non-permanent segment from the master file upon detecting that the service ID is no longer being accessed (step 108) and/or determining that the master file has been closed, e.g. the master file is no longer being accessed and/or written to. In some cases, the television receiver closes the master file in response to determining that the service ID is no longer being accessed by any television receivers networked together, and/or closes the master file due to powering off the last television receiver accessing it. In any case, during the clean-up routine of step 110, virtual files associated with the permanent recordings in the master file, e.g. the first and second virtual files, may indicate which portions of the master file that are not to be deleted upon closing of the master file.
It is contemplated that during the clean-up routine, which may herein be referred to as hole-punching the master file, non-permanent segments are fully deleted after everyone, i.e. all television receivers, leaves the particular service ID, including any scheduled recordings taking place or scheduled to take place on the service ID. For example, the service ID may be television channel 5, whereby once channel 5 is no longer in use by any users, i.e. any scheduled recording timers or active watchers, the television receiver may initiate the final clean-up of the master file by permanently deleting the unmarked, e.g. lacking a corresponding virtual file, recorded sections or non-permanent segments of the master file. As noted above, this process may be referred to as “hole punching” since the non-permanent segments of the master file occur in-between or are otherwise located intermediately between two separate permanent recordings on the master file. Other possibilities may include hole punching to remove other recorded portions of the media content, such as a soft trim portion which precedes the first permanent recording and/or a current delay buffer which follows the last permanent recording. Further, it is contemplated that the permanent recordings are not shifted, condensed together, and/or otherwise or repositioned in the master file after hole punching the non-permanent segments of the master file, although other examples may be contemplated.
In still another example, the first permanent recording and the second permanent recoding may be back-to-back on the master file and created by using back-to-back recording timers. In that case, a beginning of one show, e.g. the second permanent recording, may overlap an end of another show, e.g. the first permanent recording, such that no intermediary, non-permanent recordings are in the master file. In a further aspect, the television receiver may receive user indication to delete one of the first or second permanent recordings. In that case, any portion of the recording intended for deletion that does not overlap with the remaining recording may be hole-punched out of the master file.
In another aspect, the delay buffer file may be deleted during the file clean-up. It is contemplated that the delay buffer file is created as soon as the service ID is tuned to by the television receiver, and continues to be maintained and created until the master file has closed and all users have left the service ID. When the service ID is no longer being accessed by any of the television receivers, e.g. primary and secondary television receivers, then the delay buffer file may be deleted. In this way, the delay buffer file may be active as long as the master file is active, e.g. not yet closed. In practice, the delay buffer file may be any length, and may include an actual viewable portion that can be accessed by a viewer for skipping back and/or forward within an actual viewable window, such as a 60 minute window from live broadcast. The length or size of the actual viewable window and/or delay buffer file may be user configured, pre-programmed, and/or dependent on an available storage space at the television receiver. Other examples are possible.
Turning now to FIG. 2, an example satellite system 200 is shown in accordance with the present disclosure. For brevity, the satellite system 200 is depicted in a simplified form, and may generally include more or fewer systems, devices, networks, and/or other components as desired. Further, number and type of features or elements incorporated within the satellite system 200 may or may not be implementation-specific, and at least some of the aspects of the satellite system 200 may be similar to a cable television distribution system, an IPTV (Internet Protocol Television) content distribution system, and/or any other type of content distribution system.
In this example, the satellite system 200 may include a service provider 202, a satellite uplink 204, a plurality of orbiting (e.g., geosynchronous) satellites 206a-c, a satellite dish 208, a PTR (Primary Television Receiver) 210, a plurality of STRs (Secondary Television Receivers) 212a-b, a plurality of televisions 214a-c, and a plurality of computing devices 216a-b. The PTR 210 may include a single file PVR service module 218 that is programmatically configured to provide a single file PVR per service ID. As discussed throughout, the single file PVR service module 218 may be provided according to a particular hardware and/or firmware architecture of the PTR 210. Such implementations may be beneficial and/or advantageous in many respects, as described further in the succeeding paragraphs.
The satellite system 200 may also include at least one network 220 that establishes a bi-directional communication path for data transfer between and among each respective element of the satellite system 200 outside of the unidirectional satellite signaling path. The network 220 is intended to represent any number of terrestrial and/or non-terrestrial network features or elements. For example, the network 220 may incorporate or exhibit any number of features or elements of various wireless and/or hardwired packet-based communication networks such as, for example, a WAN (Wide Area Network) network, a HAN (Home Area Network) network, a LAN (Local Area Network) network, a WLAN (Wireless Local Area Network) network, the Internet, a cellular communications network, or any other type of communication network configured such that data may be transferred between and among respective elements of the satellite system 200.
The PTR 210, and the STRs 212a-b, as described throughout may generally be any type of television receiver, television converter, etc., such as a STB (Set-Top-Box) for example. In another example, the PTR 210, and the STRs 212a-b, may exhibit functionality integrated as part of or into a television, a DVR, a computer such as a tablet computing device, or any other computing system or device, as well as variations thereof. Further, the PTR 210 and the network 220, together with the STRs 212a-b and televisions 214a-c, and possibly the computing devices 216a-b, may be incorporated within or form at least a portion of a particular home computing network, and may each be respectively configured so as to enable communications in accordance with any particular communication protocol(s) and/or standard(s) including, for example, TCP/IP (Transmission Control Protocol/Internet Protocol), DLNA/DTCP-IP (Digital Living Network Alliance/Digital Transmission Copy Protection over Internet Protocol), HDMI/HDCP (High-Definition Multimedia Interface/High-bandwidth Digital Content Protection), etc. Other examples are possible. For example, one or more of the various elements or components of the example satellite system 200 may be configured to communicate in accordance with the MoCA® (Multimedia over Coax Alliance) home entertainment networking standard. Still other examples are possible.
In practice, the satellites 206a-c may each be configured to receive uplink signals 222a-b from the satellite uplink 204. In this example, the uplink signals 222a-b may contain one or more transponder streams of particular data or content, such as particular television channel, that is supplied by the service provider 202. For example, each of the respective uplink signals 222a-b may contain various media content such as a plurality of encoded HD (High Definition) television channels, various SD (Standard Definition) television channels, on-demand programming, programming information, and/or any other content in the form of at least one transponder stream, and in accordance with an allotted carrier frequency and bandwidth. In this example, different media content may be carried using different ones of the satellites 206a-c. Further, different media content may be carried using different transponders of a particular satellite (e.g., satellite 206a); thus, such media content may be transmitted at different frequencies and/or different frequency ranges. For example, a first and second television channel may be carried on a first carrier frequency over a first transponder of satellite 206a, and a third, fourth, and fifth television channel may be carried on second carrier frequency over a first transponder of satellite 206b, or, the third, fourth, and fifth television channel may be carried on a second carrier frequency over a second transponder of satellite 206a, and etc.
The satellites 206a-c may further be configured to relay the uplink signals 222a-b to the satellite dish 208 as downlink signals 224a-b. Similar to the uplink signals 222a-b, each of the downlink signals 224a-b may contain one or more transponder streams of particular data or content, such as various encoded and/or at least partially electronically scrambled television channels, on-demand programming, etc., in accordance with an allotted carrier frequency and bandwidth. The downlink signals 224a-b, however, may not necessarily contain the same or similar content as a corresponding one of the uplink signals 222a-b. For example, the uplink signal 222a may include a first transponder stream containing at least a first group or grouping of television channels, and the downlink signal 224a may include a second transponder stream containing at least a second, different group or grouping of television channels. In other examples, the first and second group of television channels may have one or more television channels in common. In sum, there may be varying degrees of correlation between the uplink signals 222a-b and the downlink signals 224a-b, both in terms of content and underlying characteristics.
Continuing with the example implementation-specific scenario, the satellite dish 208 may be provided for use to receive television channels (e.g., on a subscription basis) provided by the service provider 202, satellite uplink 204, and/or satellites 206a-c. For example, the satellite dish 208 may be configured to receive particular transponder streams, or downlink signals 224a-b, from one or more of the satellites 206a-c. Based on the characteristics of the PTR 210 and/or satellite dish 208, however, it may only be possible to capture transponder streams from a limited number of transponders concurrently. For example, a tuner of the PTR 210 may be configured to tune to a single transponder stream from a transponder of a single satellite at a time.
Additionally, the PTR 210, which is communicatively coupled to the satellite dish 208, may subsequently select via tuner, decode, and relay particular transponder streams to the television 214c for display thereon. For example, the satellite dish 208 and the PTR 210 may, respectively, be configured to receive, decode, and relay at least one premium HD-formatted television channel to the television 214c. Programming or content associated with the HD channel may generally be presented live, or from a recording as previously stored on, by, or at the PTR 210. In this example, the HD channel may be output to the television 214c in accordance with the HDMI/HDCP content protection technologies. Other examples are possible.
Further, the PTR 210 may select via tuner, decode, and relay particular transponder streams to one or both of the STRs 212a-b, which may in turn relay particular transponder streams to a corresponding one of the television 214a and the television 214b for display thereon. For example, the satellite dish 208 and the PTR 210 may, respectively, be configured to receive, decode, and relay at least one television channel to the television 214a by way of the STR 212a. Similar to the above-example, the television channel may generally be presented live, or from a recording as previously stored on the PTR 210, and may be output to the television 214a by way of STR 212a in accordance with a particular content protection technology and/or networking standard. Still further, the satellite dish 208 and the PTR 210 may, respectively, be configured to receive, decode, and relay at least one premium television channel to one or both of the computing devices 216a-b. Similar to the above-examples, the television channel may generally be presented live, or from a recording as previously stored on the PTR 210, and may be output to one or both of the computing devices 216a-b in accordance with a particular content protection technology and/or networking standard.
Referring now to FIG. 3, an example block diagram of the PTR 210 of FIG. 2 is shown in accordance with the present disclosure. In some examples, at least one of the STRs 212a-b may be configured in a manner similar to that of the PTR 210. In other examples, at least one of the STRs 212a-b may be configured to exhibit a reduced functionality as compared to the PTR 210, and may depend at least to a certain degree on the PTR 210 to implement certain features or functionality. In this example, the STRs 212a-b may be referred to as a “thin client.”
For brevity, the PTR 210 is depicted in a simplified form, and may generally include more or fewer elements or components as desired in accordance with the present disclosure. For example, the PTR 210 is shown in FIG. 3 to include the single file PVR service module 218. In general, and as discussed in further detail below, the single file PVR service module 218 may be configured to provide for one or more aspects of a creating a single file PVR per service ID. Other examples are possible as well.
Additionally, although not explicitly shown in FIG. 3, the PTR 210 may include one or more logical modules configured to implement a television streaming media functionality that encodes video into a particular format for transmission over the Internet such as to allow users to remotely view and control a home cable, satellite, or personal video recorder system from an Internet-enabled computer with a broadband Internet connection. The Slingbox® by Sling Media, Inc. of Foster City, Calif., is one example of a product that implements such functionality. Additionally, the PTR 210 may be configured to include any number of other various components or logical modules that are implemented in hardware, software, firmware, or any combination thereof, and such components or logical modules may or may not be implementation-specific.
Referring still to FIG. 3, the PTR 210 in this example includes one or more processors 302, a plurality of tuners 304a-h, at least one network interface 306, at least one non-transitory computer-readable storage medium 308, at least one EPG database 310, at least one television interface 312, at least one PSI (Program Specific Information) table 314, at least one DVR database 316, at least one user interface 318, at least one demultiplexer 320, at least one smart card 322, at least one descrambling engine 324, and at least one decoder 326. In other examples, fewer or greater numbers of components may be present. Further, functionality of one or more components may be combined; for example, functions of the descrambling engine 324 may be performed by the processors 302. Still further, functionality of components may be distributed among additional components, and possibly additional systems such as, for example, in a cloud-computing implementation.
The processors 302 may include one or more specialized and/or general-purpose processors configured to perform processes such as tuning to a particular channel, accessing and displaying EPG information, and/or receiving and processing input from a user. For example, the processors 302 may include one or more processors dedicated to decoding video signals from a particular format, such as according to a particular MPEG (Motion Picture Experts Group) standard, for output and display on a television, and for performing or at least facilitating decryption or descrambling.
The tuners 304a-h may be used to tune to television channels, such as television channels transmitted via satellites (not shown). Each one of the tuners 304a-h may be capable of receiving and processing a single stream of data from a satellite transponder, or a cable RF channel, at a given time. As such, a single tuner may tune to a single transponder or, for a cable network, a single cable channel. Additionally, one tuner (e.g., tuner 304a) may be used to tune to a television channel on a first transponder stream for display using a television, while another tuner (e.g., tuner 304b) may be used to tune to a television channel on a second transponder for recording and viewing at some other time. If multiple television channels transmitted on the same transponder stream are desired, a particular tuner (e.g., tuner 304c) may be used to receive the signal containing the multiple television channels for presentation and/or recording of each of the respective multiple television channels, such as in a PTAT (Primetime Anytime) implementation for example. Although eight tuners are shown, the PTR 210 may include more or fewer tuners (e.g., three tuners, twelve tuners, etc.), and the features of the disclosure may be implemented similarly and scale according to the number of tuners of the PTR 210.
The network interface 306 may be used to communicate via alternate communication channel(s) with a service provider. For example, the primary communication channel between the service provider 202 of FIG. 2 and the PTR 210 may be via satellites, which may be unidirectional to the PTR 210, and another communication channel between the service provider 202 and the PTR 210, which may be bidirectional, may be via a network, such as various wireless and/or hardwired packet-based communication networks, including, for example, a WAN (Wide Area Network), a HAN (Home Area Network), a LAN (Local Area Network), a WLAN (Wireless Local Area Network), the Internet, a cellular network, a home automation network, or any other type of communication network configured such that data may be transferred between and among respective elements of the satellite system 200. In general, various types of information may be transmitted and/or received via the network interface 306.
The storage medium 308 may represent a non-transitory computer-readable storage medium. The storage medium 308 may include memory and/or a hard drive. The storage medium 308 may be used to store information received from one or more satellites and/or information received via the network interface 306. For example, the storage medium 308 may store information related to the EPG database 310, the PSI table 314, and/or the DVR database 316, among other elements or features, such as the single file PVR service module 218 mentioned above. Recorded television programs may be stored using the storage medium 308.
The EPG database 310 may store information related to television channels and the timing of programs appearing on such television channels. Information from the EPG database 310 may be used to inform users of what television channels or programs are available, popular and/or provide recommendations. Information from the EPG database 310 may be used to generate a visual interface displayed by a television that allows a user to browse and select television channels and/or television programs for viewing and/or recording. Information used to populate the EPG database 310 may be received via the network interface 306 and/or via satellites. For example, updates to the EPG database 310 may be received periodically via satellite. The EPG database 310 may serve as an interface for a user to control DVR functions of the PTR 210, and/or to enable viewing and/or recording of multiple television channels simultaneously.
The decoder 326 may convert encoded video and audio into a format suitable for output to a display device. For instance, the decoder 326 may receive MPEG video and audio from the storage medium 308, or the descrambling engine 324, to be output to a television. MPEG video and audio from the storage medium 308 may have been recorded to the DVR database 316 as part of a previously-recorded television program. The decoder 326 may convert the MPEG video and audio into a format appropriate to be displayed by a television or other form of display device and audio into a format appropriate to be output from speakers, respectively. The decoder 326 may be a single hardware element capable of decoding a finite number of television channels at a given time, such as in a time-division arrangement. In the example, eight television channels may be decoded concurrently or simultaneously.
The television interface 312 outputs a signal to a television, or another form of display device, in a proper format for display of video and play back of audio. As such, the television interface 312 may output one or more television channels, stored television programming from the storage medium 308, such as television programs from the DVR database 316 and/or information from the EPG database 310 for example, to a television for presentation.
The PSI table 314 may store information used by the PTR 210 to access various television channels. Information used to populate the PSI table 314 may be received via satellite, or cable, through the tuners 304a-h and/or may be received via the network interface 306 over the network from the service provider 202 shown in FIG. 2. Information present in the PSI table 314 may be periodically or at least intermittently updated. Information that may be present in the PSI table 314 may include: television channel numbers, satellite identifiers, frequency identifiers, transponder identifiers, ECM PIDs (Entitlement Control Message, Packet Identifier), one or more audio PIDs, and video PIDs. A second audio PID of a channel may correspond to a second audio program, such as in another language. In some examples, the PSI table 314 may be divided into a number of tables, such as a NIT (Network Information Table), a PAT (Program Association Table), a PMT (Program Management Table), etc.
DVR functionality of the PTR 210 may permit a television channel to be recorded for a period of time. The DVR database 316 may store timers that are used by the processors 302 to determine when a television channel should be tuned to and recorded to the DVR database 316 of storage medium 308. In some examples, a limited amount of space of the storage medium 308 may be devoted to the DVR database 316. Timers may be set by the service provider 202 and/or one or more viewers or users of the PTR 210. DVR functionality of the PTR 210 may be configured by a user to record particular television programs. The PSI table 314 may be used by the PTR 210 to determine the satellite, transponder, ECM PID, audio PID, and video PID.
The user interface 318 may include a remote control, physically separate from PTR 210, and/or one or more buttons on the PTR 210 that allows a user to interact with the PTR 210. The user interface 318 may be used to select a television channel for viewing, view information from the EPG database 310, and/or program a timer stored to the DVR database 316 wherein the timer may be used to control the DVR functionality of the PTR 210.
Referring back to the tuners 304a-h, television channels received via satellite may contain at least some encrypted or scrambled data. Packets of audio and video may be scrambled to prevent unauthorized users, such as nonsubscribers, from receiving television programming without paying the service provider 202. When one of the tuners 304a-h is receiving data from a particular transponder of a satellite, the transponder stream may be a series of data packets corresponding to multiple television channels. Each data packet may contain a PID, which in combination with the PSI table 314, can be determined to be associated with a particular television channel. Particular data packets, referred to as ECMs may be periodically transmitted. ECMs may be encrypted; the PTR 210 may use the smart card 322 to decrypt ECMs.
The smart card 322 may function as the CA (Controlled Access) which performs decryption of encryption data to obtain control words that are used to descramble video and/or audio of television channels. Decryption of an ECM may only be possible when the user, e.g., an individual who is associated with the PTR 210, has authorization to access the particular television channel associated with the ECM. When an ECM is received by the demultiplexer 320 and the ECM is determined to correspond to a television channel being stored and/or displayed, the ECM may be provided to the smart card 322 for decryption.
When the smart card 322 receives an encrypted ECM from the demultiplexer 320, the smart card 322 may decrypt the ECM to obtain some number of control words. In some examples, from each ECM received by the smart card 322, two control words are obtained. In some examples, when the smart card 322 receives an ECM, it compares the ECM to the previously received ECM. If the two ECMs match, the second ECM is not decrypted because the same control words would be obtained. In other examples, each ECM received by the smart card 322 is decrypted; however, if a second ECM matches a first ECM, the outputted control words will match; thus, effectively, the second ECM does not affect the control words output by the smart card 322. When an ECM is received by the smart card 322, it may take a period of time for the ECM to be decrypted to obtain the control words. As such, a period of time, such as about 0.2-0.5 seconds, may elapse before the control words indicated by the ECM can be obtained. The smart card 322 may be permanently part of the PTR 210 or may be configured to be inserted and removed from the PTR 210.
The demultiplexer 320 may be configured to filter data packets based on PIDs. For example, if a transponder data stream includes multiple television channels, data packets corresponding to a television channel that are not desired to be stored or displayed by the user may be ignored by the demultiplexer 320. As such, only data packets corresponding to the one or more television channels desired to be stored and/or displayed may be passed to either the descrambling engine 324 or the smart card 322; other data packets may be ignored. For each channel, a stream of video packets, a stream of audio packets and/or a stream of ECM packets may be present, each stream identified by a PID. In some examples, a common ECM stream may be used for multiple television channels. Additional data packets corresponding to other information, such as updates to the PSI table 314, may be appropriately routed by the demultiplexer 320.
The descrambling engine 324 may use the control words output by the smart card 322 in order to descramble video and/or audio corresponding to television channels for storage and/or presentation. Video and/or audio data contained in the transponder data stream received by the tuners 304a-h may be scrambled. The video and/or audio may be descrambled by the descrambling engine 324 using a particular control word. Which control word output by the smart card 322 to be used for successful descrambling may be indicated by a scramble control identifier present within the data packet containing the scrambled video or audio. Descrambled video and/or audio may be output by the descrambling engine 324 to the storage medium 308 for storage, such as part of the DVR database 316 for example, and/or to the decoder 326 for output to a television or other presentation equipment via the television interface 312.
For brevity, the PTR 210 is depicted in a simplified form, and may generally include more or fewer elements or components as desired, including those configured and/or arranged for implementing various features associated with intelligently allocating idle tuner resources to buffer or record broadcast programming determined as desirable, as discussed in the context of the present disclosure. For example, the PTR 210 is shown in FIG. 3 to include the single file PVR service module 218 as mentioned above in connection with FIG. 2. Further, some routing between the various modules of the PTR 210 has been illustrated. Such illustrations are for exemplary purposes only. The state of two modules not being directly or indirectly connected does not indicate the modules cannot communicate. Rather, connections between modules of the PTR 210 are intended only to indicate possible common data routing. It should be understood that the modules of the PTR 210 may be combined into a fewer number of modules or divided into a greater number of modules.
Additionally, although not explicitly shown in FIG. 3, the PTR 210 may include one or more logical modules configured to implement a television streaming media functionality that encodes video into a particular format for transmission over the Internet such as to allow users to remotely view and control a home cable, satellite, or personal video recorder system from an Internet-enabled computer with a broadband Internet connection. The Slingbox® by Sling Media, Inc. of Foster City, Calif., is one example of a product that implements such functionality. Further, the PTR 210 may be configured to include any number of other various components or logical modules that are implemented in hardware, software, firmware, or any combination thereof, and such components or logical modules may or may not be implementation-specific.
Turning now to FIG. 4, an example schematic diagram of various features of a single file PVR per service ID is shown. A video stream file or video stream 402 is shown having various representative components of content that may be received at a tuner of a television receiver, and/or recorded to an ongoing master file 404 and/or a delay buffer file 406. Such components of the video stream 402 may include a soft trim segment 408, a permanent recording A 410, a non-permanent recording 412, a permanent recording B 414, and/or a current delay buffer 416. It is contemplated that the video stream 402 may represent a particular television channel or service ID received at a tuner of the television receiver 210 and/or the single file PVR service module 218 thereof. Further, it is contemplated that the master file 404, delay buffer file 406, a virtual file A 418, and/or a virtual file B 420 are created at least in part by the single file PVR service module 218 described herein. Further, it is noted that the systems and methods shown herein is not limited to the particular example being shown and may include any number of permanent recordings, non-permanent recordings, and virtual files that are arranged in any order. In one example, the master file 404 comprises at least two different permanent recordings.
As shown in FIG. 4, the virtual file A 418 and virtual file B 420 contain metadata related to the permanent recording A 410 and permanent recording B 414, respectively, in the master file 404. The metadata may include a pair of timestamps and/or a pair of byte counts that indicate a startpoint and an endpoint of a permanent recording, whereby the startpoint may comprise the beginning of a scheduled recording and/or an event recording. Merely by way of example, the virtual file A 418 may include a starting presentation timestamp or starting PTS of 13 and an ending PTS of 68, which mark a start and end of the permanent recording A 410. Similarly, the virtual file B 420 may include a starting PTS of 83 and an ending PTS of 106 marking the start and end of the permanent recording B 414. Such timestamps may be included in the received video stream 402 and parsed by the single file PVR service module 218. For example purposes, a timeline showing a video stream timespan 422 is illustrated and marked in increments of ten. In the present example, the video stream 402 may be two hours length from a start point PTS 0 where the television receiver first tunes to the service ID at the soft trim 408 to an endpoint PTS 120 of the currently delay buffer 416, which may correspond to a live broadcast point.
As shown in FIG. 4, a span or length of the master file 404, and similarly the mirroring delay buffer file 406 that is created concurrently, may be about two hours length and/or the same length of the video stream 402 while the master file is still open, being written to, and/or while the service ID is still being accessed by one or more television receivers. It is contemplated that after the master file 404 is closed and/or the service ID is no longer being accessed, e.g. no users are watching and/or recording, the master file 404 may be processed, by the single file PVR service module 218, with a clean-up routine. The clean-up routine may include removing any areas of the master file 404 that are not marked as permanent recordings. For example, the clean-up routine may include “hole-punching,” as described previously, the master file 404 to remove the non-permanent recording 412 and/or the current delay buffer 416.
It is noted that the soft trim segment 408 comprising a beginning of the video stream 402 may be removed automatically while the master file 404 is still open and being written. It is contemplated that the finalized master file 404 includes the permanent recording A 410 and permanent recording B 414, along with any other permanent recordings, and that the soft trim 408, non-permanent recording 412, and current delay buffer 416 are omitted therefrom. Further, it is contemplated that the permanent recordings are not shifted upon deletion of any portions or intermediary segments, such as upon deletion of the non-permanent recording 412. Other examples are possible.
It is noted that the master file 404, delay buffer file 406, virtual file A 418, and/or virtual file B 420 may comprise any type of file format, such as .tsp file, .wtt file, .art file, and/or .bm file. In a particular example, the master file 404 is written to a hard disk at the television receiver 210 as a .tsp file. Further, it is contemplated that a combination of different file formats may be utilized for the master file 404, delay buffer file 406, virtual file A 418, and/or virtual file B 420. In general, it is contemplated that the master file 404 and delay buffer file 406 are created at the same time and/or upon tuning to the service ID, i.e. at PTS 0.
FIG. 4 further illustrates a span or length of an example maximum delay buffer 424. Here, it is contemplated the maximum delay buffer 424 may be 60 minutes from live, e.g. PTS 120, however this length may be user configured and/or dependent on an available amount of storage space at the television receiver. For instance, all or a portion of the delay buffer may be maintained, by the single file PVR service module 218, for a limited or maximum amount of time, such as 24 hours, 8 hours, or any amount of time configured by the user for access at a later point. In another aspect, a limit or maximum to a length of the delay buffer 424 may be set according to a number of events, such as 10 events or any number of events determined by the user. Upon reaching the number of events, the delay buffer 424 may be overwritten, deleted, and/or a new delay buffer 424 may be created. In another example, the delay buffer 424 may be maintained and stored by the single file PVR service module 218 instead of stopped and deleted upon detection of the last user leaving the service ID.
Further, it is noted that the hole-punching of the master file 404 to remove non-permanent recording 412 may also be performed by the single file PVR service module 218 while the master file 404 is still open. In other words, the master file 404 does not need to be closed in order for the clean-up routine to initiate and/or for hole-punching to initiate. For example, the 60 minute rewind window or the maximum delay buffer 424 comprises a sliding window, whereby the single file PVR service module 218 may clean up, e.g. hole-punch, any portions of non-permanent recordings older than, or otherwise outside of, that window, even while the master file 404 is still open and being written to. It is noted that another form of hole-punch includes the soft trim for deleting the soft trim segment 408 at the beginning of the master file 404, which may also occur while the master file 404 is open and not yet closed.
As further illustrated in FIG. 4, various scenarios of user access of the service ID are shown for example purposes. A first user U1, which may represent the television receiver 210 and/or a primary television receiver, may tune into or otherwise access the service ID or video stream 402 during a non-permanent recording 412 segment of the video stream 420. The first user U1 is shown viewing a portion of media content included in the maximum delay buffer 424, and may be able to rewind and/or fast forward within the maximum delay buffer 424, which may be a 60 minute window from live. A second user U2, which may represent a secondary television receiver operatively connected to the primary television receiver, may be live, e.g. accessing the video stream 402 at PTS 120, and may be able to rewind back within the maximum delay buffer 424, e.g. within the 60 minute window from live. In the present example, it is contemplated that users U1 and U2, which are not in a playback mode of the permanent recordings, are restricted to the maximum delay buffer 424, which may serve as a hard limit for rewind.
A third user U3, which may represent another secondary television receiver operatively connected to the primary television receiver, may be in playback mode watching the permanent recording A 410. Once the endpoint PTS 68 of the permanent recording A 410 is reached, and/or upon approaching the endpoint, the single file PVR service module 218 may output a user interface, such as a pop-up or other notification indicating that the playback is over. In some cases, as shown in example FIG. 4, the endpoint PTS 68 of the permanent recording A 410 falls within the maximum delay buffer 424, such that upon reaching the endpoint PTS 68, the single file PVR service module 218 may transition to that point in the maximum delay buffer 424, may be taken live to PTS 120, and/or may rewind to a start, e.g. PTS 0, of the delay buffer file 406 upon user selection. In this way, users in playback mode may not be limited to the maximum delay buffer 424. It is noted that the delay buffer file 406 is available as long as the master file 404 is not yet closed and/or other users are watching or recording the service ID or video stream 402. Other examples are possible. Merely by way of example, at the end of playback, a prompt may be output by the single file PVR service module 218 to a display screen. The prompt may list additional permanent recordings on the master file 404, or permanent recordings of other master files that may be available.
Turning now to FIG. 5, an example schematic diagram of various features of a single file PVR per service ID for back-to-back timers is shown. A video stream 502 may include two back-to-back programs scheduled for recording, whereby no intermediate or non-permanent recordings may be included. As such, the video stream 502 may be recorded as a permanent recording A 504 and a permanent recording B 506 to define a master file 508. The master file 508, at least in regard to the portions shown in FIG. 5, may not require a clean-up that involves hole-punching, since there are no intermediary and/or non-permanent segments.
Further shown in FIG. 5, the permanent recording A 504 is shown having a startpoint 510 and an endpoint 512, thereby defining a file length A. The permanent recording B 506 is shown having a startpoint 514 and an endpoint 516, thereby defining a file length B. As such, an overlap region 518 between the startpoint 514 and the endpoint 512 includes an overlapping, begin-early portion of the permanent recording B 506 and an overlapping, end-early portion of the permanent recording A 504. In this way, the single file PVR service module 218 may maintain a begin-early and end-late portion of an overlapping timer. In practice, this may enhance user experience by eliminating a need to manually locate previously recorded shows that may contain beginning and/or ending portions of the recorded television programs desired for playback. Further, this approach may avoid and/or reduce duplicate data that would otherwise be written, such as the data falling within the overlap region 518. It is contemplated that any plurality of back-to-back timers may be included. Further, it is contemplated that a delay buffer is created and maintained to allow any users tuning to the service ID or video stream 502 to have rewind capability, e.g. rewind within a 60 minute window from a live point. Other examples are possible.
In a further aspect, the television receiver may receive user indication to delete one of the first or second permanent recordings. In that case, the single file PVR service module 218 may hole-punch portions of the indicated recording out of the master file 508 that do not overlap with the remaining recording. For example, the single file PVR service module 218 may receive user initiation or indication to delete a movie, which may be represented by the permanent recording A 504. In response, the single file PVR service module 218 may delete the permanent recording A 504 except for portions of the permanent recording A 504 that overlap with the permanent recording B 506, such as the begin-early and end-late portions defined in the overlap region 518. In this way, events may be deleted but parts of the event that comprise the end of the permanent recording A 504 but the beginning of the permanent recording B 506 may be kept, since the permanent recording B 506 is maintained on the master file.
In yet another example feature, one or more of the permanent recordings may be moved to an external hard drive that is communicatively coupled with the television receiver 210. The external hard drive may provide additional storage space, for example, when the local or internal hard drive at the television receiver 210 is full. For example, the television receiver 210 may receive user indication to move specific content off of the internal drive of the television receiver 210 and put the content into the external drive, which may further archive and organize permanent recording(s) stored therein. The external drive may be operatively connected with a plurality of television receivers, such as both primary and secondary television receivers. Upon user initiation, the single file PVR service module 218 may move .tsp data, e.g. a user-selected permanent recording, out of the master file 508 to the external drive. The portions of the .tsp data that correspond to the selected permanent recording and do not overlap with other permanent recordings or events may be hole-punched from the master file 508 of the television receiver 210, since they are moved to the external drive. In another example, any portions of the .tsp data that correspond to the selected permanent recording and do overlap with other permanent recordings may be copied and moved to the external drive, and then hole-punched from the master file 508. The hole-punching of data within the master file 508 may be performed at any time the event is deleted, or otherwise moved, to the external hard drive.
Turning now to FIG. 6, an example block diagram for a computer system or device 600 upon which various features of the present disclosure may be provided is shown. An example of a computer system or device includes an enterprise server, blade server, desktop computer, laptop computer, tablet computer, personal data assistant, smartphone, gaming console, STB, television receiver, and/or any other type of machine configured for performing calculations. Any particular one of the previously-described computing devices may be wholly or at least partially configured to exhibit features similar to the computer system 600, such as any of the respective elements of at least FIG. 2 and FIG. 3. In this manner, any of one or more of the respective elements of at least FIG. 2 and FIG. 3 may be configured to perform and/or include instructions that, when executed, perform the methods and features of FIG. 1, FIG. 4, and/or FIG. 5. Still further, any of one or more of the respective elements of at least FIG. 2 may be configured to perform and/or include instructions that, when executed, instantiate and implement functionality of the PTR 210 and/or the server(s).
The computer device 600 is shown comprising hardware elements that may be electrically coupled via a bus 602 (or may otherwise be in communication, as appropriate). The hardware elements may include a processing unit with one or more processors 604, including without limitation one or more general-purpose processors and/or one or more special-purpose processors (such as digital signal processing chips, graphics acceleration processors, and/or the like); one or more input devices 606, which may include without limitation a remote control, a mouse, a keyboard, and/or the like; and one or more output devices 608, which may include without limitation a presentation device (e.g., television), a printer, and/or the like.
The computer system 600 may further include (and/or be in communication with) one or more non-transitory storage devices 610, which may comprise, without limitation, local and/or network accessible storage, and/or may include, without limitation, a disk drive, a drive array, an optical storage device, a solid-state storage device, such as a random access memory, and/or a read-only memory, which may be programmable, flash-updateable, and/or the like. Such storage devices may be configured to implement any appropriate data stores, including without limitation, various file systems, database structures, and/or the like.
The computer device 600 might also include a communications subsystem 612, which may include without limitation a modem, a network card (wireless and/or wired), an infrared communication device, a wireless communication device and/or a chipset such as a BluetoothTM device, 802.11 device, WiFi device, WiMax device, cellular communication facilities such as GSM (Global System for Mobile Communications), W-CDMA (Wideband Code Division Multiple Access), LTE (Long Term Evolution), etc., and/or the like. The communications subsystem 612 may permit data to be exchanged with a network (such as the network described below, to name one example), other computer systems, and/or any other devices described herein. In many embodiments, the computer system 600 will further comprise a working memory 614, which may include a random access memory and/or a read-only memory device, as described above.
The computer device 600 also may comprise software elements, shown as being currently located within the working memory 614, including an operating system 616, device drivers, executable libraries, and/or other code, such as one or more application programs 618, which may comprise computer programs provided by various embodiments, and/or may be designed to implement methods, and/or configure systems, provided by other embodiments, as described herein. By way of example, one or more procedures described with respect to the method(s) discussed above, and/or system components might be implemented as code and/or instructions executable by a computer (and/or a processor within a computer); in an aspect, then, such code and/or instructions may be used to configure and/or adapt a general purpose computer (or other device) to perform one or more operations in accordance with the described methods.
A set of these instructions and/or code might be stored on a non-transitory computer-readable storage medium, such as the storage device(s) 610 described above. In some cases, the storage medium might be incorporated within a computer system, such as computer system 600. In other embodiments, the storage medium might be separate from a computer system (e.g., a removable medium, such as flash memory), and/or provided in an installation package, such that the storage medium may be used to program, configure, and/or adapt a general purpose computer with the instructions/code stored thereon. These instructions might take the form of executable code, which is executable by the computer device 600 and/or might take the form of source and/or installable code, which, upon compilation and/or installation on the computer system 600 (e.g., using any of a variety of generally available compilers, installation programs, compression/decompression utilities, etc.), then takes the form of executable code.
It will be apparent that substantial variations may be made in accordance with specific requirements. For example, customized hardware might also be used, and/or particular elements might be implemented in hardware, software (including portable software, such as applets, etc.), or both. Further, connection to other computing devices such as network input/output devices may be employed.
As mentioned above, in one aspect, some embodiments may employ a computer system (such as the computer device 600) to perform methods in accordance with various embodiments of the disclosure. According to a set of embodiments, some or all of the procedures of such methods are performed by the computer system 600 in response to processor 604 executing one or more sequences of one or more instructions (which might be incorporated into the operating system 616 and/or other code, such as an application program 618) contained in the working memory 614. Such instructions may be read into the working memory 614 from another computer-readable medium, such as one or more of the storage device(s) 610. Merely by way of example, execution of the sequences of instructions contained in the working memory 614 may cause the processor(s) 604 to perform one or more procedures of the methods described herein.
The terms “machine-readable medium” and “computer-readable medium,” as used herein, may refer to any non-transitory medium that participates in providing data that causes a machine to operate in a specific fashion. In an embodiment implemented using the computer device 600, various computer-readable media might be involved in providing instructions/code to processor(s) 604 for execution and/or might be used to store and/or carry such instructions/code. In many implementations, a computer-readable medium is a physical and/or tangible storage medium. Such a medium may take the form of a non-volatile media or volatile media. Non-volatile media may include, for example, optical and/or magnetic disks, such as the storage device(s) 610. Volatile media may include, without limitation, dynamic memory, such as the working memory 614.
Example forms of physical and/or tangible computer-readable media may include a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a compact disc, any other optical medium, ROM, RAM, and etc., any other memory chip or cartridge, or any other medium from which a computer may read instructions and/or code. Various forms of computer-readable media may be involved in carrying one or more sequences of one or more instructions to the processor(s) 604 for execution. By way of example, the instructions may initially be carried on a magnetic disk and/or optical disc of a remote computer. A remote computer might load the instructions into its dynamic memory and send the instructions as signals over a transmission medium to be received and/or executed by the computer system 600.
The communications subsystem 612 (and/or components thereof) generally will receive signals, and the bus 602 then might carry the signals (and/or the data, instructions, etc. carried by the signals) to the working memory 614, from which the processor(s) 604 retrieves and executes the instructions. The instructions received by the working memory 614 may optionally be stored on a non-transitory storage device 610 either before or after execution by the processor(s) 604.
It should further be understood that the components of computer device 600 can be distributed across a network. For example, some processing may be performed in one location using a first processor while other processing may be performed by another processor remote from the first processor. Other components of computer system 600 may be similarly distributed. As such, computer device 600 may be interpreted as a distributed computing system that performs processing in multiple locations. In some instances, computer system 600 may be interpreted as a single computing device, such as a distinct laptop, desktop computer, or the like, depending on the context.
The methods, systems, and devices discussed above are examples. Various configurations may omit, substitute, or add various method steps or procedures, or system components as appropriate. For instance, in alternative configurations, the methods may be performed in an order different from that described, and/or various stages may be added, omitted, and/or combined. Also, features described with respect to certain configurations may be combined in various other configurations. Different aspects and elements of the configurations may be combined in a similar manner. Also, technology evolves and, thus, many of the elements are examples and do not limit the scope of the disclosure or claims.
Specific details are given in the description to provide a thorough understanding of example configurations (including implementations). However, configurations may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary detail in order to avoid obscuring the configurations. This description provides example configurations only, and does not limit the scope, applicability, or configurations of the claims. Rather, the preceding description of the configurations will provide those of skill with an enabling description for implementing described techniques. Various changes may be made in the function and arrangement of elements without departing from the spirit or scope of the disclosure.
Also, configurations may be described as a process which is depicted as a flow diagram or block diagram. Although each may describe the operations as a sequential process, many of the operations may be performed in parallel or concurrently. In addition, the order of the operations may be rearranged. A process may have additional steps not included in the figure. Furthermore, examples of the methods may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments to perform the necessary tasks may be stored in a non-transitory computer-readable medium such as a storage medium. Processors may perform the described tasks.
Furthermore, the example embodiments described herein may be implemented as logical operations in a computing device in a networked computing system environment. The logical operations may be implemented as: (i) a sequence of computer implemented instructions, steps, or program modules running on a computing device; and (ii) interconnected logic or hardware modules running within a computing device.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

## Claims

1. A method for recording multiple broadcast television programs to a single file, comprising:
receiving, by a first television receiver, user selection for recording a first media content and a second media content;
determining, by the first television receiver, the first media content and the second media content are provided on a single television service;
tuning, by the first television receiver, to the television service to receive the first media content via a tuner of the television receiver;
recording, by the first television receiver, the first media content as a first permanent recording to a master file;
receiving, by the first television receiver, the second media content via the tuner of the television receiver;
recording, by the first television receiver, the second media content as a second permanent recording to the master file;
recording, by the first television receiver, at least one non-permanent segment of media content received at the tuner after recording the first media content and before recording the second media content, wherein the non-permanent segment is recorded to the master file between an end of the first permanent recording and a beginning of the second permanent recording;
detecting, by the first television receiver, that the single television service is no longer being accessed by the first television receiver or by a second television receiver in communication with the first television receiver, wherein detecting that the single television service is no longer being accessed includes detecting that no tuners on the first or second television receiver are accessing the single television service;
removing, by the first television receiver, the at least one recorded non-permanent segment from the master file in response to detecting that the single television service is no longer being accessed; and
transmitting, by the first television receiver, the master file to the second television receiver.

2. The method for recording multiple broadcast television programs to a single file of claim 1,
wherein the first media content and the second media content are received consecutively at the same tuner of the first television receiver.

3. The method for recording multiple broadcast television programs to a single file of claim 1, comprising:
recording, by the first television receiver, additional media contents received at the single television service as additional permanent recordings.

4. The method for recording multiple broadcast television programs to a single file of claim 1,
wherein the single television service comprises a single television channel.

5. The method for recording multiple broadcast television programs to a single file of claim 1,
wherein the user selection for recording at least one of the first and second media contents comprises at least one of a scheduled recording and an event recording, wherein the event recording comprises receiving a user input to record media content while the media content is being output, by the first television receiver, to a display device.

6. The method for recording multiple broadcast television programs to a single file of claim 5, comprising:
detecting, by the first television receiver, manual initiation of a record function via a remote control for the user selection of the event recording.

7. The method for recording multiple broadcast television programs to a single file of claim 1, comprising:
recording, by the first television receiver, a soft trim segment of media content immediately preceding the first permanent recording, wherein the soft trim segment is received at the tuner prior to a timer starting for the first permanent recording; and
removing, by the first television receiver, the recorded soft trim segment from the master file.

8. The method for recording multiple broadcast television programs to a single file of claim 1, comprising:
creating, by the first television receiver, a first virtual file corresponding to the first permanent recording and a second virtual file corresponding to the second permanent recording, wherein each of the first and second virtual files comprise metadata indicating a location in the master file for the first or second permanent recordings, respectively.

9. The method for recording multiple broadcast television programs to a single file of claim 8,
wherein the metadata of each of the first and second virtual files include presentation timestamps corresponding to a start time and an end time of the first and second permanent recordings, respectively.

10. The method for recording multiple broadcast television programs to a single file of claim 8,
wherein the first virtual file and the second virtual file indicate portions of the master file that are not deleted upon closing, by the first television receiver, the master file.

11. The method for recording multiple broadcast television programs to a single file of claim 1, comprising:
creating, by the first television receiver, a delay buffer file mirroring the master file; and
deleting, by the first television receiver, the delay buffer file upon detecting, by the first television receiver, that the single television service is no longer being accessed for at least one of viewing and recording.

12. The method for recording multiple broadcast television programs to a single file of claim 11, comprising:
recording, by the first television receiver, the delay buffer file upon tuning to the television service to receive the first media content.

13. The method for recording multiple broadcast television programs to a single file of claim 11, comprising:
deleting, by the first television receiver, the delay buffer upon detecting that the master file is closed.

14. The method for recording multiple broadcast television programs to a single file of claim 11,
wherein detecting the master file is closed comprises receiving, by the first television receiver, a user selection to power down the first television receiver.

15. The method for recording multiple broadcast television programs to a single file of claim 1,
wherein the master file comprises a .tsp file that is written to a local hard drive at the first television receiver.

16. A computer-readable medium having stored thereon a series of instructions which, when executed by a processor, cause the processor to record multiple television programs to a single file by:
receiving, by a first television receiver, user selection for recording a first media content and a second media content;
determining, by the first television receiver, the first media content and the second media content are provided on a single television service;
tuning, by the first television receiver, to the television service to receive the first media content via a tuner of the television receiver;
recording, by the first television receiver, the first media content as a first permanent recording to a master file;
receiving, by the first television receiver, the second media content via the tuner of the television receiver;
recording, by the first television receiver, the second media content as a second permanent recording to the master file;
recording, by the first television receiver, at least one non-permanent segment of media content received at the tuner after recording the first media content and before recording the second media content, wherein the non-permanent segment is recorded to the master file between an end of the first permanent recording and a beginning of the second permanent recording;
detecting, by the first television receiver, that the single television service is no longer being accessed by the first television receiver or by a second television receiver in communication with the first television receiver, wherein detecting that the single television service is no longer being accessed includes detecting that no tuners on the first or second television receiver are accessing the single television service;
removing, by the first television receiver, the at least one recorded non-permanent segment from the master file in response to detecting that the single television service is no longer being accessed; and
transmitting, by the first television receiver, the master file to the second television receiver.

17. A system for recording multiple television programs to a single file, comprising:
one or more processors; and
a memory communicatively coupled with and readable by the one or more processors and having stored therein processor-readable instructions that, when executed by the one or more processors, cause the one or more processors to:
receive, by a first television receiver, user selection for recording a first media content and a second media content;
determine, by the first television receiver, the first media content and the second media content are provided on a single television service;
tune, by the first television receiver, to the television service to receive the first media content via a tuner of the television receiver;
record, by the first television receiver, the first media content as a first permanent recording to a master file;
receive, by the first television receiver, the second media content via the tuner of the television receiver;
record, by the first television receiver, the second media content as a second permanent recording to the master file;
record, by the first television receiver, at least one non-permanent segment of media content received at the tuner after recording the first media content and before recording the second media content, wherein the non-permanent segment is recorded to the master file between an end of the first permanent recording and a beginning of the second permanent recording;

detect, by the first television receiver, that the single television service is no longer being accessed by the first television receiver or by a second television receiver in communication with the first television receiver, wherein detecting that the single television service is no longer being accessed includes detecting that no tuners on the first or second television receiver are accessing the single television service;
remove, by the first television receiver, the at least one recorded non-permanent segment from the master file in response to detecting that the single television service is no longer being accessed; and
transmit, by the first television receiver, the master file to the second television receiver.

18. The method for recording multiple broadcast television programs to a single file of claim 1, wherein detecting that the single television service is no longer being accessed by the first television receiver or by a second television receiver includes using a first access status of the first television receiver and a second access status of the second television receiver, wherein an access status of a television receiver indicates a status of the television receiver.

19. The method for recording multiple broadcast television programs to a single file of claim 1, further comprising:
determining, by the first television receiver, that all non-permanent segments from the media content have been deleted; and
transmitting, by the first television receiver, the master file to the second television receiver after determining that all non-permanent segments from the media content have been deleted.

20. The method for recording multiple broadcast television programs to a single file of claim 1, wherein transmitting the master file to the second television receiver facilitates viewing of the first and second media content using the master file.