{
return String::compose ("video: length %1, size %2x%3, rate %4", video_length(), video_size().width, video_size().height, video_frame_rate());
}
+
+libdcp::Size
+VideoContent::video_size_after_3d_split () const
+{
+ libdcp::Size const s = video_size ();
+ switch (video_frame_type ()) {
+ case VIDEO_FRAME_TYPE_2D:
+ return s;
+ case VIDEO_FRAME_TYPE_3D_LEFT_RIGHT:
+ return libdcp::Size (s.width / 2, s.height);
+ }
+
+ assert (false);
+}
if (!_film->content().empty ()) {
set_selection (_film->content().front ());
- } else {
- content_selection_changed ();
}
+
+ content_selection_changed ();
}
void
if (property == VideoContentProperty::VIDEO_FRAME_TYPE) {
checked_set (_frame_type, vc ? vc->video_frame_type () : VIDEO_FRAME_TYPE_2D);
+ setup_description ();
} else if (property == VideoContentProperty::VIDEO_CROP) {
checked_set (_left_crop, vc ? vc->crop().left : 0);
checked_set (_right_crop, vc ? vc->crop().right : 0);
if (vc->video_size().width && vc->video_size().height) {
d << wxString::Format (
_("Content video is %dx%d (%.2f:1)\n"),
- vc->video_size().width, vc->video_size().height,
- float (vc->video_size().width) / vc->video_size().height
+ vc->video_size_after_3d_split().width, vc->video_size_after_3d_split().height,
+ float (vc->video_size_after_3d_split().width) / vc->video_size_after_3d_split().height
);
++lines;
}
Crop const crop = vc->crop ();
if ((crop.left || crop.right || crop.top || crop.bottom) && vc->video_size() != libdcp::Size (0, 0)) {
- libdcp::Size cropped = vc->video_size ();
+ libdcp::Size cropped = vc->video_size_after_3d_split ();
cropped.width -= crop.left + crop.right;
cropped.height -= crop.top + crop.bottom;
d << wxString::Format (