Systems and methods for automatically converting media content stream data accumulated during a pause of playback from a buffer to a permanent recording

Exemplary systems and methods for automatically converting media content stream data from a buffer to a permanent recording are disclosed. An exemplary method includes a media content access subsystem receiving data representative of a media content stream, temporarily storing the data representative of the media content stream within a buffer for playback to a user, detecting an input command provided by the user to pause the playback of the media content stream, pausing the playback of the media content stream, accumulating data representative of a portion of the media content stream not yet played back within the buffer, detecting an alert condition indicating that the data representative of the portion of the media content stream not yet played back is about to be lost from the buffer, and converting the data representative of the portion of the media content stream not yet played back to a permanent recording.

BACKGROUND INFORMATION

Set-top box devices and other media content access devices are often configured to provide users with access to a large number and variety of media content choices. For example, a user may choose to experience a variety of broadcast television programs, pay-per-view services, video-on-demand programming, Internet services, and audio programming via a set-top box device.

Certain media content access devices include a digital video recording (“DVR”) application. In general, media content access devices with DVR applications temporarily buffer an incoming media content stream for playback. For example, a set-top box device may temporarily buffer an incoming television program. The temporary buffering may support several functions, including a capability to pause and subsequently resume playback of the television program in a time-shifted manner. However, a buffer used for the temporary buffering of an incoming television program typically has a limited buffer capacity in which to temporarily store incoming television program data. As a result, if a user pauses the playback of an incoming television program for an extended period of time, the buffer may reach its capacity and data stored within the buffer may be lost before the user is able to resume playback and experience the remainder of the television program.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Exemplary systems and methods for automatically converting media content stream data from a buffer to a permanent recording are described herein. As described in more detail below, one or more of the exemplary systems and/or methods disclosed herein may enable a media content access subsystem (e.g., a set-top box device) to automatically convert media content stream data stored within a buffer to a permanent recording. In some examples, the media content stream data may be automatically converted to a permanent recording after a user has paused a playback of a media content stream and in response a detection of an alert condition indicating that a portion of the media content stream data not yet played back is about to be lost from the buffer (e.g., is about to be overwritten). By converting buffered data to a permanent recording, the portion of the media content stream data not yet played back may be preserved for the user to experience at her convenience at a later time.

As used herein, “media content” may refer generally to any content accessible via an access subsystem. The term “media content stream” may refer to a stream of data representative of media content configured to be received by a media content access subsystem from a media content provider. In some examples, a media content stream may include data representative of one or more media content instances. The term “media content instance” will be used herein to refer to any television program, on-demand media program (e.g., video-on-demand program), pay-per-view event, broadcast media program (e.g., broadcast television program), multicast media program, narrowcast media program, advertisement, IPTV media content, video, movie, song, video game content, or combination of these or other forms of media content that may be viewed or otherwise experienced by a user.

FIG. 1illustrates an exemplary media content delivery system100(or simply “system100”). System100may include a media content delivery subsystem102(or simply “delivery subsystem102”) and a media content access subsystem104(or simply “access subsystem104”) in communication with one another via a network106. Access subsystem104may be configured to communicate with and receive a media content stream from delivery subsystem102.

Network106may include one or more networks or types of networks (and communication links thereto) capable of carrying communications, media content, and/or data signals between delivery subsystem102and access subsystem104. For example, network106may include, but is not limited to, one or more wireless networks (e.g., satellite media broadcasting networks or terrestrial broadcasting networks), mobile telephone networks (e.g., cellular telephone networks), closed media networks, open media networks, subscriber television networks (e.g., broadcast, multicast, and/or narrowcast television networks), closed communication networks, open communication networks, satellite networks, cable networks, hybrid fiber coax networks, optical fiber networks, broadband networks, narrowband networks, the Internet, wide area networks, local area networks, public networks, private networks, packet-switched networks, and any other networks capable of carrying data and/or communications signals between delivery subsystem102and access subsystem104. Communications between delivery subsystem102and access subsystem104may be transported using any one of above-listed networks, or any combination or sub-combination of the above-listed networks.

While an exemplary system100is shown inFIG. 1, the exemplary components illustrated inFIG. 1are not intended to be limiting. Other hardware environments and implementations may be used in other implementations. Exemplary components of system100will now be described in additional detail.

