appropriate the wave encoding files for opus encoding prototype (stub functionality for now)

pull/18/head
Dimitri Diakopoulos 10 years ago
parent 494c0ab9ec
commit 4019cdee22

@ -33,28 +33,31 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
namespace nqr namespace nqr
{ {
enum EncoderError
{
NoError,
InsufficientSampleData,
FileIOError,
UnsupportedSamplerate,
UnsupportedChannelConfiguration,
UnsupportedBitdepth,
UnsupportedChannelMix,
BufferTooBig,
};
// A simplistic encoder that takes a blob of data, conforms it to the user's // A simplistic encoder that takes a blob of data, conforms it to the user's
// EncoderParams preference, and writes to disk. Be warned, does not support resampling! // EncoderParams preference, and writes to disk. Be warned, does not support resampling!
// @todo support dithering, samplerate conversion, etc. // @todo support dithering, samplerate conversion, etc.
class WavEncoder struct WavEncoder
{ {
enum EncoderError
{
NoError,
InsufficientSampleData,
FileIOError,
UnsupportedSamplerate,
UnsupportedChannelConfiguration,
UnsupportedBitdepth,
UnsupportedChannelMix,
BufferTooBig,
};
public:
// Assume data adheres to EncoderParams, except for bit depth and fmt // Assume data adheres to EncoderParams, except for bit depth and fmt
static int WriteFile(const EncoderParams p, const AudioData * d, const std::string & path); static int WriteFile(const EncoderParams p, const AudioData * d, const std::string & path);
};
struct OpusEncoder
{
static int WriteFile(const EncoderParams p, const AudioData * d, const std::string & path);
}; };
} // end namespace nqr } // end namespace nqr

@ -36,6 +36,10 @@ inline void toBytes(int value, char * arr)
arr[3] = (value >> 24) & 0xFF; arr[3] = (value >> 24) & 0xFF;
} }
////////////////////////////
// Wave File Encoding //
////////////////////////////
int WavEncoder::WriteFile(const EncoderParams p, const AudioData * d, const std::string & path) int WavEncoder::WriteFile(const EncoderParams p, const AudioData * d, const std::string & path)
{ {
assert(d->samples.size() > 0); assert(d->samples.size() > 0);
@ -189,3 +193,19 @@ int WavEncoder::WriteFile(const EncoderParams p, const AudioData * d, const std:
return EncoderError::NoError; return EncoderError::NoError;
} }
////////////////////////////
// Opus File Encoding //
////////////////////////////
int OpusEncoder::WriteFile(const EncoderParams p, const AudioData * d, const std::string & path)
{
assert(d->samples.size() > 0);
// Cast away const because we know what we are doing (Hopefully?)
float * sampleData = const_cast<float *>(d->samples.data());
size_t sampleDataSize = d->samples.size();
return EncoderError::NoError;
}

Loading…
Cancel
Save