throbber
Case 1:20-cv-01202-UNA Document 1-3 Filed 09/09/20 Page 1 of 20 PageID #: 86
`Case 1:20-cv-01202—UNA Document 1-3 Filed 09/09/20 Page 1 of 20 PageID #: 86
`
`
`
`
`
`EXHIBIT 3
`
`EXHIBIT 3
`
`

`

`US010412141B2
`
`( 12 ) United States Patent
`Osborne
`
`( 10 ) Patent No . : US 10 , 412 , 141 B2
`( 45 ) Date of Patent :
`Sep . 10 , 2019
`
`( 54 ) SYSTEMS AND METHODS FOR SEEKING
`WITHIN MULTIMEDIA CONTENT DURING
`STREAMING PLAYBACK
`( 71 ) Applicant : DIVX , LLC , San Diego , CA ( US )
`( 72 ) Inventor : Roland Osborne , San Francisco , CA
`( US )
`( 73 ) Assignee : DIVX , LLC , San Diego , CA ( US )
`Subject to any disclaimer , the term of this
`( * ) Notice :
`patent is extended or adjusted under 35
`U . S . C . 154 ( b ) by 0 days .
`( 21 ) Appl . No . : 16 / 136 , 149
`Sep . 19 , 2018
`( 22 ) Filed :
`Prior Publication Data
`( 65 )
`US 2019 / 0020704 A1
`Jan . 17 , 2019
`
`Related U . S . Application Data
`( 63 ) Continuation of application No . 15 / 682 , 379 , filed on
`Aug . 21 , 2017 , which is a continuation of application
`( Continued )
`
`( 51 ) Int . Ci .
`( 2019 . 01 )
`GOOF 16 / 71
`H04L 29 / 06
`( 2006 . 01 )
`( Continued )
`( 52 ) U . S . CI .
`CPC . . . . . . . . . . . H04L 65 / 604 ( 2013 . 01 ) ; G06F 16 / 71
`( 2019 . 01 ) ; G06F 16 / 739 ( 2019 . 01 ) ;
`( Continued )
`( 58 ) Field of Classification Search
`CPC . . . . . . . . . . . GO6F 17 / 30 ; HO4L 65 / 40 ; HO4N 5 / 76
`( Continued )
`
`( 56 )
`
`CA
`CN
`
`References Cited
`U . S . PATENT DOCUMENTS
`5 / 2004 Lango et al .
`6 , 742 , 082 B1
`7 , 664 , 872 B2
`2 / 2010 Osborne et al .
`( Continued )
`FOREIGN PATENT DOCUMENTS
`2306524 AL 9 / 2001
`1575595 A
`2 / 2005
`( Continued )
`
`OTHER PUBLICATIONS
`Adobe Development Center : Flash video learning guide , printed
`Jan . 13 , 2009 from http : / / www . adobe . com / devnet / flash / articles /
`video guide _ 02 . html , 5 pgs .
`( Continued )
`Primary Examiner — Glenford J Madamba
`( 74 ) Attorney , Agent , or Firm — KPPB LLP
`ABSTRACT
`( 57 )
`A receiver driven approach for playback of remote content
`is described . One embodiment includes obtaining informa
`tion concerning the content of the media file from the remote
`server , identifying a starting location within the media
`sequence , identifying byte ranges of the media file corre
`sponding to media required to play the media sequence from
`the starting location , requesting the byte ranges required to
`play the media sequence from the starting location , buffering
`received bytes of information pending commencement of
`playback , playing back the buffered bytes of information ,
`receiving a user instruction , identifying byte ranges of the
`media file corresponding to media required to play the media
`sequence in accordance with the user instruction , flushing
`previous byte range requests , and requesting the byte ranges
`required to play the media in accordance with the user
`instruction .
`
`30 Claims , 9 Drawing Sheets
`
`Case 1:20-cv-01202-UNA Document 1-3 Filed 09/09/20 Page 2 of 20 PageID #: 87
`
`Stari
`
`Obtar index
`
`Determine start iocator
`
`Ootzin data
`
`46
`
`Determine required media
`
`Render multimedia
`
`NO
`
`NO
`
`: > - - - -
`mm
`
`- 50
`
`<
`
`User instruction ?
`
`Yes
`
`Stop playing ?
`
`Yes
`End
`
`

