From eb1a65ba718c15a831d6c99a9bf1a51998aa4f9a Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 23 Dec 2013 01:20:52 +0000 Subject: [PATCH] Add top/bottom option for 3D frames. --- ChangeLog | 4 ++++ src/lib/types.h | 3 ++- src/lib/video_content.cc | 2 ++ src/lib/video_decoder.cc | 7 +++++++ src/wx/video_panel.cc | 1 + 5 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index ed6021c98..9295e4a57 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2013-12-23 Carl Hetherington + + * Add top/bottom option for 3D frames. + 2013-12-20 Carl Hetherington * Add configuration option for default audio delay (#276). diff --git a/src/lib/types.h b/src/lib/types.h index 448b6c154..96b993a8e 100644 --- a/src/lib/types.h +++ b/src/lib/types.h @@ -68,7 +68,8 @@ struct TimedAudioBuffers enum VideoFrameType { VIDEO_FRAME_TYPE_2D, - VIDEO_FRAME_TYPE_3D_LEFT_RIGHT + VIDEO_FRAME_TYPE_3D_LEFT_RIGHT, + VIDEO_FRAME_TYPE_3D_TOP_BOTTOM }; enum Eyes diff --git a/src/lib/video_content.cc b/src/lib/video_content.cc index 0a19ffd69..cc075a34c 100644 --- a/src/lib/video_content.cc +++ b/src/lib/video_content.cc @@ -327,6 +327,8 @@ VideoContent::video_size_after_3d_split () const return s; case VIDEO_FRAME_TYPE_3D_LEFT_RIGHT: return libdcp::Size (s.width / 2, s.height); + case VIDEO_FRAME_TYPE_3D_TOP_BOTTOM: + return libdcp::Size (s.width, s.height / 2); } assert (false); diff --git a/src/lib/video_decoder.cc b/src/lib/video_decoder.cc index eaa4534e4..e7ddec5e6 100644 --- a/src/lib/video_decoder.cc +++ b/src/lib/video_decoder.cc @@ -47,6 +47,13 @@ VideoDecoder::video (shared_ptr image, bool same, VideoContent::Fra Video (image->crop (Crop (half, 0, 0, 0), true), EYES_RIGHT, same, frame); break; } + case VIDEO_FRAME_TYPE_3D_TOP_BOTTOM: + { + int const half = image->size().height / 2; + Video (image->crop (Crop (0, 0, 0, half), true), EYES_LEFT, same, frame); + Video (image->crop (Crop (0, 0, half, 0), true), EYES_RIGHT, same, frame); + break; + } } _video_position = frame + 1; diff --git a/src/wx/video_panel.cc b/src/wx/video_panel.cc index 8609322ce..0dbee5420 100644 --- a/src/wx/video_panel.cc +++ b/src/wx/video_panel.cc @@ -199,6 +199,7 @@ VideoPanel::VideoPanel (FilmEditor* e) _frame_type->wrapped()->Append (_("2D")); _frame_type->wrapped()->Append (_("3D left/right")); + _frame_type->wrapped()->Append (_("3D top/bottom")); _filters_button->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&VideoPanel::edit_filters_clicked, this)); _colour_conversion_button->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&VideoPanel::edit_colour_conversion_clicked, this)); -- 2.30.2