FIG. 2illustrates exemplary components of delivery subsystem102. As shown inFIG. 2, delivery subsystem102may include a media content facility202, a communication facility204, and a storage facility206, which may be in communication with one another using any suitable communication technologies. It will be recognized that although facilities202-206are shown to be separate facilities inFIG. 2, any of those facilities may be combined into a single facility as may serve a particular implementation.

Media content facility202may be configured to generate one or more media content streams comprising data representative of one or more media content instances. Media content facility202may be configured to generate the media content streams in any suitable manner as may serve a particular implementation.

Communication facility204may be configured to facilitate communication between delivery subsystem102and access subsystem104. In particular, communication facility204may be configured to transmit and/or receive communication signals, media content streams, metadata and/or any other data to/from access subsystem104. For example, communication facility204may transmit (e.g., broadcast, multicast, and/or narrowcast) data representative of one or more media content instances to access subsystem104. Such data may be transmitted in one or more media content streams or in any other suitable manner as may serve a particular implementation. Communication facility204may be configured to interface with any suitable communication media, protocols, and formats, including any of those mentioned above.

Storage facility206may be configured to maintain media content data208representative of one or more media content streams and/or media content instances. It will be recognized that storage facility206may maintain additional or alternative data as may serve a particular implementation.

FIG. 3illustrates exemplary components of access subsystem104. As shown inFIG. 3, access subsystem104may include a communication facility302, a buffering facility304, a playback facility306, an alert condition facility308, a data conversion facility310, and a storage facility312, which may be in communication with one another using any suitable communication technologies. It will be recognized that although facilities302-312are shown to be separate facilities inFIG. 3, any of those facilities may be combined into a single facility as may serve a particular implementation.

Communication facility302may be configured to facilitate communication between access subsystem104and delivery subsystem102. In particular, communication facility302may be configured to transmit and/or receive communication signals, media content streams, media content instances, metadata and/or any other data to/from delivery subsystem102. For example, communication facility302may receive data representative of a media content stream comprising one or more media content instances from delivery subsystem102. Communication facility302may be configured to interface with any suitable communication media, protocols, and formats, including any of those mentioned above.

Buffering facility304may be configured to facilitate temporary storage of media content stream data within a buffer. For example, buffering facility304may be configured to temporarily store data representative of a media content stream received from delivery subsystem102in a buffer for playback to a user. The media content stream may be received in any suitable manner (e.g., from a broadcast, multicast, and/or narrowcast media content stream) and may include data representative of one or more media content instances (e.g., one or more television programs).

In some examples, buffering facility304may be configured to accumulate data representative of a portion of the media content stream not yet played back within the buffer. For example, if playback of the media content stream is paused (e.g., in response to an input command provided by a user), buffering facility304may be configured to accumulate the portion of the media content stream not yet played back in the buffer while the playback of the media content stream is paused, as will be explained in more detail below. It will be recognized that the portion of the media content stream that has been played back may additionally be stored within the buffer.

Playback facility306may be configured to control a presentation of the received media content stream to a user of access subsystem104. The playback of the media content stream may be performed linearly (e.g., “normal” playback) and/or non-linearly (e.g., using a trick play mode). For example, playback facility306may be configured to receive and execute one or more commands input by a user that are configured to play back a media content instance, pause a presentation of a media content instance, resume a presentation of a media content instance, skip to a different position within a media content instance, fast forward within a media content instance, and/or rewind within a media content instance. In some examples, playback facility306may be configured to detect an input command provided by a user to pause the playback of a media content stream and pause the playback of the media content stream in response to the input command.

Alert condition facility308may be configured to detect an alert condition indicating that data representative of a portion of a media content stream not yet played back is about to be lost. For example, alert condition facility308may be configured to detect that the data representative of the portion of the media content stream not yet played back has reached the end of the buffer and/or is about to be overwritten, as will be explained in more detail below.

Data conversion facility310may be configured to convert data representative of a portion of a media content stream not yet played back to a permanent recording. For example, in response to a detection of an alert condition indicating that the data representative of the portion of the media content stream not yet played back is about to be lost, data conversion facility310may convert the data to a permanent recording to preserve the data for a user to experience at her convenience in the future. The data may be converted in any suitable manner as many serve a particular implementation. In some examples, the data may be transferred from a buffer to persistent storage.

