* @brief Parent class for audio decoders.
*/
-#ifndef DVDOMATIC_AUDIO_DECODER_H
-#define DVDOMATIC_AUDIO_DECODER_H
+#ifndef DCPOMATIC_AUDIO_DECODER_H
+#define DCPOMATIC_AUDIO_DECODER_H
#include "audio_source.h"
#include "decoder.h"
+extern "C" {
+#include <libswresample/swresample.h>
+}
class AudioContent;
class AudioDecoder : public AudioSource, public virtual Decoder
{
public:
- AudioDecoder (boost::shared_ptr<const Film>, boost::shared_ptr<AudioContent>);
+ AudioDecoder (boost::shared_ptr<const Film>, boost::shared_ptr<const AudioContent>);
+ ~AudioDecoder ();
+
+ void emit_audio (boost::shared_ptr<const AudioBuffers>, Time);
+
+protected:
+ Time _next_audio;
+
+private:
+ boost::shared_ptr<const AudioContent> _audio_content;
+ SwrContext* _swr_context;
+ int _output_audio_frame_rate;
};
#endif