summaryrefslogtreecommitdiff
path: root/src/lib/encoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2016-06-14 12:58:57 +0100
committerCarl Hetherington <cth@carlh.net>2016-06-14 12:58:57 +0100
commitb5e7d7127cf06f5309d2ac652d41861de59d6232 (patch)
treea20e9c99823078b3c5d895b69f7861946f4fa7f4 /src/lib/encoder.cc
parenta30b789020ae356d8e15c6943ae5706b83df5b84 (diff)
Discard right-eye images when using 3D sources to make 2D DCPs.
Diffstat (limited to 'src/lib/encoder.cc')
-rw-r--r--src/lib/encoder.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/lib/encoder.cc b/src/lib/encoder.cc
index f766cccd9..38bf4e290 100644
--- a/src/lib/encoder.cc
+++ b/src/lib/encoder.cc
@@ -173,6 +173,17 @@ void
Encoder::encode (list<shared_ptr<PlayerVideo> > pv)
{
BOOST_FOREACH (shared_ptr<PlayerVideo> i, pv) {
+ if (!_film->three_d()) {
+ /* 2D DCP */
+ if (i->eyes() == EYES_RIGHT) {
+ /* Discard right-eye images */
+ continue;
+ } else if (i->eyes() == EYES_LEFT) {
+ /* Use left-eye images for both eyes */
+ i->set_eyes (EYES_BOTH);
+ }
+ }
+
enqueue (i);
}
++_position;
@@ -191,8 +202,6 @@ Encoder::enqueue (shared_ptr<PlayerVideo> pv)
boost::mutex::scoped_lock queue_lock (_queue_mutex);
- /* XXX: discard 3D here if required */
-
/* Wait until the queue has gone down a bit */
while (_queue.size() >= threads * 2) {
LOG_TIMING ("decoder-sleep queue=%1", _queue.size());