X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fvideo_filter_graph.cc;h=9b297c87bf63549e6736b1134e168c650bd1c026;hb=35409488fd54aacefa6858dce4b02a576170e76e;hp=3549e0947a22412794a7a91e1725e31ae64bc0b6;hpb=422be0eece2bf6ee80db1d3c21553cd82efff789;p=dcpomatic.git diff --git a/src/lib/video_filter_graph.cc b/src/lib/video_filter_graph.cc index 3549e0947..9b297c87b 100644 --- a/src/lib/video_filter_graph.cc +++ b/src/lib/video_filter_graph.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2015 Carl Hetherington + Copyright (C) 2012-2018 Carl Hetherington This file is part of DCP-o-matic. @@ -18,9 +18,10 @@ */ -#include "video_filter_graph.h" -#include "image.h" #include "compose.hpp" +#include "image.h" +#include "video_filter_graph.h" +#include "warnings.h" extern "C" { #include #include @@ -35,9 +36,10 @@ using std::string; using std::make_pair; using boost::shared_ptr; -VideoFilterGraph::VideoFilterGraph (dcp::Size s, AVPixelFormat p) +VideoFilterGraph::VideoFilterGraph (dcp::Size s, AVPixelFormat p, dcp::Fraction r) : _size (s) , _pixel_format (p) + , _frame_rate (r) { } @@ -50,6 +52,7 @@ VideoFilterGraph::process (AVFrame* frame) { list, int64_t> > images; +DCPOMATIC_DISABLE_WARNINGS if (_copy) { images.push_back (make_pair (shared_ptr (new Image (frame)), av_frame_get_best_effort_timestamp (frame))); } else { @@ -67,6 +70,7 @@ VideoFilterGraph::process (AVFrame* frame) av_frame_unref (_frame); } } +DCPOMATIC_ENABLE_WARNINGS return images; } @@ -84,14 +88,15 @@ VideoFilterGraph::can_process (dcp::Size s, AVPixelFormat p) const string VideoFilterGraph::src_parameters () const { - locked_stringstream a; - - a << "video_size=" << _size.width << "x" << _size.height << ":" - << "pix_fmt=" << _pixel_format << ":" - << "time_base=1/1:" - << "pixel_aspect=1/1"; - - return a.str (); + char buffer[256]; + snprintf ( + buffer, sizeof(buffer), + "video_size=%dx%d:pix_fmt=%d:frame_rate=%d/%d:time_base=1/1:pixel_aspect=1/1", + _size.width, _size.height, + _pixel_format, + _frame_rate.numerator, _frame_rate.denominator + ); + return buffer; } void *