# Patent

## Title
Systems and methods for accessing media content

## Abstract

In one embodiment, a media content processing subsystem within a plurality of media content processing subsystems configured to receive transmissions of media content instances from a media content provider by way of a network sends a shared content request to the media content provider, the request being for a media content instance included in the transmissions of media content instances from the media content provider. The request is configured to cause the media content provider to identify at least one other media content processing subsystem within the plurality of media content processing subsystems that is able to provide the media content instance to the media content processing subsystem, and instruct the at least one other media content processing subsystem to transmit, to the media content processing subsystem, the media content instance received by the at least one other media content processing subsystem from the media content provider.

## Background
RELATED APPLICATIONS
This application is a continuation application of U.S. patent application Ser. No. 11/516,291, filed on Sep. 6, 2006, and entitled SYSTEMS AND METHODS FOR ACCESSING MEDIA CONTENT, which is hereby incorporated by reference in its entirety.


BACKGROUND INFORMATION
The advent of computers, interactive electronic communication, the Internet, and other advances in the digital realm of consumer electronics have resulted in a great variety of programming, recording, and viewing options for users who view media content such as television programs. In implementing such enhanced programming, the set-top box (STB) has become an important computing device for accessing media content services and the media content within those services. In addition to supporting traditional analog broadcast video functionality, STBs also support an increasing number of two-way digital services such as video-on-demand, internet protocol television (IPTV), and personal video recording.
An STB is typically connected to a cable or satellite, or generally, a subscriber television system, and includes hardware and software necessary to provide the functionality of the subscriber television system at a user site. While many STBs are stand-alone devices that are externally connected to a television, an STB and/or its functionality may be integrated into a television or personal computer, a mobile device such as a mobile phone or personal digital assistant (PDA), or even into an audio device such as a programmable radio, as is known.
An STB is usually configured to provide users with a large number and variety of media content choices. For example, a user may choose to record and/or experience (e.g., view) a variety of broadcast television programs, pay-per-view services, video-on-demand programming, Internet services, and audio programming via an STB.
Conventional STBs, however, are traditionally limited to receiving media content from a media content provider (e.g., from a headend unit broadcasting signals including media content). Typically, an STB tuner is used to tune the STB to a particular media (e.g., television) channel, stream, address, frequency or other carrier in order to receive and process the media content that is transmitted by the media content provider on that carrier. A standard STB tuner can receive and process only one media content instance at a time. Accordingly, conventional STBs are limited in the number of different media content instances (e.g., television programs) that can be concurrently received and processed. For instance, an STB with a single tuner is able to receive and process only one media content instance at a time, while an STB with dual tuners can receive and process up to two media content instances at a time.
Limits on the number of media content instances that can be concurrently received and processed by an STB can be frustrating to a user who wishes to view and/or record multiple media content instances that are broadcast by a media content provider at concurrent or overlapping times. For example, a user of an STB having dual tuners may wish but be unable to receive and record three different television shows that are broadcast during the same time period or overlapping time periods. This scenario is not uncommon given the large amounts of media content being broadcast, as well as a common practice among broadcasters of scheduling broadcasts of popular media (e.g., television shows) at concurrent or overlapping times in order to compete with one another. Because of the costs associated with STB tuners and their installation, the addition of more tuners to conventional STBs is generally undesirable and often impractical.



BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings illustrate various embodiments and are a part of the specification. The illustrated embodiments are merely examples and do not limit the scope of the disclosure. Throughout the drawings, identical reference numbers designate identical or similar elements.
FIG. 1 illustrates an example of a media content access system, according to an embodiment.
FIG. 2 is an illustration of an exemplary media content provider network, according to an embodiment.
FIG. 3 is a block diagram of an exemplary media content processing subsystem, according to an embodiment.
FIG. 4 illustrates an exemplary media content access system configured for sharing of media content between multiple media content processing subsystems communicatively coupled to a media content provider, according to an embodiment.
FIG. 5 illustrates exemplary content sharing functions that may be performed by various components of the system of FIG. 4, according to an embodiment.
FIG. 6 is a flowchart illustrating an exemplary method of accessing media content, according to an embodiment.
FIG. 7 is a flowchart illustrating an exemplary method of sharing media content between media content processing subsystems, according to an embodiment.



DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
I. Introduction
Exemplary systems and methods for accessing media content are described herein. As used herein, the term “media content instance” will be used to refer generally to any television program, on-demand program, pay-per-view program, broadcast media program, video-on demand program, commercial, advertisement, video, multimedia, movie, song, photograph, audio programming, network services (e.g., Internet), or any segment or combination of these or other forms of media content that may be presented to and experienced (e.g., viewed) by a user.
The exemplary systems and methods described herein generally enable a media content processing subsystem, such as a set-top box (STB), that is communicatively coupled to a media content provider to concurrently receive media content from the media content provider and from at least one other STB that is also communicatively coupled to the media content provider. For example, the STB may be configured to receive a first media content instance from the media content provider and to concurrently receive at least a portion of a second media content instance from at least one other STB that is also communicatively coupled to the media content provider. In certain embodiments, the STB uses a tuner to receive the first media content instance, but does not use a tuner to receive the second media content instance.
The capacity of the STB for receiving media content is generally increased by the STB being able to leverage the recording capabilities of other STBs communicatively coupled to the media content provider. For example, a user of an STB having a single tuner may wish to receive (e.g., record) multiple media content instances (e.g., television shows such as COPS and FRIENDS) that will be broadcast by the media content provider at concurrent or overlapping times. The STB may receive one of the media content instances (e.g., COPS) from the media content provider (using the tuner for example). Because the resources of the STB are being used to receive COPS, the STB may not be able to concurrently tune to another media content instance. However, the STB receive the second media content instance (e.g., FRIENDS) from another source such as one or more other STBs communicatively coupled to the media content provider and that happen to be recording (or have previously recorded) the second media content instance. In this manner, the collective recording capabilities of a group of STBs can be used to increase the receiving capacity of any STB in the group by enabling the STBs to share recorded content with one another.
Components and functions of exemplary embodiments of systems and methods for accessing media content will now be described in more detail.
II. Exemplary System View
FIG. 1 illustrates an example of a media content access system 100, according to one embodiment. Media content access system 100 may take many different forms and include multiple and/or alternate components and facilities.
As shown in FIG. 1, a media content processing subsystem 110-1 is configured to communicate with and receive a signal or data stream (e.g., a media content stream) containing a media content instance from a media content provider 111. The media content processing subsystem 110-1 and media content provider 111 may communicate using any known communication technologies, devices, media, and protocols supportive of remote data communications, including, but not limited to, cable networks, subscriber television networks, satellite networks, the Internet, intranets, local area networks, wireless networks (e.g., mobile telephone networks), optical fiber networks, data transmission media, communications devices, Transmission Control Protocol (“TCP”), Internet Protocol (“IP”), File Transfer Protocol (“FTP”), Telnet, Hypertext Transfer Protocol (“HTTP”), socket connections, Ethernet, and other suitable communications networks and technologies.
The media content processing subsystem 110-1 may use any suitable technologies to receive the media content instance from the media content provider 111, including using a tuner to receive the media content instance, as described below. The media content processing subsystem 110-1 may be configured to process the media content stream provided by the media content provider 111, including causing the media content instance, or one or more components (e.g., video and/or audio components) of the media content instance, to be presented for experiencing (e.g., viewing) by a user. The presentation of the media content instance may include, but is not limited to, displaying, playing back, or otherwise processing the media content instance, or one or more components of the media content instance, such that it may be experienced by the user. For example, the media content processing subsystem 110-1 may provide a signal to a user device 112 (e.g., a television, computer monitor, etc.) so that the user device 112 may present (e.g., display) the media content instance for experiencing by the user. Alternatively or additionally, the media content processing subsystem 110-1 may be configured to record the media content instance for subsequent presentation and/or for sharing with other media content processing subsystems in communication with the media content provider, as will be described further below in reference to FIGS. 4 and 5.
The media content processing subsystem 110-1 may be controlled by a user input device 113 (e.g., an infrared remote control device) and/or a number of additional access devices 114 (e.g., a personal computer, wireless device, cellular telephone, etc.).
In addition to receiving content from the media content provider 111, the media content processing subsystem 110-1 may be configured to receive media content (“shared media content”) from other media content processing subsystems communicatively coupled to the media content provider 111, as described below. Accordingly, media content can be concurrently received from the media content provider 111 and from one or more other media content processing subsystems communicatively coupled to the media content provider 111.
While an exemplary media content access system 100 is shown in FIG. 1, the exemplary components illustrated in FIG. 1 are not intended to be limiting. Indeed, additional or alternative components and/or implementations may be used, as is well known. Certain elements of the media content access system 100 will now be described in additional detail in relation to examples of the media content processing subsystem 110-1 receiving media content from the media content provider 111 and from one or more other media content processing subsystems.
A. Media Content Received from a Media Content Provider
Media content provider 111 may be configured to provide various types of media content to media content processing subsystem 110-1. The media content may be provided via a satellite, cable system, subscriber television network, the Internet, optical fiber network, wireless network, or any other suitable network or communication technologies, including any of the communication technologies mentioned above.
An exemplary media content provider 111 includes a media content provider server 121, as shown in FIG. 2. The media content provider server 121 may be configured to communicate with the media content processing subsystem 110-1 via one or more types of networks 120 (and communications links thereto). The network 120 shown in FIG. 2 may include the Internet, an intranet or other private packet-switched network, a cable television network (e.g., a hybrid fiber-coax network), a wireless broadcast network (e.g., a satellite media broadcasting network or terrestrial broadcasting network), a telephone network, a provider-specific network (e.g., a Verizon® FIOS® network and/or a TiVo® network), an optical fiber network, or any other suitable network. Typically, the network 120 provides the media content processing subsystem 110-1 with an external (e.g., external of a structure such as a residence in which the media content processing subsystem 110-1 is located) connection to the media content provider 111. In some alternative examples, the processing subsystem 110-1 may be connected directly to the media content provider server 121. While FIG. 2 shows a single media content provider server 121, in other embodiments, the media content provider 111 may include multiple media content servers and/or other devices potentially useful for communications between the media content provider 111 and the media content processing subsystem 110-1.
Media content processing subsystem 110-1 is configured to receive and process media content provided by the media content provider 111 over the network 120. FIG. 3 is a block diagram of an exemplary media content processing subsystem 110-1 (or simply “processing subsystem 110-1”) according to an embodiment. While an exemplary processing subsystem 110-1 is shown in FIG. 3, the exemplary components illustrated in FIG. 3 are not intended to be limiting. Indeed, additional or alternative components and/or implementations may be used.
The processing subsystem 110-1 may include any combination of hardware, software, and firmware configured to process an incoming media content stream. As used herein and in the appended claims, unless otherwise specifically denoted, the terms “media content processing subsystem” and “processing subsystem” will be used to refer expansively to all possible receivers that receive and decode digital and/or analog media content. Hence, an exemplary processing subsystem 110-1 may include, but is not limited to, a set-top box (STB), home communication terminal (HCT), digital home communication terminal (DHCT), stand-alone personal video recorder (PVR), digital video disc (DVD) player, video-enabled phone, and personal computer.
In certain embodiments, the processing subsystem 110-1 may include any computer hardware and/or instructions (e.g., software programs), or combinations of software and hardware, configured to perform the processes described herein. In particular, it should be understood that processing subsystem 110-1 may be implemented on one physical computing device or may be implemented on more than one physical computing device. Accordingly, processing subsystem 110-1 may include any one of a number of well known computing devices, and may employ any of a number of well known computer operating systems, including, but by no means limited to, known versions and/or varieties of the Microsoft Windows® operating system, the Unix operating system, Macintosh® operating system, and the Linux operating system.
Accordingly, the processes described herein may be implemented at least in part as instructions executable by one or more computing devices. In general, a processor (e.g., a microprocessor) receives instructions, e.g., from a memory, a computer-readable medium, etc., and executes those instructions, thereby performing one or more processes, including one or more of the processes described herein. Such instructions may be stored and transmitted using a variety of known computer-readable media.
A computer-readable medium (also referred to as a processor-readable medium) includes any medium that participates in providing data (e.g., instructions) that may be read by a computer (e.g., by a processor of a computer). Such a medium may take many forms, including, but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media may include, for example, optical or magnetic disks and other persistent memory. Volatile media may include, for example, dynamic random access memory (“DRAM”), which typically constitutes a main memory. Transmission media may include, for example, coaxial cables, copper wire and fiber optics, including the wires that comprise a system bus coupled to a processor of a computer. Transmission media may include or convey acoustic waves, light waves, and electromagnetic emissions, such as those generated during radio frequency (“RF”), infrared (“IR”), and other wireless data communications. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EEPROM, any other memory chip or cartridge, or any other medium from which a computer can read.
1. Communication Interfaces
As shown in FIG. 3, the processing subsystem 110-1 may include a communication interface 131 configured to receive media content from the media content provider 111. The communication interface 131 may also be configured to receive media content from one or more other media content processing subsystems 110-2 through 110-N, which may be communicatively coupled to media content processing subsystem 110-1 and media content provider 111, as described below in reference to FIG. 4.
The communication interface 131 may include any device, logic, and other technologies suitable for receiving signals and/or data representative of media content. In certain embodiments, the communication interface 131 may include a single port configured to receive media content from both the media content provider 111 and the other media content processing subsystems 110-2 through 110-N. For example, the communication interface 131 may include or be connected to a broadband connection, which can enable processing subsystem 110-1 to receive media content on a single port from both the media content provider 111 and other processing subsystems 110-2 through 110-N. In other embodiments, multiple ports may be used. The communication interface 131 can be configured to interface with any suitable communication media, protocols, and formats, including any of those mentioned above.
As is well known, the processing subsystem 110 may also include a receiver 132 configured to receive input commands from a user input device 113, which may include, for example, a remote control, keyboard, or any other suitable input device configured to communicate with the receiver 132 via a wireless link (e.g., an IR or Wi-Fi link), electrical connection, or any other suitable communication link.
The processing subsystem 110-1 may also include an output driver 133 configured to interface with or drive the user device 112. The output driver 133 may include any combination of hardware, software, and firmware as may serve a particular application.
2. Storage Devices
Storage device 134 may include one or more data storage media, devices, or configurations and may employ any type, form, and combination of storage media. For example, the storage device 134 may include, but is not limited to, a hard drive, network drive, flash drive, magnetic disc, optical disc, external storage device (e.g., a USB drive), or other non-volatile storage unit. As will be described in more detail below, various portions of media content may be temporarily and/or permanently stored in the storage device 134.
The storage device 134 of FIG. 3 is shown to be a part of the processing subsystem 110-1 for illustrative purposes only. It will be understood that the storage device 134 may additionally or alternatively be located external to the processing subsystem 110-1.
The processing subsystem 110-1 may also include memory 135. Memory 135 may include, but is not limited to, FLASH memory, random access memory (RAM), dynamic RAM (DRAM), or a combination thereof. In some examples, as will be described in more detail below, various applications (e.g., a PVR application) used by the processing subsystem 110-1 may reside in memory 135.
As shown in FIG. 3, the storage device 134 may include one or more live cache buffers 136. The live cache buffer 136 may additionally or alternatively reside in memory 135 or in a storage device external to the processing subsystem 110-1. As will be described in more detail below, media content data may be temporarily stored in the live cache buffer 136 to facilitate viewing of the media content in one or more trick play modes.
3. Tuner
Tuner 137 is configured to tune to a particular media (e.g., television) channel, stream, address, frequency or other carrier in order to process media content that is transmitted on that carrier. In some examples, the tuner 137 may include multiple tuners such that multiple carriers of media content may be processed. For example, the tuner 137 may include a first tuner configured to receive an analog video signal corresponding to a first media content instance and a second tuner configured to simultaneously receive a digital compressed stream corresponding to a second media content instance. It will be recognized that the tuner 137 may have any number of tuners configured to receive any kind of media content from the media content provider 111. As mentioned above, each tuner included in processing subsystem 110-1 may be used to receive media content from the media content provider 111 but is generally able to tune to only one media channel at a time.
In some examples, media content received at the tuner 137 is temporarily buffered, or stored, in the live cache buffer 136. If there are multiple tuners 137, there may be a live cache buffer 136 corresponding to each of the tuners 137. Once media content is temporarily stored in the live cache buffer 136, the user may then designate whether the media content is to be permanently stored as a permanent recording in the storage device 134 or whether it is to be deleted. As used herein, the term “permanent recording” will be understood to mean media content that is stored for an extended period of time as decided by the user.
While tuner 137 may be used to receive various types of media-content-carrying signals broadcast by media content provider 111, media content processing subsystem 110-1 may be configured to receive other types of media content signals from the media content provider 111 without using a tuner. For example, media content provider 111 may broadcast 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, the communication interface 131 may receive and forward the signals directly to the signal processing unit 139 without going through the tuner 137. For an IP media content signal, for example, the signal processing unit 139 may function as an IP receiver.
4. Processors
As shown in FIG. 3, the processing subsystem 110-1 may include one or more processors, such as processor 138 configured to control the operations of the processing subsystem 110-1. The processing subsystem 110-1 may also include a signal processing unit 139 configured to process incoming media content. The signal processing unit 139 may be configured, for example, to demodulate and parse encoded digital media content, or to convert analog media content to digital form and vice versa. In some examples, the processing subsystem 110-1 may include one or more signal processing units 139 corresponding to each of the tuners 137.
The processing subsystem 110-1 may also include a shared content processing unit 145 configured to process shared media content received from and/or transmitted to other media content processing subsystems 110-2 through 110-N. In certain embodiments, the shared content processing unit 145 is configured to receive and process shared media content independently of the tuner 137.
The shared content processing unit 145 may be communicatively coupled to the communications interface 131 and other elements of the processing subsystem 110-1 as shown in FIG. 3. The shared content processing unit 145 may be configured to selectively process media content received by the communications interface 131. For example, the shared content processing unit 145 may be configured to identify and assemble data representative of shared content (e.g., data packets) received by the communication interface 131 from one or more of the other processing subsystems 110-2 through 110-N. The shared content may be assembled into one or more media content instances.
The shared content processing unit 145 may also be configured to prepare and transmit media content stored in the storage device 134 over the network 120 to other media content processing subsystems 110-2 through 110-N such that the processing subsystem 110-1 is able to function as a provider of shared media content.
The shared content processing unit 145 may also be configured to communicate with the media content provider 111 via the communication interface 131, including sending and receiving communications related to media content sharing functions, as described below.
While FIG. 3 shows the shared content processing unit 145 to be separate from other component of the processing subsystem 110-1, this is not limiting. In certain other embodiments, the shared content processing unit 145 and/or its functionality may be integrated with one or more of the other components, such as the signal processing unit 139, for example. In an exemplary embodiment in which the shared content processing unit 145 is integrated with the signal processing unit 139, the signal processing unit 139 may be directly connected to the communication interface 131 such that media content can still be received from the other processing subsystems 110-2 through 110-N without use of the tuner 137.
The processing subsystem 110-1 may also include a graphics engine 140 configured to generate graphics that are to be displayed by the user device 112. The graphics may include, but are not limited to, views of media content instances (or components of media content instances), program guides, progress bars, control options, and other graphics. One or more processors of the processing subsystem 110-1 (e.g., processor 138 and/or graphics engine 140) may generate and provide output signals configured to cause the user device 112 to display contents of the output signals. Output signals may be provided to the user device 112 by way of the output driver 133.
5. Application Clients
One or more applications 151-153 residing within the processing subsystem 110-1 may be executed upon initiation either by a user of the processing subsystem 110-1, by another processing subsystem, or by the media content provider 111. The applications 151-153, or application clients, may reside in memory 135 or in any other area of the processing subsystem 110-1 and be executed by the processor 138.
As shown in FIG. 3, one of the applications may be a program guide application 151 configured to generate a program guide that is displayed on the user device 112. An exemplary program guide includes a graphical user interface (GUI) that performs various functions including allowing a user to select and view program information associated with various media content instances.
The processing subsystem 110-1 may also include a personal video recording (PVR) application 152. A PVR application is also referred to as a digital video recording (DVR) application. As used herein and in the appended claims, unless otherwise specifically denoted, the term “PVR application” will be used to refer to any application and/or device configured to record media content and/or provide for the viewing of media content in normal or trick play mode. Trick play modes may include, but are not limited to, slow motion, fast motion, reverse play, fast forward play, instant replay, jumping, pausing of live broadcast, and scanning. The PVR application 152 may provide for media content recording functionality by enabling the temporary and/or permanent recording of media content to the storage device 134.
Media content that has been recorded (e.g., stored to the storage device 134) by the PVR application 152 can be shared with other processing subsystems 110-2 through 110-N communicatively coupled to the media content provider 111. Examples of media content being shared between different ones of the processing subsystems 110-1 through 110-N will be described further below.
In some examples, the PVR application 152 may be integrated into the processing subsystem 110-1, as shown in FIG. 3, or it may be a stand-alone unit. A stand-alone PVR may be communicatively coupled to the processing subsystem 110-1. In the examples contained herein, it will be assumed that the PVR application 152 is integrated into the processing subsystem 110-1 for illustrative purposes only.
The processing system 110-1 may also include a content share application 153, which may be initiated by a user of the processing subsystem 110-1, by another processing subsystem, or by the media content provider 111. In certain embodiments, execution of the content share application 153 causes the processing subsystem 110-1 to perform one or more of the functions described herein and related to content sharing between the media content processing subsystems 110-1 through 110-N. Exemplary media content sharing functions and elements configured to perform those functions will now be described in detail.
B. Media Content Shared between Media Content Processing Subsystems
In addition to receiving media content from the media content provider 111, the processing subsystem 110-1, as mentioned above, may also be configured to receive shared media content from one or more of the other processing subsystems 110-2 through 110-N. In certain embodiments, a tuner (e.g., tuner 137) is used to receive media content from the media content provider 111, while shared media content is received from one or more other processing subsystems 110-2 through 110-N without the use of a tuner.
FIG. 4 illustrates an exemplary media content access system 200 in which the processing subsystems 110-1 through 110-N (collectively referred to as the “processing subsystems 110”) are communicatively coupled to one another and to media content provider 111 by network 120. System 200 may be configured to support the sharing of media content between different ones of the processing subsystems 110 over the network 120. Typically, the network 120 provides the media content processing subsystem 110-1 with an external (e.g., external of a structure such as a residence in which the media content processing subsystem 110-1 is located) connection to the media content provider 111 and to other media content processing subsystem 110-2 through 110-N connected to the network 120.
In the following description, processing subsystem 110-1 is described as a recipient of shared media content from one or more of the other processing subsystems 110-2 through 110-N. However, this is for illustrative purposes only and not limiting. Any of the processing subsystems 110 may be configured to act as a recipient and/or provider of shared media content.
The processing subsystem 110-1 may be configured to invoke the content share application 153 in response to the occurrence of any of one or more predetermined events, including receipt of a predefined input command. In certain embodiments, for example, the user of the processing subsystem 110-1 may initiate a request for shared media content from other processing subsystems 110-2 through 110-N. The processing subsystem 110-1 may provide the user with functionality that enables the user to expressly request shared content. Alternatively or additionally, the processing subsystem 110-1 may be configured to automatically invoke content sharing functionality when the user requests media content and each of the tuners 137 of the processing subsystem 110-1 will be busy receiving other media content.
For example, the processing subsystem 110-1 may include a single tuner (e.g., tuner 137), and the user may request to receive and process two separate media content instances that will be broadcast at substantially concurrent times, or even that will have portions broadcast at substantially concurrent times. For instance, the user may wish to concurrently record both media content instances or to record one media content instance while also viewing the other media content instance. In response to the user making such a request, the processing subsystem 110-1 may use the tuner 137 to receive and process one of the requested media content instances and request and receive the other requested media content instance from one or more of the processing subsystems 110-2 through 110-N. The other requested media content instance may be obtained from one or more of the processing subsystems 110-2 through 110-N, without using the tuner 137. Accordingly, content sharing between the processing subsystems 110 generally increases the capacity of the processing subsystem 110-1 such that it can concurrently receive and process more media content instances than there are tuners in the processing subsystem 110-1.
In certain embodiments, content sharing between the processing subsystems 110 can be used to “heal” incomplete recordings of media content. For example, processing subsystem 110-1 may be interrupted (e.g., by a power outage) such that it is not able to store all of a particular media content instance being recorded. Processing subsystem 110-1 may be configured to use one or more recording(s) of the media content instance stored elsewhere on the network 120 to “heal” the incomplete recording. For instance, processing subsystem 110-1 may complete the incomplete recording (e.g., an incomplete file) by adding missing portions of the recorded media content instance to the incomplete recording, where the missing portions may be obtained from one or more of the other processing subsystems 110-2 through 110-N connected to the network 120. Accordingly, processing subsystem 110-1 may be configured to obtain a portion of a media content instance from the media content provider 111 and another portion of the media content instance from one or more other processing subsystems 110-2 through 110-N connected to the network 120.
In some embodiments, the processing subsystem 110-1 may be configured to invoke the content share application 153 in response to the occurrence of other events. As described below, for example, the media content provider 111 may provide instructions to any of the processing subsystems 110, the instructions being configured to cause the content share application 153 to be invoked for the purpose of acting as a provider of shared media content.
To facilitate an understanding of content sharing features and functionality that may be provided by the system 200, FIG. 5 illustrates exemplary content sharing functions that can be performed by various components of the system 200, according to an embodiment. The functions shown in FIG. 5 may be performed in response to the processing subsystem 110-1 invoking content share application 153 to request shared media content, as described above. The functions shown in FIG. 5 may be performed while the media content processing subsystem 110-1 is concurrently receiving other media content from the media content provider 111 (using tuner 137 for example).
As represented by reference number 210, processing subsystem 110-1 may communicate with media content provider 111 to request a particular media content instance. The request may be marked as a shared content request such that the media content provider 111 is able to determine that the requested media content instance should be obtained from one or more of the other processing subsystems 110-2 through 110-N connected to network 120.
The media content provider 111 may be configured to identify, in response to the request, which, if any, of the other processing subsystems 110-2 through 110-N connected to network 120 includes a copy of, or at least a copy of a portion of, the requested media content instance. Typically, any of the processing subsystems 110-2 through 110-N having the requested media content instance have either previously recorded or are currently in the process of recording the requested media content instance for permanent storage. For example, processing subsystems 110-2 and 110-3 may be recording the requested media content instance as it is broadcast by and received from the media content provider 111. Accordingly, the receipt of shared media content may be delayed from its being broadcast by the media content provider 111, at least by sufficient time to allow for one or more other processing subsystems 110-2 through 110-N to record the media content and for the transmission of the media content to processing subsystem 110-1. As described below, the delay may be minimized by using multiple other processing subsystems 110-2 through 110-N to transmit a media content instance to processing subsystem 110-1.
The media content provider 111 may perform the identification in any suitable manner. In certain embodiments, for example, the media content provider 111 may query processing subsystems 110-2 through 110-N for the requested media content instance. In response, the processing subsystems 110-2 through 110-N may be configured to query their respective data stores (e.g., storage devices 134) to determine whether the requested media content, or a portion of the requested media content, is present (e.g., previously recorded or currently being recorded). This may be done by each of the processing subsystems 110-2 through 110-N invoking its content share application 153 in response to the query from the media content provider 111. The content share application 153 may then instruct processor 138 to query the storage device 134. In other embodiments, each content share application 153 may maintain a record of the media content instances stored in the storage device 134, which allows each of the processing subsystems 110-2 through 110-N to check its record of stored media content in response to a query from the media content provider 111, without having to query the storage device 134.
Each of the processing subsystems 110-2 through 110-N may respond to the media content provider 111 in the affirmative or the negative based on whether the requested media content instance is present. Alternatively or additionally, the processing subsystems 110-2 through 110-N may be configured to provide more detailed information to the media content provider 111, including information identifying specific portions (e.g., segments) of the requested media content that are stored on the processing subsystems 110-2 through 110-N, the recording status of the requested media content instance, the availability status of the processing subsystems 110-2 through 110-N (e.g., available or unavailable to share media content), and any other information potentially useful by the media content provider 111 in generating and issuing transmission instructions.
In other embodiments, the media content provider 111 may be configured to maintain a record of recording information that is descriptive of the media content instances (and/or portions thereof) that are stored on the processing subsystems 110, including media content that has been previously recorded or is currently being recorded. For example, the media content provider 111 may be configured to track processing subsystem actions that record, edit, and/or delete media content. The gathered information may be used to generate and maintain (e.g., update) the information included in the record. This allows the media content provider 111 to quickly identify media content that is available for sharing, without having to query the media content processing subsystems 110 for each request for shared content. The media content provider 111 may also maintain a record of the availability status of each processing subsystem 110, or the media content provider 111 may still query the processing subsystems 110 for their availability statuses in response to a request for shared media content.
Once those of the processing subsystems 110-2 through 110-N that are available and include the requested media content (or portions thereof) have been identified, media content provider 111 may instruct, as represented by reference number 215 in FIG. 5, at least a subset of the identified processing subsystems 110-2 through 110-N to transmit the requested media content to the requesting media content processing subsystem 110-1. Those of the processing subsystems 110-2 through 110-N receiving transmission instructions from the media content provider 111 may transmit the requested media content to the requesting processing subsystem 110-1 over the network 120, as represented by reference numeral 220. The transmission of shared content may include the instructed media content processing subsystems 110 invoking their respective shared content applications 153, which may be configured to initiate transmission functions.
The shared content processing unit 145 may be configured with any functionality and/or devices potentially useful for transmitting media content from a processing subsystem (e.g., processing subsystem 110-2) to another processing subsystem (e.g., processing subsystem 110-1). In certain embodiments, each of the processing subsystems 110 is configured to transmit media content as streams of data packets. Each packet or stream of packets may be tagged such that it may be identified as belonging to a particular media content instance. The tags may also identify an order of the packets. As described below, tagging can be used by a media content processing subsystem 110-1 receiving the data packets to assemble them into a media content instance. Of course, data representative of shared media content can be transmitted between the processing subsystems 110 using any suitable technologies, including any of the communication technologies mentioned above.
As shown in FIG. 5, the shared media content may be transmitted from one or more of the processing subsystems 110-2 through 110-N directly to the requesting processing subsystem 110-1, without going through the media content provider 111. Among other benefits, this helps to minimize the transmission time of the media content and the processing demands of the media content provider 111.
The requested media content instance may be transmitted to the processing subsystem 110-1 from one, or more than one of the processing subsystems 110-2 through 110-N. For example, processing subsystem 110-2 may transmit the entire media content instance to the processing subsystem 110-1, or processing subsystem 110-2 and 110-3 may each transmit different portions of the media content instance to the processing subsystem 110-1. The number and particular ones of the processing subsystems 110-2 through 110-N used to transmit a media content instance may be selected by the media content provider 111. The selection may be based on which of the processing subsystems 110-2 through 110-N include the requested media content instance, the availability of the processing subsystems 110-2 through 110-N, service level agreements of the users associated with the processing subsystems 110-2 through 110-N, and any other potentially helpful factor. In certain embodiments, media content provider 111 is configured to select all of the processing subsystems 110-2 through 110-N that are available and that include the requested media content instance. For illustrative purposes, FIG. 5 shows processing subsystems 110-2 and 110-3 transmitting portions of the requested media content to processing subsystem 110-1, as represented by reference numeral 220.
The use of multiple of the processing subsystems 110-2 through 110-N to transmit the requested media content instance helps decrease the transmission time for the requested media content instance. This in turn helps minimize the after-broadcast delay in the processing subsystem 110-1 receiving the media content instance. Redundancy between the processing subsystems 110-2 through 110-N is also readily available when multiple of the processing subsystems 110-2 through 110-N are used to transmit the media content instance. This helps prevent or at least minimize the effects of any errors that may occur when any of the processing subsystems 110-2 through 110-N transmitting shared media content goes offline or otherwise becomes unavailable on the network 120.
Whether one or multiple of the processing subsystems 110-2 through 110-N provides the requested media content, the media content provider 111 may be configured to manage the data traffic associated with the transmission of the media content instance. For example, the media content provider 111 may be configured to control which of the processing subsystems 110-2 through 110-N is used to transmit the requested media content, as well as which portions of the media content are transmitted by which of the processing subsystems 110-2 through 110-N. The traffic managing capabilities of the media content provider 111 allow the use of multiple of the processing subsystems 110-2 through 110-N to concurrently transmit different portions of the media content instance in a controlled manner that enables processing subsystem 110-1 to properly assembled the received data into the media content instance.
The media content provider 111 may be configured to control other aspects of the sharing of media content. For example, the media content provider 111 may control which of the processing subsystems 110 are allowed to participate in the sharing of media content. This may be based on subscriptions or service level agreements of users of the processing subsystems 110. Accordingly, the media content provider 111 is able to keep the sharing of media content within a closed and identifiable group of users. In addition, the media content provider 111 may be configured to charge subscribers for receipt of shared content and/or to issue payment credits to subscribers for transmission of shared content, as described below.
As part of the media content provider 111 managing transmissions of media content between processing subsystems 110, the processing subsystems 110 may be configured to provide transmission status information to the media content provider 111 for use in managing the data traffic. As described above and illustrated by reference number 215 in the example of FIG. 5, processing subsystems 110-2 and 110-3 may be instructed to transmit the requested media content to processing subsystem 110-1. Along with performing the transmissions, processing subsystems 110-2 and 110-3 may be configured to provide associated transmission status information to the media content provider 111, as represented by reference numeral 225 in FIG. 5. In certain embodiments, for example, transmissions of media content are performed using packets of data, and the processing subsystems 110-2 and 110-3 are configured to provide information descriptive of the packets and their transmissions, including, but not limited to, content information, timestamp information, information descriptive of the transmission order of the packets in relation to one another, information descriptive of the order of the packets in relation to one another in an assembled media content instance, source and destination identifiers (e.g., network addresses), and packet tags or other identifiers.
The media content provider 111 may be configured to use the transmission status information to verify that the requested media content is being transmitted in accordance with the transmission instructions provided by the media content provider 111. For example, the media content provider 111 may be configured to perform checksum operations, which are well known. Of course, any other suitable verification operations may be employed.
Processing subsystem 110-1 may be configured to verify that the received data traffic matches up with the transmitted data traffic. The processing subsystem 110-1 may be configured to perform checksum operations or any other suitable verification operations. In certain embodiments, as represented by reference number 230 in FIG. 5, media content provider 111 may be configured to provide a copy of the transmission status information to processing subsystem 110-1. The transmission status information may be used by the processing subsystem 110-1 to verify that the correct data traffic is received.
The processing subsystem 110-1 may be configured with any suitable technologies for assembling the received data traffic into the requested media content instance. In certain embodiments, the transmitted data includes data packets having identifiers (e.g., tags as described above) included therein and useful for assembling the data packets into a sequence representative of the requested media content instance. Processing subsystem 110-1 may also be configured to use the transmission status information received from the media content provider 111 to assemble the received data traffic (e.g., data packets) into a media content instance.
Each of the processing subsystems 110 may be configured to perform the above-described content sharing functions. In particular, each of the processing subsystems 110 may be configured to receive, provide, or both receive and provide shared media content. In certain embodiments, each processing subsystem 110 is configured to share any media content stored in its storage device 134. In other embodiments, each processing subsystem 110 is configured to share only media content that has been received directly from the media content provider 111 and recorded in the storage device 134. In other embodiments, the processing subsystems 110 have different permission settings allowing different levels of content sharing functionality, which levels may be based at least in part on user subscriptions or service level agreements.
The shared content application 153, shared content processing unit 145, and other components of each processing subsystem 110 may be configured to perform any of the processing subsystem content sharing functions described herein.
As mentioned, any of the above-described content sharing functions may be performed concurrently with the receiving of media content from the media content provider 111. Accordingly, the user of processing subsystem 110-1 is able to receive a first media content instance (e.g., COPS) as it is broadcast by and received from the media content provider 111. While the first media content instance is being received, processing subsystem 110-1 is able to receive one or more other media content instances from one or more of the processing subsystems 110-2 through 110-N that are connected to the network 120. For example, one or more of the processing subsystems 110-2 through 110-N (e.g., processing subsystems 110-2 and 110-3) may receive and record a second media content instance (e.g., FRIENDS) being broadcast by the media content provider 111. The above-described content sharing functions may be performed such that processing subsystem 110-1 requests and receives the second media content instance from processing subsystems 110-2 and 110-3.
C. Revenue from Shared Media Content Service
Media content provider 111 may provide any of the media content sharing functionality described above as a service to subscribers. The service may be provided free, as part of a package deal, or for an additional fee. Accordingly, the media content sharing service can be used to generate revenue and/or attract customers. In certain embodiments, subscribers paying a premium for media content sharing are able to share media content with one another within a community of subscribers. Accordingly, a subscriber paying for media content sharing services is able to expand the capacity of her processing subsystem (e.g., a set-top box) for receiving media content.
Subscribers who provide shared media content to other subscribers may be rewarded. In certain embodiments, for example, a subscriber may be given a credit on her subscription bill for each instance of her processing subsystem providing shared media content to another processing subsystem.
Any suitable fee arrangement may be employed, including charging subscribers a fee for each shared media content instance received from other processing subsystems. Alternatively, a subscriber may pay a flat fee regardless of the number of shared media content instances received from other processing subsystems 110.
To enhance the amount and/or variety of media content that is available for sharing, any of the processing subsystems 110 may be dedicated for recording and sharing media content with other processing subsystems 110. For example, certain of the processing subsystems 110 may be controlled by the media content provider 111 and used to record media content instances for sharing with other processing subsystems 110. This helps build a library of recorded content that is available for sharing between the processing subsystems 110. In certain embodiments, dedicated ones of the processing subsystems 110 may be instructed to record select media content that is unlikely or less likely than other media content to be recorded by subscribers.
III. Exemplary Process View
FIG. 6 illustrates an exemplary method of accessing media content, according to an embodiment. While FIG. 6 illustrates exemplary steps according to one embodiment, other embodiments may omit, add to, reorder, and/or modify any of the steps shown in FIG. 6.
In step 270, a media content processing subsystem receives a first media content instance from a media content provider. Step 270 may be performed in any of the ways described above, including processing subsystem 110-1 receiving a first media content instance from media content provider 111. Step 270 may include the media content processing subsystem using a tuner to receive the first media content instance.
In step 280, the media content processing subsystem concurrently receives at least a portion of a second media content instance from at least one other media content processing subsystem communicatively coupled to the media content provider. Step 280 may be performed in any of the ways described above, including processing subsystem 110-1 receiving at least a portion of the second media content instance from any of the other processing subsystems 110-2 through 110-N connected to network 120. Step 280 may include performance of any of the steps illustrated in FIG. 7.
FIG. 7 illustrates an exemplary method of sharing media content between media content processing subsystems. While FIG. 7 illustrates exemplary steps according to one embodiment, other embodiments may omit, add to, reorder, and/or modify any of the steps shown in FIG. 7.
In step 310, a shared media content instance is requested. Step 310 may be performed in any of the ways described above, including processing subsystem 110-1 sending a request for the media content instance to media content provider 111.
In step 320, processing subsystems having the requested media content instance are identified. Step 320 may be performed in any of the ways described above, including media content provider 111 identifying those of the processing subsystems 110 that are available on the network 120 and that have the requested media content instance stored thereon.
In step 330, at least a subset of the processing subsystems identified in step 320 are instructed to transmit the requested media content instance to the requesting processing subsystem. Step 330 may be performed in any of the ways described above, including media content provider 111 providing transmission instructions to those of the identified processing subsystems 110 that are selected to transmit the media content instance to the requesting processing subsystem 110-1.
In step 340, the requested media content instance is transmitted to the requesting processing subsystem. Step 340 may be performed in any of the ways described above, including the instructed processing subsystem or subsystems transmitting data representative of the media content instance to the requesting processing subsystem 110-1 in accordance with the transmission instructions. As described above, the data may be transmitted directly to the requesting processing subsystem 110-1 without going through the media content provider 111.
In step 350, transmission status information is provided. Step 350 may be performed in any of the ways described above, including the transmitting processing subsystem(s) providing transmission status information to the media content provider 111. Step 350 may also include the media content provider 111 forwarding the transmission status information to the requesting processing subsystem 110-1.
In step 360, the requested media content instance is received from the transmitting media content processing subsystem(s). Step 360 may be performed in any of the ways described above, including the requesting processing subsystem 110-1 receiving data representative of the requested media content instance from one or more than one other media content processing subsystem connected to the network 120. Step 360 may also include the receiving media content processing subsystem 110-1 assembling the received data (e.g., streams of data packets) into the requested media content instance.
In step 370, correct reception of the requested media content instance is verified. Step 370 may be performed in any of the ways described above, including the receiving media content processing subsystem 110-1 performing verification operations such as checksum operations or comparisons of reception data and events with the transmission status information described above.
IV. Alternative Embodiments
The preceding description has been presented only to illustrate and describe exemplary embodiments with reference to the accompanying drawings. It will, however, be evident that various modifications and changes may be made thereto, and additional embodiments may be implemented, without departing from the scope of the invention as set forth in the claims that follow. The above description and accompanying drawings are accordingly to be regarded in an illustrative rather than a restrictive sense.

