Basic support for separate 3D left/right sources.
authorCarl Hetherington <cth@carlh.net>
Tue, 1 Apr 2014 09:02:09 +0000 (10:02 +0100)
committerCarl Hetherington <cth@carlh.net>
Tue, 1 Apr 2014 09:02:09 +0000 (10:02 +0100)
ChangeLog
src/lib/types.h
src/lib/video_content.cc
src/lib/video_content.h
src/lib/video_decoder.cc
src/wx/video_panel.cc

index c8a9ddf8b405abf92136c80b91c3494fec876669..22fddbeb1fbca95c3271bc0f2e08ab4065c856a5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-04-01  Carl Hetherington  <cth@carlh.net>
+
+       * Basic support for separate left/right-eye files or directories
+       for 3D.
+
 2014-03-30  Carl Hetherington  <cth@carlh.net>
 
        * Version 1.66.9 released.
index 8a16818bddae84b86ecc9d55cf5b5ed600fe547f..c255bd0d8a43acd6c80a9a5a38f4040fa0e82dca 100644 (file)
@@ -70,7 +70,11 @@ enum VideoFrameType
        VIDEO_FRAME_TYPE_2D,
        VIDEO_FRAME_TYPE_3D_LEFT_RIGHT,
        VIDEO_FRAME_TYPE_3D_TOP_BOTTOM,
-       VIDEO_FRAME_TYPE_3D_ALTERNATE
+       VIDEO_FRAME_TYPE_3D_ALTERNATE,
+       /** This content is all the left frames of some 3D */
+       VIDEO_FRAME_TYPE_3D_LEFT,
+       /** This content is all the right frames of some 3D */
+       VIDEO_FRAME_TYPE_3D_RIGHT
 };
 
 enum Eyes
index 4a1ef95acfc3335995f420685e3f5d1de0a8fd9e..b704b64477b1ceaef7208dafd5ae2e0b775fcd89 100644 (file)
@@ -330,6 +330,8 @@ VideoContent::video_size_after_3d_split () const
        switch (video_frame_type ()) {
        case VIDEO_FRAME_TYPE_2D:
        case VIDEO_FRAME_TYPE_3D_ALTERNATE:
+       case VIDEO_FRAME_TYPE_3D_LEFT:
+       case VIDEO_FRAME_TYPE_3D_RIGHT:
                return s;
        case VIDEO_FRAME_TYPE_3D_LEFT_RIGHT:
                return libdcp::Size (s.width / 2, s.height);
index f846b7ac97a095e4db0eb95d5fb0a33d17f341f2..fbba9c09da21ea8b015ad441c92e446e4bb9d499 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2013-2014 Carl Hetherington <cth@carlh.net>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
index 3ae963a202f7081322f8e9bab5ab525d0d7309cc..2a33a8c3a260d78bc2697f80f217e78d635ff1ff 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -57,6 +57,12 @@ VideoDecoder::video (shared_ptr<const Image> image, bool same, VideoContent::Fra
                Video (image->crop (Crop (0, 0, half, 0), true), EYES_RIGHT, same, frame);
                break;
        }
+       case VIDEO_FRAME_TYPE_3D_LEFT:
+               Video (image, EYES_LEFT, same, frame);
+               break;
+       case VIDEO_FRAME_TYPE_3D_RIGHT:
+               Video (image, EYES_RIGHT, same, frame);
+               break;
        }
        
        _video_position = frame + 1;
index 56848907b3e96a72e2d7d42f9e75af8cb91aed38..ac4c29222b231e9912ca1e7306bbd91f253c8ac2 100644 (file)
@@ -197,6 +197,8 @@ VideoPanel::VideoPanel (FilmEditor* e)
        _frame_type->wrapped()->Append (_("3D left/right"));
        _frame_type->wrapped()->Append (_("3D top/bottom"));
        _frame_type->wrapped()->Append (_("3D alternate"));
+       _frame_type->wrapped()->Append (_("3D left only"));
+       _frame_type->wrapped()->Append (_("3D right only"));
 
        _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));