throbber

`

`patent" and does not eliminate the need of applicants to file additional documents and fees in countries where patent
`protection is desired.
`
`Almost every country has its own patent law, and a person desiring a patent in a particular country must make an
`application for patent in that country in accordance with its particular laws. Since the laws of many countries differ
`in various respects from the patent law of the United States, applicants are advised to seek guidance from specific
`foreign countries to ensure that patent rights are not lost prematurely.
`
`Applicants also are advised that in the case of inventions made in the United States, the Director of the US PTO must
`issue a license before applicants can apply for a patent in a foreign country. The filing of a U.S. patent application
`serves as a request for a foreign filing license. The application's filing receipt contains further information and
`guidance as to the status of applicant's license for foreign filing.
`
`Applicants may wish to consult the USPTO booklet, "General Information Concerning Patents" (specifically, the
`section entitled "Treaties and Foreign Patents") for more information on timeframes and deadlines for filing foreign
`patent applications. The guide is available either by contacting the USPTO Contact Center at 800-786-9199, or it
`can be viewed on the USPTO website at http://www.uspto.gov/web/offices/pac/doc/general/index.html.
`
`For information on preventing theft of your intellectual property (patents, trademarks and copyrights), you may wish
`to consult the U.S. Government website, http://www.stopfakes.gov. Part of a Department of Commerce initiative,
`this website includes self-help "toolkits" giving innovators guidance on how to protect intellectual property in specific
`countries such as China, Korea and Mexico. For questions regarding patent enforcement issues, applicants may
`call the U.S. Government hotline at 1-866-999-HAL T (1-866-999-4158).
`
`LICENSE FOR FOREIGN FILING UNDER
`
`Title 35, United States Code, Section 184
`
`Title 37, Code of Federal Regulations, 5.11 & 5.15
`
`GRANTED
`
`The applicant has been granted a license under 35 U.S.C. 184, if the phrase "IF REQUIRED, FOREIGN FILING
`LICENSE GRANTED" followed by a date appears on this form. Such licenses are issued in all applications where
`the conditions for issuance of a license have been met, regardless of whether or not a license may be required as
`set forth in 37 CFR 5.15. The scope and limitations of this license are set forth in 37 CFR 5.15(a) unless an earlier
`license has been issued under 37 CFR 5.15(b). The license is subject to revocation upon written notification. The
`date indicated is the effective date of the license, unless an earlier license of similar scope has been granted under
`37 CFR 5.13 or 5.14.
`
`This license is to be retained by the licensee and may be used at any time on or after the effective date thereof unless
`it is revoked. This license is automatically transferred to any related applications(s) filed under 37 CFR 1.53(d). This
`license is not retroactive.
`
`The grant of a license does not in any way lessen the responsibility of a licensee for the security of the subject matter
`as imposed by any Government contract or the provisions of existing laws relating to espionage and the national
`security or the export of technical data. Licensees should apprise themselves of current regulations especially with
`respect to certain countries, of other agencies, particularly the Office of Defense Trade Controls, Department of
`State (with respect to Arms, Munitions and Implements of War (22 CFR 121-128)); the Bureau of Industry and
`page 2 of 3
`
`DivX Exhibit 2001
`Netflix & Hulu v. DivX, IPR2020-00648
`Page 2001 - 2
`
`

`

`Security, Department of Commerce (15 CFR parts 730-774); the Office of Foreign AssetsControl, Department of
`Treasury (31 CFR Parts 500+) and the Department of Energy.
`
`NOT GRANTED
`
`No license under 35 U.S.C. 184 has been granted at this time, if the phrase "IF REQUIRED, FOREIGN FILING
`LICENSE GRANTED" DOES NOT appear on this form. Applicant may still petition for a license under 37 CFR 5.12,
`if a license is desired before the expiration of 6 months from the filing date of the application. If 6 months has lapsed
`from the filing date of this application and the licensee has not received any indication of a secrecy order under 35
`U.S.C. 181, the licensee may foreign file the application pursuant to 37 CFR 5.15(b).
`
`page 3 of 3
`
`DivX Exhibit 2001
`Netflix & Hulu v. DivX, IPR2020-00648
`Page 2001 - 3
`
`

