`
`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