Systems, methods and computer-readable media for configuring receiver latency
First Claim
1. A processor-implemented method of synchronizing rendering of a media channel among a group of receiving devices, wherein each receiving device in the group performs a method comprising:
- receiving a signal from a transmitting device via a media channel, wherein the signal includes a timestamp;
determining a transmission latency from the transmitting device to the receiving device based on the timestamp;
obtaining a latency of the transmitting device, wherein the latency of the transmitting device corresponds to an amount of time between when media data is sampled and when the media data receives a timestamp;
determining a minimum end-to-end latency based on the latency of the transmitting device, the transmission latency, and a latency of the receiving device, wherein the latency of the receiving device corresponds to an amount of time between when media data is written to a receiver buffer and when the media data is rendered;
determining a maximum end-to-end latency based on the latency of the transmitting device, the latency of the receiving device, and a receiver buffer capacity;
transmitting a multicast message to other receiving devices in the group, wherein the multicast message includes the minimum end-to-end latency;
setting a current latency value of the receiving device to the greater of the minimum end-to-end latency of the receiving device or a minimum end-to-end latency of another receiving device in the group; and
rendering the media channel at the receiving device according to the current latency value, such that the rendering of the media channel by the receiving device is synchronized with the rendering of the media channel by other receiving devices in the group.
2 Assignments
0 Petitions
Accused Products
Abstract
The present disclosure is related to transmitting and receiving media channels, such as audio and video channels. These channels may be transmitted as packets from one or more transmitting devices to one or more receiving devices for playout. Certain embodiments of the present disclosure include systems, methods, and computer-readable media for determining latency of a data network for synchronized playout of received signals. Additionally, certain embodiments of the present disclosure include a systems, methods, and computer-readable media for synchronizing playout among devices connected to a data network.
60 Citations
20 Claims
-
1. A processor-implemented method of synchronizing rendering of a media channel among a group of receiving devices, wherein each receiving device in the group performs a method comprising:
-
receiving a signal from a transmitting device via a media channel, wherein the signal includes a timestamp; determining a transmission latency from the transmitting device to the receiving device based on the timestamp; obtaining a latency of the transmitting device, wherein the latency of the transmitting device corresponds to an amount of time between when media data is sampled and when the media data receives a timestamp; determining a minimum end-to-end latency based on the latency of the transmitting device, the transmission latency, and a latency of the receiving device, wherein the latency of the receiving device corresponds to an amount of time between when media data is written to a receiver buffer and when the media data is rendered; determining a maximum end-to-end latency based on the latency of the transmitting device, the latency of the receiving device, and a receiver buffer capacity; transmitting a multicast message to other receiving devices in the group, wherein the multicast message includes the minimum end-to-end latency; setting a current latency value of the receiving device to the greater of the minimum end-to-end latency of the receiving device or a minimum end-to-end latency of another receiving device in the group; and rendering the media channel at the receiving device according to the current latency value, such that the rendering of the media channel by the receiving device is synchronized with the rendering of the media channel by other receiving devices in the group. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer-readable medium storing a program configured to cause a computer to perform the steps comprising:
-
receiving a signal from a transmitting device via a media channel, wherein the signal includes a timestamp; determining a transmission latency from the transmitting device to the receiving device based on the timestamp; obtaining a latency of the transmitting device, wherein the latency of the transmitting device corresponds to an amount of time between when media data is sampled and when the media data receives a timestamp; determining a minimum end-to-end latency based on the latency of the transmitting device, the transmission latency, and a latency of the receiving device, wherein the latency of the receiving device corresponds to an amount of time between when media data is written to a receiver buffer and when the media data is rendered; determining a maximum end-to-end latency based on the latency of the transmitting device, the latency of the receiving device, and a receiver buffer capacity; transmitting a multicast message to other receiving devices in the group, wherein the multicast message includes the minimum end-to-end latency; setting a current latency value of the receiving device to the greater of the minimum end-to-end latency of the receiving device or a minimum end-to-end latency of another receiving device in the group; and rendering the media channel at the receiving device according to the current latency value, such that the rendering of the media channel by the receiving device is synchronized with the rendering of the media channel by other receiving devices in the group. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A system for synchronizing rendering of a media channel among a group of receiving devices, wherein each receiving device in the group comprises:
-
a processor; and a memory configured to cause the processor to perform steps comprising; receiving a signal from a transmitting device via a media channel, wherein the signal includes a timestamp; determining a transmission latency from the transmitting device to the receiving device based on the timestamp; obtaining a latency of the transmitting device, wherein the latency of the transmitting device corresponds to an amount of time between when media data is sampled and when the media data receives a timestamp; determining a minimum end-to-end latency based on the latency of the transmitting device, the transmission latency, and a latency of the receiving device, wherein the latency of the receiving device corresponds to an amount of time between when media data is written to a receiver buffer and when the media data is rendered; determining a maximum end-to-end latency based on the latency of the transmitting device, the latency of the receiving device, and a receiver buffer capacity; transmitting a multicast message to other receiving devices in the group, wherein the multicast message includes the minimum end-to-end latency; setting a current latency value of the receiving device to the greater of the minimum end-to-end latency of the receiving device or a minimum end-to-end latency of another receiving device in the group; and rendering the media channel at the receiving device according to the current latency value, such that the rendering of the media channel by the receiving device is synchronized with the rendering of the media channel by other receiving devices in the group. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification