Audio/video syncronization with no clean points
First Claim
1. In a computing system that has access to streamed multimedia data, the streamed multimedia data including at least two media streams having corresponding data packets, and wherein at least some of the data packets include original timestamps that corresponds with an intended playback synchronization of the multimedia data, a method for synchronizing the playback of the at least two media streams commencing at a starting point that is seeked for within the multimedia data, the method comprising:
- an act of seeking to a desired starting point within the streamed multimedia data, the desired starting point corresponding with a desired playback portion of the multimedia data;
an act of identifying a total number of media streams that are included within the desired playback portion of the multimedia data;
an act of reading ahead a maximum number of data packets in each of the total number of media streams from the desired starting point;
an act of identifying a smallest original timestamp of a data packet within the maximum number of data packets, the smallest original timestamp comprising a normalizing presentation timestamp that corresponds with a presentation starting point for commencing the playback of the desired playback portion of the multimedia data;
an act of assigning a presentation timestamp to each one of the maximum number of data packets that has an original timestamp by subtracting the normalizing presentation timestamp from the original timestamp of each data packet; and
an act of transmitting the maximum number of data packets to at least one rendering device for enabling the total number of media streams to be played back according to presentation timestamp on the at least one rendering device with the intended playback synchronization of the multimedia data.
2 Assignments
0 Petitions
Accused Products
Abstract
A computing system that has access to a streamed multimedia sample that is stored on a storage medium applies a zero-based presentation timestamp numbering scheme to the data packets of the multimedia sample, on-the-fly, and after each seek operation. After seeking to a desired starting point, the computing system reads ahead a maximum number of data packets within each media stream of the multimedia sample. A smallest timestamp (normalizing presentation timestamp) is identified and then subtracted from the timestamps of the data packets that are transmitted to the appropriate rendering devices, thereby creating appropriate presentation timestamps for the data packets for synchronizing the playback of the multimedia sample.
-
Citations
48 Claims
-
1. In a computing system that has access to streamed multimedia data, the streamed multimedia data including at least two media streams having corresponding data packets, and wherein at least some of the data packets include original timestamps that corresponds with an intended playback synchronization of the multimedia data, a method for synchronizing the playback of the at least two media streams commencing at a starting point that is seeked for within the multimedia data, the method comprising:
-
an act of seeking to a desired starting point within the streamed multimedia data, the desired starting point corresponding with a desired playback portion of the multimedia data;
an act of identifying a total number of media streams that are included within the desired playback portion of the multimedia data;
an act of reading ahead a maximum number of data packets in each of the total number of media streams from the desired starting point;
an act of identifying a smallest original timestamp of a data packet within the maximum number of data packets, the smallest original timestamp comprising a normalizing presentation timestamp that corresponds with a presentation starting point for commencing the playback of the desired playback portion of the multimedia data;
an act of assigning a presentation timestamp to each one of the maximum number of data packets that has an original timestamp by subtracting the normalizing presentation timestamp from the original timestamp of each data packet; and
an act of transmitting the maximum number of data packets to at least one rendering device for enabling the total number of media streams to be played back according to presentation timestamp on the at least one rendering device with the intended playback synchronization of the multimedia data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. In a computing system that has access to streamed multimedia data, the streamed multimedia data including at least two media streams having corresponding data packets, and wherein at least some of the data packets include original timestamps that corresponds with an intended playback synchronization of the multimedia data, a method for synchronizing the playback of the at least two media streams commencing at a starting point that is seeked for within the multimedia data, the method comprising:
-
an act of seeking to a desired starting point within the streamed multimedia data, the desired starting point corresponding with a desired playback portion of the multimedia data;
a step for identifying a normalizing presentation timestamp upon which to base the playback of the desired playback portion of the multimedia data;
an act of assigning a presentation timestamp to each one of the maximum number of data packets that has an original timestamp by subtracting the normalizing presentation timestamp from the original timestamp of each data packet; and
an act of transmitting the maximum number of data packets to at least one rendering device for enabling the total number of media streams to be played back according to presentation timestamp on the at least one rendering device with the intended playback synchronization of the multimedia data. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A computer program product for implementing a method in a computing system, wherein the computing system has access to streamed multimedia data, the streamed multimedia data including data packets of at least two media streams, and wherein at least some of the data packets include original timestamps that correspond with an intended playback synchronization of the multimedia, the computer program product comprising:
one or more computer-readable media carrying computer-executable instructions, that when executed at the computing system, cause the computing system to perform a method for synchronizing the playback of the at least two media streams commencing at a starting point that is seeked for within the multimedia data, the method including the acts of;
the act of seeking to a desired starting point within the streamed multimedia data, the desired starting point corresponding with a desired playback portion of the multimedia data;
the act of identifying a total number of media streams that are included within the desired playback portion of the multimedia data;
the act of reading ahead a maximum number of data packets in each of the total number of media streams from the desired starting point;
the act of identifying a smallest original timestamp of a data packet within the maximum number of data packets, the smallest original timestamp comprising a normalizing presentation timestamp that corresponds with a presentation starting point for commencing the playback of the desired playback portion of the multimedia data;
the act of assigning a presentation timestamp to each one of the maximum number of data packets that has an original timestamp by subtracting the normalizing presentation timestamp from the original timestamp of each data packet; and
the act of transmitting the maximum number of data packets to at least one rendering device for enabling the total number of media streams to be played back according to presentation timestamp on the at least one rendering device with the intended playback synchronization of the multimedia data. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
-
45. In a computing system that has access to streamed multimedia data, the streamed multimedia data including at least two media streams having corresponding data packets, and wherein at least some of the data packets include original timestamps that corresponds with an intended playback synchronization of the multimedia data, a method for synchronizing the playback of the at least two media streams in reverse and commencing at a starting point that is seeked for within the multimedia data, the method comprising:
-
an act of seeking to a desired starting point within the streamed multimedia data, the desired starting point corresponding with a desired playback portion of the multimedia data;
an act of identifying a total number of media streams that are included within the desired playback portion of the multimedia data;
an act of reading backwards a maximum number of data packets in each of the total number of media streams from the desired starting point;
an act of identifying a largest original timestamp of a data packet within the maximum number of data packets, the largest original timestamp comprising a normalizing presentation timestamp that corresponds with a presentation starting point for commencing the playback of the desired playback portion of the multimedia data;
an act of assigning a presentation timestamp to each one of the maximum number of data packets that has an original timestamp by subtracting the original timestamp of each data packet from the normalizing presentation timestamp; and
an act of transmitting the maximum number of data packets to at least one rendering device for enabling the total number of media streams to be played back according to presentation timestamp on the at least one rendering device with the intended playback synchronization of the multimedia data. - View Dependent Claims (46, 47, 48)
-
Specification