From: Carl Hetherington Date: Sun, 28 Jul 2013 08:04:43 +0000 (+0100) Subject: A couple of 3D fixes. X-Git-Tag: v2.0.48~1337^2~106 X-Git-Url: https://git.carlh.net/gitweb/?a=commitdiff_plain;h=06900ef196288b2bf9b9123f20d6561d5c8fd70b;p=dcpomatic.git A couple of 3D fixes. --- diff --git a/src/lib/writer.cc b/src/lib/writer.cc index 4c8a36597..0d66df3e3 100644 --- a/src/lib/writer.cc +++ b/src/lib/writer.cc @@ -151,8 +151,15 @@ Writer::fake_write (int frame, Eyes eyes) qi.type = QueueItem::FAKE; qi.size = info.size; qi.frame = frame; - qi.eyes = eyes; - _queue.push_back (qi); + if (_film->three_d() && eyes == EYES_BOTH) { + qi.eyes = EYES_LEFT; + _queue.push_back (qi); + qi.eyes = EYES_RIGHT; + _queue.push_back (qi); + } else { + qi.eyes = eyes; + _queue.push_back (qi); + } _condition.notify_all (); } @@ -398,9 +405,15 @@ Writer::repeat (int f, Eyes e) QueueItem qi; qi.type = QueueItem::REPEAT; qi.frame = f; - qi.eyes = e; - - _queue.push_back (qi); + if (_film->three_d() && e == EYES_BOTH) { + qi.eyes = EYES_LEFT; + _queue.push_back (qi); + qi.eyes = EYES_RIGHT; + _queue.push_back (qi); + } else { + qi.eyes = e; + _queue.push_back (qi); + } _condition.notify_all (); } @@ -487,8 +500,8 @@ operator< (QueueItem const & a, QueueItem const & b) if (a.frame != b.frame) { return a.frame < b.frame; } - - return a.eyes == EYES_LEFT && b.eyes == EYES_RIGHT; + + return static_cast (a.eyes) < static_cast (b.eyes); } bool