You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.5 KiB
59 lines
1.5 KiB
/**
|
|
* mux.js
|
|
*
|
|
* Copyright (c) Brightcove
|
|
* Licensed Apache-2.0 https://github.com/videojs/mux.js/blob/master/LICENSE
|
|
*/
|
|
var
|
|
ONE_SECOND_IN_TS = 90000, // 90kHz clock
|
|
secondsToVideoTs,
|
|
secondsToAudioTs,
|
|
videoTsToSeconds,
|
|
audioTsToSeconds,
|
|
audioTsToVideoTs,
|
|
videoTsToAudioTs,
|
|
metadataTsToSeconds;
|
|
|
|
secondsToVideoTs = function(seconds) {
|
|
return seconds * ONE_SECOND_IN_TS;
|
|
};
|
|
|
|
secondsToAudioTs = function(seconds, sampleRate) {
|
|
return seconds * sampleRate;
|
|
};
|
|
|
|
videoTsToSeconds = function(timestamp) {
|
|
return timestamp / ONE_SECOND_IN_TS;
|
|
};
|
|
|
|
audioTsToSeconds = function(timestamp, sampleRate) {
|
|
return timestamp / sampleRate;
|
|
};
|
|
|
|
audioTsToVideoTs = function(timestamp, sampleRate) {
|
|
return secondsToVideoTs(audioTsToSeconds(timestamp, sampleRate));
|
|
};
|
|
|
|
videoTsToAudioTs = function(timestamp, sampleRate) {
|
|
return secondsToAudioTs(videoTsToSeconds(timestamp), sampleRate);
|
|
};
|
|
|
|
/**
|
|
* Adjust ID3 tag or caption timing information by the timeline pts values
|
|
* (if keepOriginalTimestamps is false) and convert to seconds
|
|
*/
|
|
metadataTsToSeconds = function(timestamp, timelineStartPts, keepOriginalTimestamps) {
|
|
return videoTsToSeconds(keepOriginalTimestamps ? timestamp : timestamp - timelineStartPts);
|
|
};
|
|
|
|
module.exports = {
|
|
ONE_SECOND_IN_TS: ONE_SECOND_IN_TS,
|
|
secondsToVideoTs: secondsToVideoTs,
|
|
secondsToAudioTs: secondsToAudioTs,
|
|
videoTsToSeconds: videoTsToSeconds,
|
|
audioTsToSeconds: audioTsToSeconds,
|
|
audioTsToVideoTs: audioTsToVideoTs,
|
|
videoTsToAudioTs: videoTsToAudioTs,
|
|
metadataTsToSeconds: metadataTsToSeconds
|
|
};
|