]> git.sesse.net Git - casparcg/blobdiff - modules/ffmpeg/producer/filter/filter.cpp
2.0.0.2: Updated ffmpeg.
[casparcg] / modules / ffmpeg / producer / filter / filter.cpp
index 2475bf7101c50a2fef37ead3b18acc50cc4f7ef7..0b6b38d54ff1894becb962dc12c0edf6bfafdf03 100644 (file)
@@ -22,14 +22,14 @@ extern "C"
        #include <libavfilter/avfilter.h>\r
        #include <libavfilter/avcodec.h>\r
        #include <libavfilter/avfiltergraph.h>\r
-       #include <libavfilter/vsink_buffer.h>\r
+       #include <libavfilter/buffersink.h>\r
        #include <libavfilter/vsrc_buffer.h>\r
 }\r
 #if defined(_MSC_VER)\r
 #pragma warning (pop)\r
 #endif\r
 \r
-namespace caspar {\r
+namespace caspar { namespace ffmpeg {\r
        \r
 struct filter::implementation\r
 {\r
@@ -88,7 +88,9 @@ struct filter::implementation
                        THROW_ON_ERROR2(avfilter_graph_create_filter(&buffersrc_ctx_, avfilter_get_by_name("buffer"), "src", args.str().c_str(), NULL, graph_.get()), "[filter]");\r
 \r
                        // OPIX_FMT_BGRAutput\r
-                       THROW_ON_ERROR2(avfilter_graph_create_filter(&buffersink_ctx_, avfilter_get_by_name("buffersink"), "out", NULL, pix_fmts_.data(), graph_.get()), "[filter]");\r
+                       AVBufferSinkParams *buffersink_params = av_buffersink_params_alloc();\r
+                       buffersink_params->pixel_fmts = pix_fmts_.data();\r
+                       THROW_ON_ERROR2(avfilter_graph_create_filter(&buffersink_ctx_, avfilter_get_by_name("buffersink"), "out", NULL, buffersink_params, graph_.get()), "[filter]");\r
                        \r
                        AVFilterInOut* outputs = avfilter_inout_alloc();\r
                        AVFilterInOut* inputs  = avfilter_inout_alloc();\r
@@ -131,7 +133,7 @@ struct filter::implementation
                while (avfilter_poll_frame(buffersink_ctx_->inputs[0])) \r
                {\r
                        AVFilterBufferRef *picref;\r
-                       THROW_ON_ERROR2(av_vsink_buffer_get_video_buffer_ref(buffersink_ctx_, &picref, 0), "[filter]");\r
+                       THROW_ON_ERROR2(av_buffersink_get_buffer_ref(buffersink_ctx_, &picref, 0), "[filter]");\r
 \r
             if (picref) \r
                        {               \r
@@ -167,4 +169,5 @@ filter::filter(const std::wstring& filters, const std::vector<PixelFormat>& pix_
 filter::filter(filter&& other) : impl_(std::move(other.impl_)){}\r
 filter& filter::operator=(filter&& other){impl_ = std::move(other.impl_); return *this;}\r
 std::vector<safe_ptr<AVFrame>> filter::execute(const std::shared_ptr<AVFrame>& frame) {return impl_->execute(frame);}\r
-}
\ No newline at end of file
+\r
+}}
\ No newline at end of file