Merge branch 'resample-drop-frame'
[dcpomatic.git] / src / lib / encoder.h
index 5c0c4c03fdb95fabf993b5f7ad1fbc08f19cf111..ea356cec4ba05cead7b17e63f727644d77eb3f73 100644 (file)
@@ -28,6 +28,9 @@
 #include <boost/thread/mutex.hpp>
 #include <list>
 #include <stdint.h>
+extern "C" {
+#include <libavutil/samplefmt.h>
+}
 
 class FilmState;
 class Options;
@@ -50,7 +53,7 @@ public:
        Encoder (boost::shared_ptr<const FilmState> s, boost::shared_ptr<const Options> o, Log* l);
 
        /** Called to indicate that a processing run is about to begin */
-       virtual void process_begin () = 0;
+       virtual void process_begin (int64_t audio_channel_layout, AVSampleFormat audio_sample_format) = 0;
 
        /** Called with a frame of video.
         *  @param i Video frame image.
@@ -84,10 +87,15 @@ protected:
 
        /** Mutex for _time_history, _just_skipped and _last_frame */
        mutable boost::mutex _history_mutex;
+       /** List of the times of completion of the last _history_size frames;
+           first is the most recently completed.
+       */
        std::list<struct timeval> _time_history;
+       /** Number of frames that we should keep history for */
        static int const _history_size;
        /** true if the last frame we processed was skipped (because it was already done) */
        bool _just_skipped;
+       /** Index of the last frame to be processed */
        int _last_frame;
 };