No-op: remove all trailing whitespace.
[dcpomatic.git] / src / lib / filter_graph.cc
index f6a6c4529df2376bc08f81a2adaf721d5516459d..da7b0413397b9b01d7529414a4730f7aff59638c 100644 (file)
@@ -34,10 +34,10 @@ extern "C" {
 #include "exceptions.h"
 #include "image.h"
 #include "ffmpeg_content.h"
+#include "safe_stringstream.h"
 
 #include "i18n.h"
 
-using std::stringstream;
 using std::string;
 using std::list;
 using std::pair;
@@ -67,7 +67,7 @@ FilterGraph::FilterGraph (shared_ptr<const FFmpegContent> content, dcp::Size s,
        }
 
        _frame = av_frame_alloc ();
-       
+
        AVFilterGraph* graph = avfilter_graph_alloc();
        if (graph == 0) {
                throw DecodeError (N_("could not create filter graph."));
@@ -83,7 +83,7 @@ FilterGraph::FilterGraph (shared_ptr<const FFmpegContent> content, dcp::Size s,
                throw DecodeError (N_("Could not create buffer sink filter"));
        }
 
-       stringstream a;
+       SafeStringStream a;
        a << "video_size=" << _size.width << "x" << _size.height << ":"
          << "pix_fmt=" << _pixel_format << ":"
          << "time_base=1/1:"
@@ -98,7 +98,7 @@ FilterGraph::FilterGraph (shared_ptr<const FFmpegContent> content, dcp::Size s,
        pixel_fmts[0] = _pixel_format;
        pixel_fmts[1] = PIX_FMT_NONE;
        sink_params->pixel_fmts = pixel_fmts;
-       
+
        if (avfilter_graph_create_filter (&_buffer_sink_context, buffer_sink, N_("out"), 0, sink_params, graph) < 0) {
                throw DecodeError (N_("could not create buffer sink."));
        }
@@ -117,16 +117,13 @@ FilterGraph::FilterGraph (shared_ptr<const FFmpegContent> content, dcp::Size s,
        inputs->pad_idx = 0;
        inputs->next = 0;
 
-       if (avfilter_graph_parse (graph, filters.c_str(), &inputs, &outputs, 0) < 0) {
+       if (avfilter_graph_parse (graph, filters.c_str(), inputs, outputs, 0) < 0) {
                throw DecodeError (N_("could not set up filter graph."));
        }
-       
+
        if (avfilter_graph_config (graph, 0) < 0) {
                throw DecodeError (N_("could not configure filter graph."));
        }
-
-       avfilter_inout_free (&inputs);
-       avfilter_inout_free (&outputs);
 }
 
 FilterGraph::~FilterGraph ()
@@ -147,20 +144,21 @@ FilterGraph::process (AVFrame* frame)
        if (_copy) {
                images.push_back (make_pair (shared_ptr<Image> (new Image (frame)), av_frame_get_best_effort_timestamp (frame)));
        } else {
-               if (av_buffersrc_write_frame (_buffer_src_context, frame) < 0) {
-                       throw DecodeError (N_("could not push buffer into filter chain."));
+               int r = av_buffersrc_write_frame (_buffer_src_context, frame);
+               if (r < 0) {
+                       throw DecodeError (String::compose (N_("could not push buffer into filter chain (%1)."), r));
                }
-               
+
                while (true) {
                        if (av_buffersink_get_frame (_buffer_sink_context, _frame) < 0) {
                                break;
                        }
-                       
+
                        images.push_back (make_pair (shared_ptr<Image> (new Image (_frame)), av_frame_get_best_effort_timestamp (_frame)));
                        av_frame_unref (_frame);
                }
        }
-               
+
        return images;
 }