`

`US 10 , 412 , 141 B2
`Page 2
`
`( 51 )
`
`( 52 )
`
`( 56 )
`
`( 2019 . 01 )
`( 2006 . 01 )
`( 2006 . 01 )
`( 2011 . 01 )
`( 2011 . 01 )
`( 2011 . 01 )
`( 2011 . 01 )
`( 2011 . 01 )
`
`Related U . S . Application Data
`No . 14 / 632 , 670 , filed on Feb . 26 , 2015 , now Pat . No .
`9 , 794 , 318 , which is a continuation of application No .
`12 / 982 , 413 , filed on Dec . 30 , 2010 , now Pat . No .
`8 , 977 , 768 , which is a continuation of application No .
`11 / 970 , 493 , filed on Jan . 7 , 2008 , now Pat . No .
`7 , 886 , 069 .
`( 60 ) Provisional application No . 60 / 883 , 659 , filed on Jan .
`5 , 2007 .
`Int . CI .
`G06F 16 / 738
`HO4N 5 / 76
`H04N 5 / 783
`HO4N 7 / 173
`H04N 21 / 234
`H04N 21 / 44
`HO4N 21 / 472
`H04N 21 / 6587
`U . S . CI .
`CPC . . . . . . H04L 65 / 4084 ( 2013 . 01 ) ; H04L 65 / 4092
`( 2013 . 01 ) ; H04N 5 / 76 ( 2013 . 01 ) ; H04N 5 / 783
`( 2013 . 01 ) ; H04N 7717318 ( 2013 . 01 ) ; H04N
`21 / 23406 ( 2013 . 01 ) ; H04N 21 / 44004
`( 2013 . 01 ) ; H04N 21 / 472 ( 2013 . 01 ) ; H04N
`21 / 6587 ( 2013 . 01 )
`( 58 ) Field of Classification Search
`. . . . . . . . . . . . . . . . . 709 / 100
`USPC . . . . . . .
`See application file for complete search history .
`References Cited
`U . S . PATENT DOCUMENTS
`7 , 734 , 806 B26 / 2010 Park
`7 , 886 , 069 B2
`2 / 2011 Osborne
`7 , 895 , 311 B1
`2 / 2011 Juenger
`8 , 731 , 369 B2
`5 / 2014 Li et al .
`8 , 977 , 768 B2
`3 / 2015 Osborne
`9 , 794 , 318 B2
`10 / 2017 Osborne
`2002 / 0161797 A1 *
`10 / 2002 Gallo
`. . . . . . . . . . . . GO6F 17 / 30905
`715 / 203
`2003 / 0077071 AL
`4 / 2003 Lin et al .
`9 / 2003 Aggarwal . . . . . . . . . . . . . . . G06T 9 / 004
`2003 / 0169815 A1 *
`375 / 240 . 12
`2005 / 0102371 Al
`5 / 2005 Aksu
`9 / 2005 Zoest . . . . . . . . . . . . . . . G11B 20 / 00086
`2005 / 0207442 A1 *
`370 / 465
`2006 / 0037057 A
`2 / 2006 Xu
`2006 / 0059223 AL
`3 / 2006 Klemets et al .
`2006 / 0093318 Al
`5 / 2006 Cohen et al .
`2006 / 0129909 Al 6 / 2006 Butt et al .
`2006 / 0161635 A1 7 / 2006 Lamkin et al .
`2006 / 0168291 A1
`7 / 2006 Van Zoest et al .
`2006 / 0174021 A1
`8 / 2006 Osborne et al .
`2006 / 0174026 A1
`8 / 2006 Robinson et al .
`2006 / 0195884 Al 8 / 2006 Van Zoest et al .
`2006 / 0200744 Al
`9 / 2006 Bourke et al .
`2006 / 0294212 A
`12 / 2006 Kikkawa et al .
`2007 / 0083663 A1 4 / 2007 Tanabe et al .
`2007 / 0106863 A1
`5 / 2007 Bonwick et al .
`2007 / 0157267 A1
`7 / 2007 Lopez - Estrada
`2007 / 0162568 A1 *
`7 / 2007 Gupta . .
`. . . . .
`
`G06Q 30 / 0242
`709 / 219
`
`9 / 2007 Shaver et al .
`2007 / 0209005 Al
`9 / 2007 Loyer
`2007 / 0220118 A1
`1 / 2008 Wu et al .
`2008 / 0022005 Al
`3 / 2008 Moriya et al .
`2008 / 0071838 A1
`4 / 2008 Bodin et al .
`2008 / 0082576 Al
`7 / 2008 Osborne
`2008 / 0168133 Al
`7 / 2008 Epstein et al .
`2008 / 0177793 A1
`2009 / 0067367 A1
`3 / 2009 Buracchini et al .
`8 / 2010 Harrang et al .
`2010 / 0198943 A1
`2011 / 0099225 Al
`4 / 2011 Osborne
`2015 / 0172351 Al
`6 / 2015 Osborne
`12 / 2017 Osborne
`2017 / 0353520 Al
`FOREIGN PATENT DOCUMENTS
`1581971 A
`2 / 2005
`1596403 A
`3 / 2005
`1801929 A
`7 / 2006
`101636726 A
`1 / 2010
`101636726 B
`10 / 2013
`103559165 A
`2 / 2014
`2 / 2014
`103561278 A
`103559165 B
`8 / 2016
`103561278 B
`4 / 2017
`1534013 A1
`5 / 2005
`2122482 A1 11 / 2009
`2122482 B1 11 / 2018
`3467666 A1
`4 / 2019
`2003504984
`2 / 2003
`2003111048
`4 / 2003
`2003111048 A
`4 / 2003
`2004295568
`10 / 2004
`2004362099
`12 / 2004
`2005149029
`6 / 2005
`2005518726
`6 / 2005
`2005341334 A
`12 / 2005
`2006074511 A
`3 / 2006
`2010516123 A
`5 / 2010
`2001006788 A1
`1 / 2001
`2003046750
`6 / 2003
`WO - 03046750 A1 *
`6 / 2003
`2003071800 A1 8 / 2003
`2003088665 A
`10 / 2003
`2005057906 A2
`6 / 2005
`2006045334 AL
`5 / 2006
`2008086313 Al 7 / 2008
`
`CN
`CN
`CN
`CN
`CN
`CN
`CN
`CN
`CN
`EP
`EP
`EP
`EP
`
`E e e e e e eg
`
`JP
`WO
`WO
`WO
`WO
`WO
`Wo
`WO
`WO
`
`. . . . . . . H04L 29 / 06027
`
`OTHER PUBLICATIONS
`International Preliminary Report on Patentability for International
`Application No . PCT / US2008 / 050440 , Report Completed Aug . 7 ,
`2009 , dated Aug . 11 , 2009 , 8 pgs .
`International Search Report for International Application No . PCT /
`US2008 / 050440 , International Filing Date Jan . 7 , 2008 , Search
`completed Apr . 23 , 2008 , dated May 16 , 2008 , 2 pgs .
`RedOrbit News , New DivX Web Player Hits 1 Milling Downloads
`in One Week , printed Jan . 13 , 2009 from http : / / www . redorbit . com
`modules / news / tools . php ? tool = print & id = 421307 , 2 pgs .
`Vuze HD Network , printed Jun . 1 , 2009 from http : / / www . vuze . com /
`Index . html , 1 pg .
`Written Opinion of international Application No . PCT / US2008 /
`050440 ; International filed Jan . 7 , 2008 , Opinion completed Apr . 23 ,
`2008 , dated May 16 , 2008 , 9 pgs .
`Fielding et al . , “ Hypertext Transfer Protocol — HTTP1 . 1 " , Network
`Working Group , RFC 2616 , Jun . 1999 , 114 pgs .
`Extended European Search Report for European Application No .
`18206048 . 3 , Search completed Feb . 8 , 2019 , dated Feb . 21 , 2019 ,
`11 Pgs .
`* cited by examiner
`
`Case 1:20-cv-01202-UNA Document 1-3 Filed 09/09/20 Page 3 of 20 PageID #: 88
`
`

`

