Clock synchronization for shared media playback
First Claim
1. A method for synchronizing a relative clock of a slave computing device to a global clock of a master computing device, the method comprising:
- receiving a network packet from the master computing device, the network packet being received after one or more other network packets, and the network packet including a network packet time stamp value indicating a system time of the global clock when the network packet was transmitted;
determining a receipt time offset that is a difference between a receipt time of the network packet and the network packet time stamp value, the receipt time indicating a time at which the network packet is received at the slave computing device as measured by the relative clock;
determining a prior receipt time offset that is a difference between a receipt time of a previously received network packet and a network packet timestamp value included in that previously received network packet;
comparing the receipt time offset to the prior determined receipt time offset; and
adjusting the system time of the relative clock toward the system time of the global clock by a relative clock correction target that is updated to match a negative value of the receipt time offset only if an absolute value of the receipt time offset is smaller than an absolute value of the prior determined receipt time offset.
2 Assignments
0 Petitions
Accused Products
Abstract
Various embodiments are provided that relate to clock synchronization. In one embodiment, a method for synchronizing a relative clock to a global clock comprises receiving a network packet from a master computing device, the network packet including a network packet time stamp indicating a system time of the global clock when the network packet was transmitted; determining a receipt time offset between a receipt time of the network packet and the network packet time stamp, the receipt time indicating a time at which the network packet is received as measured by the relative clock; and adjusting a system time of the relative clock toward the system time of the global clock by updating a system time offset to the receipt time offset if the receipt time offset is smaller than the system time offset.
-
Citations
20 Claims
-
1. A method for synchronizing a relative clock of a slave computing device to a global clock of a master computing device, the method comprising:
-
receiving a network packet from the master computing device, the network packet being received after one or more other network packets, and the network packet including a network packet time stamp value indicating a system time of the global clock when the network packet was transmitted; determining a receipt time offset that is a difference between a receipt time of the network packet and the network packet time stamp value, the receipt time indicating a time at which the network packet is received at the slave computing device as measured by the relative clock; determining a prior receipt time offset that is a difference between a receipt time of a previously received network packet and a network packet timestamp value included in that previously received network packet; comparing the receipt time offset to the prior determined receipt time offset; and adjusting the system time of the relative clock toward the system time of the global clock by a relative clock correction target that is updated to match a negative value of the receipt time offset only if an absolute value of the receipt time offset is smaller than an absolute value of the prior determined receipt time offset. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A slave computing device configured to present a media asset in synchronization with a presentation of the media asset at a master computing device, the slave computing device comprising:
-
a relative clock; a logic subsystem; and a data-holding subsystem holding instructions executable by the logic subsystem to; receive a network packet from the master computing device, the network packet being received after one or more other network packets, and the network packet including; a network packet time stamp value indicating a system time of a global clock of the master computing device when the network packet was transmitted by the master computing device, a portion of the media asset to be presented at the slave computing device in synchronization with presentation at the master computing device, and a presentation time stamp indicating when the portion of the media asset should be presented, determine a receipt time offset that is a difference between a receipt time of the network packet and the network packet time stamp value, the receipt time indicating a time at which the network packet is received at the slave computing device as measured by the relative clock, determine a prior receipt time offset that is a difference between a receipt time of a previously received network packet and a network packet timestamp value included in that previously received network packet; compare the receipt time offset to the prior determined receipt time offset, update the system time of the relative clock toward the system time of the global clock by a relative clock correction target that is updated to match a negative value of the receipt time offset if an absolute value of the receipt time offset is smaller than an absolute value of the prior determined receipt time offset, present the portion of the media asset included in the network packet when the system time of the relative clock reaches a start time indicated by the presentation time stamp so that presentation of the media asset at the slave computing device occurs in synchronization with presentation of the media asset at the master computing device. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for presenting a media asset at a slave computing device in synchronization with a presentation of the media asset at a master computing device, the slave computing device comprising:
-
receiving a network packet from the master computing device, the network packet being received after one or more other network packets, and the network packet including; a portion of the media asset to be presented at the slave computing device in synchronization with presentation at the master computing device, a presentation time stamp indicating when the portion of the media asset should be presented, and a network packet time stamp value indicating a system time of a global clock of the master computing device when the network packet was transmitted; determining a receipt time offset that is a difference between a receipt time of the network packet and the network packet time stamp value, the receipt time indicating a time at which the network packet is received at the slave computing device as measured by the relative clock; determining a prior receipt time offset that is a difference between a receipt time of a previously received network packet and a network packet timestamp value included in that previously received network packet; updating a relative clock correction target to an absolute value of the receipt time offset if the absolute value of the receipt time offset is smaller than an absolute value of each member of a sequential offset comparison set comprising a plurality of sequentially-received previously determined receipt time offsets; adjusting the system time of the relative clock toward the system time of the global clock in proportion to the relative clock correction target without sending a reply time stamp from the slave computing device to the master computing device; and presenting the portion of the media asset included in the network packet when the system time of the relative clock reaches a start time indicated by the presentation time stamp so that presentation of the media asset at the slave computing device occurs in synchronization with presentation of the media asset at the master computing device. - View Dependent Claims (20)
-
Specification