`
`
`
`'s'nezeor \|l\\\l\|\\|\\\\|\l\\\\\\|\|\l\\\\\l\!\\0.Ld
`
`wt-IT/I/:L$K,0—V
`
`PROVISIONAL APPLICATION COVER SHEET
`This is a request for filing a PROVISIONAL APPLICATION under 37 CFR §l.53 (c).
`
`Attorney Docket No.: 5266-06200
`
`
`
`a
`
`T“'-«.m..P
`
`
`
`04/19/02
`
`31036u.s.
`
`60/373ee3”°IIIIHIIll!lllllllllllllflllllHllllllI
`
`
`LICANT(s)
`INVENTOR(s)/APP
`RESIDENCE (City and either State or Foreign Country)
`“““"“E
`
`
`INITIAL
`
`
`
`
`
`Illllllll
`
`jj
`
`Naemue. IL
`j Losmos, cA
`j Pans,
`j Naervme, IL
`j Redwooacu ,cA
`j samacramt cA
`
`
`
`
`
`CERTIFICATE OF EXPRESS MAIL
`
`
`
`UNDER 37 CFR. § 1.10
`
`
`
`
`
`“Express Mail” label number:
`EL 849601149 US
`
`DATE OF DEPOSIT:
`‘
`I hereby certify that this paper or fee is being deposited with the
`United States Postal Service “Express Mail Post Office to
`Addressee” Service Under 37 C.F.R. §1.1o on the date indicated
`above and is addressed to:
`BOX PROVISIONAL APPLICATION
`Assistant Commissioner for Patents
`
`TITLE OF THE INVENTION
`(280 characters max)
`SUPPORTING COMMON INTERACTIVE
`TELEVISION FUNCTIONALITY
`THROUGH PRESENTATION ENGHVE
`SYNTAX
`CORRESPONDENCE ADDRESS
`PH’ (512) 476- 14,00
`ROW D- Rankln
`Conley, Rose & Tayon
`P.O. Box 398
`ZIP CODE
`78767-0398
`
`
`
`
`ashington, DC. 202312%
`
`Derrick Brown
`
`
`
`
`
`
`
`ENCLOSED APPLICATION PARTS (check all that apply)
`Number of pages
`92
`
`COUNTRY
`U.S.A.
`
`
`
`
`
`CITY, STATE
`Austin, Texas
`
`
`
`
`|Z[
`
`Specification
`
`
`
`
`
`[2]
`
` METHOD OF PAYMENT (check one)
`A Fee Authorization is enclosed to cover the Provisional filing fees
`
`M The Commissioner is hereby authorized to charge filing fees and credit
`Deposit Account Number:
`$160.00
`PROVISIONAL FILfl\TG FEE AMOUNT:
`
`The invention was made by an agency of the United States Government or under a contract with an agency of the United States
`Govemment>
`
`501505/5266-06200/ARDR
`
`
`
`
`
`
`
`M No.
`
`I]
`
`Yes, the name of the U.S. Government agency and the Government contract number are:
`
`_
`Respectfully submittedefmw
`‘;t
`Signature
`, /I Date
`Typed or Printed Name: Rog D. Rankin
`Registration No.: 47,884
`
`
`
`I
`
`l (1
`
`I -5 7/
`
`I]
`
`Additional inventors are being named on separately numbered sheets attached hereto
`
`PROVISIONAL APPLICATION FILING ONLY
`
`Apple Ex. 1103, Page 1 of 94
`
`Apple Ex. 1103, Page 1 of 94
`
`
`
`IN THE UNITED STATES PATENT AND TRADEMARK OFFICE
`
`Group Art Unit: Unknown
`
`Examiner: Unknown
`
`Atty. Dkt. No.: 5266-06200
`
`§
`§
`§
`
`§ §
`
`CERTii:i:§§zF3,i)
`Express Mail Label No,: L 849601149 US
`
`
`
`States Postal Service “Express Mail Post Office to Addressee” Service.
`Under 37 C.F.R. §1.10 on the date indicated above and is addressed to.
`ASS‘ST“T§;?gg§:1g§§§;3RPATENTS —
`
`Derrick Brown
`
`§
`§
`§
`
`§ §
`
`§
`§
`
`§ §
`
`§
`
`In re Application of:
`
`Delpuch, er al.
`
`Filed: Concurrently Herewith
`
`SUPPORTING COMMON
`
`FU.N
`PRESENTATION ENGINE
`SYNTAX
`
`FEE AUTHORIZATION
`
`Commissioner for Patents
`
`Washington, D.C. 20231
`
`The Commissioner is hereby authorized to charge the following fee to Conley, Rose &
`
`Tayon, P.C. Deposit Account Number 501505/5266-06200/RDR:
`
`Fee:
`
`Amount:
`
`Provisional Application Filing Fee
`
`$160.00
`
`Attorney Docket No.2 5266-06200
`
`The Commissioner is also authorized to charge any extension fee or other fees which may
`
`be necessary to the same account number.
`
`Respectful
`
`mitted,
`
`ff Rory D. Rankin
`L Reg. No. 47,884
`Attorney for Applicants
`
`Conley, Rose & Tayon, P.C.
`P.O. Box 398
`
`Austin, Texas 78767-0398
`
`Ph: (512) 476-1400
`
`Date:
`
`l
`
`‘O’1/
`
`Apple Ex. 1103, Page 2 of 94
`
`
`
`
`
`QJ.d'S'fl8363f‘
`
`an/61/inllllIlllllllllllIIIIHIIIIMIIIHIIIH
`
`
`
`5
`352.
`
`Apple Ex. 1103, Page 2 of 94
`
`
`
`Supporting Common Interactive Television Functionality
`
`through Presentation Engine Syntax
`
`Alain Delpuch
`
`James Whitledge
`
`Jean—Rene Menand
`
`Emmanuel Barbier
`
`Kevin Hausman
`
`Debra Hensgen
`
`Danny Su
`
`
`
`Page 1
`
`Apple Ex. 1103, Page 3 of 94
`
`Apple Ex. 1103, Page 3 of 94
`
`
`
`0 TABLE OF CONTENTS
`
`0 Table Of Contents .......................................................................................................... .. 2
`
`1 Introduction .................................................................................................................... .. 4
`
`2 Controlling the Display and Playing of Video, Graphics, and Audio in HTML/JS ...... .. 5
`2.1 Color and transparency ........................................................................................... .. 5
`2.1.1 The clut property.............................................................................................. .. 7
`2.1.2 Alpha Properties............................................................................................... .. 8
`2.1.3 Problems with some lower-end receivers ...................................................... .. 10
`
`2.2 When to render the graphics ................................................................................. .. 10
`2.3 Video positioning and resizing ............................................................................. .. 11
`2.4 Support for MPEG stills........................................................................................ .. 12
`2.5 Control of Audio ................................................................................................... .. 13
`
`3 Tuning and Stream Selection ....................................................................................... .. 14
`3.1 Stream Selection Events ....................................................................................... .. 14
`
`3.2 URL which can be used for tuning and stream selection...................................... .. 14
`3.2.1 A/V MIME types associated with the broadcast: url ..................................... .. 15
`3.2.2 Examples ........................................................................................................ .. 16
`3.3 Simple Tuning and Stream Selection .................................................................... .. 17
`3.3.1 Usage of the URLs for Simple Tuning and Stream Selection ....................... .. 17
`3.4 Powerful Stream Control via the Pipes Javascript Object .................................... .. 17
`3.4.1 The Pipes Collection ...................................................................................... .. 18
`3.4.2 The TvComponent object .............................................................................. .. 19
`4 Obtaining Applications and Data ................................................................................. .. 21
`4.1 Access to Broadcast (non-AV) Resources ............................................................ .. 21
`4.1.1 Access using the Current Server Protocol ..................................................... .. 21
`Examples ..................................................................................................................... .. 22
`4.1.2 Http: URL Scheme and the broadcast stream ................................................ .. 23
`4.1.3 Relative URLs ................................................................................................ .. 24
`
`4.2 Modem Control ..................................................................................................... .. 25
`5 User Interaction ............................................................................................................ .. 27
`
`5.1 Navigation ............................................................................................................. .. 27
`5.1.1 Focus & focus highlight ................................................................................. .. 27
`5.2 Navigation properties ............................................................................................ .. 27
`5.3 Virtual Keyboard control ...................................................................................... .. 29
`5.4 Key Input .............................................................................................................. .. 30
`5.5 Key codes .............................................................................................................. .. 30
`5.6 Event handlers ....................................................................................................... .. 32
`
`ANNEX A. Fonnal syntax of Broadcast URL Scheme .................................................. .. 33
`ANNEX B: SUPPLEMENT - Supporting Common Interactive Television Functionality
`through Presentation Engine Syntax ............................................................................... .. 34
`ANNEX C: Positioning of Graphics on top of Video ..................................................... .. 80
`Positioning of Graphics on top of Video .................................................................... .. 80
`ANNEX D: Authoring for showstoppers and prefetch priorities in declarative content .. 83
`1 Background .................................................................................................................. .. 84
`2 Showstopper and prefetch requirements ...................................................................... .. 85
`
`
`
`jg
`
`1‘
`
`Page 2
`
`Apple Ex. 1103, Page 4 of 94
`
`Apple Ex. 1103, Page 4 of 94
`
`
`
`3 Current support within DASE and DVB MHP ............................................................ .. 86
`3.1 Support Within DASE ........................................................................................... .. 86
`3.2 Support within DVB-MHP ................................................................................... .. 86
`4 Proposal for authoring.................................................................................................. .. 87
`4.1 Showstoppers ........................................................................................................ .. 87
`4.1.1 Minimal proposal ........................................................................................... .. 87
`4.1.2 Additional proposed enhancements ............................................................... .. 87
`4.2 Prefetch prioritization ........................................................................................... .. 88
`ANNEX E: Extended Uniform Resource Identifiers for Television Broadcasts ............ .. 89
`
`
`
`Page 3
`
`Apple Ex. 1103, Page 5 of 94
`
`Apple Ex. 1103, Page 5 of 94
`
`
`
`
`
`1 INTRODUCTION
`
`This document includes a description of how authors may use HTML, Javascript,
`or other languages with television extensions to create viable interactive television
`content.
`
`
`
`Page 4
`
`Apple Ex. 1103, Page 6 of 94
`
`Apple Ex. 1103, Page 6 of 94
`
`
`
`
`
`2 CONTROLLING THE DISPLAY AND PLAYING OF VIDEO,
`GRAPHICS, AND AUDIO IN HTML/JS
`
`This section describes how graphics can be positioned and sized on top of video, how the
`video itself can be positioned and sized, and how the audio can be controlled.
`Transparency between the graphics plane and the video plane is also covered in this
`section. Additionally, palette-based color is defined in this section because it is required
`for HTML user agents that execute on the lower end set-top boxes. Also, because the
`MPEG I-Frame is generally rendered in the Video plane, its use is documented here as
`well.
`
`TV middleware should support multiple graphics and Video layers. Digital television
`differs from the PC environment in that the hardware is configured so that there is a
`bottommost layer which is used to display video, and an interactive layer on top of that,
`which is used to display text and graphics. The rendering of video, both stills (e.g., 1-
`frames) and in—motion video, is currently always supported by a hardware MPEG
`decoder. Although this document does not depend upon the decoding occurring in
`hardware, it does assume that there is a hard limit on the number of MPEG streams/stills
`that can be simultaneously rendered in real-time.
`
`There typically exists a layer on top of the OSD layer called the subtitle layer.
`Manipulation of the content of the subtitle layer is delayed until a later version of this
`document.
`
`There may also be a layer logically lying between the bottommost layer and the
`interactive layer called the multi-plane graphics layer. The multi-plane graphics layer is
`used to display still pictures, for example, to display JPEG images or MPEG images.
`This version of the document provides some support for MPEG images in this layer as
`documented under the section on MPEG I-frames below; however, the transparency
`between this layer and other layers may not be supportable on the lowest end receivers.
`
`
`
`2.1 Color and transparency
`
`Lower end set-top boxes do not have sufficient memory to support true color; therefore, a
`palette-based model is useful in such receivers. With a palette based model, the color of
`a pixel of an image or the color corresponding to characters of text is represented by an
`index into a color palette. Different content authors can then choose different sets of hues
`to place in their palette, thus lessening the restrictions upon creators while still
`minimizing the memory impact. The actual colors in a palette are typically represented
`as 48-bit numbers, the first three of those numbers representing the actual color and the
`fourth of the numbers representing the amount of transparency in the color. There are
`two different color hyperplanes, one known as RGB, which is commonly used for
`computer terminals and printers and the other is known as YUV, traditionally used for
`television. In a system where the number of colors supportable is limited and only a
`
`Page 5
`
`Apple Ex. 1103, Page 7 of 94
`
`Apple Ex. 1103, Page 7 of 94
`
`
`
`single application can run at a time, having the application declare its own color palette
`works well. However, in a system where multiple applications can run simultaneously, if
`each application declares its own color palette the viewer experience can be disturbing,
`particularly if both applications attempt to use different parts of the screen at the same
`time. In a system where there is sufficient memory to support true color, multiple
`applications can share the screen with no problem because the fixed color palette is large
`enough to accommodate the multiple different hues required by each application.
`Therefore, HTML user agents should support, when possible, true color. When memory
`constraints are such that true color is not supportable, they may support a combination
`fixed-variable palette, where the variable components are specified by the application.
`Depending upon the implementation, the first m of n colors may be fixed, with the 0m
`color being fully transparent. When there are 8 bits available for color (256 color
`palette), the first 188 colors may be as specified in the DVB MHP color palette. The
`remaining colors may be taken from the first colors specified by the color palette
`accompanying the image; hence an application content designer may ensure that the most
`important colors are placed first into the palette.
`If it is necessary to support multiple
`applications, each of which brings its own color palette, then the system may choose to
`place into the palette a mixture of the first colors in each of the application/image specific
`palettes. Therefore, pop-up applications, for example, may be written using only the
`fixed colors. Similarly, any time it is expected that multiple images will be sharing the
`screen, the author of those applications may get best results by using only the fixed colors
`in one of the images or the same palette for both of the images. The description of how
`an application identifies its palette is provided in the next sub-section entitled “The clut
`property.”
`
`Transparency between the graphics and video plane is extremely important in interactive
`television, as the viewer often wants to be able to see the video that is running under the
`interactive text or images. Since the underlying video is opaque, if the Porter-Duff rule
`were used for composing the graphics and video plane, the video would show through the
`graphics when the graphics are transparent. The Porter-Duff SRC rule is easy to compute
`because the transparency of one object over top of another chooses the alpha
`(transparency) value of the object on top as the transparency of the composed objects.
`This result in some cases may appear somewhat un-natural looking; however, graphic
`artists are accustomed to planning their layout with this rule in mind.
`
`Standards such as DVB MHP specify that the SRC-Over rule is the default rule for
`composing graphics over video; however, because it is computationally complex to
`compute the resulting alpha value, DVB MHP receivers are permitted to approximate the
`SRC-Over rule using the SRC rule (unless the object [or part thereof] on the top is
`completely transparent, in which case, they are not supposed to apply the pixel values for
`the transparent object [or part thereof]).
`It appears as though evolving W3C standards
`are leaning toward specifying SRC-Over as the default composition rule also. Therefore
`HTML tv user agents may use the defaults specified by the latest standards; however, in
`many cases receivers may not have sufficient computational power to actually compute
`the SRC-Over composition; hence, in those boxes, HTML user agents may be permitted
`to approximate SRC-Over using, for example, the Porter-Duff SRC rule. The palette
`
`
`
`Page 6
`
`Apple Ex. 1103, Page 8 of 94
`
`Apple Ex. 1103, Page 8 of 94
`
`
`
`
`
`
`
`
`
`format discussed below allows images whose colors are specified using an index into a
`palette to also specify per-pixel transparency values through the use of an alpha channel.
`However, for other images, backgrounds, etc., another method is required for specifying
`the transparency; therefore, new properties which allow the specification of these alpha
`values is described in the subsection below entitled “Alpha Properties.”
`
`2.1.1 The clut property
`
`An application author can specify that a particular palette (often referred to as a color
`lookup table or “clu ” for short) may be useful in rendering objects in the body of an
`HTML page. This palette could be used in one of several ways. One way is in a vertical
`network where the author may both specify a palette and specify colors of objects only
`using that palette because they have the knowledge that all receivers have identical,
`limited color capabilities. The other way is to serve as a hint as to the best colors to use
`on a receiver with limited color capabilities, when the author expects that their
`application would be used in a horizontal network that consists of a mixture of receivers
`of varying capabilities. The author specifies this by using the ‘clut’ property documented
`below. The <url> value is used to direct the OpenTV HTML product that contains the
`actual palette. If no <url> value is specified, or there is no ‘clut’ property in the style
`sheet or inline, the Netscape palette is used. The MIME type associate with a url that
`contains a palette in the format defined below may be “application/clut,” with an
`extension of “.clt”.
`
`Format of alettes of
`
`go a o lication/clut:
`
`
`
`
`
`
`
`
`
`——
`—__—
`—____——
`—— T
`
`
`
`
`
`he value of 1 for the color model is used to indicate RGB, whereas the color 2 is used to
`indicate YUV. The value in nb_colors is the number of colors in the palette. The first,
`second, and third amounts (amt_f1rst, etc.) refer to the amount of RGB or YUV,
`depending upon the value of color_model. The value in alpha represents transparency
`with 0 being transparent and 255 being opaque. The purpose of the first_color value is to
`allow multiple resources, each specifying their own palette, to share the color space.
`
`Page 7
`
`Apple Ex. 1103, Page 9 of 94
`
`Apple Ex. 1103, Page 9 of 94
`
`
`
`
`
`Additionally, HTML user agents may accept cluts in the format used by “png” images;
`the types of these cluts may be the same as entire png images.
`
`‘clut’
`
`Value:
`Initial:
`Applies to:
`Inherited:
`Percentage Values:
`Media type:
`
`<url>| none
`Netscape default
`body
`yes
`N/A
`tv
`
`<BODY style=”http://cnn.com/demoClut.clt”>
`
`Usage example (using inline style):
`
`2.1.2 Alpha Properties
`
`Use of an application-specific palette allows an author to specify the alpha channel
`corresponding to a particular index. However, currently W3C has no standard way of
`specifying an alpha Value. Therefore, we introduce the following alpha properties.
`In
`each of the properties, the value #FF is fully opaque and the value #00 is fully
`transparent.
`
`‘alpha’
`
`Value:
`<normalized—number>
`Initial:
`Applies to:
`Inherited:
`Percentage Values:
`Media type:
`
`<hexadecimal—integer> I <percentage> l
`
`#FF
`All elements
`yes
`percent opacity
`tv
`
`
`<BODY style=”background: black; background—alpha:#00”>
`
`Usage example:
`<EM color=#OO808O style=”alpha:#C0”>
`
`The normalized—number ranges between 0.0 (fully transparent) and 1.0
`(fully opaque). Similarly,
`0% means fully transparent and 100% means
`fully opaque. These same terms are used with the identical meaning in
`the properties below.
`
`‘background—alpha’
`
`Value:
`<normalized—number>
`
`<hexadecimal—integer>
`
`I <percentage> |
`
`Initial :
`Applies to:
`Inherited:
`
`#FF
`All elements
`no
`
`Percentage Values:
`tv
`
`percent opacity Media type:
`
`Usage example:
`
`Page 8
`
`Apple Ex. 1103, Page 10 of 94
`
`Apple Ex. 1103, Page 10 of 94
`
`
`
`Similarly, the following propetties are convenient.
`
`‘border—alpha’
`Value:
`<normalized—number>
`
`<hexadecimal—integer> | <percentage> I
`
`Initial:
`
`Applies to:
`Inherited:
`
`#FF
`All elements
`no
`
`Percentage Values:
`Media type:
`
`percent opacity
`tv
`
`‘border—top—alpha’
`Value:
`<normalized—number>
`
`<hexadecimal—integer>
`
`| <percentage> I
`
`Initial:
`
`Applies to:
`Inherited:
`
`#FF
`All elements
`no
`
`Percentage Values:
`tv
`
`percent opacity Media type:
`
`‘border—bottom-alpha’
`Value:
`<normalized—number>
`
`<hexadecimal-integer>
`
`I <percentage> |
`
`Initial:
`
`Applies to:
`Inherited:
`
`#FF
`All elements
`no
`
`Percentage Values:
`tV
`
`percent opacity Media type:
`
`‘border—left—alpha’
`Value:
`<normalized—number>
`
`<hexadecimal—integer>
`
`| <percentage> |
`
`Initial:
`
`Applies to:
`Inherited:
`
`#FF
`All elements
`no
`
`Percentage Values:
`tV
`
`percent opacity Media type:
`
`‘border—right—alpha’
`Value:
`<normalized—number>
`
`<hexadecimal—integer>
`
`| <percentage> (
`
`Initial:
`
`Applies to:
`Inherited:
`
`Percentage Values:
`Media type:
`
`#FF
`All elements
`no
`
`percent opacity
`tV
`
`Page 9
`
`Apple Ex. 1103, Page 11 of 94
`
`Apple Ex. 1103, Page 11 of 94
`
`
`
`‘outlir1e—alpha’
`
`Value:
`<normalized—number>
`
`<hexadecimal—integer>
`
`| <percentage> I
`
`tv
`
`Initial:
`Applies to:
`Inherited:
`
`#FF
`All elements
`no
`
`Percentage Values:
`
`percent opacity Media type:
`
`
`
`2.1.3 Problems with some lower-end receivers
`
`Some lower end receivers are unable to simultaneously play video and display a full OSD at the
`same time. Therefore, particular care is needed when writing interactive content for these boxes.
`An HTML product on one of these boxes should not attempt to interpret content on those boxes,
`unless a META element, as shown below, is used to indicate that the content was designed
`specifically for these boxes.
`
`Header meta-data:
`<META name="tv—use" content="full-screen">
`
`2.2 When to render the graphics
`
`When rendering graphics as they are downloaded, it sometimes makes sense to delay
`displaying to the Viewer until at least a subset of the resources, which have been deemed
`as essential by the content creator, have been downloaded. The proposed HTML content
`may allow a content creator to label the essential subset of resources by identifying them
`using a “prerequisite” meta—data header. For example, the following indicates that no
`rendering for the page should occur prior to acquiring “background.mpg”
`
`<META name=”prerequisite” content=”http: //www. cnn. com/background.mpg”>
`
`In addition to indicating that certain resources should be acquired prior to rendering, a
`content author may fiirther control the rendering through the use of the render—policy and
`render-timeout properties described below.
`
`The progressive rendering policy indicates that displaying can start as soon as the
`essential resources (those marked as prerequisites in meta—data headers) have been
`acquired. With this policy, as resources are acquired, they are incorporated into the rendered
`and displayed graphics.
`
`The layoutcomplete rendering policy indicates that the rendered image may not be
`displayed until the software has acquired sufficient information to determine the
`complete on-screen layout and has acquired those resources labeled as prerequisities.
`This policy prevents objects fiom appearing to move around as the rendered graphics
`incrementally appear onscreen.
`
`Page 10
`
`Apple Ex. 1103, Page 12 of 94
`
`Apple Ex. 1103, Page 12 of 94
`
`
`
`The loadcomplete rendering policy indicates that the graphics should not be
`displayed until all resources that will be used for rendering the display have been
`downloaded. The only difference between the loadComplete rendering policy and
`labeling all resources as prerequisites, is that in the first case the OnLoad event may have
`been delivered to the appropriate handler, if any, prior to rendering, and hence may affect
`the rendered view.
`
`render-policy: progressive | |ayoutComplete | loadcomplete
`Applies to: Body
`initial: progressive
`Inherited: no
`
`Percentage: N/A
`
`It is possible, in unusual circumstances, that the specified rendering policy may not be
`possible, i.e., if a prerequisite resource is not available in a broadcast and acquisition via
`a modem has been denied by the viewer. If no timeout for this loading has been
`specified, then the timeout will default to 15 seconds as shown in the render-timeout
`property below. If a timeout occurs, and at least all of the prerequisite resources have
`been acquired, what is available for the new page may be displayed, independent of the
`specified rendering policy. If some of the prerequisite resources have not been acquired,
`then it is preferable, if possible, for the display to show the previous page, if any. If this
`is not possible, then either an error message, which is customizable, may appear or the
`box may render and display those resources which it has been able to acquire.
`
`render-timeout
`initial
`
`none I <time>
`155
`
`In any case, while the box is acquiring the resources for the new page, it is preferable to continue
`to display the old page, and, if possible, allow the viewer to interact with the old page.
`
`2.3 Video positioning and resizing
`
`This section identifies how the html/js (or similar language) developer can control the
`placement, and scaling of the currently tuned video stream(s). How the developer can
`choose particular video (and audio) streams is covered in the TV Tuning and Service
`Selection Section.
`
`The location and size of the currently playing video stream can be controlled by using
`“broadcast:” as the “src” or as the source of “data” of an HTML element for which
`
`location and/or size are specified. In particular, the location can be specified through the
`use of CSS.
`
`If a content designer wishes to zoom inon a particular part of the video, they could
`enlarge the entire video and use a graphics overlay to clip the part of the video that is not
`desired. A clipping property might also be useful in this case.
`
`
`
`
`
`; 37.1:
`
`
`
`Page 11
`
`Apple Ex. 1103, Page 13 of 94
`
`Apple Ex. 1103, Page 13 of 94
`
`
`
`The examples below demonstrate how a “broadcast” url can be used in an IMG or
`OBJECT element to request a particular scaling size.
`
`<IMG height=300 width=400 style="position:absolute;lefi:200px;top:80px”
`src="broadcast:
`">
`
`<OBJECTheight=300 width=4OO data=”broadcast: “></OBJECT>
`
`Both of the examples above request that the currently tuned channel (identified by the url,
`“broadcast:”) be scaled to the size of 300 by 400. The first example also demonstrates
`how CSS properties can be used to position the resulting video box. Although the actual
`size and position of the video may be partly determined by the capabilities of both the
`set-top box and the drivers supplied for given hardware, HTML user agents should
`attempt to position and scale the video as specified by the content author.
`
`The CSS3 fit and fit-position properties can be used by the content author to indicate
`desired behavior in the event that the set-top box is unable to re-size the video to exactly
`fit the specified height and width. As indicated above for sealing and placement, not all
`boxes may be able to support all of the values for these properties. Also, HTML user
`agents should not support scrolling for video. Two particularly usefiil values for the fit
`property are meet and slice. They can be used to indicate whether, when the video cannot
`be exactly scaled to the requested sizes, a larger or smaller size may be chosen. In the
`case that a larger size is chosen (slice), an overflow property can be used to indicate
`whether the part of the video that lies outside of the originally specified rectangle may be
`visible or hidden. Because video scrolling is not desirable, other values for the overflow
`treatment need not be supported. The remaining values for the fit property and all of the
`values for the fit-position property pertain to positioning within the specified box, in the
`event that the requested size is unavailable. These values may be supported on receivers
`where capabilities exist and may be silently ignore them where they are not supported.
`
`If the set-top box is unable to re-size the video to exactly fit the specified height and
`width, and fit and fit-position properties do not specify otherwise, then user agents may
`guarantee that the display size will be no larger than the specified size and the video.
`
`
`
`2.4 Support for MPEG stills
`
`HTML user agents may support displaying of MPEG stills, or I-Frames, in either the
`video plane or in the multi-plane graphics layer. Because set-top boxes almost
`exclusively have special purpose hardware for efficient rendering of MPEG, MPEG
`images are particularly appropriate for the television environment. The decoding of the I-
`Frames is done by calls from the user agent to the appropriate drivers and therefore is
`typically not expected to be done in software by user agents. It is expected that user
`agents may support displaying of l\/EPEG stills in the video plane on all set-top boxes,
`and, on those set-top boxes that support MultiP1ane graphics, displaying of MPEG stills
`in the MultiP1ane graphics plane may also be supported.
`
`Page 12
`
`Apple Ex. ll03, Page 14 of 94
`
`—v—«Cv»-a~i:i»i~ill~§:’-"‘”i€j
`
`K
`
`I
`
`Apple Ex. 1103, Page 14 of 94
`
`
`
`MPEG I-frames can be recognized by the MIME type of image/mpeg and may have an
`extension of mpg
`
`The following example demonstrates the use of an MPEG I~Frame.
`
`<html>
`<head>
`
`<title>example</title>
`</head>
`
`</html>
`
`<body style=”background—image:url(http://pepsi.com/pepsi—ad.mpg)">
`
`</body>
`
`2.5 Control of Audio
`
`
`
`Selection of particular audio streams, when multiple ones are available on the same
`channel, is described in the Tuning and Stream Selection section. This section instead
`deals with playing of audio from memory and controlling the audio stream after it has
`been selected. The CSS aural properties can be used to control the audio stream and
`audio being played from memory. Aural style sheets allow content developers to control
`the volume, allow the presentation of audio icons (cues), and even allow the developer to
`control spatial properties and mixing. User agents may support these properties,
`including: the volume properties, the pause properties, and the mixing properties. HTML
`itself provides a way to specify an audio element using the <bgsound> tag. There are
`currently a few events defined on this element: onlayoutcomplete, onmouseenter,
`onmouseleave, onreadystatechange. OpenTV’s HTML products may support
`onlayoutcomplete as well as onreadystatechange.
`In addition to an attribute that allows
`looping of the associated recording, the <bgsound> element also supports a starts
`attribute.
`
`Although CSS provides a way to support volume control, a Javascript object may be used
`to implement ‘mute.’ The reason for this is that the object needs to remember the
`previous volume setting, so that when the sound it turned back on, it may immediately be
`set back to the volume to which it was set prior to muting.
`
`Page 13
`
`Apple Ex. 1103, Page 15 of 94
`
`Apple Ex. 1103, Page 15 of 94
`
`
`
`3 TUNING AND STREAM SELECTION
`
`User agents may provide two different ways for tuning and stream selection. One is quite
`simple, uses HTML only, and assumes that the content author has sufficient a priori
`knowledge as described below. The other way uses Javascript, does not assume the same
`a priori knowledge, and is generic enough to be applicable to stream selection from a
`local hard drive or VOD. Both make use of a new URL defined here known as the
`“broadcast” URL.
`
`First, the URL which is used in both methods is described. In this section, only an
`informal description o