Storage facility312may be configured to maintain media content data314representative of one or more media content streams including one or more media content instances and alert condition data316representative of one or more alert conditions configured to indicate when data representative of a portion of a media content stream not yet played back is about to be lost from a buffer. It will be recognized that storage facility312may maintain additional or alternative data as may serve a particular implementation.

Access subsystem104and/or one or more components of access subsystem104may be implemented as may suit a particular application.FIG. 4illustrates an exemplary media content access device400(or simply “device400”) having access subsystem104implemented thereon. Device400may include one or more of the components of access subsystem104shown inFIG. 3and may be configured to perform one or more of the processes and/or operations described herein. Device400may include, but is not limited to, a set-top box device, a digital video recorder (“DVR”) device, a multi-room DVR device, a media content processing device, a communications device, a mobile device (e.g., a mobile phone device), a handheld device, a personal computer, a phone device, a personal-digital assistant device, a gaming device, a television device, and/or any device configured to perform one or more of the processes and/or operations described herein.

As shown inFIG. 4, device400may include a communication interface402configured to receive media content and/or data (e.g., metadata, program guide data, and/or any other data associated with media content) in any acceptable format from delivery subsystem102or from any other suitable external source. Communication interface402may include any device, logic, and/or other technologies suitable for receiving signals and/or data representative of media content and/or other types of media content or data. Communication interface402may be configured to interface with any suitable communication media, protocols, and formats, including any of those mentioned above.

Device400may include a receiver404configured to receive user input signals from a user input device406. User input device406may include, for example, a remote control device or any other suitable input device and may be configured to communicate with receiver404via a wireless link, electrical connection, or any other suitable communication link.

Device400may include a graphics engine408and an output driver410. Graphics engine408may be configured to generate graphics to be provided to output driver410, which may be configured to interface with or drive a display412. Output driver410may provide output signals to display412, the output signals including graphical media content (e.g., media content and/or program guide media content) generated by graphics engine408and to be presented by display412for experiencing by a user. For example, output driver410may provide data representative of a graphical user interface (“GUI”) including a program guide view, a media playback view, or a permanent recording listing view to display412for presentation to the user. Graphics engine408and output driver410may include any combination of hardware, software, and/or firmware as may serve a particular implementation.

Data store414may include one or more data storage media, devices, or configurations and may employ any type, form, and combination of storage media. For example, data store414may include, but is not limited to, a hard drive, network drive, flash drive, magnetic disc, optical disc, or other non-volatile storage unit. Media content and/or data associated with media content may be temporarily and/or permanently stored in data store414.

Data store414is shown to be included within device400inFIG. 4for illustrative purposes only. It will be understood that data store414may additionally or alternatively be located external to device400.

Data store414may include one or more live cache buffers416(or simply “buffers416”). Live cache buffer416may additionally or alternatively reside in memory418or in a storage device external to device400. In some examples, media content stream data may be temporarily stored in live cache buffer416to facilitate playback of media content, pausing of playback of media content, time-shifted playback of media content, recording of media content, and/or presentation of media content in one or more trick play modes.

Device400may include memory418. Memory418may include, but is not limited to, FLASH memory, random access memory (“RAM”), dynamic RAM (“DRAM”), other suitable computer-readable media, or any combination or sub-combination thereof. In some examples, one or more applications420configured to run on or otherwise be executed by device400may reside in memory418.

Device400may include one or more tuners422. Tuner422may be configured to selectively receive media content carried on a particular media content carrier channel such that the media content may be processed by device400. In some examples, media content received by tuner422may be temporarily buffered, or stored, in buffer416. If there are multiple tuners422, there may be a buffer416corresponding to each of the tuners422.

While tuner422may be used to receive certain media content-carrying signals transmitted by provider subsystem102, device400may be configured to receive other types of media content signals (including media content signals and/or program guide data signals) from provider subsystem102and/or one or more other sources without using a tuner. For example, provider subsystem102may transmit digital streams of data packets (e.g., Internet Protocol (“IP”) based data packets) that can be received without using a tuner. For such types of media content signals, communication interface402may receive and forward the signals directly to other components of device400(e.g., buffer416, processor424, and/or signal processing unit426) without the signals going through tuner422. For an IP-based signal, for example, signal processing unit426may function as an IP receiver.

