Rework audio to deinterleave straight away and pass data
[dcpomatic.git] / src / lib / encoder.h
index ea356cec4ba05cead7b17e63f727644d77eb3f73..5dc0804c6a00643e51ca363653474144364789bb 100644 (file)
@@ -36,6 +36,7 @@ class FilmState;
 class Options;
 class Image;
 class Log;
+class Subtitle;
 
 /** @class Encoder
  *  @brief Parent class for classes which can encode video and audio frames.
@@ -58,14 +59,15 @@ public:
        /** Called with a frame of video.
         *  @param i Video frame image.
         *  @param f Frame number within the film.
+        *  @param s A subtitle that should be on this frame, or 0.
         */
-       virtual void process_video (boost::shared_ptr<Image> i, int f) = 0;
+       virtual void process_video (boost::shared_ptr<Image> i, int f, boost::shared_ptr<Subtitle> s) = 0;
 
        /** Called with some audio data.
-        *  @param d Data.
-        *  @param s Size of data (in bytes)
+        *  @param d Array of pointers to floating point sample data for each channel.
+        *  @param s Number of frames (ie number of samples in each channel)
         */
-       virtual void process_audio (uint8_t* d, int s) = 0;
+       virtual void process_audio (float** d, int s) = 0;
 
        /** Called when a processing run has finished */
        virtual void process_end () = 0;