diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-07-24 23:27:09 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-07-24 23:27:09 +0100 |
| commit | 595f564a52d69d0401f5622c7d81cacda679005c (patch) | |
| tree | 6e993fdab993194e9c9d2fc47960caf9c5437d97 /src | |
| parent | 4c6e64ed9792fa15acba4255f02e2132d4ed4ea5 (diff) | |
Fix video information with 3D.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/video_content.cc | 14 | ||||
| -rw-r--r-- | src/lib/video_content.h | 2 | ||||
| -rw-r--r-- | src/wx/film_editor.cc | 4 | ||||
| -rw-r--r-- | src/wx/video_panel.cc | 7 |
4 files changed, 22 insertions, 5 deletions
diff --git a/src/lib/video_content.cc b/src/lib/video_content.cc index d70ece340..f61518ec0 100644 --- a/src/lib/video_content.cc +++ b/src/lib/video_content.cc @@ -243,3 +243,17 @@ VideoContent::technical_summary () const { 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); +} diff --git a/src/lib/video_content.h b/src/lib/video_content.h index 513e1f598..97ef6a9fa 100644 --- a/src/lib/video_content.h +++ b/src/lib/video_content.h @@ -88,6 +88,8 @@ public: return _ratio; } + libdcp::Size video_size_after_3d_split () const; + protected: void take_from_video_examiner (boost::shared_ptr<VideoExaminer>); diff --git a/src/wx/film_editor.cc b/src/wx/film_editor.cc index 5839244a4..cb14f70e7 100644 --- a/src/wx/film_editor.cc +++ b/src/wx/film_editor.cc @@ -531,9 +531,9 @@ FilmEditor::set_film (shared_ptr<Film> f) if (!_film->content().empty ()) { set_selection (_film->content().front ()); - } else { - content_selection_changed (); } + + content_selection_changed (); } void diff --git a/src/wx/video_panel.cc b/src/wx/video_panel.cc index f5306e67f..edf4505c9 100644 --- a/src/wx/video_panel.cc +++ b/src/wx/video_panel.cc @@ -183,6 +183,7 @@ VideoPanel::film_content_changed (shared_ptr<Content> c, int property) 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); @@ -259,15 +260,15 @@ VideoPanel::setup_description () 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 ( |