Device400may include at least one processor, such as processor424, configured to control and/or perform one or more operations of device400. Device400may also include a signal processing unit426configured to process incoming media content. Signal processing unit426may be configured, for example, to demodulate and parse encoded digital media content. In some examples, device400may include one or more signal processing units426corresponding to each of the tuners422.

FIG. 5illustrates an exemplary method500of automatically converting media content stream data from a buffer to a permanent recording. WhileFIG. 5illustrates exemplary steps according to one embodiment, other embodiments may omit, add to, reorder, and/or modify any of the steps shown inFIG. 5. The steps shown inFIG. 5may be performed by any component or combination of components of access subsystem104.

In step502, data representative of a media content stream is received. The data representative of the media content stream may be received in any suitable manner as may serve a particular implementation, such as described herein. For example, communication facility302of access subsystem104may be configured to receive the data representative of the media content stream from delivery subsystem102. The media content stream may include data representative of one or more media content instances (e.g., one or more television programs).

In step504, the data representative of the media content stream is temporarily stored within a buffer for playback to a user. The data representative of the media content stream may be stored within any suitable buffer and in any suitable manner as may serve a particular implementation. For example, buffering facility304may be configured to temporarily store data representative of at least part of the media content stream (e.g., data representative of one or more media content instances included in the media content stream) within buffer416for subsequent playback to a user.

For example,FIG. 6represents an exemplary implementation600of buffer416. Implementation600illustrates buffer416as a circular buffer for illustrative purposes only and is not limiting. In further embodiments, buffer416may have any other format and/or structure suitable for a particular implementation.

As shown inFIG. 6, buffer416may temporarily store media content stream data602. Media content stream data602may include a first portion604and a second portion606. In some examples, first portion604may represent data that has already been played back to a user and second portion606may represent data not yet played back to the user. Implementation600also shows a first position line608representing the beginning of media content stream data602within buffer416, a second position line or playback position line610representing a position of the playback of media content stream data602, and a third position line or buffer position line612representing the buffer position or front end of media content stream data602within buffer416. In some examples, playback position line610may also represent a boundary between first portion604and second portion606of media content stream data602.

Playback position line610and buffer position line612may advance in a clockwise direction around buffer416. For example, playback position line610may advance around buffer416as media content stream data602is played back to a user. Buffer position line612may advance in a clockwise direction around buffer416as media content stream data602is stored within the buffer. In some examples, playback position line610may advance around buffer416at a rate different than the rate of advancement of buffer position line612.

The temporary storage of media content stream data602within buffer416may allow a user to perform one or more trick plays in the playback of media content stream data602. For example, a user may rewind, pause, slow, and/or fast forward the playback of media content stream data602.

Returning toFIG. 5, in step506, an input command provided by the user to pause the playback of the media content stream is detected. The input command may be provided and/or detected in any suitable manner as may serve a particular implementation. For example, a user may provide the input command using user input device406, as described in more detail above, and playback facility306may be configured to detect the input command.

In step508, the playback of the media content stream is paused in response to the input command. The playback of the media content stream may be paused in any suitable manner. For example, playback facility306may be configured to pause the playback of the media content stream in response to the input command provided by the user.

In step510, data representative of a portion of the media content stream not yet played back is accumulated within the buffer. The data representative of the portion of the media content stream not yet played back may be accumulated with the buffer in any suitable manner. For example, buffering facility304may be configured to accumulate the data representative of the portion of the media content stream not yet played back within the buffer.

To illustrate,FIG. 7shows buffer416with playback position line610in a stationary position, representing the pausing of the playback of media content stream data602, and with buffering position line612continuing to advance around buffer416, representing the continued buffering of media content stream data602. As a result, second portion606(i.e., the portion of media content stream data602not yet played back) continues to accumulate within buffer416. In some examples, the accumulation of second portion606may continue until it overwrites some or all of first portion604. For example, second portion606may continue to accumulate until it fills buffer416.

