`
`(12) Patent Application Publication (10) Pub. No.: US 2004/0078812 A1
`(43) Pub. Date: Apr. 22, 2004
`
`Calvert
`
`US 20040078812A1
`
`(54) METHOD AND APPARATUS FOR
`ACQUIRING MEDIA SERVICES AVAILABLE
`FROM CONTENT AGGREGATORS
`
`(51)
`
`(76)
`
`Inventor: Kerry Wayne Calvert, Indianapolis, IN
`(US)
`
`Correspondence Address:
`Joseph S Tripoli
`Thomson Multimedia Licensing Inc
`PO Box 5312
`Princeton, NJ 08543-5312 (US)
`
`(21)
`
`Appl. No.:
`
`10/250,640
`
`(22)
`
`(86)
`
`(30)
`
`PCT Filed:
`
`Jan. 4, 2002
`
`PCT No.:
`
`PCT/US02/00008
`
`Foreign Application Priority Data
`
`Jan. 4, 2001
`
`(US) .....................................
`
`...... 60259713
`
`Publication Classification
`
`Int. Cl.7 ............................ H04N 5/445; G06F 3/00;
`H04N 7/10; H04N 7/025;
`H04H 9/00; H04N 7/16; G06F 15/173;
`H04N 7/173; G06F 13/00
`................. 725/46; 725/9; 725/14; 709/224;
`725/37; 725/113; 725/35
`
`(52) us. Cl.
`
`(57)
`
`ABSTRACT
`
`A method for generating a unified list of media services
`available from a plurality of content aggregators having
`different data formats. A first list of media services from a
`first content aggregator is transmitted to a playback device.
`A second list of media services from a second content
`aggregator is also transmitted to the playback device, which
`combines both lists into a unified list of media services. The
`
`method optionally details the playback of a media service
`from said plurality of content aggregators via a selection
`made on the unified list to a playback device.
`
`EXECUTINC AN Iradio_SeI Semce CALL AND ITIIIIID Content LISI
`—
`'
`'-
`—'
`CALL FOR A FIRST HTTP PROCESSOR (404)
`
`EXECUTING AN Iradiu_SeI_ServIce CALL AND lradio_ConIenI_LIsI
`CALL FOR ASECOND HTTP PROCESSOR (404)
`
`HTTP PROCESSOR (404) PERFORMING A GET REQUEST
`
`CONTENT AGGREGATOR SITE (1 02) WITH MEDIA SERVICE LIST
`RESPONDING TO THE GET REQUEST
`
`HTTP PROCESSOR (404) COLLECTING RESPONSE FROM THE CONTENT
`AGGREGATOR (102) AND FORWARDING INFORMATION TO CONTENT ADAPTER
`
`CONTENT ADAPTER (405) RECEIVING LIST OF MEDIA SERVICES AND
`INVOKING TRANSFORMATION FOR CREATING THE COMMON DATA
`STRUCTURE CONTAINING GENRES AND SUB-GENRES OF MEDIA SERVICES
`FROM CONTENT AGGREGATOR (102)
`
`CREATING A UNIFIED LIST OF GENRES AND SUB-GENRES FOR DISPLAY
`
`
`
`
`
`
`
`
`
` 714
`
`702
`
`704
`
`706
`
`708
`
`740
`
`712
`
`Bose Exhibit 1045
`
`Bose V. Koss
`
`
`
`Patent Application Publication Apr. 22, 2004 Sheet 1 0f 10
`
`US 2004/0078812 A1
`
`(.0
`D1.—
`
`
`
`104
`
`IE] IIIIIII
`
`110
`
`co
`0—-
`
`
`
`
`
`FIG.1
`
`(33O1.—
`
`
`
`
`
`Patent Application Publication Apr. 22, 2004 Sheet 2 0f 10
`
`US 2004/0078812 A1
`
`
`
`
`
`106
`
`
`
`110
`
`PLAYBACK DEVICE
`
`gg
`
`SET TOP BOX
`
`@‘1
`
`PROGRAM MEMORY
`
`@
`
`DATAMEMORY
`§§
`
`NElifAngflK
`212
`
`OUTPUT
`
`DEWCE 21g
`
`
`
`
`
`
`88$?ng
`TELEV‘S'ON
`
`
`208
`AM
`—
`
`
`
`DISPLAY
`
`
`
`SPEAKER
`DEVICE
`
`
`
`@
`2_2g
`
`
`
`AUDIO
`
`FIG.2
`
`
`
`Patent Application Publication Apr. 22, 2004 Sheet 3 0f 10
`
`US 2004/0078812 A1
`
`REQUESTING PARAMETERS FROM
`
`
`CONTENT AGGREGATOR VIA
`
`IRadio_SeI_Service CALL
`
`302
`
`
`
`
`STORING PARAMETERS FROM
`CONTENT AGGREGATOR
`
`304
`
`CONTENT AGGREGATOR VIA
`
`305
`
`|radio_List_ConIenI CALL
`
`REQUESTING MEDIA SERVICE FROM
`
`
`
`FORMATTING CONTENT LIST FROM
`
`
`
`
`
`CONTENT AGGREGATOR DISPLAYED ON
`CONTENT LIST VIA STREAM CALL
`
`308
`
`310
`
`312
`
`PLAYING A MEDIA SERVICE FROM
`
`CONTENT AGGREGATOR
`
`
`
`
`
`
`TERMINATION OF MEDIA SERVICE VIA
`
`RETURN CODE
`
`FIG. 3
`
`
`
`Patent Application Publication Apr. 22, 2004 Sheet 4 0f 10
`
`US 2004/0078812 A1
`
`CONTENT LIST
`
`
`
`
`
`HTTP
`CONTENT
`
`
`“META”
`PROCESSOR
`ADAPTER
`CALL
`
`
`
`
`fl
`N1
`—
`4.01
`
`
`
`
`
`CONTENT DATA
`
`XML PARSER
`
`
`
`fl
`fl
` IRadioAPl
`
`3g
`
`
`
`
`FIG.4
`
`
`
`Patent Application Publication Apr. 22, 2004 Sheet 5 0f 10
`
`US 2004/0078812 A1
`
`
`
`
`
`BRASS
`
`SUNCOAST SOUND
`
`TRIOS
`
`COUNTRY
`
`GARTH BROOKS
`
`
`
`
`
`520
`
`
`
`
`
`
`
`
`
`
`
`
`HARDCORE
`
`
`
`ACID JAZZ
`
`ROCK AND ROLL
`
`DISCO
`
`ROCK AND ROLL
`
`SYNTH
`
`COUNTRY
`
`GARTH BROOKS
`
`CHANNEL
`
`ACID JAZZ
`
`BRASS
`
`SUNCOAST SOUND
`
`TRIOS
`
`HARDCORE
`
`ROCK AND ROLL
`
`DISCO
`
`SYNTH
`
`
`
`
`
`
`
`
`
`
`
`530
`
`FIG.5
`
`
`
`Patent Application Publication Apr. 22, 2004 Sheet 6 0f 10
`
`US 2004/0078812 A1
`
`STREAM
`
`REQUEST CALL
`992.
`
`“EQU4%52TAP'
`——
`
`HTTP
`
`PROCESSOR
`ER
`
`i1;
`
`PLAYBACK
`APPLICATION
`608
`
`CONTENT
`ADAPTER
`Reg
`
`IRadioAPl
`
`BUFFER
`
`fl
`
`FIG. 6
`
`
`
`Patent Application Publication Apr. 22, 2004 Sheet 7 0f 10
`
`US 2004/0078812 A1
`
`EXECUTING AN Iradio_SeI_Sewice CALL AND |radio_Content_LisI
`CALL FOR A FIRST HTTP PROCESSOR (404)
`
`EXECUTING AN Iradio_SeI_Service CALL AND Iradio_ConLenL_List
`CALL FOR A SECOND HTTP PROCESSOR (404)
`
`702
`
`704
`
`HTTP PROCESSOR (404) PERFORMING A GET REQUEST
`
`CONTENT AGGREGATOR SITE (102) WITH MEDIA SERVICE LIST
`RESPONDING TO THE GET REQUEST
`
`706
`
`708
`
`710
`
`712
`
`
`
`
`
`HTTP PROCESSOR (404) COLLECTING RESPONSE FROM THE CONTENT
`AGGREGATDR (102) AND FORWARDING INFORMATION TO CONTENT ADAPTER
`
`
`
`
`CONTENT ADAPTER (406) RECEIVING LIST OF MEDIA SERVICES AND
`INVOKING TRANSFORMATION FOR CREATING THE COMMON DATA
`STRUCTURE CONTAINING GENRES AND SUB-GENRES DE MEDIA SERVICES
`
`
`FROM CONTENT AGGREGATOR (102)
`
`CREATING A UNIFIED LIST OF GENRES AND SUB-GENRES FOR DISPLAY
`
`714
`
`FIG.7
`
`
`
`Patent Application Publication Apr. 22, 2004 Sheet 8 0f 10
`
`US 2004/0078812 A1
`
`
`
`TELEVISION
`
`29E
`
`204
`
`—
`
`
`
`HARDWARE SERVICES
`
`STREAMAPI
`
`
`EH 8__1_2
`
`
`gg
`
`USER
`
`
`
`SELECTION
`DEVICE
`£22
`
`_3_10
`
`
`
`OTHER
`
`SERVICES
`
`8—08
`
`
`ANTENNA
`
`g
`
`CONTROL POINT
`
`—
`
`820
`
`FIG. 8
`
`SERVICES
`§1§
`
`8.15
`
`AUDIO
`
`SPEAKER
`
`
`
`Patent Application Publication Apr. 22, 2004 Sheet 9 0f 10
`
`US 2004/0078812 A1
`
`<?xm| version ='1.0'?>
`
`<!--MEDIAMATCH_CONTENT_LIST—>
`
`900
`
`<!DOCTYPE lisil
`<!ELEMENT mediaservice (Iowtion, media_lit|e, player_app, performer. genre, copyrighl)>
`<!ELEMENT location (#PCDATA)>
`<!ELEMENT media_tille (#PCDATA)>
`<!ELEMENT player_app (#PCDATA)>
`dELEMENT performer (#PCDATA)>
`<1ELEMENT genre (#PCDATA)>
`<!ELEMENT copyright (#PCDATA)>
`
`
`
`<mediaservice>
`
`<Iocation>http://www.musiclesters.com/buooy/lravoltaswing.MP3</loeation>
`<media_title>TravollaSwingdmedia_title>
`<player_app>MP3<lplayer_app>
`<perlonner>Travolta_John</perforrner>
`<genre>Bluegrass<lgenre>
`<copyrighl>1989<lcopyright>
`
`</mediaservice>
`
`<mediaservice>
`
`<Iocation>121.12.113.331dlocation>
`(media_lil|e>The_Big_S|eep</media_title>
`<p|ayer_app>MPEG_4</player_app>
`<perlormer>Bogart_Humphrey<lperformer>
`<genre>Mystery<lgenre>
`<copyrighl>1946<lcopyright>
`
`<lmediaservice>
`
`<mediaservice>
`
`<location>111.345.44.332<l|owtion>
`<rnedia_title>Steve_Dah|<lmedia_til|e>
`<p|ayer_app>ReaIAudio</player_app>
`<pertormer>Dahl_Steve</performer>
`<genre>Talk_SHowdgenre>
`<copyrighl>2001<lcopyright>
`
`dmediaservice>
`
`FIG.9
`
`
`
`Patent Application Publication Apr. 22, 2004 Sheet 10 0f 10
`
`US 2004/0078812 A1
`
`1000
`
`BLUEGRASS TRAVOLTA SWING JOHN TRAVOLTA
`
`MUSIC SONG
`
`www.musictesters.comlbuggyl
`1I3V0|IHSWIIIQMP3
`
`
`m TITLE
`PERFORMER
`MEDIA FORMAT
`LOCATION
`
`
`
`
`
`MYSTERY
`
`THE BIG SLEEP
`
`HUMPHREY BOGART MOVIE
`
`121.12.133.331
`
`TALK SHOW STEVE DAHL
`
`STEVE DAHL
`
`
`
`iflgfig‘M'NG
`
`
`
`111.345.44.332
`
`1100
`
`
`TITLE
`PERFORMER
`GENRE
`
`% TRAVOLTASWING
`
`JOHNTRAVOLTA
`
`BLUEGRASS
`
`
`
`
`
`rig—J:
`
`
`
`
`STEVE DAHL
`STEVE DAHL
`TALK SHOW
`
`
`D
`D
`D
`D
`D
`D
`a
`a
`Df—\D
`
`THE BIG SLEEP
`
`HUMPHREY BOGAIIT
`
`MYSTERY
`
`FIG. 11
`
`
`
`US 2004/0078812 A1
`
`Apr. 22,2004
`
`METHOD AND APPARATUS FOR ACQUIRING
`MEDIA SERVICES AVAILABLE FROM CONTENT
`AGGREGATORS
`
`[0001] This invention is related to the field of indexing,
`acquiring, and playing media services, particularly media
`services in the form of streaming media available from a
`plurality of content aggregators.
`
`[0002] Listening to radio broadcast programming, such as
`music, news, and talk shows, is a commonly enjoyed form
`of media entertainment
`that are typically sent as radio
`transmissions through the airwaves.
`
`[0003] Radio transmissions have problems that arise due
`to the inherent physical limitations of using radio waves. For
`example, radio waves lose power the further they are from
`their broadcast source, whereby it becomes difficult for a
`receiver to reliably receive and demodulate a broadcast from
`a long distance. This limitation makes it difficult for listeners
`to receive their favorite stations if outside of a geographic
`region (e.g., a person who lives in Boston typically can not
`receive a radio broadcast from Los Angeles). Additionally,
`the frequencies of radio broadcasts have to be tightly con-
`trolled because the airwaves can only accommodate a finite
`number of electronic-magnetic waves before interference
`results.
`
`[0004] The limitations of broadcasting Via radio waves are
`overcome by using alternative broadcasting techniques. One
`approach transmits radio station broadcasts as satellite trans-
`missions that are received through a satellite dish coupled to
`an audio decoder. Satellite broadcasts have a further geo-
`graphic range than radio wave based transmissions. Also,
`satellite transmissions can accommodate more radio stations
`broadcasts than broadcasted as radio waves, by using tech-
`niques as multiplexing and data compression increasing the
`bandwidth efficiency of a transmission. Satellite broadcasts
`are limited in programming choices available, because the
`radio stations are selected by satellite broadcasters and
`broadcasting via satellite is cost prohibitive, which may
`underrepresent
`the broadcasting choices available from
`small media markets.
`
`[0005] The amount of programming choices available to a
`listener (or viewer) has increased since the development of
`radio and video transmissions through a communications
`network such as the Internet. Radio and Video services
`
`(referred to as media services) that were otherwise limited
`by geographic bandwidth or other constraints are broad-
`casted around the world via the Internet. Any user who
`possesses a connection to the Internet and an Internet
`cnablcd dcvicc (computer, cellular phone, MP3 music
`player, Internet appliance, satellite receiver) can receive a
`media service broadcasted in the form of streaming media.
`The media service is encoded and compressed, typically by
`a computer, into packets that conform to a transport proto-
`col, such as TCP/IP. The packets are routed to a listener’s
`device through the Internet, in that software on the listener’s
`decoding device (e.g., a computer with a media player as
`REALPLAYERTM, MACROMEDIA PLAYERTM,
`and
`MP3PROTM) decompresses and decodes the—packets into an
`audio/video signal for playback on an output device (com-
`puter, receiver, stereo, television set).
`
`[0006] The Internet provides a listener with the ability to
`access thousands of media services. The music genres
`
`available to a user are equally as expansive, as a user can
`select to hear a sub-genre of a music genre (e.g., a rock and
`roll station “music genre” that plays 1980’s new wave music
`“sub-genre”). The listener also can manipulate the songs
`(media objects) or content heard into a playlist, which is
`organized by the preferences of the listener. These broad—
`casts are accessed choosing a link (uniform resource indi-
`cator URI) to a music file on a website or by using a media
`player that receives streaming feeds of media services.
`Within all of these customizable options, it is difficult for a
`user to find all of the media services available because the
`content on the Internet is chaotically organized.
`
`[0007] One development for organizing media services
`available through the Internet is the use of a tuning service
`or a media subscription servic . These type of services
`(alternatively known as content aggregators),
`such as
`MUSICMATCHTM, LIVE365TM, and STREAMWAVESTM
`bring together a plurality of media services to a common
`point or interface (e.g., a website, a streaming media player
`with channels) with an architecture where a user selects
`media services from categories including genre and per-
`former. A tuning service is typically proprietary to protect
`the copyrighted material comprising media services and
`requires an interface to successfully use the tuning service to
`playback an available media service. The restrictions of
`using a proprietary tuning service typically limits a user
`from activating media services available from different
`content aggregators, without switching to an additional
`device.
`
`In accordance with the principles of the present
`[0008]
`invention, a method and apparatus are disclosed that enable
`the indexing and acquisition of media services from a
`plurality of content aggregators. A listing of media services
`is generated by the indexing of available media services
`from the plurality of content aggregators. The method and
`apparatus also describe the retrieval and output of a selected
`media service available from the plurality of content aggre-
`gators to a playback device.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0009] FIG. 1 is a diagram of audio and Video based
`media services that are aggregated by a content aggregator.
`
`[0010] FIG. 2 is a diagram of an Internet connection
`between devices using the invention and a plurality of
`content aggregators.
`
`[0011] FIG. 3 is a flowchart of formatting a request to a
`content aggregator.
`
`[0012] FIG. 4 is a block diagram of requesting a content
`list from a content aggregator.
`
`[0013] FIG. 5 is a diagram of audio based media services
`available from a plurality of content aggregators indexed
`into a unified content list.
`
`[0014] FIG. 6 is a block diagram of requesting and
`acquiring a media service from a content aggregator.
`
`[0015] FIG. 7 is a flowchart of a synchronous usage model
`requesting and acquiring music services from a content
`aggregator
`
`[0016] FIG. 8 is a diagram of requesting and acquiring
`music services from a plurality of content aggregators by
`using a control point.
`
`
`
`US 2004/0078812 A1
`
`Apr. 22,2004
`
`[0017] FIG. 9 is a diagram of a content list of media
`services a playback device receives from a content aggre-
`gator as computer code.
`[0018] FIG. 10 is a diagram of a content list of media
`services formatted to the internal data structure of a play-
`back device by a content adapter.
`[0019] FIG. 11 is a display of a content list of media
`services formatted into a menu by a XML parser.
`[0020]
`In FIG. 1, a composition of media services avail-
`able to a content aggregator 102 is shown. Audio based
`media services, as audio website 104, radio station 106,
`music service 108, originating as audio based feeds (e.g.,
`music,
`talk radio show, streaming media files, baseball
`game, audio from a television program, audio books), and
`video station 109 (e.g., CNN®, ABC®, DIRECTV®) are
`media services available to content aggregator 102 through
`communications network 110
`(e.g.,
`Internet, Public
`Switched Telephone Network (PSTN), Local Area Network
`(LAN), wireless network, Digital Subscriber Line (DSL),
`peer to peer network). Preferably, the media services are
`coupled to content aggregator 102 via communications
`network 110 with the media services transmitted as packets
`conforming to a TCP/IP protocol. Optionally, content aggre-
`gator 102 receives audio and Video feeds that are transmitted
`through a wireless interface (radio frequency, microwaves,
`infrared) or receives media objects (e.g., audio-video files
`that are prc-rccordcd or real
`time fccds transmitted as
`streaming media) that are stored locally at the site of the
`content aggregator 102 (such as in a hard disk drive, optical
`storage, removable storage device, or magnetic tape).
`[0021] The media services available for transmission com-
`prise audio and video feeds. Audio website 104 is an Internet
`based website that comprises audio based media services
`that are transmitted in the form of streaming media or are
`computer files partially or completely transmitted. Option—
`ally, the media services may purport to a type of media file
`format
`(e.g., REALAUDIO®, REALMEDIA®, APPLE
`QUICKTIME®, MICROSOFT® WINDOWS MEDIATM
`FORMAT, MPEG-2 LAYER III AUDIO, and MP3®) that is
`played back via
`a media player
`(REALPLAYER®,
`WINAMP®, and MICROSOFT® WINDOWS MEDIATM
`PLAYER). Radio station 106 is a content provider that
`broadcasts radio programs as audio based streamed media
`services. The broadcasts may be live or prerecorded. Music
`service 108 is a media service that is subscription based
`(e.g., MUSAK®, MUSIC CHOICE®) that broadcasts pro-
`gramming as an audio based media service available through
`the content aggregator 102. Video feed 109 is a media
`service that is transmitted from a television station (e.g.,
`CNN, ABC) or as a video service (e.g., a movie on demand)
`available to content aggregator 102.
`[0022]
`In accordance with the principles of the present
`invention, content aggregator 102, in an alternative embodi-
`ment, exists as a web resource (e. g., website, index, catalog)
`that comprises Uniform Resource Indicators (URIs) that link
`to the location of media services, Aplayback program (e.g.,
`a streaming media player) dircctly accesses a media service
`at its listed location (by using the listed link) instead of
`receiving the media service directly from content aggregator
`102. Content aggregator 102 may comprise an index of links
`to the location of media services and may have media
`services that are transmitted directly from content aggrega-
`tor 102.
`
`[0023] Uniform resource indicators (URIs) are a universal
`set of names that refer to existing protocols or name spaces
`that
`identify resources (e.g., website, streaming media
`server,), services (e.g., videos on demand, internet radio),
`devices (e.g., mobile phone, internet enable appliance), and
`data files (e.g., media files and text documents). A URL is a
`form of a URI that expresses an address that maps to an
`access algorithm using network protocols (e. g., TCP/IP or a
`MPEG transport scheme). When a URL is used, a specific
`resource, service, device, or data file may be accessed and/or
`manipulated. An alternative form of a URI known as an
`Internet protocol number or address (IP)
`is a series of
`numbers that refers to a specific resource, service, or data
`file. Optionally, a URL is mapped to an IP number, typically
`through a Domain Name Server (DNS), that provides two
`ways to access a desired resource (e.g., a resource is
`accessed either by using the domain name www.whitehou-
`se.gov or the IP address 198.137.240.91).
`
`[0024] FIG. 2 illustrates a connection between Internet
`enabled devices (a playback device 202, cable set top 30x
`204, computer, cellular phone, MP3 player, video game
`system) and a plurality of content aggregators. Con ent
`aggregator 102 receives audio based media services from
`audio website 104 and radio station 106. An Internet enabled
`device, such as playback device 202, accesses con ent
`aggregator 102 via a communications network 110 (e.g.,
`Internet).
`
`
`
`[0025] Playback device 202 communicates with con ent
`aggregator 102 to request a listing of media services avail-
`able from content aggregator 102 and to receive media
`services selected from the list of media services. Prefera 31y,
`the communications are procedural calls and requests com-
`prising computer commands, for example hypertext mar {up
`language (HTML) or extensible markup language (XML)
`based requests, transported as packets adhering to a transport
`structure (e.g., Transmission Control Protocol/Internet Pro-
`tocol (TCP/IP)) through communications network 110. The
`procedural calls are formatted through the use of an appli-
`cation programming interface (API). This interface com-
`prises a series of functions that are used by a program or
`device to initiate a specific action (for example, an Internet
`cnablcd dcvicc uses an audio API to control a soundcard for
`
`the playback of an audio based media service).
`
`[0026] Playback device 202, as an Internet enable device,
`contains hardware and software (APIs and program subrou-
`tines) for communicating and interacting with content aggre-
`gator 102. Preferably, playback device 202 comprises cen-
`tral processing unit (CPU) 214, program memory 216, data
`memory 218, an audio speaker 220, display device 222, and
`input device 224. CPU 214 (a computer processor) pro-
`cesses audio services received from the content aggregator
`102, received via communications network 110. CPU 214 is
`coupled to data memory 218 that stores data received from
`the content congregator 102 and selected media services.
`Program memory 216, connected to CPU 214, stores pro-
`gramming instructions and APIs used to communicate with
`and process the media services obtained from content aggre-
`gator 102.
`
`[0027] Display device 222 displays the program genres
`and subgenres of audio based media services available from
`content aggregator 102. Preferably, display device 222 is a
`television display, LED display, or LCD display. The genres
`
`
`
`US 2004/0078812 A1
`
`Apr. 22,2004
`
`and sub-genres are selected by using input device 224 by
`engaging a button, dial, or touch screen interface, or other
`tactile mechanism available on input device 224. CPU 204
`requests (via a command such as a computer command or a
`procedural call) an audio based media service (in this
`example from a radio station 106) through content aggre—
`gator 102, after the media service was selected via input
`device 224. Content aggregator 102 receives the request
`from playback device 202 and,
`in response, sends the
`selected media service to playback device 202 in the form of
`a packetized transmission. Playback device 202 processes
`the media service and outputs the results through connected
`audio speaker (loudspeaker) 220. In an alternative embodi-
`ment,
`the selected media service is video based and is
`outputted to display device 222.
`
`[0028] Set top box 204 is an Internet enabled device that
`receives audio and video based media services from, for
`example, cable or broadcast television stations. Preferably,
`set top box 204 is a conduit for media services that are
`multi-threaded or multiplexed by set top box 204 to devices
`that are not Internet enabled (e.g., stereo receiver 206 and
`television audio output 208). For example, set top box 204
`receives a classical music based media service, which set top
`box 204 sends to stereo receiver 206. At the same time, set
`top box 204 receives a newscast media service that
`is
`transmitted to coupled television 208. Optionally, set top
`box 204 transmits audio services to an attached data network
`
`210 (e.g., Ethernet network, wireless RF network, power
`line based network, or infrared network) that is connected to
`output device 212 (connector or audio speaker) that outputs
`the media services as a signal.
`
`[0029] Multi-threading operates by set top box 204 divid-
`ing up its processing tasks (housekeeping tasks, data
`retrieval, processing data, outputting data) into a number of
`timeslots. Each processing task is allocated a number of
`timeslots. Processing tasks of a high priority (playback of a
`media service) receive a larger number of timeslots than
`other processing tasks (updating the display of available
`media services). The times slots as allocated in accordance
`with a predetermined procedure. In the current example, set
`top box 204 divides each second into ten timeslots: four
`timeslots are allocated for the classical music media service,
`four timeslots are for the newscast media service, and the
`remaining two timeslots are for housekeeping procedures.
`Set top box 204 then processes the media services and
`performs housekeeping tasks
`in accordance with the
`timeslots allocated. An embodiment of the invention sup-
`ports that time slots durations may be unequal or equal
`amounts of time.
`
`[0030] FIG. 3 shows a flowchart of a method of config-
`uring a device (playback device 202 or set top box 204) to
`the same data format as content aggregator 102 for acquiring
`and outputting selected media services.
`In the preferred
`embodiment, playback device 202 communicates with a
`content aggregator 102 through communications network
`110 in accordance with computer instructions controlling the
`CPU 214. The computer instructions comprising an API
`operating through specific procedural calls. The API
`requests parameters from content aggregator 102 via a
`Set_Service_Call in step 302. The parameters transmitted to
`playback d vice develop a data and communication structure
`used by playback device 202 to communicate with content
`aggregator 102. The communication structure is the format
`
`used to communicate data between playback device 202 and
`content aggregator 102. Preferably, the playback device 202
`conforms with TCP/IP, Open Systems Interconnection (OSI)
`protocol, 3G, or WAP based transport protocols architec-
`tures. Accordingly, playback device 202 determines the
`communications structure of content aggregator 102 by
`using a handshake process and receiving data back that
`comports to a predetermined communications structure.
`Also, playback device 202 passively receives a data stream
`from content aggregator 102, whereby playback device 202
`determines the communication structure based upon key
`attributes that exist in the data stream. For example, play-
`back device 202 reads a header of a received data packet and
`determines that the data packet comports to a MPEG trans-
`port and data scheme.
`
`[0031] For example, a sample data structure comprises
`media service menus,
`the locations (URIs) and types of
`media service formats (Real Audio, Microsoft Media Player,
`MP3) available from the providers of the media services that
`correspond to a style sheet Playback device 202 receives the
`style sheet from content aggregator 102 and formats incom-
`ing and outgoing data accordingly. Preferably, the determi-
`nation of data structure comprises a document object model
`(DOM) comprising three levels. Level 1 establishes the
`format governing the exchange of data (e.g., XML and
`HMTL). Level 2 controls presentation and manipulation of
`data being transmitted (using style sheets). Level 3 defines
`a content model (e.g., data variables and metadata fields) and
`events used for a document (function key F12 saves a
`document). Optionally, Multipurpose Internet Mail Exten-
`sions (MIME) compliant classes and object types are used to
`define the objects available. Playback device 202 stores data
`structure parameters from content aggregator 102 into the
`program memory 216,
`in step 304, and formats fiiture
`communications with the content aggregator 102 accord-
`ingly.
`
`[0032] The use of a DOM allows playback device 202 to
`support new document types and media formats as multi-
`media standards adjust. For example, a new content aggre—
`gator uses a new multimedia player to play back available
`media services. Playback device 202, when requesting a
`media service from the new content aggregator, will read the
`corresponding DOM and locate the new multimedia player
`(either by a embedded locator in the DOM or by referring to
`an external database). Playback device 202 then requests a
`codec (update) for the new media player, which is stored
`once the codec is received. The media service is ready to be
`outputted by playback device 202 using the new media
`player.
`
`[0033] With the data structure parameters stored, playback
`device 202 requests a content list of media services from
`content aggregator 102 via a List_Content_Call issued by
`CPU 214, in step 306. As displayed in FIG. 4, the List-
`_Content_Call comprises an Iradio API 412 that initiates an
`Iradio Request API 402 (stored in program memory 216)
`that allocates and manages the internal resources used for
`the content list request. Preferably, CPU 214 designates
`operational cycles for the content list request and designates
`space in the data memory 218 for the storage of a content
`list. Optionally, Request API 402 manages multiple requests
`for content lists from a plurality of content aggregators 102,
`simultaneously.
`
`
`
`US 2004/0078812 A1
`
`Apr. 22,2004
`
`[0034] CPU 214 then issues a HTTP processor API 404
`subroutine that controlling the communication transmissions
`with content aggregator 102. HTTP processor API 404
`functions in accordance with the parameters stored in step
`302 by managing the connection, communications, and
`HTTP protocol exchange with the content aggregator 102.
`This includes all processing related to HTTP URI redirec-
`tion, error recognition, and response classification as a
`standard response to a stream comprising a media service.
`HTTP processor API 404 transmits the content list request to
`content aggregator 102 Via communications network 110.
`Content aggregator 102 responds by transmitting a content
`list of available media services received through HTTP
`processor API 404.
`
`[0035] After receiving the content list, preferably in a pred
`tcrmincd format, CPU 214 initiatcs contcnt adapter 406
`routine that formats the received content list to an internal
`format of data and an internal data structure used by play-
`back device 202. For example, CPU 214 uses a XML
`(internal format of data) based document
`type definition
`(DTD) that predefines the internal data structure (data fields)
`used for playback device 202. Data received from the
`content aggregator 102,
`in a XML format,
`is directly
`matched to the data fields defined by the DTD. If the data
`received from content aggregator 102 does not comply with
`the internal data format (XML), content adapter 406 formats
`the data into XML, preferably by the use of translation
`tables, and associates the formatted data into the internal
`data structure (DTD) of playback device 202. Optionally, the
`formatted data and data received from content aggregator
`102 are stored in data memory 218. Also,
`the DTD is
`updateable (for example, an update sent as a style sheet via
`the Internet 110 overwrites an existing DTD).
`
`[0036] XMLparser 408 receives the XMLbased data from
`the content adapter 406 (or from the data memory 218), and
`maps the XML based data to preselected menu elements that
`are displayed and manipulated by a user. The data mapping
`accomplished Via a data table that indicates which variables
`from the internal data structure are mapped to preselected
`menu elements.
`
`[0037] FIG. 9 is a diagram of a content list of media
`services 900 (in XML format) the playback device 202
`receives from content aggregator 102. FIG. 10 is a display
`of a content list of media services 1000 formatted to the
`
`internal data structure of the playback device 202 by the
`content adapter 406. FIG. 11 is a display of a content list of
`media services 1100 formatted into a menu by the XML
`parser 408.
`
`[0038] As an exemplary embodiment, data formatted by
`the XML parser 408, is displayed as a hierarchical menu on
`display device 222. The hierarchical menu lists fields that
`are either preselected or designated by a user (sample fields
`are media service,
`title, media type, performer, content
`aggregator source, etc.). For example, a “top” level of the
`menu is displayed by genre (e.g., talk show, music, news,
`sports talk, mystcry, soap opera, etc.) When a user selects a
`genre listed on the “top” menu level via input device 224,
`content data procedure 410 initiated by CPU 214 checks
`data memory 218 if there are any sub-gcnrcs or available
`media services listed in association with the selected genre.
`Alternatively, content data procedure 410 issues an addi-
`tional content list call 401 to content aggregator 102 for
`
`more information that is associated with the selected genre
`(repeating the steps discussed above). Content data proce-
`dure 410 generates and displays from the associated data a
`“second” level menu listed underneath the “top” level. The
`user then makes a selection from the “second” level, and
`content data procedure 410 continues to issue content list
`calls 401, until the user selects a media service for playback.
`
`[0039] After a media service is selected Via input device
`224 (e.g., from a hierarchical menu or a listing of available
`media services), CPU 214 issues an Iradio_Stream_Con-
`tents_call API, in step 308, to retrieve the selected media
`service from the content aggregator 102. The Iradio_Stream-
`_Contents_call API, as displayed in FIG. 6, begins with a
`Stream Request Call 602 that determines a location of the
`requested media service (preferably the media service’s
`URI) either through data returned from the Iradio_List_Con-
`tent_Call (in data memory 218) or through other means (e. g.,
`as requesting the location of the media service from the
`content aggregator 102). Optionally, Iradio_Stream_Con-
`tents_call API 308 supports
`asynchronous
`(multiple)
`requests for media services Via the multithre ading capability
`described above.
`
`[0040] Once the location of the selected media service is
`known, the CPU 214 issues an Iradio API 412 that starts with
`the Request API 402 subroutine for allocating and managing
`resources used for the Stream Request Call 602. HTTP
`processor API 404 is issued, as part of Iradio API 412, to
`connect to the location of the selected media service Via the
`communications network 110. The connection to the loca-
`
`tion of the media service is a direct connection (website,
`storage device, cellular network, etc), a connection made
`through