IP Library Granted Patent US 9,203,883
Granted Patent B2
US 9,203,883 · App. 12/963,539 · Granted Dec 1, 2015

Systems and methods for a client-side remote presentation of a multimedia stream

Inventors: Georgy Momchilov (Fort Lauderdale, FL); Todd Giebler (Fort Lauderdale, FL); Modesto Tabares (Fort Lauderdale, FL); Jacob Summers (Fort Lauderdale, FL)
Assignee: Citrix Systems, Inc.
H04L65/4084H04L65/605
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,203,883
App. No.
12/963,539
Filed
Dec 8, 2010
Granted
Dec 1, 2015
Kind
B2
Art Unit
2452
USPC
709/231
Abstract

A proxy streaming module executes on a first computing machine to stream multimedia data from a virtual channel that is established between the first computing machine and a second computing machine. In some instances, the multimedia data is generated by a multimedia device that communicates with the second computing machine. The proxy streaming module forwards the multimedia data to a presentation application that is executing on the first computing machine. A remoting application that executes on the first computing machine then captures the application output generated by the presentation application while the presentation application presents the multimedia data. The remoting application then transmits the application output to the second computing machine which displays the application output in an application output window.

Claims (26)

1. A method for displaying on a local computing device, by an application executing on a remote computing device, multimedia data generated by a multimedia device connected to the local computing device, the remote computing device in communication with the local computing device via a virtual channel, the method comprising:

constructing a packet, by a local remoting application executing on a local computing device, wherein the local computing device not executing an instance of a presentation application configured for display of multimedia data generated by a multimedia device, to include raw multimedia data from a multimedia device interface in a protocol wrapper, the raw multimedia data generated by the multimedia device associated with the local computing device and comprising input to the presentation application;

streaming, by the local computing device, the packet to a remote computing device via a virtual channel, the remote computing device executing the instance of the presentation application to process the raw multimedia data as locally generated raw multimedia data to generate formatted multimedia data for forwarding to the local computing device;

receiving, from the remote computing device, the formatted multimedia data generated by the instance of the presentation application, the received formatted multimedia data including a first stream of multimedia data generated from the raw multimedia data; and

receiving, from a second instance of the presentation application, a second stream of multimedia data.

2. The method of claim 1 , wherein streaming further comprises streaming the raw multimedia data responsive to receiving a request to execute the presentation application from a user of the local computing device.

3. The method of claim 1 , wherein streaming further comprises transmitting, by a local streaming module executing on the local computing device, the raw multimedia data to the remote computing device via the virtual channel.

4. The method of claim 3 , further comprising:

streaming, by the local streaming module executing on the local computing device, the raw multimedia data from the multimedia device interface; and

streaming, by the local streaming module executing on the local computing device, the raw multimedia data to the local remoting application executing on the local computing device.

5. The method of claim 1 , further comprising encoding, by an encoder executing on the local computing device, the raw multimedia data before transmitting the raw multimedia data to the remote computing device.

6. The method of claim 1 , further comprising encrypting, by an encoder executing on the local computing device, the raw multimedia data before transmitting the raw multimedia data to the remote computing device.

7. A local computing device for use in a system in which raw multimedia data generated by a multimedia device connected to the local computing device is displayed on the local computing device by an application executing on a remote computing device, the local computing device comprising at least one processor and a non-transitory computer-readable medium storing instructions, which when executed cause the processor to:

acquire, by a multimedia interface, raw multimedia data from a multimedia device interface associated with a local computing device not executing an instance of a presentation application configured for display of multimedia data generated by a multimedia device, the raw multimedia data comprising input to the presentation application, a remote computing device executing the instance of the presentation application to process the raw multimedia data as locally generated raw multimedia data to generate formatted multimedia data for forwarding to the local computing device;

constructing, by a packet engine, a packet including the acquired raw multimedia data in a protocol wrapper;

transmit, by a streaming module, the packet to the remote computing device via a virtual channel;

receive, by a local agent from the remote computing device, the formatted multimedia data generated by the instance of the presentation application, the received formatted multimedia data including a first stream of multimedia data generated from the raw multimedia data; and

receive, by the local agent from a second instance of the presentation application, a second stream of multimedia data.

8. The local computing device of claim 7 , wherein the streaming module streams the raw multimedia data responsive to receiving a request from a user of the local computing device to execute the presentation application.

9. The system of claim 7 , wherein the streaming module executes on the local computing device and streams the raw multimedia data directly from the multimedia interface.

10. The system of claim 7 , further comprising an encoder executing on the local computing device encoding the acquired raw multimedia data before transmission to the remote computing device.

11. A local computing device for use in a system in which raw multimedia data generated by a multimedia device connected to the local computing device is displayed on the local computing device by an application executing on a remote computing device, the local computing device configured for:

constructing a packet, by a local remoting application executing on a local computing device, wherein the local computing device not executing an instance of a presentation application configured for display of multimedia data generated by a multimedia device, to include raw multimedia data from a multimedia device interface in a protocol wrapper, the raw multimedia data generated by the multimedia device associated with the local computing device and comprising input to the presentation application;

streaming, by the local computing device, the packet to a remote computing device via a virtual channel, the remote computing device executing the instance of the presentation application to process the raw multimedia data as locally generated raw multimedia data to generate formatted multimedia data for forwarding to the local computing device; and

receiving, from the remote computing device, the formatted multimedia data generated by the instance of the presentation application, the received formatted multimedia data including a first stream of multimedia data generated from the raw multimedia data; and

receiving, from a second instance of the presentation application, a second stream of multimedia data.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2011
From: MOMCHILOV, GEORGY; GIEBLER, TODD; TABARES, MODESTO; SUMMERS, JACOB
To: CITRIX SYSTEMS, INC.
Reel/Frame 025998/0756 →
Continuity (2)
Provisional Application 61267686 · Dec 8, 2009
Related Publication 20110138069A1 · Jun 9, 2011