Put Time types in dcpomatic namespace.
[dcpomatic.git] / src / lib / ffmpeg_decoder.cc
index ce20997c84bcebefdc20dd2f90329155545cc505..0e65a6d6b272a67e2f9bdc37bb281f8114684d87 100644 (file)
@@ -74,6 +74,7 @@ using boost::split;
 using boost::optional;
 using boost::dynamic_pointer_cast;
 using dcp::Size;
+using namespace dcpomatic;
 
 FFmpegDecoder::FFmpegDecoder (shared_ptr<const Film> film, shared_ptr<const FFmpegContent> c, bool fast)
        : FFmpeg (c)
@@ -377,6 +378,14 @@ FFmpegDecoder::seek (ContentTime time, bool accurate)
                AVSEEK_FLAG_BACKWARD
                );
 
+       {
+               /* Force re-creation of filter graphs to reset them and hence to make sure
+                  they don't have any pre-seek frames knocking about.
+               */
+               boost::mutex::scoped_lock lm (_filter_graphs_mutex);
+               _filter_graphs.clear ();
+       }
+
        if (video_codec_context ()) {
                avcodec_flush_buffers (video_codec_context());
        }