`
`US 7,529,806 B1
`(10) Patent No.:
`a2) United States Patent
`Shteyn
`(45) Date of Patent:
`*May 5, 2009
`
`
`(54) PARTITIONING OF MP3 CONTENTFILE
`FOR EMULATING STREAMING
`
`(75)
`
`Inventor: Yevgeniy Eugene Shteyn, Cupertino,
`CA (US)
`(73) Assignee: Koninklijke Philips Electronics N.V.,
`Eindhoven (NL)
`
`3/2001 Loganetal.
`6,199,076 B1*
`........... 715/501.1
`7/2001 Geaganetal.
`6,263,371 BL*
`
`.....
`6,311,058 B1* 10/2001 Wecker etal. we. 455/418
`6,356,933 B2*
`3/2002 Mitchell et al.
`......-..0 709/203
`6/2002 Linetal. we 709/231
`6,405,256 BI*
`
`9/2002 Wecker etal... 709/217
`6,449,638 BL*
`6,493,758 BL* 12/2002 McLain .......eee 709/227
`FOREIGN PATENT DOCUMENTS
`
`(*) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`US.C. 154(b) by 0 days.
`
`This patent is subject to a terminal dis-
`claimer.
`
`(21) Appl. No.: 09/433,257
`
`(56)
`
`Mare Girardot, et al. “Efficient Representation and Streaming of
`XMLcontent over the Internet Medium”, IEEE Conference on Mul-
`timedia and Expo., pp. 67-70, 2000.*
`“RealNetworks Streaming Media Leadership”article on the webat:
`http://www.real.com/company/pressroom/rnleadership/index.html.
`“Download tunes to a walkman”article on the webat: http://enn.com/
`TECH/computing/9909/28/walkman.tunes.idg/index.html.
`(22)
`Filed:
`Nov. 4, 1999
`
`
`
`
`Java platform API__specification,2 “java.io Class
`
`SequencelnputStream” at—http://java.sun.com/products/jdk/1.2/
`docs/api/java/io/SequenceInputStreams.html.
`(S51)
`Int. Cl.
`GO6F 15/16
`(2006.01)
`HOAN 7/173
`(2006.01)
`HO4K 1/00
`(2006.01)
`(52) US. Ch.
`cecccsscccsseeresee 709/217; 709/231; 709/203;
`725/114; 705/50
`(58) Field of Classification Search......... 709/217-219,
`is partitioned into a
`An electronic file, e.g., an MP3 file,
`709/23 1-234, 227; 725/90-100, 112; 345/718;
`sequence of segments at the server side. The first segmentis
`455/418
`played out upon downloading. While the first segment is
`See application file for complete search history.
`being played out, the second is being downloaded and buff-
`References Cited
`ered so that it is available when the play out of the first
`segmentis completed. While playing out a current one of the
`U.S. PATENT DOCUMENTS
`segments, next one(s) of the segments are being downloaded
`ohay300 ‘ : ae Helmanefat rieteesen
`sees ee and buffered. This partitioning and sequential play out
`
`5/1908 Cohen _.eee500/201
`5751968 A *
`enables to emulate streamingofa file and to minimize latency
`
`3/1999 Bormanetal. ......... 715/501.1
`5,890,172 A *
`While downloadingan electronicfile.
`
`
`.....0000.00. 345/718
`6,005,563 A * 12/1999 Whiteetal.
`1/2000 Bayehetal. ....... 709/246
`6,012,098 A *
`
`EP
`
`6/1999
`0923033 Al
`OTHER PUBLICATIONS
`
`(Continued)
`esq:
`.
`:
`.
`{nary Hxaminer—Wen-tai Lin
`(57)
`ABSTRACT
`
`16 Claims, 2 Drawing Sheets
`
`
`
`
`
`SELECT CONTENT AND CONTACT SERVER FOR DOWNLOADING CONTROL
`INFORMATION IN XML
`
`PARSE XML AND DETERMINE PARAMETERS, DESCRIBING FILE SEGMENTS,
`INCLUDING THEIR LOCATIONS
`
`
`
`
`
`
`
`
` DOWNLOAD NEXT FILE SEGMENT & BUFFER WHILE PRECEDING SEGMENT
`-
`(SBEINGPLAYEDOUT
`
`
`DOWNLOAD FIRSTFILE SEGMENT FORPLAY-OUT
`
`START PLAY-QUT OF FIRST FILE SEGMENT
`
`Y
`
`IPR2022-01228
`IPR2022-01228
`EXHIBIT 1008 - PAGE 0001
`EXHIBIT 1008 - PAGE 0001
`
`
`
`US 7,529,806 B1
`Page 2
`
`OTHER PUBLICATIONS
`
`Java 2 platform API specification, “java.io Class InputStream” at
`http://java.sun.com/products/jdk/1.2/docs/api/java/io/InputStreams.
`html.
`Java 2 platform API specification, “Interface Enumeration”at http://
`java.sun.com/products/jdk/1.2/docs/api/java/io/FileInputStreams.
`html.
`Java 2 platform API specification, “java.io Class FileInputStreams”
`at http://java.sun.com/products/jdk/1.2/docs/api/java/util/Enumera-
`tion html.
`
`Java 2 platform API specification, Java (TM) 2 Platform, Standard.
`Edition, v1.2.2 API Specification on the Webathttp://java.sun.com/
`products/jdk/1.2/docs/api/overview__summary.html.
`“Efficient Representation and Streaming of XML Content Over the
`Internet Medium” XP002 160596, 2000 IEEE Conf. On Multimedia
`and Expo.
`
`* cited by examiner
`
`IPR2022-01228
`IPR2022-01228
`EXHIBIT 1008 - PAGE 0002
`EXHIBIT 1008 - PAGE 0002
`
`
`
`U.S. Patent
`
`May5, 2009
`
`Sheet 1 of 2
`
`US 7,529,806 B1
`
`SELECT CONTENT AND CONTACT SERVER FOR DOWNLOADING CONTROL
`INFORMATION IN XML
`
`PARSE XML AND DETERMINE PARAMETERS, DESCRIBING FILE SEGMENTS,
`
`INCLUDING THEIR LOCATIONS
`
`START PLAY-OUT OFFIRST FILE SEGMENT
`
` DOWNLOAD NEXT FILE SEGMENT & BUFFER WHILE PRECEDING SEGMENT
`
`
`
`DOWNLOAD FIRST FILE SEGMENT FOR PLAY-OUT
`
`I$ BEING PLAYED QUT
`
`Y
`
`FIG. 1
`
`IPR2022-01228
`IPR2022-01228
`EXHIBIT 1008 - PAGE 0003
`EXHIBIT 1008 - PAGE 0003
`
`
`
`U.S. Patent
`
`May5, 2009
`
`Sheet 2 of 2
`
`US 7,529,806 B1
`
`<XML>
`ctitle>
`The best ever music
`</titles
`<artist>
`V.R. Famous
`<fartist>
`<parts>
`<partl>
`
`(Preferred format)
`
`<length> 1024 </length>
`<format> MP3 </format>
`<location> ftp://137.27.52.87 </location>
`<min_bandwidth> 10,000 </min_bandwidth>
`</part>
`
`(Alternative format)
`
`</partl_alb
`<length> 512 </lenath>
`<format> OTHER </format>
`<location> http:// yevgeniynel/ .... </location>
`<min_bandwidih> 8,000 </min_bandwidth>
`</part_altl>
`
`eraqannrnes
`
`FIG. 2
`
`IPR2022-01228
`IPR2022-01228
`EXHIBIT 1008 - PAGE 0004
`EXHIBIT 1008 - PAGE 0004
`
`
`
`US 7,529,806 Bl
`
`1
`PARTITIONING OF MP3 CONTENTFILE
`FOR EMULATING STREAMING
`
`FIELD OF THE INVENTION
`
`The invention relates to content and/or control communi-
`cations between multiple computer systems, or to such com-
`munications between computer systems and consumer
`devices. Specifically, the invention relates to communication
`constrained by bandwidth or limited by data processing
`resources available to the receiving system or device, espe-
`cially if the communicationsare received by the userin real
`time. The type of communications can be, e.g., broadcast,
`multi-cast or point-to-point.
`
`BACKGROUND ART
`
`Consider current major technologies for delivering digital
`content, such as audio, video, etc. The streaming method for
`audio, e.g., RealAudio by RealNetworks, consists ofplaying-
`out audio at a client device, while constantly sending data
`from the server to the client. The technology provided by
`RealNetworks comprises an encoder, a server, a splitter/cache
`and a player system with two-wayintelligence to resolve
`network congestion, lost packet conditions and negotiate
`complex internet protocols. More specifically, the known
`technology comprises an automatic, variable bit-rate encod-
`ing and delivery system for audio and video. The system
`scales to megabit connection rates and dynamically adjust the
`transmission rate as delivery rate varies due to network con-
`gestion. The format and the encoding/decoding methods of
`the data are proprietary. The server and theclient synchronize
`receiving and playing in a way pre-defined by the particular
`architecture. The communication stack software is tightly
`coupled to the interpretation layer (application anduserinter-
`face (UI)). Manufacturers of such technology promote high
`level of integration between client and server software, as a
`complete vertical solution. This approach mostly excludes
`third parties from developing custom server software (e.g.,
`advertizing, services) and/or client applications (UI, special
`effects, etc.).
`Another known method is downloading of a contentfile
`from a remote computer with subsequent play-out on the
`client. MP3 is a widely known audio data format used within
`the downloading context. There are other data formats, e.g.,
`MP4for video data ete. The major advantage of the above
`mentioned methodis its open data standard approach.As long
`as the right format of the content file is observed during
`encoding,client and server software/hardware manufacturers
`are free to develop their own solutions/products.
`A major problem with the complete download approachis
`the inherentlatency: there is a delay between the beginning of
`the download andthestart of the play-out. The larger thefile
`and or smaller the communication bandwidth, the longerit
`takes to transfer the content from the server to the client. This
`is particularly undesirable in consumerelectronics systems,
`where perceived delay is detrimental to market acceptance of
`an open architecture.
`
`SUMMARYOF THE INVENTION
`
`15
`
`40
`
`45
`
`50
`
`55
`
`60
`
`Tt is an object of the invention to provide an open architec-
`ture solution for content delivery in a download approachthat
`allows for a low or negligible play-out latency.
`To this end the contentfile is split into multiple parts. Each
`part or segment requires a relatively short download time.
`Therefore, the play-out latency is determined by the down-
`
`2
`load timeofthe first part. The size of the individual part can
`be determined by the communications bandwidth, e.g.,
`through pinging for a latency-check. The client device/appli-
`cation receives control information about the content. This
`control
`information comprises, for example,
`information
`relating to the size and memory location of the wholefile as
`well as ofit parts at the server. If the client is not capable of
`processing split data,
`it proceeds with the traditional
`approach,i.e., downloads the wholefile and thenplaysit out.
`In case theclient is capable ofprocessing parts ofthe content,
`it uses the relevant control information abouttheparts in order
`to continue downloading data, while playing. Data play-out,
`also called “rendering”, is computation-intensive, since it
`requires a plurality of decoding operations. Data downloadis
`bandwidth-intensive. Accordingly, simultaneous play-out
`and downloading do notsignificantly compete for the same
`system resources. This separation between downloading and
`processing can be efficiently used in a multi-process and/or
`multi-thread environment.
`
`Preferably, the information contains references to thefile
`location as well as referencesto the locations ofthe parts. The
`intended bandwidth information is associated with the parts.
`The client may make its own decisions regarding how many
`parts to downloadbeforethe start of the play out (execution).
`The parts can have different data formats. The format of
`someofthe parts can be proprietary. Information aboutalter-
`native content parts, regarding bandwidth, format, location
`access options, etc., can be provided. Content parts can physi-
`cally reside on different servers. Content can be split into
`parts consistent within the semantics of the content, e.g., end
`of musical phrase, paragraph, target control device, etc. A
`third party mayinsert its own content parts in between the
`original content parts. The third party parts contain, for
`example,
`advertisements,
`commentary,
`customization
`options. The format of parts for play-out may be chosen
`according to user-related information, e.g., personal prefer-
`ences, level of access to premium services, quality of the
`equipment, bandwidth sharing/fiuctuation conditions, etc.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The invention is explained in further detail and by way of
`example with reference to the accompanying drawing
`wherein:
`
`FIG. 1 is a flow diagram illustrating the various steps in a
`method according to the invention; and
`FIG. 2 gives an example of control code.
`Throughout the Figures, same reference labels indicate
`similar or corresponding features.
`
`PREFERRED EMBODIMENTS
`
`The invention enables emulating the streaming offiles
`while using a download approach. FIG. 1 illustrates a flow
`diagram 100 with various steps involvedin the playing-out of
`a segmentedfile at the client.
`In step 102, the client contacts the server selects the par-
`ticular contentfile and downloads the controlinformationthat
`
`enables the retrieving and playing out of the segmentedfile.
`The control information describes the locations, e.g., URL’s,
`and size of the various file segments, and provides, e.g., UI
`functionalities at the client. In this example, the controlinfor-
`mation is coded in XML.
`
`In step 104 the XML code is parsed. Parsing of XML is
`well knownin the art. A person skilled in the art can download
`an XMLinterpreter, including source code, from the Internet,
`see e.g. www.ibm.com/xml. Thus,the client is enabled to get
`
`IPR2022-01228
`IPR2022-01228
`EXHIBIT 1008 - PAGE 0005
`EXHIBIT 1008 - PAGE 0005
`
`
`
`US 7,529,806 Bl
`
`3
`information about the content information and the URLs of
`the first and subsequentfile segments.
`In step 106, the first file segment is downloaded for play-
`out. Communicating with a remote server is a well known
`technology. For example, Java 2.0 provides a set of standard
`classes that enable retrieving a remotefile into a buffer or as
`a stream.
`
`In step 108, the renderingofthe first segmentis started. The
`buffered contentofthe first segment is forwarded to a decod-
`ing/playing module. The decoding/playing module decodes
`the file format, e.g., MP3. The playing of the supplied stream
`ofbits involves a numberof standard operating system calls to
`its drivers a technique well known intheart.
`In step 110, the next file segment is downloaded at the
`client and stored in a buffer while the previous file segment,
`herethefirst file segment, is being played out. One option is
`to have the downloadedfiles buffered in a sequenceor linked
`list of buffers. This functionality is typically provided by the
`operating system of the client. For example, MS Windows
`family of products creates a memory buffer associated with
`the file every time an API call opensthe file. Alternatively, in
`a thread- and/or process-rich environment, several threads
`and/or processes can be organized to independently retrieve
`file segments, while playing out the content of other seg-
`ments. Working with threads is a skill common for software
`engineers. For example, Java 2.0 from Sun Microsystems
`provides classes supporting multiple threads. Similarly,
`Microsoft SDK for the Windowsfamily of products makes
`thread- or process-related functionalities available to pro-
`grammers.
`Upon completion of playing outthe first segment, the sec-
`ond segment is passed on from the buffer to the decoding/
`playing module. This can be implemented by meansof, e.g.,
`a linked list. As known,a linkedlist is a data structure wherein
`each element(here: segment) has content data and a pointer to
`a next element (here: next segment).
`The decoding/playing module has to decodethefile for-
`mat. The decoding program represents a standard task to a
`person skilled in the art to program a decoding procedure
`according to a widely published standard (MP3, etc.). The
`playing of the supplied stream of bits involves a number of
`standard operating system calls to its drivers—a technique
`well knownintheart.
`
`FIG.2 gives an example of information-describing content
`coded in XML. The code fragment labels the segments as
`having a title “The best ever music” performed by “V. R.
`Famous” and having several parts. The segment labeled
`“part1” is in a preferred formatand described the length ofthe
`part, e.g.,
`in bytes, the format,
`the minimum bandwidth
`required for a connection, and the location on the Internet. An
`alternative first part is labeled “part1 alt” having a different
`length, different
`format, different minimum bandwidth
`requirement, and a different location. The XML code can be
`combined with XSL for generating a user level UI at the
`user’s client. The client thus can automatically choose the
`format compatible with the client’s play-out capabilities.
`Whenthe client has selected the properfile, either the one
`of which thefirst part is represented here as in the preferred
`formator the one in the alternative format, the content of the
`first part is downloaded from the location specified and play-
`ing out is started automatically under application control.
`Combining multiple sequenced inputs is well understood in
`the industry. For example, Java JDK v.1.2 from Sun Micro-
`systems, Inc. provides a class java.io.SequenceInputStream
`as a standard componentoftheio class library. SequenceIn-
`putStream represents the logical concatenationof other input
`streams. It starts out with an ordered collection of input
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`streamsand reads from the first one until endoffile is reached,
`whereuponit reads from the second one, and so on, until end
`offile is reachedon thelast ofthe contained input streams. An
`object of the java.io. SequenceInputStream class can be ini-
`tialized by, e.g., enumeration of objects of the InputStream
`class. This abstract class is the superclass ofall classes rep-
`resenting an input stream of bytes, includingthe class FileIn-
`putStream.In case of the downloading of multiple file parts,
`an application can create instances of the FileInputStream
`class from local temporary files into which theparts are being
`downloaded. The contents ofthose multiple localfiles will be
`supplied to the Sequencer. The rendering componentof the
`application will read the information outit as if it were just a
`single localfile.
`The segmentation of the content file into separately down-
`loadable segments enables a third party, such as a service
`provider, to insert between two segments specific content
`information, e.g., advertisements to be rendered on the cli-
`ent’s display.
`During operation, the client application could select a next
`segmentin a different format for the same content to adaptto
`changing circumstances, e.g., lower bandwidth due to net-
`work congestion. Also, the user could be prompted to sub-
`scribe to a service that as a demolets the user download only
`the first segment in a high quality and the next segments ina
`lower quality. The combination of XML anda corresponding
`parser and interpreter at the client controls the downloading
`and playing out as explained above. Accordingly, the client
`pulls the content segments from the locations indicatedin the
`XMLcontrol information for buffering and subsequentplay-
`out.
`
`The implementation of a clientin this client-server archi-
`tecture can be done in a variety of ways. A first example is a
`hardware-based single-purpose device, similar to the Rio
`MP3player by the DiamondCorp. In order to accommodate
`the methodof the invention, the player needs, in addition, an
`XMLparser, the ability to interpret XMLandthe ability to
`download and play-out content segments sequentially. A sec-
`ond example is to implementthe methodofthe invention as a
`software application on a multi-purpose computing device,
`e.g., a PC or a set top box. The device has the software
`implementing the functionalities mentioned above. In a
`graphics-rich environment, multiple GUI’s are represented to
`the user for further customization.
`The following co-pending applications are incorporated
`herein by reference:
`USS. Ser. No. 09/406,642 filed Sep. 27, 1999 for Raoul
`Mallart for SCALABLE SYSTEM FOR VIDEO-ON-DE-
`MAND. This patent documentrelates to a Video-on-Demand
`service (VOD)that is emulated in a Near-Video-on-Demand
`(NVOD)architecture. Content information is made available
`to an end-user in the NVODarchitecture. An introductory
`portion of the content informationis stored at the end-user’s
`equipment, e.g., by downloading overnight. During playing
`out of the introductory portion at the end-user enabling the
`content information supplied in the NVODarchitecture is
`buffered at the end-user’s equipment. The equipmentis con-
`trolled to switch from playing out the introductory portion
`stored to playing out the buffered content information.
`USS. Ser. No. 09/189,534 filed Nov. 10, 1998 for Eugene
`Shteyn for CONTENT SUPPLIED AS SOFTWARE
`OBJECTS FOR COPYRIGHT PROTECTION.This docu-
`ment relates to supplying content information such as a
`movie, an audio file or a textual message to an end-user ina
`software object. The object has an encapsulated procedure for
`end-user access of the content information in a runtime envi-
`
`ronment. The object can specify time frame for and manner
`
`IPR2022-01228
`IPR2022-01228
`EXHIBIT 1008 - PAGE 0006
`EXHIBIT 1008 - PAGE 0006
`
`
`
`US 7,529,806 Bl
`
`5
`wherein the content information is to be accessed. Since the
`procedure is encapsulated in the object together with the
`content data, and since transport ofthe object overthe Internet
`is done after serializing, an adequate degree of security is
`provided against unauthorized play-out or copying.
`U.S. Ser. No. 09/149,950 filed Sep. 9, 1998 for Raoul
`Mallart for REAL TIME VIDEO GAME USES EMULA-
`TION OF STREAMING OVER TIE INTERNET IN A
`
`BROADCAST EVENT. This patent document relates to
`emulating streaming of animation data over the Internet to a
`large numberofclients in a broadcast application on a client-
`server network. The animation is considered a sequence of
`states. State information is sent to the clients instead of the
`graphics data itself. The clients generate the animation data
`itself under control of the state information. The server and
`
`clients communicate using a shared object protocol. Thus,
`streaming is accomplished as well as a broadcast without
`running into severe network bandwidth problems. This is
`approach is used to mapa real life event, e.g., a motor race,
`onto a virtual environmentin ordertolet the user participate
`in avirtual race againstthereal life professionals, the dynam-
`ics of the virtual environment being determined bythe state
`changessent to the user.
`USS. Ser. No. 09/138,782 filed Aug. 24, 1998 for Raoul
`Mallart and Atul Sinha for EMULATION OF STREAMING
`OVER THE INTERNET IN A BROADCAST APPLICA-
`
`
`
`TION.In a broadcast application on a client-server network
`the streaming is emulated of animation data overthe Internet
`to a large numberofclients. The animation is considered a
`sequence of states. State information is sent to the clients
`instead of the graphics data itself. The clients generate the
`animation data itself under control of the state information.
`The server and clients communicate using a shared object
`protocol. Thus, streaming is accomplishedas well as a broad-
`cast without running into severe network bandwidth prob-
`lems.
`
`USS. Ser. No. 09/283,545 filed Apr. 1, 1999 for Eugene
`Shteyn for TIME- AND LOCATION-DRIVEN PERSON-
`ALIZED TV. This documentrelates to a service for person-
`alized video recorders such as the one from TiVo-Philips. The
`recorder has a hard-disk that serves as a random-access
`buffer.
`
`I claim:
`
`1. A methodof, at a client device, forming a media presen-
`tation from multiple related files, including a control infor-
`mation file, stored on one or more server computers within a
`computer network, the method comprising acts of:
`downloading the control
`information file to the client
`device;
`the client device parsing the control informationfile; and
`based on parsing of the control information file, the client
`device:
`
`identifying multiple alternative flies corresponding to a
`given segmentof the media presentation,
`determining whichfiles of the multiple alternative files to
`retrieve based on system restraints;
`retrieving the determined file of the multiple alternative
`files to begin a media presentation, wherein if the deter-
`minedfile is one of a plurality offiles required for the
`media presentation, the method further comprises acts
`of:
`
`concurrent with the media presentation, retrieving a next
`file; and
`using contentof the nextfile to continue the media presen-
`tation.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`an5
`
`6
`2. The method of claim 1, wherein partitioning of media
`presentation information between the multiple relatedfiles is
`determined by information about the client.
`3. The method of claim 1, wherein partitioning of media
`presentation information between the multiplerelatedfiles is
`determined by information about the computer network.
`4. The method of claim 1, wherein the media presentation
`comprises an audio presentation.
`5. The method of claim 1, wherein the media presentation
`comprises a video presentation.
`6. The method of claim 1, wherein partitioning of media
`presentation information between the multiplerelatedfiles is
`described within the control information file using tags cor-
`responding to respective files.
`7. The method of claim 1 wherein the control information
`file is an XMLfile.
`
`8. The method of claim 7, wherein the XMLfile identifies
`the multiple alternative files corresponding to the given seg-
`mentof the media presentation, further comprising an act of
`partitioning the media presentation into multiple MP3 files
`corresponding to a portion of the multiple alternativefiles.
`9. A method of storing media presentation information
`within a computer network including multiple server com-
`puters, the method comprising acts of:
`storing on a server computer a control information file of a
`formatto be parsed by a client device; and
`storing on one or more server computers multiple alterna-
`tive files corresponding to a given segment of a media
`presentation accessible by the client device to, based on
`parsing of the control informationfile, determine which
`file of the multiple alternative files to retrieve based on
`system constraints to form a media presentation from the
`multiple alternativefiles.
`10. The method of claim 9, wherein the control information
`file is an XMLfile.
`
`11. The methodof claim 10, wherein the XMLfile identi-
`fies the multiple alternative files corresponding to the given
`segment of the media presentation.
`12. A client device for forming a media presentation from
`multiple related files stored on server computers within a
`computer network, comprising:
`means for downloadingfiles to the client device;
`meansfor parsing a control informationfile; and
`means for parsing, based on parsing of the control infor-
`mation file:
`
`identifying multiple alternative files corresponding to a
`give segment of the media presentation;
`determining which file of the multiple alternativefiles to
`retrieve based on system constraints;
`retrieving the determined file of the multiple alternative
`files to begin a media presentation, wherein if the deter-
`minedfile is one of a plurality of files required for the
`media presentation, the means for parsing comprises
`meansfor:
`
`concurrent with the media presentation, retrieving a next
`file; and
`using contentof the nextfile to continue the media presen-
`tation.
`
`13. The device of claim 12, wherein the control informa-
`tion file is an XMLfile.
`
`14. The device of claim 13, wherein the XMLfile identifies
`multiple alternative MP3 files corresponding to a portion of
`the given segment of the media presentation, the means for
`
`IPR2022-01228
`IPR2022-01228
`EXHIBIT 1008 - PAGE 0007
`EXHIBIT 1008 - PAGE 0007
`
`
`
`US 7,529,806 Bl
`
`7
`retrieving comprising meansfor selecting andretrieving one
`of the multiple alternative MP3files.
`15. The device of claim 12, wherein:
`the device interprets the control information to retrieve ,
`multiplefiles from the computer network for sequential
`play-out.
`
`8
`16. The device of claim 15, wherein:
`the meansfor parsing comprises an XMLparser; and
`the retrieving and using comprises an XMLinterpreter.
`
`ek Ok kk
`
`IPR2022-01228
`IPR2022-01228
`EXHIBIT 1008 - PAGE 0008
`EXHIBIT 1008 - PAGE 0008
`
`