`

`MSXXXXXX.0 1/MSFTP2625US
`
`Title: DYNAMIC COMPOSITION OF MEDIA FOR DEVICES
`
`TECHNICAL FIELD
`
`[0001]
`
`The subject disclosure relates to dynamic composition of media for
`
`streaming to consuming devices.
`
`BACKGROUND
`
`[0002]
`
`Existing solutions for composing media and streaming to devices or
`
`either do not allow for independent combination of media files at all because they
`
`require single files containing a permanently fixed set of tracks, or require non(cid:173)
`
`standardized and proprietary methods to combine independent tracks available on the
`
`server, which limit widespread industry implementation and adoption due to the
`
`closed nature of such systems.
`
`[0003]
`
`For instance, with respect to digital versatile disks (DVD) and Blu-ray
`
`track formats, the tracks are provided as a single file containing many tracks, thus
`
`limiting flexibility and usability.
`
`[0004]
`
`For another example, media presentation description (MPD) and other
`
`adaptive streaming solutions that switch entire files cannot independently switch
`
`tracks, so are, in practicality, limited to switching only video bitrates.
`
`[0005]
`
`The above-described deficiencies of today's techniques are merely
`
`intended to provide an overview of some of the problems of conventional systems,
`
`and are not intended to be exhaustive. Other problems with conventional systems and
`
`corresponding benefits of the various non-limiting embodiments described herein may
`
`become further apparent upon review of the following description.
`
`SUMMARY
`
`[0006]
`
`A simplified summary is provided herein to help enable a basic or
`
`general understanding of various aspects of exemplary, non-limiting embodiments
`
`that follow in the more detailed description and the accompanying drawings. This
`
`summary is not intended, however, as an extensive or exhaustive overview. Instead,
`
`the sole purpose of this summary is to present some concepts related to some
`
`DivX Exhibit 2001
`Netflix & Hulu v. DivX, IPR2020-00648
`Page 2001 - 4
`
`

`

`MSXXXXXX.0 1/MSFTP2625US
`
`exemplary non-limiting embodiments in a simplified form as a prelude to the more
`
`detailed description of the various embodiments that follow.
`
`[0007]
`
`In one or more embodiments, dynamic composition is enabled, which
`
`relates to the ability to create interoperable combinations of content by the publisher,
`
`e.g., determined to be an optimal combination, and offer such combinations to client
`
`devices in an interoperable way to allow simple selection by devices without complex
`
`programming, web pages, etc. specific to each device. Compositions are dynamic in
`
`that new audio, video, subtitle, etc. tracks can be added to a given composition
`
`without changing any of the other tracks, e.g., by updating the composition's
`
`extensible markup language (XML), and new compositions can be created or removed
`
`at any time without changing any audio or video files.
`
`[0008]
`
`In various non-limiting embodiments, interoperable and scalable
`
`"discovery" is also enabled whereby random devices can contact a Web server, find
`
`and play a composition matched to the given devices and users, e.g., optimal
`
`composition for a given device and user. Using the content identification and
`
`description format of compositions, the devices can search, sort, browse, display, etc.
`
`content that is available, determine if it is compatible at the device, decode and
`
`determine digital rights management (DRM) level, and content level (such as
`
`compatible language, optimum display resolution e.g. not 240 line video on a 1080
`
`line screen, stereo for headphones, multichannel for a surround sound system, etc.).
`
`[0009]
`
`In one or more embodiments, presentations can be initialized on
`
`devices based on track set information that provides information on the set of tracks
`
`available for playback in a selected composition.
`
`[0010]
`
`Compositions enable flexible selection between multiple wire formats
`
`for compatibility with more devices (e.g., some devices are limited to MPEG-2
`
`Transport Streams, MP4 multiplex files, or protected interoperable file format (PIFF)
`
`Fragmented international organization for standardization (ISO) Base Media files, and
`
`so on).
`
`[0011]
`
`In this regard, compositions enable selection of new request protocols
`
`in combinations with some wire formats, such as PIFF, that eliminate the need to
`
`frequently request updates from the server. Time based Requests can use time
`
`information in the video stream that is shared by all alternate tracks in order to push
`
`information necessary for the next universal resource locator (URL) requests for an
`
`entire Switch Group or Groups sharing a common timeline. Event information can
`
`2
`
`DivX Exhibit 2001
`Netflix & Hulu v. DivX, IPR2020-00648
`Page 2001 - 5
`
`