Returning toFIG. 5, in step512, an alert condition is detected indicating that the data representative of the portion of the media content stream not yet played back is about to be lost from the buffer. The alert condition may be detected in any suitable manner and may indicate that the data representative of the portion of the media content stream not yet played back is about to be lost for any reason. For example, alert condition facility308may be configured to detect the alert condition, which may be configured to indicate that the data representative of the portion of the media content stream not yet played back is about to be overwritten within the buffer.

To illustrate,FIG. 8shows buffer416with buffering position line612having reached the end of the available space within buffer416and with second portion606having filled buffer416. As shown, buffering position line612has overtaken playback position line610. As a result, at least a portion of second portion606is about to be overwritten by the continued advancement of buffering position line612(e.g., the continued buffering of media content stream data602). In some examples, alert condition facility308may be configured to detect that at least a portion of second portion606is about to be overwritten.

The alert condition may be defined as may suit a particular implementation. In additional or alternative examples, for instance, the alert condition may be defined for detection at any suitable time after a playback of the media content stream is paused, at any suitable capacity of and/or threshold within the buffer (e.g., a predefined percentage of buffer capacity), or upon any other suitable event that occurs within or outside of the buffer. In some embodiments, the alert condition may be user configurable. For example, a user may set the alert condition to be detected at any suitable time after a playback of the media content stream is paused, at any suitable capacity of and/or threshold within the buffer, or upon any other suitable event that occurs within or outside of the buffer.

Returning toFIG. 5, in step514, the data representative of the portion of the media content stream not yet played back is converted to a permanent recording. The data representative of the portion of the media content stream not yet played back may be converted to the permanent recording in any suitable manner as may serve a particular implementation. For example, data conversion facility310may be configured to convert second portion606of media content stream data602to a permanent recording to preserve the data for a user to experience at their convenience at a later time. In some examples, data conversion facility310may be configured to automatically convert the data to a permanent recording in response to a detection of the alert condition. Accordingly, a loss of buffered media content data that has not yet been played back may be avoided when playback is paused for a duration that extends beyond the capacity of buffer416.

The portion of the media content stream converted to a permanent recording may have any size. For example, the portion of the media content stream not yet played back may be as small as a single frame or as large the capacity of the buffer. In some examples, the conversion of the data representative of the portion of the media content stream not yet played back to a permanent recording may occur incrementally (e.g., frame by frame) rather than all at once.

In some examples, converting the data representative of the portion of the media content stream not yet played back to a permanent recording may include converting the data to a plurality of permanent recordings. For example, the data representative of the media content stream not yet played back may include at least portions of two separate media content instances (e.g., two consecutive television programs), and data conversion facility310may be configured to convert the data representative of the first media content instance to a first permanent recording and the data representative of the second media content instance to a second permanent recording. Both of the permanent recordings may then be made available to the user for playback.

To illustrate, a user of access subsystem104may pause the playback of a first media content instance (e.g., a first television program) and then leave access subsystem104unattended for an extended length of time (e.g., one or more hours), during which time data representative of the first media content instance may be accumulated and temporarily stored within a buffer. During the user's absence, the first media content instance may end and be followed by a second media content instance (e.g., a second television program), which may also be at least partially stored within the buffer.

Access subsystem104may be configured to detect that the buffer includes data representative of multiple media content instances (e.g., the two media content instances described above). The detection may be made in any suitable manner. In some examples, data conversion facility310may be configured to examine the data stored within the buffer and detect an ending of the first media content instance and/or a beginning of the second media content instance. For example, data conversion facility310may be configured to examine the data stored within the buffer and detect a change in the data (e.g., a change of a media program identifier, a title, etc.) representing a transition between the first media content instance and the second media content instance. Additionally or alternatively, data conversion facility310may be configured to compare the particular time of day that the media content stream data was received with a program schedule (e.g., a program schedule received from delivery subsystem102or a third-party) to determine whether data representative of more than one television program was received during the particular time.

In response to a detection that two media content instances are stored in the buffer and upon detection of the alert condition, data conversion facility310may be configured to convert the data representative of the first media content instance to a first permanent recording and data representative of the second media content instance to a second permanent recording in any suitable manner. For example, multiple recordings may be generated by data conversion facility310from the buffered data. Additionally or alternatively, data conversion facility310may be configured to split a single permanent recording representing all of the data from the buffer into multiple recordings, each representing one of the media content instances.

