#include <boost/thread/mutex.hpp>
#include <list>
#include <stdint.h>
+extern "C" {
+#include <libavutil/samplefmt.h>
+}
class FilmState;
class Options;
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.
/** 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;
};