`atent
`
`Sep . 10 , 2019
`
`Sheet 1 of 9
`
`US 10 , 412 , 141 B2
`
`16
`
`* * * * * * * * * * *
`
`* * * * * * * * * * * *
`
`14
`
`Case 1:20-cv-01202-UNA Document 1-3 Filed 09/09/20 Page 4 of 20 PageID #: 89
`
`. .
`
`. . . . . . . . .
`
`. . .
`
`. . . . . .
`
`. . . .
`
`- - - - - - - - - - - - - - - - - - - - - - - - - -
`
`- - - - -
`
`Network
`
`26
`
`20
`
`92
`
`Internet
`
`FIG . 1
`
`

`

`atent
`
`Sep . 10 , 2019
`
`Sheet 2 of 9
`
`US 10 , 412 , 141 B2
`
`Start
`
`Obtain index
`
`Determine start location
`
`42
`
`44
`
`Obtain data
`
`wwwwwww 46
`
`Determine required media
`
`Render multimedia
`
`Case 1:20-cv-01202-UNA Document 1-3 Filed 09/09/20 Page 5 of 20 PageID #: 90
`
`FIG . 2
`
`User instruction ?
`
`Stop playing ?
`
`Yes
`
`End
`
`

`

`atent
`
`Sep . 10 , 2019
`
`Sheet 3 of 9
`
`US 10 , 412 , 141 B2
`
`60
`
`Playback Engine
`
`File Parser
`
`66
`
`Download Manager
`
`Case 1:20-cv-01202-UNA Document 1-3 Filed 09/09/20 Page 6 of 20 PageID #: 91
`
`FIG . 3
`
`

`