`

`MSXXXXXX.0 1/MSFTP2625US
`
`also be delivered in other ways, e.g., "sparse tracks" in Smooth Streaming Transport
`
`Protocol (SSTP).
`
`[0012]
`
`Track sets enable a standardized way for devices to switch between
`
`tracks while streaming based on codec, resolution, camera angle, language, audio
`
`channels (e.g., 2.0, 5.1, 7.1 ch, etc.), subtitles, content type (e.g., dialog, translation,
`
`commentary, description for visually impaired, etc.). The track sets are thus formed
`
`based on, e.g., optimized for, streaming with the selected tracks downloaded, as
`
`opposed to being a single file containing many tracks, such as in the case of DVD and
`
`Blu-ray track formats.
`
`[0013]
`
`These and other embodiments are described in more detail below.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0014]
`
`Various non-limiting embodiments are further described with reference
`
`to the accompanying drawings in which:
`
`[0015]
`
`Figure 1 is a block diagram representing exemplary non-limiting
`
`networked environments in which various embodiments described herein can be
`
`implemented; and
`
`[0016]
`
`Figure 2 is a block diagram representing an exemplary non-limiting
`
`computing system or operating environment in which one or more aspects of various
`
`embodiments described herein can be implemented.
`
`DETAILED DESCRIPTION
`
`[0017]
`
`By way of an introduction, Media Description for Adaptive Streaming
`
`is a description of a set of media resources available for HTTP Adaptive Streaming
`
`(HAS), which is composed of three layers. Additional details can be found in
`
`Appendix A.
`
`[0018]
`
`At the top is a "composition" layer for describing arrangements of
`
`resources suitable for various endpoint consumptions. For example, there may be one
`
`arrangement suitable for portable devices and another for personal computers, or
`
`another for a certain "wire format" ( e.g. MPEG2-TS or fragmented MP4 ), or another
`
`for a family friendly version of the content. Some of these may be chosen
`
`automatically by the terminal while others are driven by the user interacting with
`
`player controls. It is the composition that combines an appropriate set of audio, video,
`
`and text tracks.
`
`3
`
`DivX Exhibit 2001
`Netflix & Hulu v. DivX, IPR2020-00648
`Page 2001 - 6
`
`

