U.S. patent application number 12/455687 was filed with the patent office on 2009-10-08 for home media network.
Invention is credited to Terry Barsoom, Keith Craigie, John Doornbos, Pedro Freitas, Song Huang, Paul Novaes.
Application Number | 20090254950 12/455687 |
Document ID | / |
Family ID | 25428613 |
Filed Date | 2009-10-08 |
United States Patent
Application |
20090254950 |
Kind Code |
A1 |
Craigie; Keith ; et
al. |
October 8, 2009 |
Home media network
Abstract
According to one embodiment, a method is described. The method
includes receiving a request at a control module from a first
remote device to access media data from a storage management module
and determining that a first user is requesting access to the data
based upon a first remote identification (ID). The method further
includes opening a second stream between the playback module and
the storage management module and receiving the data at the
playback module.
Inventors: |
Craigie; Keith; (San
Francisco, CA) ; Doornbos; John; (San Francisco,
CA) ; Novaes; Paul; (San Mateo, CA) ; Huang;
Song; (Scotts Valley, CA) ; Barsoom; Terry;
(San Francisco, CA) ; Freitas; Pedro; (San
Francisco, CA) |
Correspondence
Address: |
PATENT DEPARTMENT;MACROVISION CORPORATION
2830 DE LA CRUZ BLVD.
SANTA CLARA
CA
95050
US
|
Family ID: |
25428613 |
Appl. No.: |
12/455687 |
Filed: |
June 5, 2009 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
09910316 |
Jul 19, 2001 |
7574723 |
|
|
12455687 |
|
|
|
|
Current U.S.
Class: |
725/80 |
Current CPC
Class: |
H04N 21/43615 20130101;
H04N 21/44213 20130101; H04N 21/441 20130101; H04L 12/2803
20130101; H04L 2012/2849 20130101; H04L 65/4084 20130101; H04L
29/06 20130101; H04N 21/4532 20130101; H04L 12/2812 20130101; H04L
29/06027 20130101 |
Class at
Publication: |
725/80 |
International
Class: |
H04N 7/18 20060101
H04N007/18 |
Claims
1. A home media network comprising: a first device configured to
acquire and store digital media content; a transmission medium
coupled to the first device; and a second device coupled to the
transmission medium, wherein the second device is configured to
control the playback and display of the digital media content.
2. The home media network of claim 1 wherein the second device is
configured to determine that a first network user is requesting to
access digital media content stored at the first device based upon
a first remote identification (ID) corresponding to the first
network user.
3. The home media network of claim 2 wherein the second device is
configured to determine that a second network user is requesting to
access digital media content based upon a second remote
identification (ID) corresponding to the second network user.
4. The home media network of claim 2 further comprising a third
device coupled to the transmission medium, wherein the third device
is configured to determine that the first network user is
requesting to access digital media content based upon the first
remote ID corresponding to the first network user.
5. The home media network of claim 4 wherein the first, second and
third devices are set-top boxes.
6. The home media network of claim 4 wherein the first and second
devices are set-top boxes and the third device is a personal
digital assistant (PDA).
7. The home media network of claim 4 wherein the first and second
devices are set-top boxes and the third device is a personal
computer.
8. The home media network of claim 1 further comprising: a display
device coupled to the second device; and an audio device coupled to
the second device.
9. The home media network of claim 8 further comprising: a device
interface coupled to the transmission medium; and a digital device
coupled to the device interface.
10. The home media network of claim 9 wherein the digital device a
digital video disk (DVD).
11. The home media network of claim 1 wherein the first device
comprises: a media acquisition module configured to acquire digital
media content from a source coupled to an external network; and a
storage management module configured to catalog digital media
content received from the media acquisition module.
12. The home media network of claim 11 wherein the storage
management module comprises: an application program interface
(API); a business objects module; a storage API; a database API;
and a relational database.
13. The home media network of claim 11 wherein the media
acquisition module comprises: an application program interface
(API); a content acquisition module; and a code update module.
14. The home media network of claim 11 wherein the first device
further comprises: a media playback module; and a media control
module.
15. The home media network of claim 14 wherein the media playback
module comprises: a frame buffer; a video decoder; a video
abstraction module; a media player; and an application program
interface (API).
16. The home media network of claim 14 wherein the first client
device further comprises: an input abstraction module; a user
interface renderer; remote control input/output (I/O); an
application infrastructure; and one or more applications.
17. The home media network of claim 1 wherein the second device
comprises: a media playback module; and a media control module.
18. The home media network of claim 17 wherein the media playback
module comprises: a frame buffer; a video decoder; a video
abstraction module; a media player; and an application program
interface (API).
19. The home media network of claim 17 wherein the first client
device further comprises: an input abstraction module; a user
interface renderer; remote control input/output (I/O); an
application infrastructure; and one or more applications.
20. A method comprising: receiving a request at a control module
from a first remote device to access media data from a storage
management module; determining at the control module that a first
user is requesting access to the data based upon a first remote
identification (ID); opening a data stream between a playback
module and the storage management module; and receiving the data at
the playback module.
21. The method of claim 20 further comprising processing the
request at the control module after the request is received at the
control module.
22. The method of claim 20 further comprising: analyzing the user
information at the control module in order to determine whether the
first user is to be granted access to the data; and accessing a
database at the storage management module.
23. The method of claim 20 further comprising displaying the data
at a display device coupled to the playback module.
24. The method of claim 20 wherein determining that a first user is
requesting access to the data based upon a remote ID comprises:
receiving remote control data from the first remote control device;
extracting the first remote ID from the remote control data; and
accessing an index table that correlates the first remote ID with
the first user.
25. The method of claim 20 further comprising: receiving a second
request at the control module from a second remote device to access
the media data from the storage management module; determining at
the control module that a second user is requesting access to the
data based upon a second remote ID; opening a second data stream
between the playback module and the storage management module; and
receiving the data at the playback module.
26. The method of claim 25 wherein determining that a second user
is requesting access to the data based upon a remote ID comprises:
receiving remote control data from the second remote control
device; extracting the second remote ID from the remote control
data; and accessing an index table that correlates the second
remote ID with the second user.
Description
COPYRIGHT NOTICE
[0001] Contained herein is material that is subject to copyright
protection. The copyright owner has no objection to the facsimile
reproduction of the patent disclosure by any person as it appears
in the Patent and Trademark Office patent files or records, but
otherwise reserves all rights to the copyright whatsoever.
FIELD OF THE INVENTION
[0002] This invention relates generally to the field of network
transaction services. More particularly, the invention relates to a
method and apparatus for performing services on a home-based media
network.
BACKGROUND
[0003] A typical household contains several home media devices. As
used in this document, the term "home media device" encompasses
electronics devices that are typically found in the home. Examples
of home media devices may include such electronic devices as
televisions, personal computers, video disc recorders (VDRs),
digital video discs (DVDs), stereo equipment, and digital satellite
services (DSS), etc.
[0004] However, a problem exists with home media devices such that
each individual device is only capable of being used in one room of
the home. For example, multiple televisions throughout a home
typically cannot receive content from a DSS without supplying
additional DSS set-top boxes for each television, or providing
cable feeds to the additional televisions. Installing a set-top box
at every television in the home is expensive. In addition,
installing medium to high quality audio/video distribution is often
expensive and time consuming. Therefore, what is desired is a
method and apparatus for distributing electronic media from various
home media devices throughout a home.
SUMMARY
[0005] According to one embodiment, a home media network is
described. The home media network includes a first device
configured to acquire and store digital media content, a
transmission medium coupled to the first device and a second device
coupled to the transmission medium. The second device is configured
to determine that a first network user is requesting to access
digital media content based upon a first remote identification (ID)
corresponding to the first network user.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] The present invention will be understood more fully from the
detailed description given below and from the accompanying drawings
of various embodiments of the invention, which, however, should not
be taken to limit the invention to the specific embodiments, but
are for explanation and understanding only.
[0007] FIG. 1 illustrates one embodiment of exemplary network
architecture;
[0008] FIG. 2 illustrates one embodiment of home network
architecture;
[0009] FIG. 3 is a block diagram of one embodiment of exemplary
computer architecture;
[0010] FIG. 4 is a block diagram of one embodiment of a
control/playback set-top box;
[0011] FIG. 5 is a block diagram of one embodiment of a media
control module;
[0012] FIG. 6 is a block diagram of one embodiment of a media
playback module;
[0013] FIG. 7 is a block diagram of one embodiment of an
acquisition/storage set-top box;
[0014] FIG. 8 is a block diagram of one embodiment of a storage
management module;
[0015] FIG. 9 is a block diagram of one embodiment of a media
acquisition module;
[0016] FIG. 10 is a flow diagram for one embodiment of playing a
media object within a home network; and
[0017] FIG. 11 is a flow diagram for one embodiment of acquiring a
media object at a home network.
DETAILED DESCRIPTION
[0018] In the following description, numerous details are set
forth. It will be apparent, however, to one skilled in the art,
that the present invention may be practiced without these specific
details. In other instances, well-known structures and devices are
shown in block diagram form, rather than in detail, in order to
avoid obscuring the present invention.
[0019] Reference in the specification to "one embodiment" or "an
embodiment" means that a particular feature, structure, or
characteristic described in connection with the embodiment is
included in at least one embodiment of the invention. The
appearances of the phrase "in one embodiment" in various places in
the specification are not necessarily all referring to the same
embodiment.
[0020] 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 "displaying" or
the like, refer to the action and processes of a computer system,
or similar electronic computing device, that manipulates and
transforms data represented as physical (electronic) quantities
within the computer system's registers and memories into other data
similarly represented as physical quantities within the computer
system memories or registers or other such information storage,
transmission or display devices.
[0021] The displays presented herein are not inherently related to
any particular computer or other systems. Various general-purpose
systems may be used with programs in accordance with the teachings
herein, or it may prove convenient to construct more specialized
systems to perform the required methods. The required structure for
a variety of these systems will be apparent from the description
below. In addition, the present invention is not described with
reference to any particular programming language. It will be
appreciated that a variety of programming languages may be used to
implement the teachings of the invention as described herein.
[0022] The instructions of the programming language(s) may be
executed by one or more processing devices (e.g., processors,
controllers, central processing units (CPUs), execution cores,
etc.).
[0023] Elements of the present invention may also be provided as a
machine-readable medium for storing the machine-executable
instructions. The machine-readable medium may include, but is not
limited to, floppy diskettes, optical disks, CD-ROMs, and
magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnet or
optical cards, propagation media or other type of
media/machine-readable medium suitable for storing electronic
instructions. For example, the present invention may be downloaded
as a computer program which may be transferred from a remote
computer (e.g., a server) to a requesting computer (e.g., a client)
by way of data signals embodied in a carrier wave or other
propagation medium via a communication link (e.g., a modem or
network connection).
[0024] Exemplary Network Architecture
[0025] FIG. 1 illustrates one embodiment of a system 100. System
100 includes network 110, a content server 120, and one or more
customer networks 130. The teachings disclosed herein might be
applied to various networks, data and document storage and archival
facilities, or other types of client/server systems that have
documents or other information available upon request.
[0026] According to one embodiment, server 120 is coupled to
network 110 and is able to respond to requests from clients 130 via
network 110. In one embodiment, the received requests are
associated with the Internet (or World Wide Web (the WWW)). In such
an embodiment, the servers act as inter-networked communications
systems (e.g., WWW servers). That is, servers are directly coupled
to a local area network (LAN) or wide area network (WAN) and
"serve" data, such as images or other multi-media objects that they
capture or create to the clients. Alternative communication
channels such as wireless communication via satellite broadcast
(not shown) are also contemplated within the scope of the present
invention.
[0027] Content server 120 is accessible in order to provide digital
content downloads to customer networks 130. In one embodiment,
content server 120 is adaptable to transmit digital movies and
digital music to customer networks 130 for on demand access. In
another embodiment, customer networks 130 select from an
authentication and payment mechanism that enables
Pay-Per-View/Listen, Pay-Per-Download or content rental. In a
further embodiment, content server 120 is adaptable to transmit
news and informational videos (e.g., news, sports or other footage)
to customer networks 130. In a further embodiment, content server
120 may be configured to manage the distribution of user created
content between multiple customer networks 130. In yet another
embodiment, server 120 is adaptable to transmit software upgrades
to customer networks 130.
[0028] According to one embodiment, server 120 may include a
database for storing various types of data. The database may
include, for example, specific client data (e.g., client account
information and client preferences) and/or more general data. The
database on server 120 in one embodiment runs an instance of a
Relational Database Management System (RDBMS), such as
Microsoft.TM. SQL-Server, Oracle.TM. or the like.
[0029] Customer networks 130 may interact with and receive feedback
from server 120, and each other, using various different
communication devices and/or protocols. According to one
embodiment, a network 130 connects to content server 120 and other
networks 130 via client software. The client software may include a
browser application such as Netscape Navigator.TM. or Microsoft
Internet Explorer.TM. on which the client communicates to the
server and/or a data center via the Hypertext Transfer Protocol
(hereinafter "HTTP").
[0030] Exemplary Home Network Architecture
[0031] FIG. 2 illustrates one embodiment of customer network 130.
According to one embodiment, customer network 130 comprises a home
network. The home network includes a personal computer (PC) 210, an
acquisition/storage set-top box 220, control/-playback set-top
boxes 230 and 240, a device interface 250 and a personal digital
assistant (PDA) 260 all coupled via a data transmission medium 200.
Further, display devices 235 and 245 are coupled to set-top boxes
230 and 240, respectively. In addition, audio devices 237 and 247
are coupled to set-top boxes 230 and 240, respectively. In one
embodiment, display devices 235 and 245 are televisions and the
audio devices are AM/FM stereos. However, one of ordinary skill in
the art will appreciate that the display devices (e.g., LCD) and
audio devices (e.g., speakers) may be implemented using other types
of devices.
[0032] According to one embodiment, digital data content objects
are transmitted from one device within the home network to the
other devices via transmission medium 200. The objects may be, for
example, data files, executables, or other digital objects. In one
embodiment, transmission medium 200 is an internal network
connection. In a further embodiment, transmission medium 200 may be
connected to network 110 via one or more routers (not shown) and
switches (not shown). Accordingly, data content may be transmitted
from a device in the home network to content server 120 and one or
more other customer networks 130 via network 110.
[0033] In one embodiment, PC 210 interacts with and receives
feedback from set-top box 220. PC 210 connects to set-top box 120
via client software. As described above, the client software may
include a browser such as Netscape Navigator.TM. or Microsoft
Internet Explorer.TM. on which PC 210 communicates to the servers
via HTTP. In a further embodiment, included within the scope of the
invention, PC 210 may communicate with set-top box 220 via cellular
telephones and other wireless devices and appliances (e.g., in
which the necessary transaction software is electronic in a
microchip), and/or touch-tone telephones.
[0034] As described above, PC 210 is adaptable to access the
contents of set-top box 220. In addition, PDA 260 may also be used
to access set-top box 220. For example, PC 210 (or PDA 260) may
retrieve a music file from set-top box 220 for audio playback at PC
210. Similarly, PC 210 and PDA 260 may retrieve an image file from
set-top box 220 for display. In a further embodiment, PC 210 may
transmit files to set-top box 220 for storage and playback at home
media devices coupled to set-top box 220.
[0035] Moreover, PC 210 and PDA 260 may be used to organize digital
content stored at set-top box 220. For example, a user at PC 210
may access a user play list stored in set-top box 220. Upon
accessing the play list, the user may add, delete or reorganize the
music files stored within set-top box 220. In a further embodiment,
the user can control the playing of music files within set-top box
220. In such an embodiment, set-top box 220 may be playing audio
files from a particular music play list in a predetermined order.
As the music files are played, set-top box 220 is adaptable to
transmit the music to PC 210, set-top boxes 230 and 240 and/or PDA
260. The user at PC 210 may not wish to hear the next song in the
play list, and therefore, may stop the playing audio of the current
file being played and select another file in the play list for
playback.
[0036] Set-top box 220 is implemented to acquire, and store digital
content. In addition set-top box 220 is adaptable to organize and
manage the content once the content has been acquired. According to
one embodiment, set-top box 220 acquires content from content
server 120 (or other servers) via network 110. In a further
embodiment, set-top box 220 receives commands from peer devices
(e.g., PC 210, set-top boxes 230 and 240, PDA 260, etc.) to access
the content stored at set-top box 220. In such an embodiment, the
content stored at set-top box 220 may be played back at various
peer devices throughout a user's home upon user demand. For
example, stored video, music and/or image data may be presented to
one or more users at display devices 235 and 245, audio devices 237
and 247 and PDA 260. In addition, as described above, set-top box
220 may receive commands from PC 210 to access music files and play
lists stored at set-top box 220.
[0037] According to one embodiment, set-top box 220 may distribute
content received from media devices throughout the user's home. In
a further embodiment, the content may be accessed from any display
device or stereo system within the home. According to yet a further
embodiment, set-top box 220 serves multiple users in the home. In
such an embodiment, set-top box 220 may simultaneously perform
different sessions for each user with no overlap or interference.
The multi-session, multi-user applications of set-top box 220 will
be described below in further detail.
[0038] Set-top boxes 230 and 240 perform control and playback
functions similar to PC 210 and PDA 260. In particular, set-top
boxes 230 and 240 are used to control the retrieval of data from
set-top box 220 via transmission medium 200 in order to play the
media data. Data received at set-top box 230 or 240 is transmitted
to its respective display device (or audio device) for presentation
of the content to the user. In one embodiment, set-top boxes 230
and 240 are remotely located from set-top box 220. However, in
other embodiments, set-top box 230 and/or 240 may be incorporated
into set-top box 220 or located adjacent to set-top box 220. In
such embodiments, set-top boxes 230 and 240 (or associated device
logic) are coupled to the respective display devices via an analog
network and to audio devices 237 and 247 via radio frequency.
[0039] Device interface 250 interfaces, under the control of
set-top box 220, one or more digital devices 255 to transmission
medium 200 in order to transmit digital media data to set-top boxes
230 and 240, and/or audio devices 237 and 247. According to one
embodiment, device interface 250 includes a decoder (e.g., a Motion
Picture Expert Group (MPEG) decoder) in order to decode the digital
data received from a digital device for transmission via
transmission medium 200. In a further embodiment, device interface
250 is adaptable to translate infrared remote signal commands to
commands that are recognized by a digital device 255. As a result a
user operating a set-top box 230 or 240 may remotely control the
operation of a digital device 255. According to one embodiment,
digital device 255 is a digital video disk (DVD). However, in other
embodiments, digital device 255 may be implemented using other
digital devices (e.g., compact disc or digital cable set-top
box).
[0040] In yet another embodiment, set-top box 220 may acquire
digital content from a digital device 255 via device interface 250.
For example, set-top box 220 may extract and save music files from
a compact disc (CD) being played by a CD player coupled to set-top
box 220. In a further embodiment, upon extracting each music file,
set-top box 220 transmits the identification information for each
song to content server 120 for automatic information lookup.
Content server 120 searches a database for the corresponding
information.
[0041] Subsequently, content server 120 transmits identification
information that is stored as a component of each song file. The
identification information may include, for example, a music
artist's name, CD title and the title for each song on the CD.
According to another embodiment, set-top box 220 may store digital
images from a digital camera coupled to set-top box 220. In such an
embodiment, a user accessing a display device may organize the
stored image data into a photo album.
[0042] According to a further embodiment, each device in the home
network includes a discovery mechanism. The discovery mechanism
enables each of the devices on the home network, and between
multiple home networks, to identify the other devices and determine
the capabilities of such devices without a management network
(e.g., no requirement for server names and IP addresses be known).
For example, set-top box 220 may identify personal computer 210
using the discovery mechanism.
[0043] According to one embodiment, devices attached to the home
network announce their presence via a User Datagram. Protocol (UDP)
Multicast packet when they are powered up. All other devices
previously coupled to the network receives this packet and
recognizes that the device is on the network and is capable of
continuing communication. Similarly, any device coupled to the home
network is able to transmit a discovery request packet. All other
devices on the network that wish to be found will respond to the
discovery request packet.
[0044] Exemplary Architectures of Peer Devices
[0045] FIG. 4 is a block diagram of one embodiment of a
control/playback device 400. A control/playback device may comprise
PC 210, set-top boxes 230 and 240, and PDA 260. In one embodiment,
device 400 includes a media playback module 420 and a media control
module 450. Media control module 450 controls the playback of media
content at a particular device 400 (not necessarily itself). FIG. 5
is a block diagram of one embodiment of a control module 450.
Control module 450 includes remote control input/output (I/O) 530,
input abstraction 540, user interface (UI) renderer 550,
application infrastructure 560 and applications 570.
[0046] Remote I/O 530 receives data input from a remote control.
According to one embodiment, each user of the home network uses a
different remote control device wherein each device has a unique
identification (remote ID). Upon the remote ID being received by
remote control I/O 530, the client device determines which user of
the home network is making the request. The user information is
subsequently transmitted to set-top box 220. Set-top box 220
analyzes the user information in determining whether the particular
user has access to the particular media data that has been
requested.
[0047] One application of remote IDs is an example where a user at
a set-top box attempts to access the personal media files of
another user. After remote control I/O 530 has determined the user
requesting access and the user identity is transmitted to set-top
box 220, set-top box 220 determines that the user requesting access
is not the owner of the media files being requested. At this point
set-top box 220 may grant access depending upon the owner user's
access configuration. In another embodiment, parental controls may
be implemented so that minor users may not access explicit content,
whether the content be audio or video media. For example, after the
client device has identified the user, set-top box 220 may
determine that the user is a minor and prevent the video or music
file from being delivered to the client device.
[0048] Input abstraction 540 provides an interface to an
application 570 and a media player at media playback module 420 in
order to interpret user actions via remote control, keyboard or any
other type of input device. UI renderer 550 renders the client
device user interface on to a display device. Application
infrastructure 560 interfaces control module 450 with the operating
system running on the device 400. Applications 570 comprise the
media applications that operate on the client device. For example,
applications 495 may include an application that enables a client
device user to view a photograph album.
[0049] Referring back to FIG. 4, playback module 420 controls the
interface between the device 400 and connected display and/or audio
devices. FIG. 6 is a block diagram of one embodiment of a media
playback module 420. Media playback module 420 includes a frame
buffer 610, a MPEG decoder 620, a video abstraction 650, a media
player 670 and a media access API 690
[0050] Frame buffer 610 is an area of memory that is used to hold a
frame of data. According to one embodiment, frame buffer 610 is
used for display device display and is the size of the maximum
image area on the display device 235 and 245 screen. Frame buffer
610 holds a bitmapped image while it is being "painted" on a
display device. MPEG decoder 620 decompresses MPEG data into
viewable form that may be displayed at a display device.
[0051] Video abstraction 650 provides hardware support for decode
and video display to be transparent. Media player 670 is used to
execute audio, video and animation files received from set-top box
220. Media API 690 enables a control/playback set-top box 230 to
communicate with other peer devices (e.g., the storage/management
component of storage/acquisition set-top box 220). In particular,
media API 690 is the mechanism by which other components can
connect to playback module 420 and control it.
[0052] FIG. 7 is a block diagram of one embodiment of set-top box
220. Set-top box 220 also includes a media playback module 420 and
a media control module 450. Media playback module 420 and a media
control module 450 include the same components as described above.
In embodiments where set-top box 220 includes media playback module
420 and a media control module, the display and audio devices may
be coupled directly to set-top box 220 or via various analog
connections. However, one of ordinary skill in the art will
appreciate that set-top box 220 may be implemented without media
playback module 420 and media control module 450.
[0053] In addition, set-top box 220 includes a storage management
module 700 and a media acquisition module 750. Storage management
module 700 stores and manages media as well as enforcing business
rules associated with the media objects. For example, storage
management module 700 is responsible for cataloging incoming media
objects into a catalog that is specific by media type in order to
create a particular media experience. By authenticating the devices
400 that connect to storage management module 700, storage
management module 700 can ensure that both sensitive materials are
protected and copyright and usage rules dictated by the media
creator or distributor are ensured. Further, storage management
module 700 is also responsible for ensuring any transactions that
are to be performed on use are performed before use.
[0054] FIG. 8 is a block diagram of one embodiment of storage
management module 700. Storage management module 700 includes a
server application program interface (API) 810, business objects
820, media database 830, storage API 840, database API 850,
relational database 860 and storage 870. Server API 810 allows
other network entities (e.g., business objects 620) to find and
communicate with storage management module 700. Business objects
820 abstract data and provide logic about enforcing business rules,
digital rights management, etc. Media database 830 is a collection
of media objects organized in such a way that set-top box 220 can
quickly select a desired object.
[0055] Storage API 840 is a control program that interfaces with
storage 870 and abstracts the storage location. Database API 850 is
a control program such as a database management system that
interfaces with relational database 860. According to one
embodiment, database API 850 is a collection of programs that
enables the entering, organization, and selection of data in
relational database 860. Relational database 860 provides
relationships between media files that are created by comparing
data. Storage 870 provides for the storage of media data.
[0056] Referring back to FIG. 7, media acquisition module 750
acquires media content from data sources (e.g., content server 120)
on network 110. FIG. 9 is a block diagram of one embodiment of
media acquisition module 750. Media acquisition module 750 includes
API 910, content acquisition 920, code update 930, extensible
markup language (XML) messaging 940 and HTTP communication 950. API
910 interfaces set-top box 220 with a client device, such as
set-top boxes 230 and 240.
[0057] Content acquisition 920 makes media storage management
module 700 aware of new media available at content server 120.
Content acquisition 920 is configured to retrieve media content
from content providers such as content server 120 through the
Internet. In particular, content acquisition 920 connects to the
providers and retrieves content that the users have either
requested or that matches the profile that they system has been
built for the users.
[0058] Code update 730 enables components within the home network
to retrieve updated software from content server 120. XML messaging
740 transmits and receives messages to/from other components within
the home network. According to one embodiment, messages are encoded
in XML to enable handling in a platform independent manner. HTTP
communication 750 embeds the XML messages into a HTTP format to
enable the messages to be transparently transmitted through proxy
servers and firewalls connected to network 110.
[0059] System Operation
[0060] Although the present event system will be discussed with
reference to various illustrated examples, these examples should
not be read to limit the broader spirit and scope of the present
invention. FIG. 10 is a flow diagram for one embodiment of the
operation of playing a media object within the home network. At
processing block 1010, a user accessing a device 400 (e.g., PC 210,
set-top box 230, etc.), or set-top box 220 in applications where
set-top box 220 includes control and playback functionality,
requests to access to a media object while viewing a display device
or listening to an audio device. As described above, the user
access is implemented via a personal remote control.
[0061] At processing block 1020, the request is received at remote
control I/O 640 within the control module 450 of the device 400.
Remote control I/O 530 extracts the remote 11D from the request.
Subsequently, the device 400 determines the user that is making the
request. According to one embodiment, the client device determines
the requesting user by accessing an index table. The index table
associates each remote ID to a user.
[0062] At processing block 1030, the request is processed by
application infrastructure 560. According to one embodiment,
application infrastructure 560 determines whether the user making
the request is authorized to receive the media object. If the
requesting user is authorized, media control module 450 finds
storage management module 700 and searches for the media object at
process block 1040. After the media object is found, control module
450 finds media playback module 420 and gives playback module 420
the storage information for the media object, process block 1050.
At process block 1060, playback module 420 opens a data stream with
storage management module 700. At process block 1070, the media
object is transmitted to playback module 420. At processing block
1080, playback module 420 presents the media object to the user via
a display device or audio device.
[0063] FIG. 11 is a flow diagram for one embodiment of acquiring a
media object at a home network. At process block 1110, content
acquisition 920 within media acquisition module 750 initiates a
search of a server (e.g., content server 120) on network 110 in
order to find one or more desired media objects using XML messaging
940 and HTTP communication 950. In one embodiment, the search is
initiated directly by a user via media control module 450.
Alternatively, content acquisition 920 is configured to
periodically search servers on network 110 based upon a user
profile.
[0064] Once the media objects are found, media acquisition module
750 finds storage management module 700 at process block 1120. At
process block 1130, a data stream is opened between the server and
storage management module 700. At process block 1140, the media
object is transmitted to storage management module 700. At
processing block 1150, the data is stored at storage management
module 700.
[0065] Exemplary Computer Architecture
[0066] Having described an exemplary network architecture that
employs various elements of the present invention, a computer
system 300 representing exemplary PC 210 and/or set-top boxes 220,
230 and 240 in which elements of the present invention may be
implemented will now be described with reference to FIG. 3.
[0067] One embodiment of computer system 300 includes a system bus
320 for communicating information, and a processor 310 coupled to
bus 320 for processing information. Computer system 300 further
comprises a random access memory (RAM) or other dynamic storage
device 325 (referred to herein as main memory), coupled to bus 320
for storing information and instructions to be executed by
processor 310. Main memory 325 also may be used for storing
temporary variables or other intermediate information during
execution of instructions by processor 310. Computer system 300
also may include a read only memory (ROM) and/or other static
storage device 326 coupled to bus 320 for storing static
information and instructions used by processor 310.
[0068] A data storage device 327 such as a magnetic disk or optical
disc and its corresponding drive may also be coupled to computer
system 300 for storing information and instructions. Computer
system 300 can also be coupled to a second I/O bus 350 via an I/O
interface 330. A plurality of I/O devices may be coupled to I/O bus
350, including a display device 343, an input device (e.g., an
alphanumeric input device 342 and/or a cursor control device 341).
The communication device 340 is for accessing other computers
(servers or clients) via network 110 and/or transmission medium
200. The communication device 340 may comprise a modem, a network
interface card, or other well-known interface device such as those
used for coupling to Ethernet, token ring, or other types of
networks.
[0069] Whereas many alterations and modifications of the present
invention will no doubt become apparent to a person of ordinary
skill in the art after having read the foregoing description, it is
to be understood that any particular embodiment shown and described
by way of illustration is in no way intended to be considered
limiting. Therefore, references to details of various embodiments
are not intended to limit the scope of the claims which in
themselves recite only those features regarded as the
invention.
* * * * *