*/
+#include "audio_content.h"
#include "film.h"
#include "piece.h"
+using boost::optional;
using boost::shared_ptr;
using namespace dcpomatic;
return max(ContentTime(), ContentTime(s, frc) + content->trim_start());
}
+
+bool
+Piece::video_use () const
+{
+ return content->video->use();
+}
+
+
+optional<double>
+Piece::video_fade (shared_ptr<const Film> film, Frame frame) const
+{
+ return content->video->fade (film, frame);
+}
+
+
+dcp::Size
+Piece::video_scaled_size (dcp::Size container_size)
+{
+ return content->video->scaled_size(container_size);
+}
+
+
+optional<ColourConversion>
+Piece::video_colour_conversion () const
+{
+ return content->video->colour_conversion();
+}
+
+
+VideoRange
+Piece::video_range () const
+{
+ return content->video->range();
+}
+
+
+int
+Piece::audio_resampled_frame_rate (boost::shared_ptr<const Film> film) const
+{
+ return content->audio->resampled_frame_rate (film);
+}
+
+
+double
+Piece::audio_gain () const
+{
+ return content->audio->gain();
+}
+
dcpomatic::ContentTime dcp_to_content_time (boost::shared_ptr<const Film> film, dcpomatic::DCPTime t) const;
Crop video_crop () const;
+ bool video_use () const;
+ boost::optional<double> video_fade (boost::shared_ptr<const Film> film, Frame frame) const;
+ dcp::Size video_scaled_size (dcp::Size container_size);
+ boost::optional<ColourConversion> video_colour_conversion () const;
+ VideoRange video_range () const;
+
+ int audio_resampled_frame_rate (boost::shared_ptr<const Film> film) const;
+ double audio_gain () const;
boost::shared_ptr<Content> content;
boost::shared_ptr<Decoder> decoder;
return;
}
- if (!piece->content->video->use()) {
+ if (!piece->video_use()) {
return;
}
new PlayerVideo (
video.image,
piece->video_crop(),
- piece->content->video->fade (_film, video.frame),
- scale_for_display(piece->content->video->scaled_size(_film->frame_size()), _video_container_size, _film->frame_size()),
+ piece->video_fade(_film, video.frame),
+ scale_for_display(piece->video_scaled_size(_film->frame_size()), _video_container_size, _film->frame_size()),
_video_container_size,
video.eyes,
video.part,
- piece->content->video->colour_conversion(),
- piece->content->video->range(),
+ piece->video_colour_conversion(),
+ piece->video_range(),
piece->content,
video.frame,
false
return;
}
- shared_ptr<AudioContent> content = piece->content->audio;
- DCPOMATIC_ASSERT (content);
-
- int const rfr = content->resampled_frame_rate (_film);
+ int const rfr = piece->audio_resampled_frame_rate (_film);
/* Compute time in the DCP */
DCPTime time = piece->resampled_audio_to_dcp (_film, content_audio.frame);
/* Gain */
- if (content->gain() != 0) {
+ if (piece->audio_gain() != 0) {
shared_ptr<AudioBuffers> gain (new AudioBuffers (content_audio.audio));
- gain->apply_gain (content->gain ());
+ gain->apply_gain (piece->audio_gain());
content_audio.audio = gain;
}