`

`MSXXXXXX.0 1/MSFTP2625US
`
`[0019]
`
`Below the composition layer is the "track set" layer for describing the
`
`various media component tracks available as alternatives both for adapting to network
`
`and client conditions, and for user choice. These sets are separated into those that are
`
`"seamlessly switchable" those that are "selectable" but result in a non-seamless
`
`transition. A given track set always deals with a single media component type.
`
`[0020]
`
`Below the track set layer is the "presentation" layer for describing
`
`periods of contiguous representations of media segments available as HTTP resources
`
`for incremental streaming. The segmented nature of these representations allows the
`
`streaming to be adapted to varying network and client conditions. This layer has
`
`descriptive information for all the tracks, including declaration of which tracks are
`
`switchable.
`
`[0021]
`
`With respect to compositions and track sets, dynamic composition
`
`relates to the ability to create interoperable combinations of content determined to be
`
`optimal by the publisher and offer them to client devices in an interoperable way to
`
`allow simple selection by devices without complex programming, web pages, etc.
`
`specific to each device. Compositions are dynamic in the sense that new audio, video,
`
`subtitle, etc. tracks can be added without changing any of the other tracks just by
`
`updating the Composition XML, and new Compositions can be created or removed at
`
`any time without changing any audio or video files.
`[0022]
`
`In contrast, existing solutions require some non-standardized method
`
`to combine independent tracks available on the server, or don't allow for independent
`
`combination because they require single files containing a permanently fixed set of
`
`tracks.
`
`[0023]
`
`[0024]
`
`An additional feature is interoperable and scalable "discovery".
`
`Random devices can contact a Web server, find and play an optimal
`
`Composition for the device and user. Using the standard content identification and
`
`description format of Compositions, they can search, sort, browse, display, etc.
`
`content that is available, determine if it is compatible at the device, decoding, DRM
`
`level, and content level (such as compatible language, optimum display resolution e.g.
`
`not 240 line video on a 1080 line screen, stereo for headphones, multichannel for a
`
`surround sound system, etc.).
`
`[0025]
`
`Presentations can be initialized on devices as a result of Track Set
`
`information that provides information on the set of Tracks available for playback in
`
`the selected Composition.
`
`4
`
`DivX Exhibit 2001
`Netflix & Hulu v. DivX, IPR2020-00648
`Page 2001 - 7
`
`

`

`MSXXXXXX.0 1/MSFTP2625US
`
`[0026]
`
`Compositions enable flexible selection between multiple wire formats
`
`for compatibility with more devices (i.e. some devices are limited to MPEG-2
`
`Transport Streams, MP4 multiplex files, or PIFF Fragmented ISO Base Media files.
`
`[0027]
`
`Compositions enable selection of new Request Protocols in
`
`combinations with some wire formats, such as PIFF, that eliminate the need to
`
`constantly request updates from the server. Time based Requests can use time
`
`information in the video stream that is shared by all alternate tracks in order to push
`
`the information necessary for the next URL requests for an entire Switch Group or
`
`Groups sharing a common timeline.
`
`[0028]
`
`Track sets enable a standardized way for devices to switch between
`
`tracks while streaming based on codec, resolution, camera angle, language, audio
`
`channels (2.0, 5.1, 7.1 ch, etc.), subtitles, content type (dialog, translation,
`
`commentary, description for visually impaired, etc.). That is similar in function to
`
`DVD and Blu-ray, but optimized for streaming with only the selected tracks
`
`downloaded, not a single file containing many tracks as in the case of DVD and Blu(cid:173)
`
`ray. MPD and other adaptive streaming solutions that switch entire files cannot
`
`independently switch tracks, so are in practicality limited to switching only video
`
`bitrates.
`
`[0029]
`
`The following diagrams provide an overview of Composition and
`
`Track Set schema.
`
`5
`
`DivX Exhibit 2001
`Netflix & Hulu v. DivX, IPR2020-00648
`Page 2001 - 8
`
`

`

`

`

`

`

`

`

`

`

