Make DCPExaminer::size() optional and deal with the consequences. This means we can fix the case of a VF having no known size in a nice way, in turn fixing problems caused by the fix to #2775.
Add a premultiply filter to sources with an alpha channel (#2681).
Cleanup: handle Filter objects by value rather than by reference.
Extract constants.h
Noisy change to get film into AudioContent::modify_trim_start().
Fix colour range property for subsampled sources (#2357).
Fix font_id errors with files decoded by FFmpeg which have subtitles. I'm not sure if this goes far enough - it seems impossible to find all the font IDs used in a FFmpeg file without scanning it. I don't know if (for example) SSA-format font IDs make it through to DoM when decoded by FFmpeg.
Guess video range better when importing 2.14.x projects (#2227).
Fix failure to open v2.14.x documents with invalid or empty subtitle languages (#2085).
Assorted C++11/formatting cleanups.
Use enum class for Film::Property.
More enum class additions.
c++ tidying.
BOOST_FOREACH.
std::shared_ptr
Remove swaroop variant.
Fix limited value ranges in properties.
Detect soft 2:3 pulldown (telecine) files and decode them at 23.976. DVD rips from NTSC DVDs are sometimes (always?) encoded using soft 2:3 pulldown. The video frames are actually 23.976 but FFmpeg detects them as 29.97. With the current approach of the video decoder ignoring most PTSs and assuming a constant frame rate it is vital that the file contains the number of frames per second that the detected frame rate predicts. This fixes large sync errors with NTSC DVD rips (#1790).
swaroop: support validity periods in ecinema KDMs.
Non-swaroop build fixes.