U.S. patent application number 16/156424 was filed with the patent office on 2019-02-07 for personal video recorder functionality for placeshifting systems.
This patent application is currently assigned to SLING MEDIA L.L.C.. The applicant listed for this patent is SLING MEDIA L.L.C.. Invention is credited to Jason Gary Krikorian.
Application Number | 20190045256 16/156424 |
Document ID | / |
Family ID | 40340761 |
Filed Date | 2019-02-07 |
![](/patent/app/20190045256/US20190045256A1-20190207-D00000.png)
![](/patent/app/20190045256/US20190045256A1-20190207-D00001.png)
![](/patent/app/20190045256/US20190045256A1-20190207-D00002.png)
![](/patent/app/20190045256/US20190045256A1-20190207-D00003.png)
![](/patent/app/20190045256/US20190045256A1-20190207-D00004.png)
United States Patent
Application |
20190045256 |
Kind Code |
A1 |
Krikorian; Jason Gary |
February 7, 2019 |
PERSONAL VIDEO RECORDER FUNCTIONALITY FOR PLACESHIFTING SYSTEMS
Abstract
PVR functionality is enabled on a media player of a
placeshifting system, which allows a user to record media programs
from locations that are physically remote from a source of the
media programs. The media player may receive program schedule
information and present the program schedule information to the
user. Based on user input, the media player identifies a media
program and associated schedule information. When the media program
is scheduled to play, the placeshifting device directs a media
recording device to receive the media program and to store the
program. The placeshifting device may digitize, transcode, and/or
transrate the media program, if necessary, and transmit the media
program to the remote device for playback.
Inventors: |
Krikorian; Jason Gary;
(Woodside, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
SLING MEDIA L.L.C. |
Foster City |
CA |
US |
|
|
Assignee: |
SLING MEDIA L.L.C.
Foster City
CA
|
Family ID: |
40340761 |
Appl. No.: |
16/156424 |
Filed: |
October 10, 2018 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
15649276 |
Jul 13, 2017 |
10123067 |
|
|
16156424 |
|
|
|
|
14979271 |
Dec 22, 2015 |
9716910 |
|
|
15649276 |
|
|
|
|
14558490 |
Dec 2, 2014 |
9237300 |
|
|
14979271 |
|
|
|
|
13073469 |
Mar 28, 2011 |
8904455 |
|
|
14558490 |
|
|
|
|
11933969 |
Nov 1, 2007 |
7917932 |
|
|
13073469 |
|
|
|
|
11147664 |
Jun 7, 2005 |
7877776 |
|
|
11933969 |
|
|
|
|
60577833 |
Jun 7, 2004 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04N 21/4122 20130101;
H04N 21/4334 20130101; H04N 21/84 20130101; H04L 65/601 20130101;
H04N 5/85 20130101; H04N 21/4147 20130101; H04L 2012/2849 20130101;
H04N 21/4135 20130101; H04N 21/6131 20130101; H04N 21/85406
20130101; H04L 65/4069 20130101; H04N 21/4882 20130101; H04N 5/765
20130101; H04N 19/102 20141101; H04N 21/6543 20130101; H04N 7/173
20130101; H04N 21/42661 20130101; H04N 21/47214 20130101; H04L
12/2818 20130101; H04N 21/23106 20130101; H04N 19/40 20141101; H04N
21/41407 20130101; H04N 5/147 20130101 |
International
Class: |
H04N 21/4147 20060101
H04N021/4147; H04L 12/28 20060101 H04L012/28; H04N 21/854 20060101
H04N021/854; H04L 29/06 20060101 H04L029/06; H04N 5/14 20060101
H04N005/14; H04N 5/765 20060101 H04N005/765; H04N 5/85 20060101
H04N005/85; H04N 7/173 20060101 H04N007/173; H04N 19/102 20060101
H04N019/102; H04N 19/40 20060101 H04N019/40; H04N 21/231 20060101
H04N021/231; H04N 21/41 20060101 H04N021/41; H04N 21/414 20060101
H04N021/414; H04N 21/426 20060101 H04N021/426; H04N 21/433 20060101
H04N021/433; H04N 21/472 20060101 H04N021/472; H04N 21/488 20060101
H04N021/488; H04N 21/61 20060101 H04N021/61; H04N 21/6543 20060101
H04N021/6543; H04N 21/84 20060101 H04N021/84 |
Claims
1. A system to placeshift video content to a remote device via a
network, the system comprising: a receiver configured to receive
the video content; a recorder configured to record at least a
portion of the video content received via the receiver in storage,
wherein the recorder is responsive to first instructions received
via the network from the remote device that identify the recorded
portion of the video content; and a placeshifter that transmits,
responsive to second instructions received from the remote device
via the network, the recorded portion of the video content to the
remote device via the network.
2. The system of claim 1 wherein the media receiver receives
broadcast television content.
3. The system of claim 1 wherein the receiver receives television
content via a source on the network.
4. The system of claim 1 wherein the receiver is a media source
that receives television content from a storage medium.
5. The system of claim 1 wherein the storage is located at the
system.
6. The system of claim 1 wherein the storage is remotely located
from the system.
7. The system of claim 1 wherein the video content is received at
the media receiver in a television broadcast format.
8. The system of claim 7 wherein the video content is stored in the
storage using the television broadcast format.
9. The system of claim 8 wherein the placeshifter is configured to
encode the recorded portion of the video content in a format that
is compatible with the network.
10. The system of claim 9 wherein the placeshifter is configured to
transcode the recorded portion of the video content from the
television broadcast format to the format that is compatible with
the network.
11. The system of claim 1 wherein the first instructions are
responsive to a schedule of programming information presented by
the remote device.
12. The system of claim 11, wherein the schedule of programming
information is provided from a web server communicating on the
network.
13. The system of claim 1, wherein the receiver is media source
that is controlled by the placeshifter to obtain the portion of the
video content that is identified in the first instructions.
14. A method executable by a placeshifting device to allow a user
to record media programs from locations that are physically remote
from a source of the media programs, the method comprising:
receiving first instructions from a remote device via a network at
the placeshifting device, wherein the first instructions identify a
media program to be recorded; when the identified media program is
scheduled to play, directing a media recording device to receive
and store the identified media program; and in response to
subsequent instructions from the remote device via the network, to
transmit the stored media program to the remote device via the
network.
15. The method of claim 14 comprising converting the stored media
program to a format that is compatible with the network prior to
transmitting the stored media program via the network.
16. The method of claim 15 wherein the directing comprises
controlling a media source that receives broadcast television
programming to thereby receive the identified media program as part
of the broadcast television programming.
17. A method executable by a device, the method comprising:
receiving a user input that indicates a particular media program to
be recorded at a later time; responsive to the first user input,
providing a first instruction to a placeshifting device via a
network to thereby direct the placeshifting device to record the
particular media program; after the later time has passed,
receiving a second user input directing that the particular media
program be presented for playback; responsive to the second user
input, providing a second instruction to the placeshifting device
via the network to thereby direct the placeshifting device to
provide the particular media program for playback; receiving a
video stream containing the particular media program from the
placeshifting device via the network; and outputting the media
stream for playback to the user.
18. The method of claim 17 further comprising, prior to receiving
the user input that indicates the particular program, presenting a
schedule of television programs to the user.
19. The method of claim 18 further comprising receiving the
schedule of programs via the network.
20. The method of claim 19 wherein the first instruction comprises
scheduling information about the particular program that is
obtained from the schedule of programs.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 15/649,276 filed on Jul. 13, 2017, which is a
continuation of U.S. patent application Ser. No. 14/979,271 filed
on Dec. 22, 2015 (U.S. Pat. No. 9,716,910), which is a continuation
of U.S. patent application Ser. No. 14/558,490 filed on Dec. 2,
2014 (U.S. Pat. No. 9,237,300), which is a continuation of U.S.
patent application Ser. No. 13/073,469 filed on Mar. 28, 2011 (U.S.
Pat. No. 8,904,455), which is a continuation of U.S. patent Ser.
No. 11/933,969 filed on Nov. 1, 2007 (U.S. Pat. No. 7,917,932),
which is a continuation-in-part of U.S. patent application Ser. No.
11/147,664 filed on Jun. 7, 2005 (U.S. Pat. No. 7,877,776, which
claim the benefit of Provisional Application No. 60/577,833 filed
on Jun. 7, 2004, whereby all of the above applications are
incorporated herein by reference in their entirety.
BACKGROUND
Field of the Invention
[0002] This invention relates generally to media applications, and
in particular to recording media programs using personal video
recorder (PVR) functionality.
Background of the Invention
[0003] Television and other video content are increasingly finding
a home on mobile devices, such as mobile phones, personal digital
assistants (PDAs), and personal video players (PVPs). For example,
television programming is no longer found solely on the television.
Through computer networks, as well as other delivery mechanisms,
television and other media content are increasingly becoming
available on these mobile devices.
[0004] As users get more accustomed to video experiences on mobile
devices, and as mobile storage solutions (e.g., removable flash
media and small hard disk drives) become more robust and
inexpensive, the desire to add personal video recorder (PVR)
functionality to these devices will emerge. A device with PVR
functionality can record video data in digital format on digital
storage (e.g., computer memory, hard disk drives). The device with
PVR functionality can also provide other control features, such as
playback, fast forwarding, rewinding, and pausing, plus the ability
to skip to any part of the program without having to rewind or fast
forward the data stream.
[0005] Traditionally, PVR functionality is implemented in devices,
such as set-top boxes, that physically connect to a media source
(e.g., television cables, satellite disks), store television
programs, and transmit the stored programs to an output device,
such as a television. However, existing PVR devices are typically
stationary, and even if a PVR device could be transported to
another location, the media source connected to the PVR device
cannot. For example, one could not take a home cable subscription
on the road, even if one could theoretically bring a PVR device
along. Because a PVR device cannot record programs without a media
source providing the media to record, the traditional approach
cannot adequately provide a PVR functionality in mobile
devices.
[0006] Accordingly, there is a need for a PVR functionality on
mobile devices, or devices at a location remote from a media
source, to allow users to record media programs on those
devices.
SUMMARY
[0007] Embodiments of the invention provide a PVR functionality in
combination with a placeshifting system to allow users to record
media programs from a location remote from the media source. In one
embodiment, a media player of a placeshifting system having PVR
functionality receives media program schedule information and
presents to its users. Based on a user input (or command), the
media player identifies a media program and associated schedule
information. When the media program is scheduled to play, the media
player requests a media broadcasting device to receive the media
program, digitize, transcode, and/or transrate the media program if
necessary, and transmit to the media player. The media player
records the media program in local storage and presents a notice
when the media program is ready to play.
[0008] In one embodiment, the media player recovers from
transmission interruptions of the media program and resumes the
transmission and recording of the media program. In another
embodiment, the media player adjusts the transmission and recording
of the media program to reduce the impacts on other tasks performed
by the media player.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] FIG. 1 is a block diagram of a computing environment for
recording media programs in a placeshifting system, in accordance
with an embodiment of the invention.
[0010] FIG. 2 is a block diagram illustrating the architecture of a
remote device, in accordance with an embodiment of the
invention.
[0011] FIG. 3 is a block diagram illustrating modules within a
media player illustrated in the environment of FIG. 1, in
accordance with an embodiment of the invention.
[0012] FIG. 4 is a flowchart of a process for recording a media
program in a placeshifting system illustrated in the environment of
FIG. 1, in accordance with an embodiment of the invention.
[0013] One skilled in the art will readily recognize from the
following discussion that alternative embodiments of the structures
and methods illustrated herein may be employed without departing
from the principles of the invention described herein.
DETAILED DESCRIPTION OF THE EMBODIMENTS
Overview
[0014] Embodiments of the invention provide a PVR functionality in
placeshifting systems for their users to record media programs from
locations that are physically remote from media sources. A media
player displays schedule information for media programs available
at a media source. A user identifies a media program in the media
player. The media player requests a media broadcasting device to
receive the media program from the media source and transmit to the
media player. The media player records the media program received
from the media broadcasting device and presents a notice to the
user. As used herein, a media program may include any type of media
content, including audio or video content, or both.
System Architecture
[0015] FIG. 1 is a block diagram of a computing environment too for
recording media programs in a placeshifting system according to one
embodiment of the invention. As illustrated, the computing
environment too includes a media source 110, a media broadcasting
device (hereinafter called broadcaster) 120, and a media player
130. The media source 110 is communicatively connected to the
broadcaster 120 through a channel 150. The broadcaster 120 and the
media player 130 are communicatively connected through a network
140.
[0016] The media source 110 includes hardware and/or software
devices that are configured to transmit media content to the
broadcaster 120. Examples of the media source 110 include a cable
set-top box, a tuner (e.g., a cable tuner), a DVD/VCD/VHS player, a
time-shifting device, and a computer. The media source 110 may
provide services such as video on demand or pay-per-view.
[0017] The media source 110 may retrieve the media content from a
local storage (e.g., a DVD) or receive it from a remote source
(e.g., a remote computer server). The media source 110 may receive
the media content through a variety of pathways, including, but not
limited to, the following: over the air via analog or digital RF
transmission; Internet protocol (IP) transmission delivered over a
wired/wireless network and satellite transmission.
[0018] In one embodiment, the media source 110 receives radio
frequency signal (RF signal) from a broadcast station (the source
broadcaster) such as a radio station or a television station.
Because an RF signal may include a number of video and/or audio
signals modulated therein, the media source 110 may filter the RF
signal for a selected channel, demodulate the channel, and convert
the signal into separate analog video and/or audio signals.
[0019] The broadcaster 120 includes hardware and/or software
devices that are configured to receive media content from the media
source 110 through the channel 150 and transmit media content to
the media player 130 through the network 1400. In one embodiment,
the broadcaster 120 can digitize, transcode, and/or package the
media content before sending it to the media player 130. In one
embodiment, the broadcaster 120 may be a media broadcasting device
of a placeshifting system (e.g., a personal broadcaster). The
broadcaster 120 may receive media content from multiple media
sources (not shown).
[0020] A placeshifting system includes a media broadcasting device
and a media player. Using a placeshifting system, a user can watch
or listen to live, recorded or stored media on a remote device via
a data network. For example, a user may stream content from a media
broadcasting device at home (such as a satellite receiver, cable
box, or digital video recorder) to a media player (such as an
application executing on a cellular phone), which can receive the
media from across the house, across town, or across the world. This
transmission may use public or private networks. A media
broadcasting device product that currently provides such a
placeshifting application is the SLINGBOX.TM. from Sling Media,
Inc., and described in U.S. application Ser. No. 11/147,664, filed
Jun. 7, 2005, the content of which is incorporated by reference in
its entirety.
[0021] In one embodiment, the broadcaster 120 may convert the
received media content from one media format to another or perform
any other transcoding, encoding/decoding, translation, digitization
(such as converting media content from analog form to digital
form), or other processing on received media content as
desired.
[0022] The broadcaster 120 may transmit media content to the media
player 130 responsive to a request from the media player 130.
Alternatively, the broadcaster 120 may transmit the media content
to the media player 130 using content delivery mechanisms such as
push technology (e.g., server push or web casting). As suggested by
its name, the broadcaster 120 may transmit the media content to
multiple devices, such as a HDTV, a VCR, a projector, and one or
more media players 130. In one embodiment, the broadcaster 120
transmits media content as one or more media streams. A media
stream may be sent as a series of small packets. The broadcaster
120 may send the media stream using common network protocols (e.g.,
Internet protocol, user datagram protocol).
[0023] In one embodiment, the broadcaster 120 may receive commands
and operate according to the commands. For example, a command can
direct the broadcaster 120 to switch to a specific channel, convert
media content to a specific format (e.g., high-definition
resolution video), and/or transmit a media program to a specific
device using a network protocol. A media player 130 may transmit
the commands to the broadcaster 120 through the network 140. In one
embodiment, the broadcaster 120 authorizes a device before
accepting commands from the device and/or operating according to
commands from the device.
[0024] The media player 130 includes hardware and/or software
devices that are configured to receive and record media content
from the broadcaster 120 through the network 140. Regarding
software, the media player 130 can be, for example, one or more
applications executing within one or more operating systems on a
remote device. The remote device may be a generate purpose computer
(e.g., a mobile computer, a personal digital assistant (PDA)) or a
mobile communication device (e.g., a mobile phone). Regarding
hardware, the media player can be a special purpose device such as
a personal video player (PVP) with network capability.
[0025] In one embodiment, the media player 130 may provide schedule
information for media programs to be broadcasted by the source
broadcaster or available at the media source 110, and/or receive
user inputs identifying media programs intended to be recorded on
the media player 130. The media player 130 may retrieve the
schedule information from an electronic programming guide (EPG)
service provider. The media player 130 may generate commands based
on the user inputs and the schedule information and transmit the
commands to the broadcaster 120, instructing the broadcaster 120 to
transmit the identified media programs to the media player 130.
[0026] The network 140 represents the communication pathways
between the broadcaster 120 and the media player 130. The network
140 may be a wired or wireless network. Examples of the network 140
include the Internet, an intranet, a cellular network, or a
combination thereof.
[0027] The channel 150 is the delivery pathway through which the
media source 110 transmits media content to the broadcaster 120.
The channel 150 may be a wired or wireless cable connection (e.g.,
A/V cable, monitor cable, and the like). In one embodiment, the
channel 150 may be completely within a device, such as where the
broadcaster 120 is on the same device as the media source 110.
Remote Device Architecture
[0028] Referring to FIG. 2, there is shown a block diagram
illustrating the architecture of a remote device 200 executing the
media player 130 as illustrated in the environment too of FIG. 1
according to one embodiment of the invention. As shown, the remote
device 200 includes a processor 210 coupled to a bus 220. Also
coupled to the bus 220 are a keyboard 230, a network interface 240,
a memory 250, a storage device 260, and a display 270.
[0029] The processor 210 may be any general-purpose or
application-specific processor. The storage device 260, in one
embodiment, is a hard disk drive or any other device capable of
storing data, such as a solid-state memory device (e.g., flash
memory). The memory 250 may be, for example, firmware, read-only
memory (ROM), non-volatile random access memory (NVRAM), and/or
RAM, and holds instructions and data used by the processor 210. The
network interface 240 couples the remote device 200 to the network
140. The bus 220 is an electrical conductor that serves as an
electrical pathway along which signals are sent from components
connected to the bus. The display 270 is an output screen on which
visual information is displayed. The display 270 may be a
touch-sensitive screen which users can interact with the media
player 130 by touching the display 270. The keyboard 230 may be a
standard keypad for touch-tone telephones, a QWERTY keyboard, or
any other type of input device. In many instances, the remote
device 200 lacks one or more of the elements shown in FIG. 2, such
as the keyboard 230.
[0030] As is known in the art, the remote device 200 is adapted to
execute computer program modules (or programs). As used herein, the
term "module" refers to computer program logic and/or data for
providing a specified functionality. A module can be implemented in
hardware, firmware, and/or software. In one embodiment, the modules
are stored on the storage device 260, loaded into the memory 250,
and executed by the processor 210.
Modules of Media Player
[0031] FIG. 3 is a block diagram illustrating the modules of the
media player 130 according to an embodiment of the invention. Other
embodiments have additional and/or different modules than the ones
shown in the figure. In addition, functionalities can be
distributed among the modules in a manner different than described
here. Further, some of the functions can be provided by entities
other than the media player 130. As illustrated in FIG. 3, the
media player 130 includes a PVR module (also may be referenced as a
remote client application) 310, an input/output module 320, and a
player module 330.
[0032] The PVR module 310 is designed to provide a PVR
functionality for the media player 130. The PVR module 310 includes
a scheduler module 312, a connection manager module 314, a recorder
module 316, and a notifier module 318. All or portions of the PVR
module 310 can reside on the broadcaster 120, the remote device
200, and/or an intermediate device. For example, the scheduler
module 312, the connection manager module 314, and the notifier
module 318 may reside on the remote device 200, while the recorder
module 316 may locate on the broadcaster 120.
[0033] The scheduler module 312 is configured to provide users of
the media player 130 with schedule information of the media
programs to be broadcasted by the source broadcaster or available
at the media source 110. For example, the scheduler module 312 may
display a list of television programs that is available from one or
multiple television stations and/or cable television providers of
the media source 110. The scheduler module 312 may retrieve the
scheduling information from an EPG service provider. Alternatively,
the scheduler module 312 may retrieve the schedule information from
external sources (e.g., the media source 110 and/or the broadcaster
120) or local storage (e.g., the storage device 260). In one
embodiment, the scheduler module 312 may enable a user to conduct
searches in the schedule information for media programs.
[0034] The scheduler module 312 is also configured to receive user
inputs identifying the media program for recording. The user may
select one, a series of, or a portion of a media program as
presented in the schedule information. The user may make the
selection through the input/output module 320. In one embodiment,
the scheduler module 312 may accept user inputs identifying a media
program without presenting the schedule information. For example,
the user may learn about a media program's schedule from a friend
or a TV Guide magazine and input the schedule information to the
scheduler module 312 to identify the media program. The user may
also input other information related to the media recording. For
example, if the user would like to watch a television show as soon
as it becomes available, the user may select the show for recording
and assign a high priority to it. As another example, the user may
set the scheduler module 312 to record media programs on another
device (e.g., the broadcaster 120).
[0035] The scheduler module 312 translates the user inputs into a
set of commands that can be executed in the broadcaster 120. For
example, the user inputs may include the scheduled starting date
and time, duration, channel number, preferred format of a
television program, and a preferred transmission mechanism. The
corresponding set of commands include commands for switching
channel, commands for setting the starting time, commands for
converting the television program into the preferred format, and
commands for transmitting the converted television program to the
media player 130 using the preferred transmission mechanism.
[0036] The scheduler module 312 transmits the set of commands to
the broadcaster 120. In one embodiment, the scheduler module 312
maintains a schedule calendar including all the media programs
selected for recording. When a selected media program is scheduled
to play, the scheduler module 312 transmits the corresponding set
of commands to the broadcaster 120 so that it transmits the media
program to the media player 130 (or some other devices) or records
the media program locally. Alternatively, the scheduler module 312
may transmit the set of commands to the broadcaster 120 before the
scheduled time of the associated media program. The broadcaster 120
may schedule the transmission of the associated media program to
the media player 130 according to these commands.
[0037] The connection manager module 314 is configured to establish
connections with the broadcaster 120 using the network interface
240. The connection establishment may be initiated by the
connection manager module 314 or the broadcaster 120. In one
embodiment, the connection manager module 314 may detect the
network protocols (or communication protocols) supported by the
network interface 240, and use a supported network protocol to
establish the connection with the broadcaster 120. The connection
manager module 314 may engage in an authorization process with the
broadcaster 120 to obtain permission to transmit commands to the
broadcaster 120 and/or to accept media programs from the
broadcaster 120.
[0038] The recorder module 316 is configured to record media
programs in local storages. Depending on the location of the
recorder module 316, it may record the media programs in storages
of the remote device 200, the broadcaster 120, or an intermediate
device. As described above with reference to the broadcaster 120 in
FIG. 1, the broadcaster 120 may transmit the media program as a
media stream in a series of small packets. The recorder module 316
may record the media program as these packets arrive.
[0039] The notifier module 318 is configured to issue a notice
indicating that a media program is recorded and ready for users to
enjoy. For example, the notifier module 318 may display a message
on the display 270 of the media player 130 stating that a
television program is ready for viewing. The notifier module 318
may also present notices before a media program is fully recorded.
For example, if a user indicated a high priority for a scheduled
radio program, the notifier module 318 may present a notice to the
user as soon as the broadcaster 120 starts transmitting the radio
program to the media player 130. This allows the user to listen to
the radio program in real time (or near real time).
[0040] The input/output module 320 is configured to receive user
inputs and present output information (e.g., media programs,
schedule information, and notices) on the media player 130. The
input/output module 320 may receive user inputs via input devices
such as the keyboard 230, a touch-sensitive screen, a microphone,
and a camera. The input/output module 320 may output information
via output devices such as the display 270. In one embodiment, the
input/output module 320 may output the media program to an external
device such as a speaker, a monitor, and a projector.
[0041] The player module 330 is configured to play media programs
received from the broadcaster 120 or locally recorded media
programs. The player module 330 may also be configured to provide
other control features, such as playback, fast forwarding,
rewinding, and pausing, plus the ability to skip to any part of the
recorded media programs without having to rewind or fast forward
the data stream on the media player 130. In one embodiment, the
player module 330 may play the media program while the recorder
module 316 is recording it or other media programs.
Overview of Methodology
[0042] FIG. 4 is a flowchart of an exemplary process for recording
a media program in a placeshifting system in accordance with one
embodiment of the invention. This process may be implemented in
software, hardware, or a combination of hardware and software.
[0043] The process illustrated in FIG. 4 starts with the media
player 130 receives 410 a user command to record a media program.
In one embodiment, the media player 130 presents schedule
information of the media programs for the user to select. The media
player 130 may receive the schedule information from an EPG service
provider. The displayed schedule information may include title,
channel, genre, rate (e.g., Motion Picture Association of America
film rating), and broadcasting time of the media programs. The user
may review the schedule information, conduct searches, and make a
selection of a media program to be recorded on the media player
130.
[0044] Alternatively, the user can input the schedule information
of the media program, such as the time and channel into the media
player 130. The user can also provide other information such as
priority and video quality of the recording. For example, the user
can instruct the media player 130 to notify the user as soon as the
identified media program is ready to view. As another example, the
user can instruct the media player 130 to record an identified
video program in high quality so that the user can play the video
program in a HDTV. The user can make the selection and/or input
using input devices such as a keyboard and a touch-sensitive screen
of the media player 130.
[0045] In another embodiment, the user can input the user command
via a different interface such as a webpage on a different device
such as a computer connected to a network. The web server hosting
the webpage can transmit the user command to the media player 130
through the network 140.
[0046] The media player 130 requests 420 the broadcaster 120 for
the identified media program. The media player 130 generates a set
of commands based on the schedule information of the identified
media program and the user's inputs. The set of commands instruct
the broadcaster 120 to receive (or retrieve) the identified media
program, convert the media program to a format acceptable by the
media player 130 (or other device(s) identified by the user), and
transmit the converted program to the media player 130. In one
embodiment, the media player 130 transmits the set of commands to
the broadcaster 120 when the identified media program is scheduled
to be transmitted by the media source 110, requesting the
broadcaster 120 to start receiving the media program from the media
source, digitize, transcode, and/or transrate the media program if
necessary, and transmit the content of the media program to the
media player 130 in a data stream. In another embodiment, the set
of commands may request the broadcaster 120 to request the media
source 110 to switch to the right channel so that the media source
110 receives and transmits the identified media program to the
broadcaster 120.
[0047] The broadcaster 120 transmits 430 the identified media
program to the media player 130 in a data stream. The media player
130 receives the data stream and records 440 the media program in a
local storage device (e.g. the storage device 260). Depending on
how the PVR module 310 is distributed (e.g., between the
broadcaster 120 and the media player 130) and configured, the media
program may be recorded in the broadcaster 120, the media player
130, or some other devices accessible through the network 140.
[0048] As is described in greater detail below, the broadcaster 120
may transmit the media program to the media player 130 as it
receives the program from the media source 110. Alternatively, the
broadcaster 120 may transmit the media program over time, thereby
minimizing the impact on other operations of the media player 130.
For example, the remote device 200 may be a smart phone, and the
user may use the phone to make phone calls while the media player
residing on the phone is receiving and recording the media program
in the background. When there are interruptions in the transmission
of the media program (e.g., lost cellular network connectivity),
the broadcaster 120 may subsequently resume the transmission from
where the previously interrupted transmission left off. In one
embodiment, the media player may receive the data stream from an
intermediate device (e.g., an on-network storage device) instead of
the placeshifting device.
[0049] The media player 130 may present a notice to the user when
the selected media program is recorded and/or ready for viewing.
For example, the media player may generate and display a message
identifying the media program and indicating its status (e.g., "the
latest episode of 24 has just been received and is ready for
viewing"). The user may thereafter decide to play the media program
offline. As another example, the media player 130 may populate a
listing of the recorded media programs available to the user,
thereby allowing the user to browse the list of recorded programs
and select one for enjoying.
[0050] The media player 130 receives 450 a user command to play a
recorded media program and plays 460 the recorded media program. In
one embodiment, the user selects a media program from a list of
recorded programs. In another embodiment, the user can select to
play a media program while it is recorded by the media player
130.
Transmission of Media Content
[0051] Media programs may be transmitted using different
communication protocols (or network protocols) and/or networks. The
broadcaster 120 and the media player 130 may support multiple
communication protocols (e.g., Ethernet, WiMAX, WAN, Wi-Fi, and
Bluetooth) and may communicate through multiple networks. The
broadcaster 120 may transmit media programs using one or more
communication protocols and/or networks.
[0052] In one embodiment, the media player 130 may send commands to
the broadcaster 120, instructing it to use a particular
communication protocol and/or network. Therefore, users of the
media player 130 may set rules indicating their preferences among
the communication protocols and/or networks. For example, a user
may set a rule instructing the broadcaster 120 to use Ethernet, not
Wi-Fi, to transmit media programs when both communication protocols
are available. Users may also set restrictions for a communication
protocol and/or network. For example, a user may prohibit the
broadcaster 120 from transmitting media programs using a cellular
network between 6 AM and 9 PM. Users may also specify a particular
communication protocol for the transmission. For example, a user
may set a low priority for a media program, requiring the
broadcaster 120 to transmit the media program to a cellular phone
overnight during non-peak hours so that the media program is
available to the user for offline viewing on the cellular phone the
following day.
[0053] The media player 130 may receive and record media programs
in the background (i.e., while actively conducting other operations
or tasks). For example, depending on the capability of the remote
device 200 executing the media player 130, a user may use the
remote device 200 to make phone calls, to send and/or receive
emails or short messages, to browse the Internet, or to listen to
music while the media player 130 is receiving and recording media
programs from the broadcaster 120. In one embodiment, the
connection manager module 314 adjusts the transmission of the media
programs so that the other tasks are not affected (or affected
minimally) by the transmission and recording. For example, when
detecting that the user is initiating a phone call, the connection
manager module 314 may temporarily halt (or suspend) the
transmission, switch the transmission from using the cellular
network to using another network, or decrease the transmission
rate. As a result, the media program transmission and recording may
be accomplished over time and not interfere with other operations
of the remote device 200 and/or the media player 130.
[0054] In one embodiment, the broadcaster 120 may record (or cache)
a media program (or a portion thereof) temporarily in a local
(built-in or removable) storage after the transmission of the media
program has been interrupted. The transmission may be interrupted
(e.g., the network 140 may become temporarily unavailable) or
slowed down (e.g., the media player 130 and/or the device 200
executing the media player 130 may be busy performing other tasks).
Therefore, the broadcaster 120 may record the media program (or a
portion thereof) received from the media source 110 in local
storage to prevent it from being lost. Once a connection between
the broadcaster 120 and the media player 130 is reestablished, the
transmission of the media program can resume, taking into
consideration the point at which the previously interrupted
transmission left off.
[0055] As explained above with respect to FIGS. 3 and 4, depending
on how the PVR module 310 is distributed and configured, the media
program may be recorded by the broadcaster 120 in a local storage
or an intermediate device (e.g., an on-network storage device such
as a personal computer, a network access server, or a storage area
network). The intermediate device may provide a PVR functionality
to the media player 130. When a user wants to access the media
programs from the media player 130, the broadcaster 120 may act as
an arbiter between the media player 130 and the intermediate device
by retrieving the media programs from the intermediate device and
transcoding and/or trans-rating the content if necessary before
repackaging and streaming it to the media player 130.
Alternatively, the media player 130 may access the intermediate
device directly. For example, the broadcaster 120 may be instructed
to transmit media programs to a laptop computer (the intermediate
device). The media player 130 may subsequently (or concurrently)
retrieve the media programs from the laptop computer through a
local network (e.g., Bluetooth).
SUMMARY
[0056] One of skill in the art will recognize that the method
described above can be used in a number of circumstances or
applications. For example, it can be used to provide time-shifting
functionality on a placeshifting system to record audio and/or
video programs.
[0057] The foregoing description of the embodiments of the
invention has been presented for the purpose of illustration; it is
not intended to be exhaustive or to limit the invention to the
precise forms disclosed. Persons skilled in the relevant art can
appreciate that many modifications and variations are possible in
light of the above teachings.
[0058] Some portions of above description describe the embodiments
of the invention in terms of algorithms and symbolic
representations of operations on information. These algorithmic
descriptions and representations are commonly used by those skilled
in the data processing arts to convey the substance of their work
effectively to others skilled in the art. These operations, while
described functionally, computationally, or logically, are
understood to be implemented by computer programs or equivalent
electrical circuits, microcode, or the like. Furthermore, it has
also proven convenient at times, to refer to these arrangements of
operations as modules, without loss of generality. The described
operations and their associated modules may be embodied in
software, firmware, hardware, or any combinations thereof.
[0059] In addition, the terms used to describe various quantities,
data values, and computations are understood to be associated with
the appropriate physical quantities and are merely convenient
labels applied to these quantities. Unless specifically stated
otherwise as apparent from the following discussion, it is
appreciated that throughout the description, discussions utilizing
terms such as "processing" or "computing" or "calculating" or
"determining" or the like, refer to the action and processes of a
computer system or similar electronic computing device, which
manipulates and transforms data represented as physical
(electronic) quantities within the computer system memories or
registers or other such information storage, transmission, or
display devices.
[0060] Embodiments of the invention may also relate to an apparatus
for performing the operations herein. This apparatus may be
specially constructed for the required purposes, or it may comprise
a general-purpose computing device selectively activated or
reconfigured by a computer program stored in the computer. Such a
computer program may be stored in a computer readable storage
medium, such as, but not limited to, any type of disk including
floppy disks, optical disks, CD-ROMs, magnetic-optical disks,
read-only memories (ROMs), random access memories (RAMs), EPROMs,
EEPROMs, magnetic or optical cards, application specific integrated
circuits (ASICs), or any type of media suitable for storing
electronic instructions, and each coupled to a computer system bus.
Furthermore, the computers referred to in the specification may
include a single processor or may be architectures employing
multiple processor designs for increased computing capability.
[0061] Embodiments of the invention may also relate to a computer
data signal embodied in a carrier wave, where the computer data
signal includes any embodiment of a computer program product or
other data combination described herein. The computer data signal
is a product that is presented in a tangible medium and modulated
or otherwise encoded in a carrier wave transmitted according to any
suitable transmission method.
[0062] The algorithms and displays presented herein are not
inherently related to any particular computer or other apparatus.
Various general-purpose systems may also be used with programs in
accordance with the teachings herein, or it may prove convenient to
construct more specialized apparatus to perform the required method
steps. The required structure for a variety of these systems will
appear from the description above. In addition, embodiments of the
invention are not described with reference to any particular
programming language. It is appreciated that a variety of
programming languages may be used to implement various embodiments
of the invention as described herein, and any references to
specific languages are provided for disclosure of enablement and
best mode of embodiments of the invention.
[0063] Finally, it should be noted that the language used in the
specification has been principally selected for readability and
instructional purposes, and may not have been selected to delineate
or circumscribe the inventive subject matter. Accordingly, the
disclosure of the present invention is intended to be illustrative,
but not limiting, of the scope of the invention, which is set forth
in the following claims.
* * * * *