Accordingly, access subsystem104may be configured to detect the presence of multiple media content instances stored within the buffer and generate multiple corresponding permanent recordings to make available for playback to a user.

Access subsystem104may be configured to provide a notification to a user that the portion of the media content stream not yet played back has been converted to the permanent recording and that the permanent recording is available for playback. For example,FIG. 9illustrates an exemplary display900of a media content instance. Within display900, access subsystem104may provide a notification902to the user that the portion of the media content stream not yet played back was converted to a permanent recording that is now available for playback. For example, notification902may inform the user that “A program that you previously paused was automatically recorded and is now available for playback.” In some examples, notification902may further direct the user to “Press the menu button on your remote control to access a listing of available recordings.”

Notification902may be provided to the user at any suitable time after the creation of the permanent recording. For example, notification902may be displayed when access subsystem104first detects interaction with the user (e.g., detects one or more input commands provided by the user) after the permanent recording is created.

In some examples, notification902may prompt a user for an input to indicate whether to retain a permanent recording. For example, notification902may prompt the user for an input command (e.g., which may be provided via a user input device) to indicate whether to retain the recording. If multiple permanent recordings were created, notification902may prompt the user for an input command to indicate whether to retain one, some, all, or none of the multiple permanent recordings. Access subsystem104may be configured to retain or delete the recordings in response to the input command received from the user.

Notification902is provided for illustrative purposes only and is not limiting. In additional or alternative embodiments, notification902may be provided in any other suitable manner and may include any additional or alternative information as may serve a particular implementation.

In some examples, data representative of a portion of the media content stream that has been played back may also be converted to a permanent recording. In this manner, a user may play back an entire television program that was paused part way through a live transmission thereof. For example, alert condition facility308may be configured to detect an alert condition indicating that data representative of an entire television program or a beginning of an entire television program is about to be lost from a buffer. In response to the detection, data conversion facility310may be configured to convert the data representative of the entire television program from the buffer to a permanent recording. The permanent recording of the entire television program may then be made available for playback to a user.

In some examples, access subsystem104may be configured to provide a graphical user interface (“GUI”) including a listing of available permanent recordings. For example,FIG. 10represents an exemplary GUI1000including a listing1002of permanent recordings1004available for playback to the user. Listing1002may include any number of permanent recordings available to the user. The user may utilize a user input device (e.g., a remote control device) to select a recording from listing1002for playback or other operation. In some examples, listing1002may include at least one converted permanent recording1006(i.e., a permanent recording created by the conversion of data representative of a media content stream not yet played back from a buffer to the permanent recording). Converted permanent recording1006may be listed along with other permanent recordings1004(e.g., permanent recordings1004created at the direction of the user).

In some examples, the display of converted permanent recording1006within GUI1000may be distinguished from the display of other permanent recordings1004. For example, converted permanent recording1006may be distinguished with a graphical indicator1008that is distinct from other graphical indicators associated with the other permanent recordings1004. In additional or alternative examples, converted permanent recording1006may be distinguished from the other permanent recordings1004in any other suitable manner.

GUI1000is provided for exemplary purposes only and is not limiting. Access subsystem104may be configured to display additional information or exclude certain information as may serve a particular implementation. Additionally or alternatively, access subsystem104may be configured to provide a user with access to converted permanent recording1006in any other suitable manner.

In some examples, access subsystem104may be configured to detect that the data representative of the portion of the media content stream not yet played back is missing at least a part of a media content instance that has not been played back (e.g., the media content stream data may contain a portion of a television program but may be missing an ending of the television program). In response to a detection that the portion of the media content stream is missing data representative of at least a part of the portion of the media content instance not yet played back, access subsystem104may be configured to request, receive, and/or add the missing part of the media content instance to the permanent recording to preserve the missing part for a user to experience.

To illustrate, a user of access subsystem104may pause the playback of a particular media content instance (e.g. a movie) and then leave access subsystem104unattended for an extended period of time (e.g., several hours), during which time data representative of the media content instance may be accumulated and temporarily stored within a buffer associated with access subsystem104. However, the buffer may be incapable of storing the entire portion of the media content instance not yet played back due to the length of the portion of the media content instance not yet played back. As a result, once the alert condition is detected and the data within the buffer is converted to a permanent recording, at least a part of the media content instance (e.g., the ending of the movie) may be missing from the permanent recording.

