X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fvideo_frame.cc;h=e7c6a226aed47355f272aaf6d052bad7915d482e;hb=45d5a5004a49edabbc96cd1acba12e08d31510f1;hp=e2223ff9ec2132d65f3b8a85d3c4d6e2122ba7ba;hpb=4b7b0edb359ae68f2dbcab90c7c10382f507fa5b;p=dcpomatic.git diff --git a/src/lib/video_frame.cc b/src/lib/video_frame.cc index e2223ff9e..e7c6a226a 100644 --- a/src/lib/video_frame.cc +++ b/src/lib/video_frame.cc @@ -19,6 +19,7 @@ */ #include "video_frame.h" +#include "dcpomatic_assert.h" VideoFrame & VideoFrame::operator++ () @@ -46,3 +47,31 @@ operator!= (VideoFrame const & a, VideoFrame const & b) { return !(a == b); } + +bool +operator> (VideoFrame const & a, VideoFrame const & b) +{ + if (a.index() != b.index()) { + return a.index() > b.index(); + } + + /* indexes are the same */ + + if (a.eyes() == b.eyes()) { + return false; + } + + /* eyes are not the same */ + + if (a.eyes() == EYES_LEFT && b.eyes() == EYES_RIGHT) { + return false; + } + + if (a.eyes() == EYES_RIGHT && b.eyes() == EYES_LEFT) { + return true; + } + + /* should never get here; we are comparing 2D with 3D */ + + DCPOMATIC_ASSERT (false); +}