`MSXXXXXX.O 1/MSFTP2625US
`
`</xs:scherna>
`
`[0031]
`
`With respect to presentations, additional information is provided to
`
`specify the use of single-track partial Representations. The extension optionally
`
`inserts a single TrackGroupinfo element in a Period element (as allowed by the MPD
`
`schema extensibility). This element contains a list of elements describing
`
`Representation groups as denoted by their @ group attribute value. In addition, it
`
`contains any number of elements describing arbitrary timelines for the Segments in
`
`Representation groups for those cases where constant duration Segments cannot be
`
`sourced.
`
`[0032]
`
`With respect to schema description terminology, in this schema,
`
`element instances can be referenced by other element instances in a different part of
`
`the XML hierarchy. These elements contain unique numeric identifiers that are used
`
`for the reference. The referring elements contain an attribute with the suffix "Ref' to
`
`hold the reference identifier value.
`
`[0033]
`
`With respect to Representation Group, when a RepresentationGroup
`
`element is present for a given Representation group, all Representations in the
`
`associated group must be partial Representations with a single track of the same
`
`media component type (e.g. audio, video, or text). Therefore, a RepresentationGroup
`
`must not specify group zero.
`
`[0034]
`
`Further, all such Representations of the same group number must be
`
`seamlessly switchable. In other words, the requirements of the MPD Period attributes
`
`@segmentAlignmentFlag and @bitstreamSwitchingFlag both being true are met even
`
`though those attributes may be false for the containing Period.
`
`[0035]
`
`The required @groupRef attribute declares which Representation
`
`group is being described.
`
`[0036]
`
`The optional @timelineidRef attribute is used to reference a particular
`
`timeline (see below). If this attribute is absent, then one of the standard
`
`Representation Url elements must be present in all Representations of the group.
`
`[0037]
`
`The RepresentationGroup declares the media component type of all the
`
`tracks in the group by containing one and only one of the Audio Rep Info,
`
`VideoRepinfo, or TextRepinfo elements. These elements contain additional attributes
`
`that are unique to their types.
`
`10
`
`DivX Exhibit 2001
`Netflix & Hulu v. DivX, IPR2020-00648
`Page 2001 - 13
`
`

`

`MSXXXXXX.0 1/MSFTP2625US
`
`[0038]
`
`An optional list of up to four SegmentRequest Variant elements can
`
`also be present. This list allows a mapping of the four request types to arbitrary strings
`
`to be substituted into the request URL. These types allow requesting a full segment
`
`(FULL), only the information header of a segment (INFO), only the sample data part
`
`of a segment (SAMP), or a segment that contains INFO but followed by only the key
`
`frames of the SAMP (KEYF). This last type is particularly useful for fast forward and
`
`reverse modes.
`
`[0039]
`
`The optional @switchableSetld attribute allows multiple
`
`RepresentationGroup elements to be associated into a single switchable set. For
`
`example, if two camera angles are presented by two different Representation groups,
`
`but all the tracks are seamlessly switchable, the two RepresentationGroup elements
`
`would have identical @switchableSetld values.
`
`[0040]
`
`If any Segment initialization data is common to all tracks in the
`
`Representation group, the common InitializationSegmentURL element can reside in
`
`the RespresentationGroup instead of in the individual Representation elements. Also
`
`in this case, the initialization data can be embedded directly in the @segmentlnitData
`
`attribute instead of having an InitializationSegmentURL element.
`
`[0041]
`
`With respect to SegmentTimeline, the optional SegmentTimeline
`
`element provides a way to express non-regular Representation segment durations. The
`
`element instances stand alone and have a unique @id attribute value to allow multiple
`
`Representation Group elements to refer to the same timeline. Typically a set of
`
`switchable tracks will all refer to the same timeline.
`
`[0042]
`
`Times and durations in the timeline are expressed as rational numbers
`
`in seconds. The @timescale value provides the denominator while the time and
`
`duration values provide the numerator.
`
`[0043]
`
`The SegmentTimeline contains a list of S elements with each
`
`specifying a required start time @t, a required duration @d, and an optional @r for
`
`the a number of times the duration is to be repeated for a contiguous set of Segments.
`
`[0044]
`
`[0045]
`
`[0046]
`
`The repeat value is zero based and defaults to zero.
`
`The <S> elements are sorted by their @t attribute values.
`
`The required @sourceUrlTemplate attribute provides a template for
`
`creating Segment request URLs. This template always contains either a $Time$ or
`
`$Index$ substitution tag. The $Time$ tag is replaced by the segment start time while
`
`the $Index$ substitution tag is replaced by the segment index into the timeline.
`
`11
`
`DivX Exhibit 2001
`Netflix & Hulu v. DivX, IPR2020-00648
`Page 2001 - 14
`
`

`