Access subsystem104may be configured to detect that the converted recording is missing at least part of the media content instance in any suitable manner as may serve a particular implementation. For example, data conversion facility310may be configured to examine the media content stream data and determine that there has been no transition from the particular media content instance to another media content instance (e.g., there has been no change in a media program identifier or a title within the media content stream data). Additionally or alternatively, data conversion facility may be configured to examine a program schedule associated with the media content instance to determine when the media content instance is scheduled to end and compare the schedule with a clock reference to determine whether the media content instance will end after the data within the buffer is converted to a permanent recording.

In response to a detection that the permanent recording does not or will not include at least part of the portion of the media content instance not yet played back, access subsystem104may capture the remaining part of the media content instance and preserve it for playback to a user. For example, in response to the detection, access subsystem104may be configured to initiate a normal recording of the remaining part of the media content instance, starting at the end of the converted permanent recording. This normal recording could be added to the converted permanent recording as it is recorded or after it is recorded. In additional or alternative examples, access subsystem104may be configured to continue to accumulate and temporarily store the data representative of the media content instance in the buffer while concurrently converting the data stored within the buffer to the permanent recording in order to free up buffer space.

In some examples, the conversion of the data stored within the buffer to the permanent recording may occur on an iterative basis, section-by-section (e.g., frame-by-frame), thereby iteratively freeing up buffer space for the continued buffering of the media content instance. The iterative conversion of the media content instance may continue until an ending of the media content instance is detected in any suitable manner, such as described herein. The converted iterative sections of the media content instance may then be combined together to form one permanent recording representing the entire portion of the media content instance not yet played back (e.g., from the point playback was paused to the end of the media content instance). Access subsystem104may be configured to preserve the entire portion of the media content instance not yet played back for playback to the user in any other suitable manner.

In certain examples, access subsystem104may be configured to detect that data representative of the portion of the media content stream not yet played back includes the entire portion of a media content instance not yet played back and, in response to the detection, discontinue accumulating the data representative of the portion of the media content stream not yet played back in the buffer. For example, access subsystem104may be configured to detect a transition from a media content instance to an additional media content instance as the data representative of the media content stream is being stored within the buffer, thereby indicating that the entire portion of the media content instance not yet played back (e.g., from the time playback of the media content instance was paused to the end of the media content instance) is stored within the buffer and can be converted to a permanent recording.

Access subsystem104may be configured to detect the ending of the media content instance in any suitable manner, such as by detecting the ending of the media content instance based on a programming schedule and/or based on data (e.g., media program identifiers, titles, etc.) included in the media content stream. In response to the detection that the portion of the media content instance not yet played back is entirely stored within the buffer, access subsystem104may be configured to discontinue accumulating the data representative of the portion of the media content stream within the buffer and convert the data representative of the stored portion of the media content instance to a permanent recording for the user to playback at a later time. In certain examples, access subsystem104may be configured to detect data representing an ending of a media content instance within buffer416and discontinue accumulation of data representative of the portion of the media content stream not yet played back in buffer416based on an end-user-configured setting.

By discontinuing the accumulation of the data representative of the media content stream in response to the detection that the entire portion of the media content instance not yet played is stored in the buffer, access subsystem104may be configured to ensure that the media content instance being viewed by the user at the time the playback of the media content stream was paused is fully captured, but that no additional programming is included within the resulting permanent recording.

FIG. 11illustrates another exemplary method1100of automatically converting media content stream data from a buffer to a permanent recording. WhileFIG. 11illustrates exemplary steps according to one embodiment, other embodiments may omit, add to, reorder, and/or modify any of the steps shown inFIG. 11. The steps shown inFIG. 11may be performed by any component or combination of components of access subsystem104.

In step1102, data representative of a media content stream comprising a media content instance is received. The data representative of the media content stream may be received in any suitable manner, such as described herein.

In step1104, data representative of the media content instance is temporarily stored within a buffer for playback to a user. The data representative of the media content instance may be temporarily stored within the buffer in any suitable manner, such as described herein.

In step1106, an input command provided by the user to pause the playback of the media content instance is detected. The input command may be detected in any suitable manner, such as described herein.

In step1108, the playback of the media content instance is paused in response to the input command. The playback of the media content instance may be paused in any suitable manner, such as described herein.

