/** * 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 };