`
`September 26, 2023
`
`THIS IS TO CERTIFY THAT ANNEXED IS A TRUE COPY FROM THE
`RECORDS OF THIS OFFICE OF THE FILE WRAPPER AND CONTENTS
`OF:
`
`APPLICATION NUMBER: 13/532,546
`FILING DATE: June 25, 2012
`PATENT NUMBER: 9767195
`ISSUE DATE: September 19, 2017
`
`Page 1 of 611
`
`Comcast, Ex. 1174
`
`
`
`FIsH & RICHARDSON P.C.
`
`Frederick P. Fish
`1855-1930
`
`W.K. Richardson
`1859-1951
`
`June 25, 2012
`
`Attorney Docket No.: 30160-0005001
`
`Commissioner for Patents
`P.O. Box 1450
`Alexandria, VA 22313-1450
`
`Presented for filing is a new continuation in part patent application of:
`
`Applicant: DAVID STROBER
`
`Street Address
`601 LeExiINGVON AVENUE,
`52ND FLooR
`NewYork, New York
`10022
`
`Mail Address
`P.O. Box 1022
`MINNEAPOLIS, MINNESOTA
`55440-1022
`Telephone
`212 765-5070
`
`Facsimile
`877 769-7945
`
`Web Site
`meecem
`
`@
`
`ATLANTA
`
`AUSTIN
`
`BOSTON
`
`DALLAS
`
`DELAWARE
`
`HOUSTON
`
`MUNICH
`
`NEW YORK
`
`SILICON VALLEY
`
`SOUTHERN CALIFORNIA
`
`TWIN CITIES
`
`WASHINGTON, DC
`
`Title:
`
`VIRTUALIZED HOSTING AND DISPLAYING OF CONTENT
`USING A SWAPPABLE MEDIA PLAYER
`
`Assignee: Touchstream Technologies, Inc.
`
`Enclosed are the following papers, including those required to receivea filing date
`under 37 C.F.R. § 1.53(b):
`
`Pages
`17
`7
`1
`[To be Filed at a Later Date]
`4
`
`Specification
`Claims
`Abstract
`Declaration
`Drawing(s)
`
`Enclosures:
`
`— Application Data Sheet, 5 pages.
`— Information disclosure statement, | page.
`PTO-1449, 4 pages.
`
`Applicant claims small entity status. See 37 CFR 1.27.
`
`Page 2 of 611
`
`Page 2 of 611
`
`
`
`FisH & RICHARDSON P.C.
`
`Commissioner for Patents
`June 25, 2012
`Page 2
`
`Basic Filing Fee
`Search Fee
`
`Examination Fee
`
`over 20
`Total Claims 25
`over 3
`Independent Claims 4
`Fee for Multiple Dependent claims
`Application size fee for each 50 pages over 100
`No ( 10 +4)*.75) - 100)/50 = No0 x
`Total Filing fee
`
`5 x $30
`1x $125
`
`$95
`$310
`
`$125
`
`$150
`$125
`$0
`
`$0
`$805
`
`Thefiling fee in the amount of $805 is being paid concurrently herewith on the
`Electronic Filing System (EFS) by way of Deposit Account authorization. Please
`apply all charges or credits to Deposit Account No. 06-1050, referencing Attorney
`Docket No. 30160-0005001.
`
`If this application is found to be incomplete, or if a telephone conference would
`otherwise be helpful, please call the undersigned at (212) 765-5070.
`
`Please direct all correspondenceto the following:
`
`26211
`PTO Customer Number
`
`Respectfully submitted,
`
`/Samuel Borodach/
`
`Samuel Borodach
`Reg. No. 38,388
`Enclosures
`SXB/ptr
`30700085.doc
`
`Page 3 of 611
`
`Page 3 of 611
`
`
`
`Attorney Docket No.: 30160-0005001
`
`VIRTUALIZED HOSTING AND DISPLAYING OF CONTENT USING A
`SWAPPABLE MEDIA PLAYER
`
`RELATED APPLICATION(S)
`
`[0001] The present application is a continuation-in-part of U.S. Application No,
`
`13/1457,821, filed on June 10, 2011, which in turn claims the benefit of priority of U.S.
`
`Provisional Patent Application No, 61/477,998, filed on April 21, 2011. The contents of
`
`the earlier applications are incorporated herein by reference.
`
`BACKGROUND
`
`[0002] Techniques are knownto facilitate operating a display device remotely from a
`
`personal computing device, such as a mobile phone, in order to view a videofile or other
`
`content on the display device. For example, U.S. Patent Application No. 13/157,821
`
`describes a system in which a server system acts as a single interface that can be used to
`
`control any one of multiple media players (7.e., computcr software applications for
`
`playing video or other content) that may be needed to play different video or otherfiles
`
`on a display device such as a television screen. As an example, the display device may
`receive from the server system a message, based on input from a mobile phone, that
`
`instructs the display device to access a content provider, load a specific mediaplayer,
`
`load specific content (e.g., a video) to be played on the display device, and play the
`
`content on the display device using the media player.
`
`[0003] Recently, various types of display devices have become popular and their use has
`
`become widespread. For example, some applications can be run on a gaming console, a
`
`tablet computer, a television set, or a set-top box, where the display device serves as a
`
`platform for audio-visual media such as books, movies, music, games or web content.
`However, some of these display devices have somewhat limited processing power and,
`
`therefore, may not be sufficiently powerful to run a swappable media player such as
`
`described in the foregoing patent application. Thus, using the techniques described in the
`
`foregoing patent application to control the display of content on such display devices
`
`presents a challenge.
`
`Page 4 of 611
`
`Page 4 of 611
`
`
`
`Attorney Docket No.: 30160-0005001
`
`SUMMARY
`
`[0004] The present disclosure describes techniquesto facilitate controlling the content
`
`that is displayed on various display devices, using a personal computing device such as a
`
`mobile phone. The techniques make use of a display host that acts, in part, as a
`
`swappable media player so that a wide range of video or other content can be played on
`
`the display device regardless of the particular media player that may be necded to play
`
`the video or otherfile.
`
`[0005] In one aspect, for example, a machine-implemented method of presenting content
`
`on a display device includes receiving, in a display host, a communication from a display
`
`device. The display host is operable te execute multiple instances of a browser each of
`
`which operates as a swappable media player, wherein each instance of the swappable
`
`media player is operable to retrieve and load any ofa plurality of different media players
`
`needed to play specified content. The method includes openinga first session using a
`
`first instance of the swappable media player, and requesting assignment of a unique
`
`identifier for the first session from a switchboard server system. A unique identifier for
`
`the first session is received from the switchboard server system, The method includes
`
`displaying the unique identifier in the first session, and causing the display of the unique
`
`identifier to be mirrored onto a virtual client residing on the display device.
`
`[0006] The foregoing method can be used, for example, to establish a link between a
`
`particular instance of the swappable media player and a particular display device. The
`
`unique identifier displayed on the virtual client residing on the display device then can be
`
`entered into a computing device (e.g., a mobile phone) that is to be used to select and
`
`control the playing of content on the display device.
`
`[0007] According to another aspect, the method includes receiving in the display host a
`
`message indicating that particular content is to be played in a first session using a
`
`specified media player. The specified media player can be retrieved and loaded, and the
`
`particular content can be playedin the first session using the specified media player. The
`
`Page 5 of 611
`
`Page 5 of 611
`
`
`
`Attomey Docket No.: 30160-0005001
`
`method can include causing a presentation of the content to be mirrored onto the virtual
`
`client residing on the display device.
`
`In some implementations, the method includes
`
`receiving in the display host a second message indicating that particular second contentis
`
`to be played in the first session using a specified second media player. The specified
`
`second media player can be retrieved and loaded, and the particular second content can
`
`be played in the first session using the specified second media player. The method can
`
`include causing a presentation of the second content to be mirrored onto the virtual client
`
`residing on the display device.
`
`[0008] Systems for presenting content are described as well. For example, in some
`
`implementations, a system for presenting content includes a display device storing a
`
`virtual client. The system includes a display host operable to execute multiple instances
`
`of a browser each of which operates as a swappable media player, wherein each instance
`of the swappable media playeris operable to retrieve and load any ofa plurality of
`
`different media players needed to play specified content. The system also includes a
`
`switchboard server system. The display host is operable to perform operations including
`
`receiving from the switchboard server system a message indicating that a specified media
`
`player is to be used to play particular content using a first instance of a swappable media
`
`player, retrieving and loading the specified media player from a content provider using
`
`the first instance of the swappable media player, playing the particular content in a first
`
`session using the specified media player, and causing a presentation of the content to be
`
`mirrored onto the virtual client residing on the display device. In some implementations,
`
`the message indicating that a specified media playeris to be used to play particular
`
`content using a first instance of a swappable media player includes a unique identifier for
`
`the first session. Also, in some implementations, the display host is further operable to
`
`incorporate a watermark into the content before the content is mirrored onto the virtual
`
`client, wherein the watermark includes the unique identifier.
`
`[0009] Various implementations inchide one or more of the following advantages. For
`
`example, the techniques described here can be used even if the display device has
`
`somewhat limited processing power and would not be sufficiently powerful to run the
`
`Page 6 of 611
`
`Page 6 of 611
`
`
`
`Attorney Docket No.: 30160-0005001
`
`swappable media player. Furthermore, the techniques can facilitate centralized
`
`processing of the swappable media player for multiple display devices (e.g., television
`
`sets located in multiple guest rooms in a hotel).
`
`[0010] Other aspects, features and advantages will be apparent from the following
`
`detailed description, the accompanying drawings, and the claims.
`
`BRIEF DECSRIPTION OF THE DRAWINGS
`
`[0011] FIG. 1] is a block diagram illustrating an example of a system according to the
`
`invention.
`
`[0012] FIG. 2 illustrates a method for establishing a session for playing content on a user-
`
`selected display device using a swappable media player.
`
`[0013] FIG, 3 illustrates an example for playing user-selected content on a user-selected
`
`display device.
`
`[0014] FIG.4 illustrates another example for playing user-selected content on a user-
`
`selected display device.
`
`DETAILED DESCRIPTION
`
`[0015] As shownin FIG. 1, a system 10 synchronizes a connection between a control
`
`device 20 and a display device 23 to facilitate the playing of content on the display device
`
`23. For example, a user of the first device 20 can select content and control the content
`
`displayed on the display device 23. For purposesof illustration, in the following
`
`discussion, it is assumedthatfirst device 20 is a personal computing device such as a
`
`mobile phone that includes a display, an internal microprocessor or other processing
`
`circuitry, a keypad, keyboard, touchscreen, mouse, trackball, or other device to receive
`
`user selections and other input, and a transceiver to establish communicationsto the
`
`Internet 21. More generally, however,the first device 20 can be any type of handheld or
`
`other Internet-enabled personal computing device, including personal computers, e-
`
`books, kiosks, tablets, smart phones and media players. In some cases, input from the
`
`user can be received in forms other thantactile input (e.g., acoustic or speech).
`
`Examples of the display device 23 include a gaming console, tablet computer, set-top
`
`Page 7 of 611
`
`Page 7 of 611
`
`
`
`box, television set, personal computer or laptop computer with a display screen. In some
`
`implementations, the display device 23 may have limited processing power. Although
`
`FIG, 1 showsonlyasingle display device 23 coupled to the display host 22, there may be
`
`Attomey Docket No.: 30160-000500 1
`
`multiple display devices coupled to the display host 23 at the same time. Furthermore,
`
`the display devices may be of different types.
`
`[0016] In the illustrated example, the mobile phone 20 is operable to display an
`
`application or web site that contains information and links to content providers 30 on a
`
`computer network such as the Internet 21. A display host 22, which may be
`
`implemented, for example, as a server system or other computing device (e.g., a personal
`
`home computer), is coupled to the Internet and is operable to link back to a switchboard
`
`server system 24 from whichthe display host 22 receives messages regarding the playing
`
`of specified content.
`
`[0017] The display host 22 is operable to execute multiple sessions of a browser each of
`
`which operates as a swappable media player. Each session operates as a virtual display
`
`device that includes a unique instance 27 of the swappable media player and is assigned a
`
`unigue synchronization code (“syne code’), which serves as an identifier for the session.
`
`Each session is associated with a specified display device such as the display device 23.
`
`The display device 23 may be connected to the displayhost, for example, through a
`
`wireless connection, a wired connection (e.g., a co-axial cable), or through the Internet 21
`
`or other network.
`
`[0018] The various instances 27 of the swappable media player run on the display host 22
`
`are independent of one another. Thus, each instance 27 of the swappable media player
`
`can play content (e.g., a video) during a particular session that differs from the content
`
`being played by other instances 27, Furthermore, the different instances 27 of the
`
`swappable media player running on the display host 22 may use different media players
`
`(i.e., software applications to play the content) from one another depending on the
`
`particular content being played by each instance. In addition, as discussed in greater
`
`Page 8 of 611
`
`Page 8 of 611
`
`
`
`Attorney Docket No.: 30160-0005001
`
`detail below, each particular instance 27 of the swappable media player can retrieve the
`
`appropriate media player neededto play the specified content.
`
`[0019] In the illustrated example, the display device 23 includesa thin, virtual client 25
`
`that can display content (e.g., a video) being played by a specific instance 27 of the
`
`swappable media player on the display host 22. The virtual client 25 relies on the display
`
`host 22 to perform the data processing required for displaying the selected content. The
`
`display device 23 may be a dedicated thin client terminal or a computing device with thin
`
`client software that sends user input to the display host 22 and receives screen output in
`
`return. Althoughthe virtual client 25 processes the user interface, it need not process
`
`data.
`
`[0020] As explained in greater detail below, the virtual client 25 can have a unique
`
`identifier associated with it. In some cases, the unique identifier may be assigned when
`
`the software program is downloadedto the display device 23. When the display device
`
`23 connects to the display host 22, the unique identifier associated with the virtual client
`
`25 on the display device 23 is paired with a unique assigned sync code, which, in turn, is
`associated with a particular instance 27 of the swappable media player so that the
`appropriate session is paired with the correct virtual client and display device(e.g.,
`
`virtual client 25 on display device 23),
`
`[0021] The following paragraphs describe how a connection can be established between
`the mobile phone 20 andthe display device 23 so that the mobile phone can be used to
`control the display and playing of content on the display device 23. As indicated by FIG,
`
`2, when the display device 23 initially connects to the display host 22, the display device
`23 sends the unique identifier associated with the virtual client 25 to the display host 22
`
`(see 100 in FIG. 2). In the event there is no such unique identifier provided by the
`
`display device 23, the display host 22 automatically can assign a uniqueidentifier to the
`
`display device 23. The display host 22 opensa session using a particular instance 27 of
`the swappable media player (see 102 in FIG. 2). The session is associated uniquely with
`
`the identifier for the virtual client 25/display device 23. The display host 22, which
`
`Page 9 of 611
`
`Page 9 of 611
`
`
`
`Attorney Docket No.: 30160-0005001
`
`stores (e.g., in a database) the one-to-one correspondence between the session and the
`
`display device 23, also requests a syne code from the switchboard server system 24 (see
`
`104 in FIG, 2). The switchboard server system 24 assigns a unique syne code to be used
`
`by the display host 23 for the session (see 106 in FIG, 2), and stores the correspondence
`
`between the sync code and the display host session in a database for future reference.
`
`The switchboard server system 24 includes a sync code generator 29 to generate the sync
`
`codes and can use, for example, the display host’s browser cookie as an identifier for the
`
`display host 23. The switchboard server system 24 then sends the assigned sync code to
`
`the display host 22 (see 108 in FIG. 2). Upon receiving the sync code assigned to the
`
`particular session, the display host 22 stores (e.g., in a database) (he association between
`
`the syne code andthe particular session, and displays an image of the sync code in the
`
`corresponding instance 27 of the swappable media player (see 110 in FIG. 2). The image
`
`displayed in the instance 27 is mirrored onto the virtual client 25 on the display device 23
`
`using, for example, a virtual network connection (VMC)or other virtualization
`
`technology (see 112 in FIG. 2), The syne code may be displayed, for example, as text or
`
`as a QR code.
`
`[0022] Once the syne code appears on the display device 23, the user of the mobile phone
`
`20 can enter the sync code into the mobile phone, for example, manually (e.g., using a
`
`keyboard) or by scanning the displayed sync code into the mobile phone (see 114 in FIG.
`
`2). The code can be scanned, for example, using optical scanning or RFID techniques.
`
`The mobile phone 20 then sends a message containing the sync code to the switchboard
`
`server system 24 (see 116 in FIG, 2), which associates the received sync code with the
`
`matching syne code already stored in its database (see 118 in FIG. 2), The switchboard
`
`server system 24 includes a look-up table 36 that, based on the syne code, stores the
`
`correspondence between the mobile phone 20 and the session of the swappable media
`
`player on the display host 22, Thus, once the syne code is entered into, or captured by,
`
`the mobile phone 20, it is sent from the mobile phone 20 to the switchboard server
`
`system 24, which stores the information in the look-up table 36 so as to establish a
`
`connection, through the switchboard server system 24, between the mobile phone 20 and
`
`the particular session of the swappable media player on the display device 23. Asthere is
`
`Page 10 of 611
`
`Page 10 of 611
`
`
`
`Attorney Docket No.: 30160-0005001
`
`a one-to-one correspondence between the sync code, the particular session on the display
`
`host 22 and the display device 23, the mobile phone 20 effectively can be paired with,
`
`and thus connectedto, the virtual client 25 operating on the display device 23 by way of
`
`the switchboard server system 24 and the unique session of the swappable media player
`
`running on the display host 22.
`
`[0023] Next, the switchboard server system 24 sends a messageto the display host 22
`
`indicating that the swappable media player on the display host 22 and the mobile device
`
`20 are connected (see 120 in FIG. 2). The particular instance 27 of the swappable media
`
`player can display an indication (e.g., a message or other indicator) that it is connected to
`
`the mobile device 20 (see 122 in FIG. 2). This indication is mirrored onto the display
`
`device 23 (see 124 in FIG. 2), allowing the user of the mobile phone 20 to confirm that
`
`the phone can be used to control the playing of content on the display device 23, as
`
`explained below.
`
`[0024] The following paragraphs describe how a user of the mobile phone 20 can select
`
`content and cause the content to be displayed on the display device 23. When a user
`
`makes a selection using the mobile phone 20 for particular content to be displayed on the
`
`display device 23, a messageis sent through the Internet 21 to the switchboard server
`
`system 24. The message may, for example, identify particular content to be played and a
`
`media player neededto play the content, and also may contain the syne code. A
`
`corresponding message then is passed along to the display host 22, which acts on a
`
`transmission code contained within the signal and performs specified actions based on the
`
`transmission code. For example, in some scenarios, the message from the switchboard
`
`server system 24 instructs the particular instance 27 of the swappable media player on the
`
`display host 22 to access a content provider 30 through the Internet 21, load a specific
`
`media player, load the media player-specific content and play the content. The particular
`
`instance 27 of the swappable media player on the display host 22 plays the specified
`
`content using the session of the swappable media player associated with the display
`
`device 23. The contents of the session are mirrored automatically onto the display device
`
`23 via the virtual client 25, thereby allowing the user of the mobile phone 20 to view the
`
`Page 11 of 611
`
`Page 11 of 611
`
`
`
`Attomcy Dockct No.: 30160-0005001
`
`content on the display device 23, The mobile phone 20 also can be used to issue
`
`playback commands (e.g., play, pause, fast-forward, rewind, stop, etc.) to control the
`
`session.
`
`[0025] Although in some examples the content is a video to be played on the display 23,
`
`the system 10 can be used for other types of content as well. Thus, depending on the
`
`implementation, the content may include one or moreof the following: video, audio,
`
`interactive video game, streaming media, multimedia, images,slides (e.g., a PowerPoint
`
`presentation) or other types of dynamic content.
`
`[0626] FIG. 3 illustrates further details of the flow of information and signals according
`
`to some implementations. The mobile phone 20 is operable to display an application or
`
`web site that contains information and links to content providers 30 on the Internet 21.
`
`The user operates the mobile phone 20 so asto start the application or access the web site
`
`(block 200). In some implementations, a logo appears on the mobile phone’s display. By
`
`selecting the logo, the user causes a menu to expand and present various options. The
`
`options can include, for example: (1) add new contentto a playlist, (11) play a listed item
`
`on a secondary device, (iii) play a listed item on the mobile phone 20. Ifthe user selects
`
`to add new contentto the playlist, the user is presented with a screen that allows him to
`
`enter user-defined search parameters or to select predefined search parameters to request
`
`video data. The search parameters are sent from the mobile phone 20 as part of a request
`
`for video data that satisfy the search parameters (block 202). The request is transmitted
`
`via the Internet 21 to the appropriate content provider web site. In response, the content
`
`provider 30 provides metadata (e.g., titles, links to the videos) for one or more video files
`
`that satisfy the search parameters. The metadata can be provided to the mobile phone 20,
`
`for example, in the form of an XMLdata file 204. Upon receiving the data file, the
`
`mobile phone 20 displaysa list of one or more videos based on the information received
`
`from the content provider 30 (block 206).
`
`[0027] If desired, the user can take one of several actions, including selecting one of the
`
`videos from the displayedlist to be played or initiating a command with respect to a
`
`Page 12 of 611
`
`Page 12 of 611
`
`
`
`Attorney Docket No.: 30160-0005001
`
`video that already has been loaded to the display host 22 (blocks 208). The mobile phone
`
`20 then formats and transmits a message to the switchboard server system 24 (block 210).
`
`The message from the mobile phone 20 contains a transmission code that includes data
`
`regarding the user information (e.g., user identification or account number), the location
`
`and name of the media player for the selected video, a playback command(e.g., play,
`
`pause, rewind, fast-forward, etc.), and the video file to be acted upon. The messagealso
`
`includes the syne code previously acquired from the display device 23.
`
`[0028] The message from the mobile phone 20 is transmitted over the Internet or other
`
`network 21 and is received by the switchboard server system 24 (block 212). Based on
`
`information in the message from the mobile phone 20, the switchboard server system 24
`
`can verify that the user has an account (block 214), and the contents of the message, as
`
`well as the date and time of receipt of the message, can be added to a personal computing
`
`device database 32 (block 216) which forms part of a switchboard 28 (see FIG. 1). In
`
`general, all messages from a particular user’s personal computing device 20 can be stored
`
`in the database 32 corresponding to an account for the particular user. Thus, the database
`
`32 stores a record ofall messages received from a user’s personal computing device 20,
`
`as well as the user’s identification, an indication of the host display 22, an identification
`
`of the media player that is required for the selected video, and an identification of the
`
`selected video. The switchboard server system 24 also can perform a target verification
`
`(block 218), which can include checking whether a connection to the display host 22
`
`alreadyis established for the mobile phone 20. Signals sent from the mobile device 20 to
`
`its associated database 32 are copied to a database 34 associated with the session ofthe
`
`swappable media player on the display host 22 based on the syne code.
`
`[0029] In the illustrated implementation, the playback control command in the message
`
`from the mobile phone 20 contains a JavaScript reference to control the media player
`
`needed to play the selected video. Various types of video players may use different
`
`JavaScript commandsto control their respective playback. Therefore, in the illustrated
`
`implementation, a universal adapter 26 is provided to interpret and convert a standard or
`
`universal command(e.g., play, pause, etc.) into the specific command recognized by the
`
`10
`
`Page 13 of 611
`
`Page 13 of 611
`
`
`
`Attorney Docket No.: 30160-0005001
`
`media player. Each time a signal is received from the mobile device 20, the API adapter
`
`26 checks and identifies the specific media player that is being requested. Based on this
`
`information, the system loads the appropriate set of protocols or application programming
`
`interfaces (APIs) from its library and converts the incoming commands from the mobile
`
`device 20 into the correct JavaScript (or other programming) code used by the target
`
`device 22 to control the specific media player (block 220). The switchboard server
`
`system 24 then copies the converted version of the message to the database 34 associated
`
`with the display host 22, as indicated above in connection with block 222.
`
`[0030] The universal adapter 26 can be implemented, for example, as a look-up table.
`
`For example, for a universal command “New Video,” the universal adapter 26 provides
`
`the corresponding commandfor each of several specific media players(e.g.,
`
`“yt_loadVideo” for YouTube). Similarly, for a universal command “Pause,” the
`
`universal adapter 26 provides the corresponding command for each of several specific
`
`media players (c.g., “pauseVideo” for Ted.com). Other universal commands and the
`
`corresponding command(s) for one of more media players (i.e., software applications to
`
`play the content) also can be stored by the universal adapter 26.
`
`[0031] The display host 22 periodically checksthe entries in the database 34 to determine
`if there are any new messages forit (block 224). For example, in some implementations,
`
`the display host 22 polls the associated database 34 at some predetermined timeinterval
`
`(e.g., every half second). In some implementations, instead of the display host 22
`
`periodically checking whether there are any messages for it in the database 34, the server
`
`system 24 can push the messagesto the display host 22. In any event, the system is
`
`arranged so that the display host 22 receives the messages intended forit.
`
`[0032] Whenthe display host 22 receives a message from the switchboard server system
`
`24 (block 226), the display host executes the message (block 228}. In some cases, the
`
`media player required to play the video indicated in the message is not presently loaded
`
`in the display host 22. For example, the received command maybeto “play” a particular
`
`video. If the media player needed to play the video is not already loaded in the display
`
`11
`
`Page 14 of 611
`
`Page 14 of 611
`
`
`
`Attomey Docket No.: 30160-0005001
`
`host 22, the display host 22 requests and obtains a copy of the appropriate media player
`
`40 as well as a copy of the video file 42 from a content provider 30, loads the media
`
`player and then plays the video in the particular session of the swappable media player
`
`indicated by the syne code (block 230). Likewise, if the appropriate media player already
`
`is loaded in the display device, but the particular video is not, then the display host 22
`
`requests and obtains a copy of the video file 42 from the content provider 30 and
`
`proceedsto play the video in the particular session based on the sync code.
`
`[0033] As the session of the swappable media player on the display host 22 plays the
`
`video, each frame is captured and transmitted to the display device 23 using for example,
`
`appropriate virtualization technology (e.g., a virtual network connection). Thus, the
`
`video playing in the particular session associated with the display device 23 1s mirrored
`
`onto the virtual client 25 running on the display device 23 in substantially real time,
`
`therebyallowing the user to view the video on the display device 23.
`
`[0034] Once the video is playing on the display device 22, the user of the mobile phone
`
`20 can control the playing of the video byentering appropriate commands(e.g., pause,
`
`tast forward, rewind, stop, play, etc.) through the mobile phone. Each commandis
`
`incorporated into a message that is transmitted to the switchboard server system 24,
`
`which copies the message into database entrics associated with the particular display host
`
`22 (i.e., after performing any conversion of the command by the API adapter 26). Once
`
`the messageis retrieved by or sent to the display host 22, the display host proceeds to
`
`execute the command.
`
`[0035] The user of the mobile phone 20 may subsequently select other content to be
`
`played on the display device 23. Ifa different media player is needed to play this other
`
`content, the particular instance 27 of the swappable media playerthat is associated with
`
`the syne code retrieves the appropriate media player from a content provider 30. Thus,
`
`the same session of the swappable media player on the display host 22 can be used to
`
`play the other content regardless of whether the sameor a different media plaveris
`
`needed.
`
`12
`
`Page 15 of 611
`
`Page 15 of 611
`
`
`
`Attorney Docket No.: 30160-0005001
`
`[0036] In some implementations it may be desirable to provide a form ofdigital rights
`
`security with respect to the content that is being provided to the display device 23. For
`
`example, as shown in FIG,4, before providing the requested content to the display device
`
`23, a watermarking module 50 in the display host 22 can provide a watermark that
`
`incorporates, for example, a time stamp, the sync code, and the unique identifier
`
`associated with the virtual clicnt 25 and the display device 23. The watcrmark can be
`
`inserted, for example, into the content (e.g., the video) using known techniques in a
`
`mannerthat is detectable by software, but that is not discernable by the human eye. In
`
`some cases, the video signal that is transmitted to the virtual client 25 can be encrypted
`
`by the display host 22 and then decrypted on the clientside.
`
`[0037} As mentioned above, the system and methods described above also can be used
`
`with various types of content other than video. In that case, different types of user-
`
`initiated commands may be available to control playing or display of the content. For
`
`example, for interactive video games, the user-initiated commands may include control
`
`commands appropriate for the particular game.
`
`[0038] Although in many scenarios there will be a one-to-one correspondence between a
`
`computing device 20 that controls the content on a display device 23, the techniques
`
`described here also can be incorporated into co-viewing situations, for example, where