`MSXXXXXX.O 1/MSFTP2625US
`
`[0047]
`
`The @sourceUrlTemplate can optionally contain $Bandwidth$,
`
`$PeriodBaseURL$, $RepBaseURL$, or $SegReqType$ substitution tags. The
`
`$Bandwidth$ is replaced by the Representation @bandwidth attribute value for the
`
`chosen track in the group. The base URL tags allow arbitrary placement of the MPD
`
`Period and Representation @baseURL attribute values in the resulting resource URL
`
`value. The $SegReqType$ tag is replaced by one of the SegmentRequestVariant
`
`types.
`
`[0048]
`
`The following is an MPD schema extension overview table
`
`Cardinality
`Use/default
`[0 .. 1]
`
`[l..N]
`
`R
`
`0
`
`0
`
`0
`
`Description
`
`Type
`
`complex
`
`complex
`
`uint
`
`uint
`
`uint
`
`An optional single element
`to contain a set of
`RepresentationGroup and
`SegmentTimeline elements.
`Additional information
`about a set of single-track
`partial Representations with
`the same @group attribute
`value.
`The associated
`Representation @ group
`number.
`The associated Timeline
`@id number.
`A numeric id to associate
`multiple Representation
`groups that are seamlessly
`switchable between all
`tracks in the groups.
`An element common for all MPD
`tracks in the group. The
`UrlType
`Representations in the group
`should not have an
`InitializationSegmentURL
`element when it is present
`here.
`Embedded data for taking
`the place of the
`InitializationSegmentURL
`element and only present in
`its absence.
`
`Element or Attribute
`name
`TrackGroui2Info
`
`RepresentationGroup
`
`- @groupRef
`
`- @timelineldRef
`
`- @switchableSetld
`
`-
`InitializationSegmentURL
`
`- @segmentlnitData
`
`hexBinary 0
`
`- AudioReplnfo
`
`Declares Representation
`track media component type
`to be audio and provides
`additional attributes.
`
`complex
`
`[choice]
`
`12
`
`DivX Exhibit 2001
`Netflix & Hulu v. DivX, IPR2020-00648
`Page 2001 - 15
`
`

`

`MSXXXXXX.0 1/MSFTP2625US
`
`- -
`@nalUnitLengthFieldSize
`- - @sampleRateHz
`- - @channels
`- - @packetSize
`- VideoReplnfo
`
`- -
`@nalUnitLengthFieldSize
`- TextReplnfo
`
`MP4/15 NAL unit length
`field size in octets.
`Audio sample rate in Hertz.
`Number of audio channels.
`Block alignment in octets.
`Declares Representation
`track media component type
`to be video and provides
`additional attributes.
`MP4/15 NAL unit length
`field size in octets
`Declares Representation
`track media component type
`to be video and provides
`additional attributes.
`FourCC code to declare the
`purpose of the text.
`- SegmentRequest Variant A list of possible Segment
`request variants.
`FourCC code to declare the
`type of the variant. These
`types are FULL, INFO,
`SAMP, KEYF.
`For the desired type of
`request, the string to be
`substituted in the
`SegmentTimeline
`@sourceUrlTemplate
`$SegReqType$ tag.
`
`- - @purpose4CC
`
`- - @type4CC
`
`- - @urlTag
`
`SegmentTimeline
`
`- @id
`
`- @timescale
`
`- @sourceUrlTemplate
`
`Segment timeline
`information for a switchable
`set of Representations.
`The id to be referenced in
`the RepresentationGroup
`@timelineidRef attribute.
`The number of timeline
`units per second. This forms
`the denominator for
`expressing time in seconds
`as a rational number.
`A URL template to be used
`in place of the Url or
`UrlTemplate elements
`available in the
`Representations in the
`group.
`Requires substitution tag of
`$Time$ or $Index. Optional
`
`13
`
`uint
`
`0/ 4
`
`uint
`uint
`uint
`complex
`
`R
`R
`R
`[choice]
`
`uint
`
`0/ 4
`
`complex
`
`[choice]
`
`string
`
`0
`
`complex
`
`[0 . .4]
`
`string
`
`R
`
`string
`
`R
`
`complex
`
`[l..N]
`
`uint
`
`uint
`
`R
`
`R
`
`anyURI
`
`R
`
`DivX Exhibit 2001
`Netflix & Hulu v. DivX, IPR2020-00648
`Page 2001 - 16
`
`

`

