IP Library Granted Patent US 9,654,537
Granted Patent B2
US 9,654,537 · App. 14/196,703 · Granted May 16, 2017

Synchronization and mixing of audio and video streams in network-based video conferencing call systems

Inventor: Mukund N. Thapa (Palo Alto, CA)
Assignee: Optical Fusion, Inc.
H04L65/604H04L65/1089H04L65/1093H04L65/403H04L65/4038H04N5/04H04N7/15H04L65/4046H04M3/562H04M3/564H04M3/568H04N7/155
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,654,537
App. No.
14/196,703
Granted
May 16, 2017
Kind
B2
Abstract

In one aspect, audio streams are added to a mix until the mix is either complete (i.e., all audio streams have been added) or the mix is closed early (i.e., before the mix is complete). In another aspect, audio and video streams are synchronized by playing back the audio stream and then synchronizing display of the video frames to the playback of the audio stream.

Claims (39)

1. A computer-implemented method for synchronizing an audio stream and a video stream, the method comprising:

playing the audio stream as a series of audio chunks according to time markers for the audio chunks;

based on a comparison of a time marker for a current frame of the video stream to a calculated time period for playing of a current audio chunk, determining if the current frame of the video stream should occur during the playing of the current audio chunk:

if the current frame should occur during the time period calculated for the current audio chunk, then displaying the current frame and moving to a next frame;

if the current frame should occur after the time period, then waiting; and

if the current frame should have occurred before the time period, then discarding the current frame and moving to a next frame,

wherein the step of determining if a current frame of the video stream should occur during the playing of the current audio chunk comprises:

determining a time marker for the current video frame;

determining a start time and an end time for the time period calculated for the audio chunk, the determining comprising:

determining a nominal start time and a nominal end time for the audio chunk,

adjusting the nominal start time by a tolerance, and

adjusting the nominal end time by another tolerance; and

determining whether the time marker falls between the start time and the end time.

2. A computer program product for synchronizing an audio stream and a video stream, wherein the computer program product is stored on a non-transitory computer-readable medium that includes instructions that, when loaded into memory, cause a processor to perform a method, the method comprising:

playing the audio stream as a series of audio chunks according to time markers for the audio chunks;

based on a comparison of a time marker for a current frame of the video stream to a calculated time period for playing of a current audio chunk, determining if the current frame of the video stream should occur during the playing of the current audio chunk:

if the current frame should occur during the time period calculated for the current audio chunk, then displaying the current frame and moving to a next frame;

if the current frame should occur after the time period, then waiting; and

if the current frame should have occurred before the time period, then discarding the current frame and moving to a next frame,

wherein the step of determining if a current frame of the video stream should occur during the playing of the current audio chunk comprises:

determining a time marker for the current video frame;

determining a start time and an end time for the time period calculated for the audio chunk, the determining comprising:

determining a nominal start time and a nominal end time for the audio chunk,

adjusting the nominal start time by a tolerance, and

adjusting the nominal end time by another tolerance; and

determining whether the time marker falls between the start time and the end time.

3. A non-transitory computer-readable medium that includes instructions that, when loaded into memory, cause a processor to perform a method for synchronizing an audio stream and a video stream, the method comprising:

playing the audio stream as a series of audio chunks according to time markers for the audio chunks;

based on a comparison of a time marker for a current frame of the video stream to a calculated time period for playing of a current audio chunk, determining if the current frame of the video stream should occur during the playing of the current audio chunk:

if the current frame should occur during the time period calculated for the current audio chunk, then displaying the current frame and moving to a next frame;

if the current frame should occur after the time period, then waiting; and

if the current frame should have occurred before the time period, then discarding the current frame and moving to a next frame,

wherein the step of determining if a current frame of the video stream should occur during the playing of the current audio chunk comprises:

determining a time marker for the current video frame;

determining a start time and an end time for the time period calculated for the audio chunk, the determining comprising:

determining a nominal start time and a nominal end time for the audio chunk,

adjusting the nominal start time by a tolerance, and

adjusting the nominal end time by another tolerance; and

determining whether the time marker falls between the start time and the end time.

Assignments (3)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2017
From: OPTICAL FUSION, INC.
To: RED HAT, INC.
Reel/Frame 043769/0289 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2017
From: THAPA, MUKUND N.
To: OPTICAL FUSION INC.
Reel/Frame 040993/0687 →
Continuity (4)
Continuation 13646395 · Oct 5, 2012
Division 12242358 · Sep 30, 2008
Provisional Application 60976464 · Sep 30, 2007
Related Publication 20140184735A1 · Jul 3, 2014