IP Library › Granted Patent US 12,432,124
Granted Patent B2
US 12,432,124 · App. 17/835,105 · Granted Sep 30, 2025

Adaptable real-time communications plugin for virtual desktop infrastructure solutions

Inventors: Neil R. Hinnant (Seattle, WA); Matthew C. Howard (Bothell, WA); Rafael Vincent Prieto Vertido (Renton, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
H04L41/22G06F9/452G06F9/547H04L65/1069H04L67/104
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 12,432,124
App. No.
17/835,105
Granted
Sep 30, 2025
Kind
B2
Abstract

A plugin works with a remote desktop client that is executing on a client computing device to present a user interface of a communications application that is executing in a cloud computing environment. The plugin enables the remote desktop client to conduct audio and/or video communication with a remote computing device in a peer-to-peer manner rather than via the communications application. The plugin also enables the remote desktop client to determine a hardware-based media processing capability of the client computing device and leverage such capability in conducting the peer-to-peer audio and/or video communication with the remote computing device. Such hardware-based media processing capability may be used, for example, to process media received from the remote computing device, to process media captured from a media source of the client computing device, or as a basis for negotiating a media communication parameter with the remote computing device.

Claims (33)

1. A first computing device, comprising:

at least one processor; and

at least one memory device that stores computer program logic that, when executed for by the at least one processor, causes the first computing device to:

receive a communication from a communications application executing via a network-based computing device in a network computing environment;

identify, based on the communication, a hardware-based media processing capability of the first computing device, the hardware-based media processing capability comprising at least one of a video codec, an audio codec, hardware-accelerated video processing, or hardware-accelerated audio processing, wherein the hardware-based media processing capability of the first computing device has a corresponding software-based media processing capability of the communications application executing via the network-based computing device;

shift a media communication connection between the first computing device and a second computing device from a network-based communication connection that uses the corresponding software-based media processing capability of the communications application executing via the network-based computing device to a peer-to-peer communication connection that uses the hardware-based media processing capability of the first computing device; and

process media as part of the peer-to-peer communication connection between the first computing device and the second computing device using the hardware-based media processing capability of the first computing device instead of using the corresponding software-based media processing capability of the communications application executing via the network-based computing device.

2. The first computing device of claim 1 , wherein a user interaction with a user interface prompts the communications application to initiate communications with the second computing device.

3. The first computing device of claim 1 , wherein the computer program logic further causes the first computing device to negotiate a media communication parameter with the second computing device based on the hardware-based media processing capability.

4. The first computing device of claim 3 , wherein the media communication parameter comprises a type of decoder useable to determine a media format for the peer-to-peer communication connection.

5. The first computing device of claim 1 , wherein the hardware-based media processing capability is identified through an application programming interface (API) of an operating system of the first computing device.

6. The first computing device of claim 1 , wherein the communication includes a Web real-time communication (WebRTC) application programming interface (API) call intercepted from the communications application.

7. The first computing device of claim 1 , wherein the computer program logic further causes the first computing device to load a plugin to intercept the communication from the communications application.

8. A method performed by a first computing device, comprising:

receiving a communication from a communications application executing via a network-based computing device in a network computing environment;

identifying, by at least one processor and based on the communication, a hardware-based media processing capability of the first computing device, the hardware-based media processing capability comprising at least one of a video codec, an audio codec, hardware-accelerated video processing, or hardware-accelerated audio processing, wherein the hardware-based media processing capability of the first computing device has a corresponding software-based media processing capability of the communications application executing via the network-based computing device; and

processing media as part of a peer-to-peer communication connection between the first computing device and a second computing device including shifting a media communication connection between the first computing device and the second computing device from a network-based communication connection that uses the corresponding software-based media processing capability of the communications application executing via the network-based computing device to the peer-to-peer communication connection that uses the hardware-based media processing capability of the first computing device.

9. The method of claim 8 , wherein a user interaction with a user interface prompts the communications application to initiate communications with the second computing device.

10. The method of claim 8 , further comprising negotiating a media communication parameter with the second computing device based on the hardware-based media processing capability.

11. The method of claim 10 , wherein the media communication parameter comprises a type of decoder useable to determine a media format for the peer-to-peer communication connection.

12. The method of claim 8 , wherein the hardware-based media processing capability is identified through an application programming interface (API) of an operating system of the first computing device.

13. The method of claim 8 , wherein the communication includes a Web real-time communication (WebRTC) application programming interface (API) call intercepted from the communications application.

14. The method of claim 8 , further comprising loading a plugin to intercept the communication from the communications application.

15. A computer-readable storage medium having program instructions recorded thereon that, when executed by at least one processor of a first computing device, causes the first computing device to:

receive a communication from a communications application executing via a network-based computing device in a network computing environment;

identify, based on the communication, a hardware-based media processing capability of the first computing device, the hardware-based media processing capability comprising at least one of a video codec, an audio codec, hardware-accelerated video processing, or hardware-accelerated audio processing, wherein the hardware-based media processing capability of the first computing device has a corresponding software-based media processing capability of the communications application executing via the network-based computing device;

shift a media communication connection between the first computing device and a second computing device from a network-based communication connection that uses the corresponding software-based media processing capability of the communications application executing via the network-based computing device to a peer-to-peer communication connection that uses the hardware-based media processing capability of the first computing device; and

process media as part of the peer-to-peer communication connection between the first computing device and the second computing device using the hardware-based media processing capability of the first computing device instead of using the corresponding software-based media processing capability of the communications application executing via the network-based computing device.

16. The computer-readable storage medium of claim 15 , wherein a user interaction with a user interface prompts the communications application to initiate communications with the second computing device.

17. The computer-readable storage medium of claim 15 , wherein the program instructions further cause the first computing device to negotiate a media communication parameter with the second computing device based on the hardware-based media processing capability.

18. The computer-readable storage medium of claim 17 , wherein the media communication parameter comprises a type of decoder useable to determine a media format for the peer-to-peer communication connection.

19. The computer-readable storage medium of claim 15 , wherein the hardware-based media processing capability is identified through an application programming interface (API) of an operating system of the first computing device.

20. The computer-readable storage medium of claim 15 , wherein the communication includes a Web real-time communication (WebRTC) application programming interface (API) call intercepted from the communications application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2022
From: HINNANT, NEIL R.; HOWARD, MATTHEW C.; VERTIDO, RAFAEL VINCENT PRIETO
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 060133/0692 →
Continuity (3)
Continuation 17307840 · May 4, 2021
Continuation 16414160 · May 16, 2019
Related Publication 20220417111A1 · Dec 29, 2022
References Cited (39)
US 9363301B2 · Lawson · 2016 [cited by examiner]
US 9509782B2 · Lawson · 2016 [cited by examiner]
US 9906607B2 · Lawson · 2018 [cited by examiner]
US 10637938B2 · Lawson · 2020 [cited by examiner]
US 11019159B2 · Lawson · 2021 [cited by examiner]
US 20160112475A1 · Lawson · 2016 [cited by examiner]
US 20160248861A1 · Lawson · 2016 [cited by examiner]
CN 101981558A · 2011 [cited by applicant]
CN 102695094A · 2012 [cited by applicant]
JP 2012118937A · 2012 [cited by applicant]
JP 2015019365A · 2015 [cited by applicant]
JP 2017118241A · 2017 [cited by applicant]
RU 2412466C2 · 2011 [cited by applicant]
RU 2599971C2 · 2016 [cited by applicant]
RU 2691187C1 · 2019 [cited by applicant]
Andrew Tanenbaum; Structured Computer Organization; 1984; Second Edition; pp. 10-12 (Year: 1984). [cited by examiner]
“Notice of Allowance Issued in South African Patent Application No. 2021/07558”, Mailed Date: Nov. 9, 2022, 1 Page. [cited by applicant]
“Office Action Issued in European Patent Application No. 20723714.0”, Mailed Date: May 9, 2023, 7 Pages. [cited by applicant]
Notice of Reasons for Refusal received in Japanese Application No. 2021-559644, mailed on Mar. 5, 2024, 6 pages (English Translation Provided). [cited by applicant]
Decision on Grant Received for Russian Application No. 2021137007, mailed on Feb. 22, 2024, 24 pages (English Translation Provided). [cited by applicant]
Invitation Pursuant to Rule 137(4) and Article 94(3) received in European Patent Application No. 20723714.0, mailed on Feb. 7, 2024, 1 pages. [cited by applicant]
Office Action Received for Israel Application No. 288043, mailed on Jan. 16, 2025, 03 pages. [cited by applicant]
Office Action Received for Israel Application No. 288043, mailed on Jan. 22, 2025, 04 pages. [cited by applicant]
U.S. Appl. No. 17/307,840, filed May 5, 2021. [cited by applicant]
U.S. Appl. No. 16/414,160 filed May 16, 2019. [cited by applicant]
Decision to Grant a Patent received in Japanese Application No. 2021-559644, mailed on Aug. 22, 2024, 5 pages (English Translation Provided). [cited by applicant]
“Office Action Issued in Indian Patent Application No. 202147046040”, Mailed Date: Aug. 30, 2023, 8 Pages. [cited by applicant]
Office Action Received for Mexican Application No. MX/a/2021/013654, mailed on Feb. 4, 2025, 14 pages (English Translation Provided). [cited by applicant]
Communication under Rule 71(3) EPC Received for European Application No. 20723714.0, mailed on Mar. 4, 2025, 7 pages. [cited by applicant]
Office Action Received for Korean Application No. 1020217035451, mailed on Mar. 5, 2025, 6 pages. [cited by applicant]
Office Action Received for Chinese Application No. 202080035996.3, mailed on Jan. 17, 2024, 05 pages (English Translation Provided). [cited by applicant]
Office Action Received for Israel Application No. 288043, mailed on Dec. 25, 2023, 03 pages. (English Translation Provided). [cited by applicant]
“Office Action Issued in Indonesian Patent Application No. P00202110045”, Mailed Date: Oct. 13, 2023, 8 Pages. [cited by applicant]
“First Office Action and Search Report Issued in Chinese Patent Application No. 202080035996.3”, Mailed Date: Aug. 29, 2023, 11 Pages. [cited by applicant]
U.S. Appl. No. 17/307,840, filed May 16, 2019. [cited by applicant]
“Office Action Issued in Russian Patent Application No. 2021137007”, Mailed Date: Aug. 3, 2023, 14 Pages. [cited by applicant]
U.S. Appl. No. 17/307,840, filed May 4, 2021. [cited by applicant]
Examination Report Received for Canada Application No. 3137342, mailed on May 8, 2025, 04 Pages. [cited by applicant]
Decision to grant a European patent pursuant to Article 97(1) Received for European Application No. 20723714.0, mailed on Jun. 26, 2025, 02 pages. [cited by applicant]