Merge branch 'master' of ssh://git.carlh.net/home/carl/git/dcpomatic
[dcpomatic.git] / src / lib / ffmpeg_examiner.cc
index 88b76d04efc9593e1fc3df632e292c4c19189174..6c76ba5a433266591673cc34d645256fb6f1ed39 100644 (file)
@@ -193,11 +193,7 @@ optional<double>
 FFmpegExaminer::video_frame_rate () const
 {
        DCPOMATIC_ASSERT (_video_stream);
-       /* This use of r_frame_rate is debateable; there's a few different
-        * frame rates in the format context, but this one seems to be the most
-        * reliable.
-        */
-       return av_q2d (av_stream_get_r_frame_rate (_format_context->streams[_video_stream.get()]));
+       return av_q2d(av_guess_frame_rate(_format_context, _format_context->streams[_video_stream.get()], 0));
 }
 
 dcp::Size
@@ -260,11 +256,11 @@ FFmpegExaminer::stream_name (AVStream* s) const
        return n;
 }
 
-int
+optional<int>
 FFmpegExaminer::bits_per_pixel () const
 {
        if (video_codec_context()->pix_fmt == -1) {
-               throw DecodeError (_("Could not find pixel format for video."));
+               return optional<int>();
        }
 
        AVPixFmtDescriptor const * d = av_pix_fmt_desc_get (video_codec_context()->pix_fmt);