/*
- Copyright (C) 2012-2013 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
*/
-#include <sndfile.h>
-#include "decoder.h"
#include "audio_decoder.h"
+#include "sndfile_base.h"
class SndfileContent;
-class SndfileDecoder : public AudioDecoder
+class SndfileDecoder : public Sndfile, public AudioDecoder
{
public:
- SndfileDecoder (boost::shared_ptr<const SndfileContent>);
+ SndfileDecoder (boost::shared_ptr<const SndfileContent> c, bool fast);
~SndfileDecoder ();
+private:
+ bool pass (PassReason, bool);
void seek (ContentTime, bool);
- int audio_channels () const;
- ContentTime audio_length () const;
- int audio_frame_rate () const;
-
-private:
- bool pass ();
-
- boost::shared_ptr<const SndfileContent> _sndfile_content;
- SNDFILE* _sndfile;
- SF_INFO _info;
int64_t _done;
int64_t _remaining;
float* _deinterleave_buffer;