diff options
| author | Carl Hetherington <cth@carlh.net> | 2012-08-11 22:52:47 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2012-08-11 22:52:47 +0100 |
| commit | bc09fbc79580f56c93e35de25230af18b30e0e1e (patch) | |
| tree | 8e640910c78d04b4e234668c7d8c7f1feac60873 /src/sound_asset.cc | |
| parent | 2cd9086c95686117ffbce92188d50d525ed488bb (diff) | |
Access sound asset sampling rate, channels; access sound asset from DCP; fix bad cast to float.
Diffstat (limited to 'src/sound_asset.cc')
| -rw-r--r-- | src/sound_asset.cc | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/sound_asset.cc b/src/sound_asset.cc index d8ea94d1..a8b63727 100644 --- a/src/sound_asset.cc +++ b/src/sound_asset.cc @@ -245,3 +245,22 @@ SoundAsset::equals (shared_ptr<const Asset> other, EqualityOptions opt) const return notes; } + + +int +SoundAsset::sampling_rate () const +{ + ASDCP::PCM::MXFReader reader; + if (ASDCP_FAILURE (reader.OpenRead (mxf_path().string().c_str()))) { + throw FileError ("could not open MXF file for reading", mxf_path().string()); + } + + + ASDCP::PCM::AudioDescriptor desc; + if (ASDCP_FAILURE (reader.FillAudioDescriptor (desc))) { + throw DCPReadError ("could not read audio MXF information"); + } + + return desc.AudioSamplingRate.Numerator / desc.AudioSamplingRate.Denominator; +} + |