`

`

`

`

`

`

`

`

`MSXXXXXX.0 1/MSFTP2625US
`
`[0052]
`
`This provides the option to reduce the number of additional HTTP
`
`GET requests required to load all the description information completely.
`
`[0053]
`
`Additional non-limiting details are provided in Appendix A, which is
`
`expressly incorporated herein to this description by accompanying the present detailed
`
`description.
`
`EXEMPLARY NETWORKED AND DISTRIBUTED ENVIRONMENTS
`
`[0054]
`
`One of ordinary skill in the art can appreciate that the various
`
`embodiments of dynamic composition described herein can be implemented in
`
`connection with any computer or other client or server device, which can be deployed
`
`as part of a computer network or in a distributed computing environment, and can be
`
`connected to any kind of data store where media may be found. In this regard, the
`
`various embodiments described herein can be implemented in any computer system or
`
`environment having any number of memory or storage units, and any number of
`
`applications and processes occurring across any number of storage units. This
`
`includes, but is not limited to, an environment with server computers and client
`
`computers deployed in a network environment or a distributed computing
`
`environment, having remote or local storage.
`
`[0055]
`
`Distributed computing provides sharing of computer resources and
`
`services by communicative exchange among computing devices and systems. These
`
`resources and services include the exchange of information, cache storage and disk
`
`storage for objects, such as files. These resources and services also include the sharing
`
`of processing power across multiple processing units for load balancing, expansion of
`
`resources, specialization of processing, and the like. Distributed computing takes
`
`advantage of network connectivity, allowing clients to leverage their collective power
`
`to benefit the entire enterprise. In this regard, a variety of devices may have
`
`applications, objects or resources that may participate in the smooth streaming
`
`mechanisms as described for various embodiments of the subject disclosure.
`
`[0056]
`
`Fig. 1 provides a schematic diagram of an exemplary networked or
`
`distributed computing environment. The distributed computing environment
`
`comprises computing objects 110, 112, etc. and computing objects or devices 120,
`
`122, 124, 126, 128, etc., which may include programs, methods, data stores,
`
`programmable logic, etc., as represented by applications 130, 132, 134, 136, 138. It
`
`can be appreciated that objects 110, 112, etc. and computing objects or devices 120,
`
`18
`
`DivX Exhibit 2001
`Netflix & Hulu v. DivX, IPR2020-00648
`Page 2001 - 21
`
`

`