In step1110, data representative of a portion of the media content instance not yet played back is accumulated within the buffer. The data representative of the portion of the media content instance not yet played back may be accumulated within the buffer in any suitable manner, such as described herein.

In step1112, it is detected that the data representative of the portion of the media content instance not yet played back and accumulated within the buffer comprises data representative of an ending of the media content instance. That the data representative of the portion of the media content instance not yet played back accumulated within the buffer comprises data representative of an ending of the media content instance may be detected in any suitable manner, such as described herein.

In step1114, the data representative of the portion of the media content instance not yet played back is converted to a permanent recording. The data representative of the portion of the media content instance not yet played back may be converted to a permanent recording in any suitable manner, such as described herein.

In certain embodiments, one or more of the components and/or processes described herein may be implemented and/or performed by one or more appropriately configured computing devices. To this end, one or more of the systems and/or components described above may include or be implemented by any computer hardware and/or computer-implemented instructions (e.g., software) embodied in a non-transitory computer-readable medium, or combinations of computer-implemented instructions and hardware, configured to perform one or more of the processes described herein. In particular, system components may be implemented on one physical computing device or may be implemented on more than one physical computing device. Accordingly, system components may include any number of computing devices, and may employ any of a number of computer operating systems.

FIG. 12illustrates an exemplary computing device1200that may be configured to perform one or more of the processes described herein. As shown inFIG. 12, computing device1200may include a communication interface1202, a processor1204, a storage device1206, and an input/output (“I/O”) module1208communicatively connected via a communication infrastructure1210. While an exemplary computing device1200is shown inFIG. 12, the components illustrated inFIG. 12are not intended to be limiting. Additional or alternative components may be used in other embodiments. Components of computing device1200shown inFIG. 12will now be described in additional detail.

Communication interface1202may be configured to communicate with one or more computing devices. Examples of communication interface1202include, without limitation, a wired network interface (such as a network interface card), a wireless network interface (such as a wireless network interface card), a modem, and any other suitable interface. In at least one embodiment, communication interface1202may provide a direct connection between system100and one or more of provisioning systems via a direct link to a network, such as the Internet. Communication interface1202may additionally or alternatively provide such a connection through, for example, a local area network (such as an Ethernet network), a personal area network, a telephone or cable network, a satellite data connection, a dedicated URL, or any other suitable connection. Communication interface1202may be configured to interface with any suitable communication media, protocols, and formats, including any of those mentioned above.

Processor1204generally represents any type or form of processing unit capable of processing data or interpreting, executing, and/or directing execution of one or more of the instructions, processes, and/or operations described herein. Processor1204may direct execution of operations in accordance with one or more applications1212or other computer-executable instructions such as may be stored in storage device1206or another computer-readable medium.

Storage device1206may include one or more data storage media, devices, or configurations and may employ any type, form, and combination of data storage media and/or device. For example, storage device1206may include, but is not limited to, a hard drive, network drive, flash drive, magnetic disc, optical disc, random access memory (“RAM”), dynamic RAM (“DRAM”), other non-volatile and/or volatile data storage units, or a combination or sub-combination thereof. Electronic data, including data described herein, may be temporarily and/or permanently stored in storage device1206. For example, data representative of one or more executable applications1212(which may include, but are not limited to, one or more of the software applications described herein) configured to direct processor1204to perform any of the operations described herein may be stored within storage device1206. In some examples, data may be arranged in one or more databases residing within storage device1206.

I/O module1208may be configured to receive user input and provide user output and may include any hardware, firmware, software, or combination thereof supportive of input and output capabilities. For example, I/O module1208may include hardware and/or software for capturing user input, including, but not limited to, a keyboard or keypad, a touch screen component (e.g., touch screen display), a receiver (e.g., an RF or infrared receiver), and/or one or more input buttons.

In some examples, any of the facilities described herein may be implemented by or within one or more components of computing device1200. For example, one or more applications1212residing within storage device1206may be configured to direct processor1204to perform one or more processes or functions associated with media content facility202, communication facility204, communication facility302, buffering facility304, playback facility306, alert condition facility308, and/or data conversion facility310. Likewise, storage facility206and/or storage facility312may be implemented by or within storage device1206.