Try to fix the filter / AVFrame ownership.
[dcpomatic.git] / src / lib / decoder_factory.h
index 81dcec9441043cb1e69ebf946f7b9693fc28f0f5..8076b01c7e68875434ad971d4da2b199458713a7 100644 (file)
 
 */
 
+#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