`MSXXXXXX.0 1/MSFTP2625US
`
`122, 124, 126, 128, etc. may comprise different devices, such as PDAs, audio/video
`
`devices, mobile phones, MP3 players, personal computers, laptops, etc.
`
`[0057]
`
`Each object 110, 112, etc. and computing objects or devices 120, 122,
`
`124, 126, 128, etc. can communicate with one or more other objects 110, 112, etc. and
`
`computing objects or devices 120, 122, 124, 126, 128, etc. by way of the
`
`communications network 140, either directly or indirectly. Even though illustrated as
`
`a single element in Fig. 1, network 140 may comprise other computing objects and
`
`computing devices that provide services to the system of Fig. 1, and/or may represent
`
`multiple interconnected networks, which are not shown. Each object 110, 112, etc. or
`
`120, 122, 124, 126, 128, etc. can also contain an application, such as applications 130,
`
`132, 134, 136, 138, that might make use of an API, or other object, software,
`
`firmware and/or hardware, suitable for communication with or implementation of the
`
`smooth streaming provided in accordance with various embodiments of the subject
`
`disclosure.
`
`[0058]
`
`There are a variety of systems, components, and network
`
`configurations that support distributed computing environments. For example,
`
`computing systems can be connected together by wired or wireless systems, by local
`
`networks or widely distributed networks. Currently, many networks are coupled to the
`
`Internet, which provides an infrastructure for widely distributed computing and
`
`encompasses many different networks, though any network infrastructure can be used
`
`for exemplary communications made incident to the dynamic composition systems as
`
`described in various embodiments.
`
`[0059]
`
`Thus, a host of network topologies and network infrastructures, such as
`
`client/server, peer-to-peer, or hybrid architectures, can be utilized. The "client" is a
`
`member of a class or group that uses the services of another class or group to which it
`
`is not related. A client can be a process, i.e., roughly a set of instructions or tasks, that
`
`requests a service provided by another program or process. The client process utilizes
`
`the requested service without having to "know" any working details about the other
`
`program or the service itself.
`
`[0060]
`
`In a client/server architecture, particularly a networked system, a client
`
`is usually a computer that accesses shared network resources provided by another
`
`computer, e.g., a server. In the illustration of Fig. 1, as a non-limiting example,
`
`computers 120, 122, 124, 126, 128, etc. can be thought of as clients and computers
`
`110, 112, etc. can be thought of as servers where servers 110, 112, etc. provide data
`
`19
`
`DivX Exhibit 2001
`Netflix & Hulu v. DivX, IPR2020-00648
`Page 2001 - 22
`
`

`

`MSXXXXXX.0 1/MSFTP2625US
`
`services, such as receiving data from client computers 120, 122, 124, 126, 128, etc.,
`
`storing of data, processing of data, transmitting data to client computers 120, 122,
`
`124, 126, 128, etc., although any computer can be considered a client, a server, or
`
`both, depending on the circumstances. Any of these computing devices may be
`
`processing data, or requesting transaction services or tasks that may implicate the
`
`techniques for dynamic composition systems as described herein for one or more
`
`embodiments.
`
`[0061]
`
`A server is typically a remote computer system accessible over a
`
`remote or local network, such as the Internet or wireless network infrastructures. The
`
`client process may be active in a first computer system, and the server process may be
`
`active in a second computer system, communicating with one another over a
`
`communications medium, thus providing distributed functionality and allowing
`
`multiple clients to take advantage of the information-gathering capabilities of the
`
`server. Any software objects utilized pursuant to the techniques for performing read
`
`set validation or phantom checking can be provided standalone, or distributed across
`
`multiple computing devices or objects.
`
`[0062]
`
`In a network environment in which the communications network/bus
`
`140 is the Internet, for example, the servers 110, 112, etc. can be Web servers with
`
`which the clients 120, 122, 124, 126, 128, etc. communicate via any of a number of
`
`known protocols, such as the hypertext transfer protocol (HTTP). Servers 110, 112,
`
`etc. may also serve as clients 120, 122, 124, 126, 128, etc., as may be characteristic of
`
`a distributed computing environment.
`
`EXEMPLARY COMPUTING DEVICE
`
`[0063]
`
`As mentioned, advantageously, the techniques described herein can be
`
`applied to any device where it is desirable to perform dynamic composition. It should
`
`be understood, therefore, that handheld, portable and other computing devices and
`
`computing objects of all kinds are contemplated for use in connection with the various
`
`embodiments, i.e., anywhere that a device may wish to read or write transactions from
`
`or to a data store. Accordingly, the below general purpose remote computer described
`
`below in Fig. 2 is but one example of a computing device. Additionally, a database
`
`server can include one or more aspects of the below general purpose computer, such
`
`as a media server or consuming device for the dynamic composition techniques, or
`
`other media management server components.
`
`20
`
`DivX Exhibit 2001
`Netflix & Hulu v. DivX, IPR2020-00648
`Page 2001 - 23
`
`

`

`MSXXXXXX.0 1/MSFTP262

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