## Claims

1. A method comprising:
detecting, by a media content processing subsystem including at least one tuner, a request for the media content processing subsystem to use a tuner included in the at least one tuner to receive a media content instance transmitted by a media content provider over a network;
determining, by the media content processing subsystem, that the at least one tuner is busy;
sending, by the media content processing subsystem, a shared content request for the media content instance to the media content provider, the shared content request configured to cause the media content provider to
identify at least one other media content processing subsystem that is able to receive the media content instance transmitted by the media content provider and provide the media content instance to the media content processing subsystem, and
instruct the at least one other media content processing subsystem to transmit, to the media content processing subsystem, the media content instance received by the at least one other media content processing subsystem from the media content provider; and

receiving, by the media content processing subsystem without using a tuner included in the at least one tuner, the media content instance from the at least one other media content processing subsystem.

2. The method of claim 1, wherein:
the at least one other media content processing subsystem includes a plurality of other media content processing subsystems; and
the receiving of the media content instance from the at least one other media content subsystem comprises the media content processing subsystem receiving a different portion of the media content instance from each media content processing subsystem included in the plurality of other media content processing subsystems.

3. The method of claim 2, wherein the shared content request is configured to cause the media content provider to instruct the at least one other media content processing subsystem to transmit the media content instance to the media content processing subsystem by instructing each other media content processing subsystem included in the plurality of other media content processing subsystems to transmit the different portion of the media content instance to the media content processing subsystem.