`atent
`
`Sep . 10 , 2019
`
`Sheet 4 of 9
`
`US 10 , 412 , 141 B2
`
`DivX Download Manager
`ODManager GetovaSots
`
`QVS Module
`
`DOManagerCreale
`DDManager Close
`
`- - -
`
`ODManagerFileOpen
`DDManagerfieclose
`DOManagerFileFlush
`
`DivX Download File
`
`siwiwuwu . 604 visive
`
`OVS Connection
`
`ettetetteketeeeeeeeeeeeee
`
`Remote File
`
`HTTP Connection
`
`Threach
`
`-
`
`- - - - - - - - - - - - - - - - - - -
`
`ODManagerFileRequestData
`DOManagerFileRead
`DOManagerFileCheck
`
`caloack
`
`- - - -
`
`- - - - - - -
`
`Partial File
`
`Completed Data File
`
`Micve Completed
`- - - - - -
`
`- - - -
`
`Status Fila
`
`Data File
`
`78
`
`- I - - I -
`
`- I - II - I - I -
`
`- I - I - I - - I - - I -
`
`- I -
`
`- I - I - - I - I -
`
`- I -
`
`- I - - I -
`
`- I -
`
`- I - I
`
`I
`
`- - - - - - - - - - - - - - - - - - - - - - -
`
`Case 1:20-cv-01202-UNA Document 1-3 Filed 09/09/20 Page 7 of 20 PageID #: 92
`
`Output File Path
`
`Temporary Data Path
`
`FIG . 4
`
`

`

`atent
`
`Sep . 10 , 2019
`
`Sheet 5 of 9
`
`US 10 , 412 , 141 B2
`
`Start
`
`W
`
`. . .
`
`Receive byte range
`
`Open connection
`
`Queue portions of byte
`range not already stored
`
`Request next byte
`range ( s ) in queue from
`remote server
`
`Byte range request
`received ?
`
`File download
`complete ?
`
`Yes
`- - - . . . V . .
`
`Close connection
`
`102
`
`FIG . 5
`
`Case 1:20-cv-01202-UNA Document 1-3 Filed 09/09/20 Page 8 of 20 PageID #: 93
`
`

`

`atent
`
`Sep . 10 , 2019
`
`Sheet 6 of 9
`
`US 10 , 412 , 141 B2
`
`Start
`
`Receive flush request
`
`momenomenad
`
`- 116
`
`Flush request queue
`
`Close connection
`
`Ed
`
`FIG . 6
`
`Case 1:20-cv-01202-UNA Document 1-3 Filed 09/09/20 Page 9 of 20 PageID #: 94
`
`

`

`atent
`
`Sep . 10 , 2019
`
`Sheet 7 of 9
`
`US 10 , 412 , 141 B2
`
`Start
`
`Receive bytes
`
`Update Status File
`
`Update Data File
`
`File complete ?
`
`Qutput downloaded file
`
`end
`
`FIG . 7
`
`138
`
`Case 1:20-cv-01202-UNA Document 1-3 Filed 09/09/20 Page 10 of 20 PageID #: 95
`
`

