*/
+#ifndef DVDOMATIC_DECODER_FACTORY_H
+#define DVDOMATIC_DECODER_FACTORY_H
+
/** @file src/decoder_factory.h
- * @brief A method to create an appropriate decoder for some content.
+ * @brief A method to create appropriate decoders for some content.
*/
-class Decoder;
+#include "options.h"
+
class Film;
-class Options;
-class Job;
-class Log;
+class VideoDecoder;
+class AudioDecoder;
+
+struct Decoders {
+ Decoders () {}
+
+ Decoders (boost::shared_ptr<VideoDecoder> v, boost::shared_ptr<AudioDecoder> a)
+ : video (v)
+ , audio (a)
+ {}
-extern boost::shared_ptr<Decoder> decoder_factory (
- boost::shared_ptr<Film>, boost::shared_ptr<const Options>, Job *, bool minimal = false, bool ignore_length = false
+ boost::shared_ptr<VideoDecoder> video;
+ boost::shared_ptr<AudioDecoder> audio;
+};
+
+extern Decoders decoder_factory (
+ boost::shared_ptr<Film>, DecodeOptions
);
+
+#endif