}
void
-VideoContent::take_from_examiner (shared_ptr<VideoExaminer> d)
+VideoContent::take_from_examiner(shared_ptr<const Film> film, shared_ptr<VideoExaminer> d)
{
/* These examiner calls could call other content methods which take a lock on the mutex */
auto const vs = d->video_size ();
LOG_GENERAL ("Video length obtained from header as %1 frames", _length);
if (d->video_frame_rate()) {
- _parent->set_video_frame_rate (d->video_frame_rate().get());
+ _parent->set_video_frame_rate(film, d->video_frame_rate().get());
}
}
set_fade_in (c->_fade_in);
set_fade_out (c->_fade_out);
set_burnt_subtitle_language (c->_burnt_subtitle_language);
+ set_range(c->_range);
}
}
if (_custom_size) {
- return *_custom_size;
+ if (_custom_size->width <= film_container.width && _custom_size->height <= film_container.height) {
+ return *_custom_size;
+ }
+ return fit_ratio_within(_custom_size->ratio(), film_container);
}
auto size = size_after_crop ();