4. The method of claim 1, further comprising receiving, by the media content processing subsystem from the media content provider, transmission status information descriptive of the transmission of the media content instance from the at least one other media content processing subsystem to the media content processing subsystem.

5. The method of claim 4, further comprising using, by the media content processing subsystem, the transmission status information to verify correct receipt of the media content instance from the at least one other media content processing subsystem.

6. The method of claim 4, further comprising using, by the media content processing subsystem, the transmission status information to assemble data representative of the media content instance received from the at least one other media content processing subsystem.

7. The method of claim 1, further comprising:
receiving, by the media content provider from the media content processing subsystem, the shared content request for the media content instance; and
in response to the receiving of the shared content request
identifying the at least one other media content processing subsystem as being able to receive the media content instance transmitted by the media content provider and provide the media content instance to the media content processing subsystem, and
instructing the at least one other media content processing subsystem to transmit, to the media content processing subsystem, the media content instance received by the at least one other media content processing subsystem from the media content provider.

8. The method of claim 7, wherein the identifying of the at least one other media content processing subsystem as being able to receive the media content instance transmitted by the media content provider and provide the media content instance to the media content processing subsystem comprises determining that the at least one other media content processing subsystem contains a current or previous recording of the media content instance.

9. The method of claim 7, further comprising:
receiving, by the at least one other media content processing subsystem from the media content provider, an instruction to transmit the media content instance to the media content processing subsystem;
using, by the at least one other media content processing subsystem, at least one tuner included in the at least one other media content processing subsystem to receive the media content instance transmitted by the media content provider over the network; and
transmitting, by the at least one other media content processing subsystem to the media content processing subsystem, the received media content instance as instructed by the media content provider.

