summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-07-24 23:27:09 +0100
committerCarl Hetherington <cth@carlh.net>2013-07-24 23:27:09 +0100
commit595f564a52d69d0401f5622c7d81cacda679005c (patch)
tree6e993fdab993194e9c9d2fc47960caf9c5437d97 /src
parent4c6e64ed9792fa15acba4255f02e2132d4ed4ea5 (diff)
Fix video information with 3D.
Diffstat (limited to 'src')
-rw-r--r--src/lib/video_content.cc14
-rw-r--r--src/lib/video_content.h2
-rw-r--r--src/wx/film_editor.cc4
-rw-r--r--src/wx/video_panel.cc7
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 (