Files
lime/tools/mpeg/audio/Utils.hx
2019-02-14 08:41:20 -08:00

32 lines
695 B
Haxe

package mpeg.audio;
using Lambda;
class Utils
{
public static function calculateAudioLengthSamples(mpegAudio:MpegAudio)
{
return mpegAudio.frames.map(function(frame)
{
return lookupSamplesPerFrame(frame.header.version, frame.header.layer);
}).fold(function(frameSampleCount, totalSampleCount)
{
return frameSampleCount + totalSampleCount;
}, -mpegAudio.encoderDelay - mpegAudio.endPadding);
}
public static function lookupSamplesPerFrame(mpegVersion:MpegVersion, layer:Layer)
{
return switch (layer)
{
case Layer1: 384;
case Layer2: 1152;
case Layer3: switch (mpegVersion)
{
case Version1: 1152;
case Version2, Version25: 576;
};
};
}
}