10. The method of claim 1, embodied as computer-executable instructions on at least one non-transitory computer-readable medium.

11. A method comprising:
sending, by a media content processing subsystem included in a plurality of media content processing subsystems configured to receive scheduled transmissions of media content instances from a media content provider by way of a network, a shared content request to the media content provider, the shared content request being for a media content instance included in the scheduled transmissions of media content instances from the media content provider, the shared content request configured to cause the media content provider to
identify at least one other media content processing subsystem included in the plurality of media content processing subsystems that is able to provide the media content instance to the media content processing subsystem, and
instruct the at least one other media content processing subsystem to transmit, to the media content processing subsystem, the media content instance received by the at least one other media content processing subsystem from the media content provider; and

receiving, by the media content processing subsystem, the media content instance from the at least one other media content processing subsystem.

12. The method of claim 11, further comprising:
receiving, by the media content provider from the media content processing subsystem, the shared content request for the media content instance; and
in response to the receiving of the shared content request
identifying, by the media content provider, the at least one other media content processing subsystem included in the plurality of media content processing subsystem as being able to provide the media content instance to the media content processing subsystem, and
instructing, by the media content provider, the at least one other media content processing subsystem to transmit, to the media content processing subsystem, the media content instance received by the at least one other media content processing subsystem from the media content provider.

