IP Library Granted Patent US 8,015,306
Granted Patent B2
US 8,015,306 · App. 11/031,671 · Granted Sep 6, 2011

Method and apparatus for synchronizing playback of streaming media in multiple output devices

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 8,015,306
App. No.
11/031,671
Granted
Sep 6, 2011
Kind
B2
Abstract

A method and apparatus for synchronizing streaming media with multiple output devices. One or more media servers serve media streams to one or more output devices (i.e., players). For playback synchronization, one output device is the “master”, whereas the remaining output devices are “slaves”. More data is requested from the media server by the “master” device to maintain a nominal buffer fill level over time. The “slave” devices receive streamed data from the media server at the rate determined by the master device's data requests, and the average rate of data flow over the streaming network is thus controlled by the frequency of the single “master” device's crystal. “Slave” devices make playback rate corrections to maintain respective buffer fill levels within upper and lower threshold levels. For slow networks, each media data packet timestamp is calculated from the time the master's buffer reaches nominal level.

Claims (28)

1. A media server comprising:

a transceiver coupled to a network;

a streaming media source coupled to said transceiver;

a processor;

a memory coupled to said processor, said memory comprising:

a list of output devices coupled to said media server via said network;

computer code comprising instructions for causing said processor to perform the steps of:

transmitting a synchronization packet to said output devices;

awaiting responses to said synchronization packet from said output devices;

determining one of said output devices to be a master output device based on said responses to said synchronization packet received from said output devices;

said master device sending a plurality of successive requests for successive sets of streaming media data of a media stream to said media server when a fill level of a buffer of said master device falls below a desired level;

in at least one of said plurality of output devices other than said master device, determining that a fill level of a playback buffer of said output device is outside of a desired level range, and applying a playback rate adjustment to match a rate of reception of said successive sets of streaming media data when said fill level is outside said desired level range;

identifying a first request received from said master output device via said network for a first set of streaming media data of a first media stream;

transmitting said first set of streaming media data to said output devices via said network in response to said first request received from said master output device;

awaiting a second request from said master output device for a second set of streaming media data of said first media stream;

transmitting said second set of streaming media data to said output devices via said network in response to said second request received from said master output device.

2. The media server of claim 1 , wherein said memory comprises:

a plurality of device identifiers corresponding to a plurality of said output devices;

an association between said plurality of device identifiers and said first media stream.

3. The media server of claim 1 , wherein said computer code comprises instructions for causing said processor to perform the step of:

transmitting a master packet to said master device.

4. The media server of claim 1 , wherein said computer code comprises instructions for causing said processor to perform the step of:

designating a different one of said output devices as a master device when a time interval between said first and second requests exceeds a timeout interval.

5. The media server of claim 1 , wherein said second set of streaming media data comprises data packets, said data packets comprising a timestamp data packet indicating a playback time.

6. The media server of claim 5 , wherein said second request for a second set of streaming media data comprises a time.

7. The media server of claim 1 further comprising a user interface comprising a user activatable control for associating one or more of said output devices with said first media stream.

8. The media server of claim 7 , wherein said memory comprises output device association data indicating said association of said one or more of said output devices with said first media stream.

9. The media server of claim 1 , wherein said memory comprises media data file association data indicating an association of a media data file with said first media stream.

Assignments (8)
SECURITY INTEREST Recorded Jul 18, 2024
From: SNAP ONE, LLC
To: JPMORGAN CHASE BANK, N.A. AS ADMINISTRATIVE AGENT
Reel/Frame 068426/0446 →
SECURITY RELEASE R/F 058439/0014 Recorded Jun 17, 2024
From: MORGAN STANLEY SENIOR FUNDING, INC., AS AGENT
To: SNAP ONE, LLC
Reel/Frame 067768/0139 →
RELEASE OF SECURITY INTEREST Recorded Dec 9, 2021
From: UBS AG, STAMFORD BRANCH
To: CONTROL4 CORPORATION
Reel/Frame 058438/0975 →
SECURITY INTEREST Recorded Dec 9, 2021
From: SNAP ONE, LLC
To: MORGAN STANLEY SENIOR FUNDING INC.
Reel/Frame 058439/0014 →
CHANGE OF NAME Recorded Aug 25, 2021
From: WIREPATH HOME SYSTEMS, LLC
To: SNAP ONE, LLC
Reel/Frame 057298/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2019
From: CONTROL4 CORPORATION
To: WIREPATH HOME SYSTEMS, LLC
Reel/Frame 051446/0868 →
SECURITY INTEREST Recorded Aug 2, 2019
From: CONTROL4 CORPORATION
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 049948/0911 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: BOWMAN, TIMOTHY D.
To: CONTROL4 CORPORATION
Reel/Frame 035381/0256 →