class Butler : public ExceptionStore
{
public:
+ enum class Audio
+ {
+ ENABLED,
+ DISABLED
+ };
+
Butler (
std::weak_ptr<const Film> film,
std::shared_ptr<Player> player,
AudioMapping map,
int audio_channels,
std::function<AVPixelFormat (AVPixelFormat)> pixel_format,
+ dcp::Size display_container,
+ dcp::Size film_container,
VideoRange video_range,
Image::Alignment alignment,
bool fast,
- bool prepare_only_proxy
+ bool prepare_only_proxy,
+ Audio audio
);
~Butler ();
};
std::pair<std::shared_ptr<PlayerVideo>, dcpomatic::DCPTime> get_video (Behaviour behaviour, Error* e = nullptr);
- boost::optional<dcpomatic::DCPTime> get_audio (float* out, Frame frames);
+ boost::optional<dcpomatic::DCPTime> get_audio (Behaviour behaviour, float* out, Frame frames);
boost::optional<TextRingBuffers::Data> get_closed_caption ();
- void disable_audio ();
-
std::pair<size_t, std::string> memory_used () const;
private:
bool _disable_audio;
std::function<AVPixelFormat (AVPixelFormat)> _pixel_format;
+ dcp::Size _display_container;
+ dcp::Size _film_container;
VideoRange _video_range;
Image::Alignment _alignment;
bool _fast;
/** true to ask PlayerVideo::prepare to only prepare the ImageProxy and not also
* the final image. We want to do this when the viewer is intending to call
- * PlayerVideo::raw_image() and do the things in PlayerVideo::make_imgae() itself:
+ * PlayerVideo::raw_image() and do the things in PlayerVideo::make_image() itself:
* this is the case for the GLVideoView which can do scale, pixfmt conversion etc.
* in the shader.
*/