Mercurial > hg > svcore
comparison data/fileio/AudioFileSizeEstimator.h @ 1126:39019ce29178 tony-2.0-integration
Merge through to branch for Tony 2.0
author | Chris Cannam |
---|---|
date | Thu, 20 Aug 2015 14:54:21 +0100 |
parents | 329ddaf7415d |
children | c380e56c95f5 |
comparison
equal
deleted
inserted
replaced
1119:e22bfe8ca248 | 1126:39019ce29178 |
---|---|
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ | |
2 | |
3 /* | |
4 Sonic Visualiser | |
5 An audio file viewer and annotation editor. | |
6 Centre for Digital Music, Queen Mary, University of London. | |
7 | |
8 This program is free software; you can redistribute it and/or | |
9 modify it under the terms of the GNU General Public License as | |
10 published by the Free Software Foundation; either version 2 of the | |
11 License, or (at your option) any later version. See the file | |
12 COPYING included with this distribution for more information. | |
13 */ | |
14 | |
15 #ifndef AUDIO_FILE_SIZE_ESTIMATOR_H | |
16 #define AUDIO_FILE_SIZE_ESTIMATOR_H | |
17 | |
18 #include "base/BaseTypes.h" | |
19 #include "data/fileio/FileSource.h" | |
20 | |
21 /** | |
22 * Estimate the number of samples in an audio file. For many | |
23 * compressed files this returns only a very approximate estimate, | |
24 * based on a rough estimate of compression ratio. Initially we're | |
25 * only aiming for a conservative estimate for purposes like "will | |
26 * this file fit in memory?" (and if unsure, say no). | |
27 */ | |
28 class AudioFileSizeEstimator | |
29 { | |
30 public: | |
31 /** | |
32 * Return an estimate of the number of samples (across all | |
33 * channels) in the given audio file, once it has been decoded and | |
34 * (if applicable) resampled to the given rate. | |
35 * | |
36 * This function is intended to be reasonably fast -- it may open | |
37 * the file, but it should not do any decoding. (However, if the | |
38 * file source is remote, it will probably be downloaded in its | |
39 * entirety before anything can be estimated.) | |
40 * | |
41 * The returned value is an estimate, and is deliberately usually | |
42 * on the high side. If the estimator has no idea at all, this | |
43 * will return 0. | |
44 */ | |
45 static sv_frame_t estimate(FileSource source, | |
46 sv_samplerate_t targetRate = 0); | |
47 }; | |
48 | |
49 #endif |