`

`U . S . Patent
`
`atent
`
`Sep . 10 , 2019
`
`Sheet 8 of 9
`
`US 10 , 412 , 141 B2
`
`Start
`
`Obtain menu information
`and number of media
`sequences
`
`* * * * * *
`
`* * * * * * * * * * 444444
`
`Obtain information
`concerning each media
`seqeunce
`
`
`
`
`
`
`
`
`
`
`
`??? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???
`
`
`
`
`
`
`
`
`
`
`
`
`
`Receive media sequence
`Selection
`
`* * * * * *
`
`yy
`
`Case 1:20-cv-01202-UNA Document 1-3 Filed 09/09/20 Page 11 of 20 PageID #: 96
`
`Obtain index to media
`Segeunce
`
`extract data
`
`( End
`
`)
`
`FIG . 8
`
`

`

`atent
`
`Sep . 10 , 2019
`
`Sheet 9 of 9
`
`US 10 , 412 , 141 B2
`
`190
`
`Start
`
`Index Extraction
`
`Data block selection
`
`Download data block
`
`Playback data block
`
`End
`
`FIG . 9
`
`Case 1:20-cv-01202-UNA Document 1-3 Filed 09/09/20 Page 12 of 20 PageID #: 97
`
`

`

`US 10 , 412 , 141 B2
`
`SYSTEMS AND METHODS FOR SEEKING
`WITHIN MULTIMEDIA CONTENT DURING
`STREAMING PLAYBACK
`CROSS - REFERENCE TO RELATED
`APPLICATIONS
`
`Browser based players often implement receiver driven
`playback by parsing the video file as it is downloaded
`linearly . When a long clip is started , it is impossible to seek
`or fast - forward to a point in the file that has not already been
`5 downloaded . Samba ( open source software available at
`http : / / us2 . samba . org / samba / ) can be used to give any appli
`cation access to a remote file as if it were a local file . It tries
`to minimize the access latency by pre - caching data from the
`The current application is a continuation of U . S . patent
`application Ser . No . 15 / 682 , 379 , entitled “ Video Distribu
`current file position , which can be randomly set . This may
`tion System Including Progressive Playback ” , filed Aug . 21 , 10 hei
`be insufficient when trying to perform “ trick play ” functions
`2017 , which is a continuation of U . S . patent application Ser .
`( e . g . performing functions such as rewinding , fast forward
`No . 14 / 632 , 670 , entitled “ Video Distribution System Includ
`ing and skipping between scenes that require non - sequential
`ing Progressive Playback ” , filed Feb . 26 , 2015 , which is a
`access of media content ) . The video frames to be delivered
`continuation of U . S . patent application Ser . No . 12 / 982 , 413 ,
`entitled " Video Distribution System Including Progressive 15 15 to the player in these scenarios can be spaced far apart or
`require more complex ordering , greatly diminishing the
`Playback ” , filed Dec . 30 , 2010 and issued as U . S . Pat . No .
`utility of traditional pre - caching methods which are based on
`8 , 977 , 768 on Mar . 10 , 2015 , which is a continuation of U . S .
`assumptions regarding the subsequent video frames to be
`patent application Ser . No . 11 / 970 , 493 , entitled “ Video
`Distribution System Including Progressive Playback ” , filed
`viewed .
`Jan . 7 , 2008 and issued as U . S . Pat . No . 7 , 886 , 069 on Feb . 20
`SUMMARY OF THE INVENTION
`8 , 2011 , which claims priority to U . S . Provisional Applica
`tion Ser . No . 60 / 883 , 659 , entitled " Video Distribution Sys
`Systems and methods are described for performing pro
`tem Including Progressive Playback ” , filed Jan . 5 , 2007 , the
`gressive playback and “ trick play ” functions on partially
`disclosures of which are incorporated herein by reference .
`25 downloaded media files . Many embodiments of the inven
`BACKGROUND
`tion include a receiver or player driven system supporting
`features such as the maintenance at all times of a full
`capacity download stream of only certain required data ,
`The present invention relates generally to playing multi -
`including data in certain byte ranges , the discarding of
`media files over a network and more specifically to the
`progressive playback of multimedia files as they are down - 30 previous requests , and the issuing of new requests for data
`at the highest priority . Additionally , several embodiments of
`loaded over a network .
`Progressive playback is the idea of playing back remote
`the invention include features such as random file access at
`content as it is being downloaded . With this feature a user
`any point in a file , and asynchronous requests , which pro
`can select a remote movie and commence watching it before
`vide users flexibility in the playback of a file . In a number
`it is fully downloaded . Even with a fast Internet connection , 35 of embodiments , the systems and processes support scal
`waiting for a movie to fully download can range from
`ability for implementation on Internet servers that store files
`minutes to hours depending on the size of the media file .
`that can contain multiple titles , titles that include multiple
`With progressive playback a user only has to wait a couple
`audio tracks , and / or titles that include one or more subtitle
`of seconds before playback can begin .
`tracks .
`Current implementations of receiver or player driven 40
`In several embodiments , the ability to provide full fea
`progressive playback , while suitable for the short video clips
`tured progressive playback is due in part to the tight cou
`that are dominant in many current applications , are typically
`pling of the playback engine for the media sequence ( i . e . , the
`limited in the scope and flexibility of the progressive play -
`system that decodes and plays back the encoded media ) with
`back they provide . Players typically download files linearly
`a transport protocol that provides random access to the
`from the beginning to the end . Playback then begins when 45 remote file . Interfacing of the playback engine with the
`the player has buffered enough data to provide a likelihood
`transport protocol via a file parser can reduce latency and
`that the media will play without interruption . The buffering
`enable the client and media server to operate in parallel
`requirement can either be a fixed amount suitable for a large
`improving download efficiency and interactivity . In a num
`percentage of content , or a dynamic amount , where the
`ber of embodiments , the system and processes are config
`player infers how much data is required to play the entire 50 ured for use with files that are formatted to include an index
`content without suffering buffer under - run . Although suit
`to the data within the file and a transport protocol that allows
`able for playback of short video clips , these methods typi -
`for downloading specific byte ranges within a file .
`cally do not support random seeking , trick - play and play
`One embodiment of the method of the invention includes ,
`back of remotely stored longer content such as feature length
`obtaining information concerning the content of the media
`55 file from the remote server , identifying a starting location
`movies .
`Some systems are implemented with a server driven
`within the media sequence , identifying byte ranges of the
`approach . Examples of server driven approaches include the
`media file corresponding to media required to play the media
`systems described in
`U . S . patent application Ser . Nos .
`sequence from the starting location , requesting the byte
`11 / 323 , 044 , 11 / 323 , 062 , 11 / 327 , 543 , and 11 / 322 , 604 , the
`ranges required to play the media sequence from the starting
`disclosure of which is incorporated herein by reference in its 60 location , buffering received bytes of information pending
`entirety . In these systems , the server parses the data file and
`commencement of playback , playing back the buffered bytes
`determines which data to send . Network efficiency and
`of information , receiving a user instruction , identifying byte
`flexibility in playback becomes a much easier task . Standard
`ranges of the media file corresponding to media required to
`HTTP web servers however do not typically provide this
`play the media sequence in accordance with the user instruc
`functionality , and custom web servers providing this func - 65 tion , flushing previous byte range requests , and requesting
`tionality often scale poorly when called upon to deliver
`the byte ranges required to play the media in accordance
`content simultaneously to a large number of players .
`with the user instruction .
`
`Case 1:20-cv-01202-UNA Document 1-3 Filed 09/09/20 Page 13 of 20 PageID #: 98
`
`

`

`US 10 , 412 , 141 B2
`
`requested portions of the media file and break at least one of
`A further embodiment of the method of the invention
`the connections in response to the receipt of a predetermined
`includes , maintaining a mask of the portions of the media
`user instruction .
`file that have been downloaded , identifying that at least a
`In still another embodiment of the invention , the client is
`portion of a byte range required to play the media in
`accordance with the user instruction has already been down - 5 configured to store a file map and a data file , the file map
`loaded using the mask , and requesting only the portions of
`contains a mask indicating the portions of the media file that
`byte ranges that have not already been downloaded from the
`have been downloaded , and the data file contains the down
`loaded portions of the media file .
`media server .
`Another embodiment of the method of the invention
`in a yet further embodiment of the invention , the data file
`includes storing downloaded bytes in a data file , and out - 10 is a sparse nie .
`In yet another embodiment of the invention , the media file
`putting the downloaded media file when all bytes of the
`includes a media sequence and an index , and the client
`media file have been downloaded .
`includes a playback engine configured to obtain the index
`In a still further embodiment of the method of the inven
`and determine the portions of the media sequence required
`tion , the data file is a sparse data file .
`15 to comply with user playback instructions , a file parser
`In still another embodiment of the method of the inven
`configured to use the index to map the portions of the media
`tion , the media file contains a plurality of media sequences
`sequence to portions of the media file and a download
`and menu information , and identifying a starting location
`manager configured to communicate with the media server
`within the media sequence further includes displaying menu
`to download portions of the media file .
`A further embodiment again of the invention includes a
`information , receiving a user instruction indicative of the 20
`selection of the media sequence , and receiving a user
`user interface configured to receive user instructions , a
`instruction indicative of a starting location within the media
`storage device configured to store at least one media file , a
`sequence .
`network connection , a download manager configured to
`In a yet further embodiment of the method of the inven -
`asynchronously request at least one byte range of a file from
`tion , the media sequence includes a plurality of interchange - 25 a remotely stored media file via the network connection , a
`able audio tracks , identifying a starting location within the
`playback engine configured to determine portions of a
`media sequence further comprises selecting an audio track ,
`remotely stored media file that must be downloaded in
`and identifying byte ranges of the media file corresponding
`response to user instructions received via the user interface ,
`to media required to play the media sequence from the
`and a file parser configured to translate requests for portions
`starting location further comprises selecting byte ranges that 30 of a remotely stored media file to byte ranges and to provide
`do not include the audio tracks that were not selected .
`the byte ranges to the download manager .
`In yet another embodiment of the method of invention , the
`In another embodiment again of the invention , the down
`media sequence includes a plurality of interchangeable
`load manager is configured to create a status file containing
`subtitle tracks , identifying a starting location within the
`a map of blocks of a media file that have been downloaded ,
`media sequence further comprises selecting a subtitle track , 35 and the download manager is configured to create a data file
`and identifying byte ranges of the media file corresponding
`in which to store blocks of a downloaded media file .
`to media required to play the media sequence from the
`In a further additional embodiment of the invention , the
`starting location further includes selecting byte ranges that
`download manager is configured to maintain a queue of
`do not include the subtitle tracks that were not selected .
`requested byte ranges .
`In a further embodiment again of the method of the 40
`In another additional embodiment of the invention , the
`invention , the sequence includes key frames , and identifying
`download manager is configured to flush the queue .
`byte ranges of the media file corresponding to media
`n a still yet further embodiment of the invention , the
`I
`required to play the media in accordance with the user
`playback engine is configured to generate a menu using
`instruction further includes identifying a sequence of key
`menu information obtained from a remote media file .
`frames in response to a predetermined user instruction , and 45
`In still yet another embodiment of the invention , the
`identifying byte ranges of the media file corresponding to
`playback engine is configured to receive a selection of one
`the identified key frames .
`of a plurality of media sequences in a remote media file via
`One embodiment of the invention includes a media server ,
`the menu .
`a client , and a network . In addition , the client and the media
`In a still further embodiment again of the invention , the
`server are configured to communicate via the network , the 50 playback engine is configured to receive a selection of one
`client is configured to send requests for at least one portion
`of a plurality of audio tracks for a media sequence in a
`of the media file to the media server , the server is configured
`remote media file via the menu .
`to provide requested portions of the media file to the client ,
`In still another embodiment again of the invention , the
`and the client is configured to receive user instructions
`playback engine is configured to receive a selection of a
`concerning the playback of the media file and to request 55 subtitle track for a media sequence in a remote media file via
`portions of the media file that have not been downloaded and
`the menu .
`that are required to comply with the playback instructions
`BRIEF DESCRIPTION OF THE DRAWINGS
`from the media server .
`In a further embodiment of the invention , proximate
`portions of the media file grouped and the groups are 60
`FIG . 1 is a semi - schematic network diagram of progres
`requested on an earliest deadline first basis .
`sive playback system in accordance with an embodiment of
`In another embodiment of the invention , the client is
`the invention .
`configured to maintain a queue of requested portions of the
`FIG . 2 is a flow chart showing a process for progressively
`playing back a remotely stored media file in accordance with
`media file .
`In a still further embodiment of the invention , the client 65 an embodiment of the invention .
`and the server are configured to communicate via at least one
`FIG . 3 is a conceptual illustration of a client application
`connection , and the client is configured to flush the queue of
`configured to request byte ranges from a remote server and
`
`Case 1:20-cv-01202-UNA Document 1-3 Filed 09/09/20 Page 14 of 20 PageID #: 99
`
`

`

`US 10 , 412 , 141 B2
`
`10
`
`tainer formats supported in a specific application . Although
`to support “ trick play ” functions in accordance with an
`embodiment of the invention .
`numerous embodiments are discussed below , other varia
`tions appropriate to different container formats can be con
`FIG . 4 is a conceptual illustration of a download manager
`in accordance with an embodiment of the invention .
`structed in accordance with embodiments of the invention .
`A progressive playback system in accordance with an
`FIG . 5 is a flow chart showing a process for requesting 5
`embodiment of the invention is shown in FIG . 1 . The
`byte ranges from a media server in accordance with an
`progressive playback system 10 includes a media server 12
`embodiment of the invention .
`FIG . 6 is a flow chart showing a process for flushing a
`connected to a network 14 . Media files are stored on the
`connection with a media server in accordance with an
`media server 14 and can be accessed by devices configured
`embodiment of the invention .
`with a client application . In the illustrated embodiment ,
`FIG . 7 is a flow chart showing a process for building a
`devices that access media files on the media server include
`data file during the non - sequential downloading of byte
`a personal computer 16 , a consumer electronics device such
`ranges of the data file in accordance with an embodiment of
`as a set top box 18 connected to a playback device such as
`the invention .
`a television 20 , and a portable device such as a personal
`FIG . 8 is a flow chart showing a process that can be used 15 digital assistant 22 or a mobile phone handset . The devices
`by a file parser to identify menu information and media
`and the media server 12 can communicate over a network 14
`sequences within a remote media file and to extract infor
`that is connected to the Internet 24 via a gateway 26 . In other
`mation from the file in accordance with an embodiment of
`embodiments , the media server 14 and the devices commu
`the invention .
`FIG . 9 is a flow chart showing a process used by a 20 nicate over the Internet .
`playback engine to obtain data chunks from a remote media
`The devices are configured with client applications that
`file formatted using a container format that utilizes chunks
`can request portions of media files from the media server 12
`for playing . The client application can be implemented in
`in accordance with an embodiment of the invention .
`software , in firmware , in hardware or in a combination of the
`DETAILED DESCRIPTION OF THE
`25 above . In many embodiments , the device plays media from
`INVENTION
`downloaded media files . In several embodiments , the device
`provides one or more outputs that enable another device to
`Turning now to the drawings , a system for progressively
`play the media . When the media file includes an index , a
`downloading and playing media is shown . In many embodi
`device configured with a client application in accordance
`ments , the media is stored in a file on a remote server and 30 with an embodiment of the invention can use the index to
`a device configured with a client application retrieves por
`determine the location of various portions of the media .
`tions of the media file and plays the media . The client
`Therefore , the index can be used to provide a user with “ trick
`application typically does not possess the entire media file
`play ” functions . When a user provides a “ trick play ” instruc
`when it commences playing and can request non - sequential
`portions of the media file . In this way , the client application 35 tion , the device uses the index to determine the portion or
`portions of the media file that are required in order to
`can support “ trick play ” functions . “ Trick play ” functions
`execute the “ trick play ” function and requests those portions
`impact the playing of a media file such as non - sequential
`from the server . In a number of embodiments , the client
`functions including pausing , rewinding , fast forwarding and
`skipping between scenes . Instead of sequentially download
`application requests portions of the media file using a
`ing a media file and waiting until the required information 40 transport protocol that allows for downloading of specific
`has been downloaded to perform a “ trick play ” function ,
`byte ranges within the media file . One such protocol is the
`client applications in accordance with embodiments of the
`HTTP 1 . 1 protocol published by The Internet Society or
`invention can determine portions of a media file that are
`BitTorrent available from www . bittorrent . org . In other
`required to support a specific “ trick play ” function and
`embodiments , other protocols and / or mechanisms can be
`request those portions of the file from the remote server . 45 used to obtain specific portions of the media file from the
`When a “ trick play ” function involves skipping to portions
`media server .
`of the media that have not been downloaded , such as fast
`A flow chart showing a process for requesting media from
`forwarding and skipping between chapters , latency can be
`a media server in accordance with an embodiment of the
`significantly reduced compared to sequential download .
`invention is shown in FIG . 2 . The process 40 includes
`The configuration of a progressive playback system in 50 obtaining ( 42 ) the index of the media file from the media
`accordance with an embodiment of the invention can depend
`server . A location from which to start playing the media file
`upon the container formats supported by the progressive
`is then determined ( 44 ) . In a number of embodiments , all
`playback system . Examples of container formats include the
`files commence playing at the start of a media sequence . In
`AVI 1 . 0 file format specified by Microsof

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket