Detect soft 2:3 pulldown (telecine) files and decode them at 23.976.
[dcpomatic.git] / src / lib / ffmpeg_content.cc
index a3a1cfb0fd491da77b0b2ac23b6964fb75983309..6383fe58b6736a56c67c696c085c146383517c99 100644 (file)
@@ -324,6 +324,18 @@ FFmpegContent::examine (shared_ptr<const Film> film, shared_ptr<Job> job)
        if (examiner->has_video ()) {
                set_default_colour_conversion ();
        }
+
+       if (examiner->has_video() && examiner->pulldown() && video_frame_rate() && fabs(*video_frame_rate() - 29.97) < 0.001) {
+               /* FFmpeg has detected this file as 29.97 and the examiner thinks it is using "soft" 2:3 pulldown (telecine).
+                * This means we can treat it as a 23.976fps file.
+                */
+               set_video_frame_rate (24000.0 / 1001);
+               video->set_length (video->length() * 24.0 / 30);
+       }
+
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+       _id = examiner->id ();
+#endif
 }
 
 string