diff options
| author | mschroffel <mschroffel@cinecert.com> | 2015-02-19 22:42:18 +0000 |
|---|---|---|
| committer | mschroffel <> | 2015-02-19 22:42:18 +0000 |
| commit | 528cacb6122b33f73a805fbb47b4ae83a46db418 (patch) | |
| tree | ad68a5c66b827dba27ed0d84c54735aa5dee0569 /src/AS_02.h | |
| parent | 665b2e2e5dcf2266e636d29bcf4ef281da65117f (diff) | |
banner updates to 2015
Diffstat (limited to 'src/AS_02.h')
| -rw-r--r-- | src/AS_02.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/AS_02.h b/src/AS_02.h index 02efb9f..78f9229 100644 --- a/src/AS_02.h +++ b/src/AS_02.h @@ -118,12 +118,18 @@ namespace AS_02 } // Returns number of frames for data described by ADesc, given a duration in samples and an edit rate - inline ui32_t CalcFramesFromDurationInSamples(const ui32_t durationInSamples, const ASDCP::MXF::WaveAudioDescriptor& d, + inline ui32_t CalcFramesFromDurationInSamples(const ui32_t duration_samples, const ASDCP::MXF::WaveAudioDescriptor& d, const ASDCP::Rational& edit_rate) { - return static_cast<ui32_t>(static_cast<ui64_t>(durationInSamples) * - static_cast<ui64_t>(d.AudioSamplingRate.Denominator * edit_rate.Numerator) / - static_cast<ui64_t>(d.AudioSamplingRate.Numerator * edit_rate.Denominator)); + ui32_t spf = CalcSamplesPerFrame(d, edit_rate); + ui32_t frames = duration_samples / spf; + + if ( duration_samples % spf != 0 ) + { + ++frames; + } + + return frames; } } // namespace MXF |
