summaryrefslogtreecommitdiff
path: root/src/AS_02.h
diff options
context:
space:
mode:
authormschroffel <mschroffel@cinecert.com>2015-02-19 22:42:18 +0000
committermschroffel <>2015-02-19 22:42:18 +0000
commit528cacb6122b33f73a805fbb47b4ae83a46db418 (patch)
treead68a5c66b827dba27ed0d84c54735aa5dee0569 /src/AS_02.h
parent665b2e2e5dcf2266e636d29bcf4ef281da65117f (diff)
banner updates to 2015
Diffstat (limited to 'src/AS_02.h')
-rw-r--r--src/AS_02.h14
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