IP Library › Granted Patent US 9,648,073
Granted Patent B2
US 9,648,073 · App. 14/680,259 · Granted May 9, 2017

Streaming control for real-time transport protocol

Inventors: Padam Lal Kafle (San Diego, CA); Sanjay Kumar Agrawal (San Diego, CA); Vijay Naicker Subramaniam (San Diego, CA); Sanal Kumar Karunakaran (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04L65/608H04L43/0852H04L65/1083H04L65/80H04L69/161H04L69/18H04L69/40
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,648,073
App. No.
14/680,259
Granted
May 9, 2017
Kind
B2
Abstract

Dynamic control of transport protocols utilized in the streaming of media content based in part on the type of content, latency requirements, network conditions and/or device capabilities is described. The techniques provide a source device to dynamically switch between User Datagram Protocol (UDP) and Transmission Control Protocol (TCP) to stream media content to a sink device. For example, during a Wi-Fi peer-to-peer remote display session associated with real-time media content (e.g., live streaming sporting event, or gaming applications), the source device may utilize Real-time Transport Protocol (RTP) over UDP to transmit the media stream to the sink device. Conversely, when the media content is not latency critical, such as playback of stored media (e.g., movie), the source device may dynamically switch to RTP over TCP in order to provide reliable data transmission.

Claims (65)

1. A method for wireless communications, comprising:

initiating, by a source device, a media stream to a sink device over a first protocol during a Wi-Fi peer-to-peer remote display session;

identifying a second protocol supported by the sink device; and

dynamically switching to the second protocol to transmit the media stream during the Wi-Fi peer-to-peer remote display session.

2. The method of claim 1 , wherein the first protocol comprises a User Datagram Protocol (UDP) and the second protocol comprises Transmission Control Protocol (TCP).

3. The method of claim 1 , wherein the first protocol comprises Transmission Control Protocol (TCP) and the second protocol comprises User Datagram Protocol (UDP).

4. The method of claim 1 , wherein identifying the second protocol supported by the sink device comprises:

transmitting a query to the sink device to determine whether the sink device supports Transmission Control Protocol (TCP) and one or more ports to be used for a TCP connection; and

receiving a message, in response to the query, affirming that the sink device supports TCP, and the ports information.

5. The method of claim 4 , further comprising:

querying the sink device to determine decoder latency and a buffer size of the sink device.

6. The method of claim 4 , further comprising:

transmitting, in response to the received message, a setup request to the sink device, wherein the setup request comprises profile and port information.

7. The method of claim 1 , wherein dynamically switching to the second protocol is based at least in part on a type of media content, network conditions, or available buffer space at the sink device.

8. The method of claim 7 , further comprising:

selecting, based at least in part on the type of media content, network conditions, or available buffer space at the sink device, a buffer size to be used by the sink device for buffering the media stream prior to initiating playback; and

transmitting the selected buffer size to the sink device.

9. The method of claim 1 , further comprising:

querying the sink device for a presentation timestamp (PTS) value of the media stream being played and a pending buffer size of the media stream waiting to be played; and

receiving a message, in response to the query, indicating the PTS value of the media stream being played and the pending buffer size of the media stream waiting to be played.

10. The method of claim 9 , further comprising:

issuing a flush control command to flush a buffer of the sink device.

11. The method of claim 10 , wherein the flush control command instructs the sink device to discard data in the buffer until a data packet with the PTS value.

12. The method of claim 1 , further comprising:

issuing a volume control command to the sink device, wherein the volume control command controls a playback volume of the media stream at the sink device.

13. An apparatus for wireless communication, comprising:

a processor;

a memory in electronic communications with the processor, the memory embodying instructions, the instructions being executable by the processor to:

initiate, by a source device, a media stream to a sink device over a first protocol during a Wi-Fi peer-to-peer remote display session;

identify a second protocol supported by the sink device; and

dynamically switch to the second protocol to transmit the media stream during the Wi-Fi peer-to-peer remote display session.

14. The apparatus of claim 13 , wherein the first protocol comprises a User Datagram Protocol (UDP) and the second protocol comprises Transmission Control Protocol (TCP).

15. The apparatus of claim 13 , wherein the first protocol comprises Transmission Control Protocol (TCP) and the second protocol comprises User Datagram Protocol (UDP).

16. The apparatus of claim 13 , wherein the instructions executable by the processor to identify the second protocol supported by the sink device are further executable by the processor to:

transmit a query to the sink device to determine whether the sink device supports Transmission Control Protocol (TCP) and one or more ports to be used for a TCP connection; and

receive a message, in response to the query, affirming that the sink device supports TCP, and the ports information.

17. The apparatus of claim 16 , wherein the instructions are further executable by the processor to:

query the sink device to determine decoder latency and a buffer size of the sink device.

18. The apparatus of claim 16 , wherein the instructions are further executable by the processor to:

transmit, in response to the received message, a setup request to the sink device, wherein the setup request comprises profile and port information.

19. The apparatus of claim 13 , wherein dynamically switching to the second protocol is based at least in part on a type of media content, network conditions, or available buffer space at the sink device.

20. The apparatus of claim 19 , wherein the instructions are further executable by the processor to:

select, based at least in part on the type of media content, network conditions, or available buffer space at the sink device, a buffer size to be used by the sink device for buffering the media stream prior to initiating playback; and

transmit the selected buffer size to the sink device.

21. The apparatus of claim 13 , wherein the instructions are further executable by the processor to:

query the sink device for a presentation timestamp (PTS) value of the media stream being played and a pending buffer size of the media stream waiting to be played; and

receive a message, in response to the query, indicating the PTS value of the media stream being played and the pending buffer size of the media stream waiting to be played.

22. The apparatus of claim 21 , wherein the instructions are further executable by the processor to:

issue a flush control command to flush a buffer of the sink device.

23. The apparatus of claim 22 , wherein the flush control command instructs the sink device to discard data in the buffer until a data packet with the PTS value.

24. The apparatus of claim 13 , wherein the instructions are further executable by the processor to:

issue a volume control command to the sink device, wherein the volume control command controls a playback volume of the media stream at the sink device.

25. An apparatus for wireless communication, comprising:

a multi-protocol communication component to initiate, by a source device, a media stream to a sink device over a first protocol during a Wi-Fi peer-to-peer remote display session;

a capability analysis component to identify a second protocol supported by the sink device; and

a dynamic switching component to dynamically switch to the second protocol to transmit the media stream during the Wi-Fi peer-to-peer remote display session.

26. The apparatus of claim 25 , wherein the first protocol comprises a User Datagram Protocol (UDP) and the second protocol comprises Transmission Control Protocol (TCP).

27. The apparatus of claim 25 , wherein the first protocol comprises Transmission Control Protocol (TCP) and the second protocol comprises User Datagram Protocol (UDP).

28. The apparatus of claim 25 , further comprising:

a transmitter to transmit a query to the sink device to determine whether the sink device can support Transmission Control Protocol (TCP) and one or more ports to be used for a TCP connection; and

a receiver to receive a message, in response to the query, affirming that the sink device supports TCP, and the ports information, wherein the transmitter and the receiver are in communication with the capability analysis component to identify the second protocol supported by the sink device.

29. The apparatus of claim 28 , wherein the capability analysis component is further to:

query the sink device to determine decoder latency, and a buffer size of the sink device.

30. The apparatus of claim 28 , wherein:

the transmitter is further to transmit, in response to the received message, a setup request to the sink device, wherein the setup request comprises profile and port information.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2015
From: KAFLE, PADAM LAL; AGRAWAL, SANJAY KUMAR; SUBRAMANIAM, VIJAY NAICKER; KARUNAKARAN, SANAL KUMAR
To: QUALCOMM INCORPORATED
Reel/Frame 035625/0727 →
Continuity (2)
Provisional Application 61978121 · Apr 10, 2014
Related Publication 20150295982A1 · Oct 15, 2015