13. The method of claim 12, wherein the identifying of the at least one other media content processing subsystem as being able to provide the media content instance to the media content processing subsystem comprises determining that the at least one other media content processing subsystem contains a current or previous recording of the media content instance.

14. The method of claim 12, further comprising:
receiving, by at least one other media content processing subsystem from the media content provider, the media content instance;
receiving, by the at least one other media content processing subsystem from the media content provider, an instruction to transmit the media content instance to the media content processing subsystem; and
transmitting, by the at least one other media content processing subsystem to the media content processing subsystem, the media content instance as instructed by the media content provider.

15. The method of claim 14, wherein the receiving, by the at least one other media content processing subsystem, of the media content instance from the media content provider comprises the at least one other media content processing subsystem using at least one tuner included in the at least one other media content processing subsystem to receive the media content instance transmitted by the media content provider over the network.

16. The method of claim 15, wherein the receiving, by the media content processing subsystem, of the media content instance from the at least one other media content processing subsystem is performed without the media content processing subsystem using a tuner to receive the media content instance.

17. The method of claim 11, embodied as computer-executable instructions on at least one non-transitory computer-readable medium.

18. A system comprising:
a media content provider configured to transmit, over a network, a plurality of media content instances; and
a plurality of media content processing subsystems remote from the media content provider and including tuners configured to receive the media content instances transmitted by the media content provider over the network;
a media content processing subsystem included in the plurality of media content processing subsystems and that
detects a request for the media content processing subsystem to use a tuner included in the media content processing subsystem to receive a media content instance transmitted by the media content provider over the network,
determines, by the media content processing subsystem, that each tuner included in the media content processing subsystem is busy, and
sends, by the media content processing subsystem, a shared content request for the media content instance to the media content provider;

wherein the media content provider
receives the shared content request for the media content instance from the media content processing subsystem, and
in response to the receiving of the shared content request
identifies at least one other media content processing subsystem included in the plurality of media content processing subsystems as being able to provide the media content instance to the media content processing subsystem, and
instructs the at least one other media content processing subsystem to transmit, to the media content processing subsystem, the media content instance received by the at least one other media content processing subsystem from the media content provider.