System for synchronizing by transmitting control packet to omit blocks from transmission, and transmitting second control packet when the timing difference exceeds second predetermined threshold
First Claim
1. Apparatus for synchronizing a slave media stream to a master media stream, the slave media stream having a plurality of slave media data blocks sequentially transmitted from a slave data source to a data target, and the master media stream having a plurality of master media data blocks sequentially transmitted from a master data source to the data target, the slave media blocks and the master media blocks being transmitted across a computer network, the apparatus comprising:
- means, located at the data target and responsive to the plurality of slave media data blocks and the plurality of master media data blocks arriving at the data target, for comparing stream times of the slave media data blocks and the master media data blocks to determine a timing difference between the slave media stream and the master media stream and for transmitting a feedback control packet across the network to the slave data source to cause the slave data source to omit selected slave media data blocks from transmission across the network, the control packet comprising;
a frame drop number, indicating the number of slave media data blocks to drop at the slave data source at a given instance;
an interval count, indicating the number of slave media data blocks to allow to pass before attempting to drop more slave media data blocks; and
, a skip count, indicating the number of times to repeat dropping frames according to the frame drop number and the interval count;
means, responsive to the timing difference, for controlling the slave data source to omit selected slave media data blocks from transmission across the network, when the timing difference exceeds a first predetermined threshold; and
means responsive to the timing difference exceeding a second predetermined threshold for dropping slave media data blocks at the data target and wherein the first predetermined threshold comprises a predetermined number of dropped slave media data blocks within a predetermined time period.
1 Assignment
0 Petitions
Accused Products
Abstract
Related media streams are transmitted from data sources and received at a data target. A synchronization mechanism is provided for detecting a timing difference between the media streams. If the timing difference exceeds a predetermined threshold, a feedback signal is sent from the data target back to the data source where another mechanism is provided that responds to the feedback signal and causes one of the data sources to alter the transmission of its corresponding media stream to bring the streams back into synchronization.
-
Citations
11 Claims
-
1. Apparatus for synchronizing a slave media stream to a master media stream, the slave media stream having a plurality of slave media data blocks sequentially transmitted from a slave data source to a data target, and the master media stream having a plurality of master media data blocks sequentially transmitted from a master data source to the data target, the slave media blocks and the master media blocks being transmitted across a computer network, the apparatus comprising:
-
means, located at the data target and responsive to the plurality of slave media data blocks and the plurality of master media data blocks arriving at the data target, for comparing stream times of the slave media data blocks and the master media data blocks to determine a timing difference between the slave media stream and the master media stream and for transmitting a feedback control packet across the network to the slave data source to cause the slave data source to omit selected slave media data blocks from transmission across the network, the control packet comprising;
a frame drop number, indicating the number of slave media data blocks to drop at the slave data source at a given instance;
an interval count, indicating the number of slave media data blocks to allow to pass before attempting to drop more slave media data blocks; and
, a skip count, indicating the number of times to repeat dropping frames according to the frame drop number and the interval count;means, responsive to the timing difference, for controlling the slave data source to omit selected slave media data blocks from transmission across the network, when the timing difference exceeds a first predetermined threshold; and means responsive to the timing difference exceeding a second predetermined threshold for dropping slave media data blocks at the data target and wherein the first predetermined threshold comprises a predetermined number of dropped slave media data blocks within a predetermined time period. - View Dependent Claims (2, 3, 4)
-
-
5. A method of synchronizing a slave media stream to a master media stream, the slave media stream having a plurality of slave media data blocks sequentially transmitted from a slave data source to a data target, and the master media stream having a plurality of master media data blocks sequentially transmitted from a master data source to the data target, the slave media blocks and the master media blocks being transmitted across a computer network, the method comprising the steps of:
-
A. receiving the plurality of slave media data blocks and the plurality of master media data blocks at the data target; B. comparing stream times of the slave media data blocks and the master media data blocks to determine a timing difference between the slave media stream and the master media stream; C. controlling the slave data source to omit selected slave media data blocks from transmission across the network, when the timing difference exceeds a predetermined threshold by transmitting a control packet across the network to cause the slave data source to omit selected slave media data blocks from transmission across the network, and transmitting a second control packet across the network when the timing difference exceeds a second predetermined threshold. - View Dependent Claims (6)
-
-
7. Apparatus for synchronizing a slave media stream to a master media stream, the slave media stream having a plurality of slave media data blocks sequentially transmitted from a slave data source to a data target, and the master media stream having a plurality of master media data blocks sequentially transmitted from a master data source to the data target, the slave media blocks and the master media blocks being transmitted across a computer network, the apparatus comprising:
-
a CPU; a memory; a first software thread, stored in the memory and executable by the CPU, to cause incoming master media data blocks to be stored in the memory, in response to incoming master media data blocks being received by the apparatus; a second software thread, stored in the memory and executable by the CPU, to cause incoming slave media data blocks to be stored in the memory, in response to incoming slave media data blocks being received by the apparatus; a third software thread, stored in the memory and executable by the CPU, to cause stream times of the master stream and the slave stream to be stored in the memory; a fourth software thread, stored in the memory and executable by the CPU, to cause the CPU to process the master media data blocks stored in the memory and to inform the third thread of the stream time of the master media data blocks being processed; a fifth software thread, stored in the memory and executable by the CPU, to cause the CPU to process the slave media data blocks stored in the memory and to inform the third thread of the stream time of the slave media data blocks being processed; wherein the third thread includes means for determining whether the stream time of the master stream and the stream time of the slave stream are in asynchronism exceeding a predetermined tolerance; and wherein the fifth thread includes means for monitoring a frequency of the third thread detecting an asynchronism exceeding the predetermined tolerance and includes means for transmitting a control packet across the network to the slave data source to cause the slave data source to omit selected slave media data blocks from transmission across the network, when the frequency exceeds a predetermined threshold, the control packet including;
a frame drop number, indicating the number of slave media data blocks to drop at the slave data source at a given instance;
an interval count, indicating the number of slave media data blocks to allow to pass before attempting to drop more slave media data blocks; and
a skip count, indicating the number of times to repeat dropping frames according to the frame drop number and the interval count. - View Dependent Claims (8, 9)
-
-
10. A computer program product for use with a computer, the program product comprising:
a computer usable medium having computer readable program code means embodied in said medium for causing the computer to synchronize a slave media stream a master media stream, the slave media stream having a plurality of slave media data blocks sequentially transmitted from a slave data source to a data target, the master media stream having a plurality of master media data blocks sequentially transmitted from a master data source to the data target, the slave media blocks and the master media blocks being transmitted across a computer network, the program code comprising; first computer program means for causing the computer to receive the plurality of slave media data blocks and the plurality of master media data blocks at the data target; second computer program means for comparing stream times of the slave media data blocks and the master media data blocks to determine a timing difference between the slave media stream and the master media stream; and third computer program means for causing the computer to control the slave data source to omit selected slave media data blocks from transmission across the computer network when the timing difference exceeds a predetermined threshold by transmitting a control packet across the network to cause the slave data source to omit slave media data blocks from transmission across the network, and transmitting a second control packet across the network when the timing difference exceeds a second predetermined threshold. - View Dependent Claims (11)
Specification