summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2012-08-04 15:46:53 +0100
committerCarl Hetherington <cth@carlh.net>2012-08-04 15:46:53 +0100
commit29ec724e75f11e6e20997cbeaa7c2519c11cfda2 (patch)
treef2c0bc1bcbb234454455d46d09a00b5d83785869 /src/lib
parente0e7f9f5dc1360e836db4c785f1a563dffeb2e44 (diff)
Update README a bit.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/decoder.cc11
-rw-r--r--src/lib/ffmpeg_compatibility.cc109
-rw-r--r--src/lib/wscript1
3 files changed, 4 insertions, 117 deletions
diff --git a/src/lib/decoder.cc b/src/lib/decoder.cc
index d1b04ed32..faee5bece 100644
--- a/src/lib/decoder.cc
+++ b/src/lib/decoder.cc
@@ -359,7 +359,6 @@ Decoder::process_video (AVFrame* frame)
#endif
-//#ifdef DVDOMATIC_FFMPEG_0_8_3
#if LIBAVFILTER_VERSION_MAJOR == 2 && LIBAVFILTER_VERSION_MINOR >= 23 && LIBAVFILTER_VERSION_MINOR <= 61
while (avfilter_poll_frame (_buffer_sink_context->inputs[0])) {
#else
@@ -435,7 +434,10 @@ Decoder::setup_video_filters ()
throw DecodeError ("Could not find buffer src filter");
}
- AVFilter* buffer_sink = get_sink ();
+ AVFilter* buffer_sink = avfilter_get_by_name("buffersink");
+ if (buffer_sink == 0) {
+ throw DecodeError ("Could not create buffer sink filter");
+ }
stringstream a;
a << native_size().width << ":"
@@ -469,12 +471,7 @@ Decoder::setup_video_filters ()
inputs->next = 0;
_log->log ("Using filter chain `" + filters + "'");
-#ifdef DVDOMATIC_FFMPEG_0_8_3
- if (avfilter_graph_parse (graph, filters.c_str(), inputs, outputs, 0) < 0) {
-#else
if (avfilter_graph_parse (graph, filters.c_str(), &inputs, &outputs, 0) < 0) {
-#endif
-
throw DecodeError ("could not set up filter graph.");
}
diff --git a/src/lib/ffmpeg_compatibility.cc b/src/lib/ffmpeg_compatibility.cc
deleted file mode 100644
index bdaf735a2..000000000
--- a/src/lib/ffmpeg_compatibility.cc
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- Copyright (C) 2012 Carl Hetherington <cth@carlh.net>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
-
-extern "C" {
-#include <libavfilter/avfiltergraph.h>
-}
-#include "exceptions.h"
-
-#ifdef DVDOMATIC_FFMPEG_0_8_3
-
-typedef struct {
- enum PixelFormat pix_fmt;
-} AVSinkContext;
-
-static int
-avsink_init (AVFilterContext* ctx, const char* args, void* opaque)
-{
- AVSinkContext* priv = (AVSinkContext *) ctx->priv;
- if (!opaque) {
- return AVERROR (EINVAL);
- }
-
- *priv = *(AVSinkContext *) opaque;
- return 0;
-}
-
-static void
-null_end_frame (AVFilterLink *)
-{
-
-}
-
-static int
-avsink_query_formats (AVFilterContext* ctx)
-{
- AVSinkContext* priv = (AVSinkContext *) ctx->priv;
- enum PixelFormat pix_fmts[] = {
- priv->pix_fmt,
- PIX_FMT_NONE
- };
-
- avfilter_set_common_formats (ctx, avfilter_make_format_list ((int *) pix_fmts));
- return 0;
-}
-
-#endif
-
-AVFilter*
-get_sink ()
-{
-#ifdef DVDOMATIC_FFMPEG_0_8_3
- /* XXX does this leak stuff? */
- AVFilter* buffer_sink = new AVFilter;
- buffer_sink->name = av_strdup ("avsink");
- buffer_sink->priv_size = sizeof (AVSinkContext);
- buffer_sink->init = avsink_init;
- buffer_sink->query_formats = avsink_query_formats;
- buffer_sink->inputs = new AVFilterPad[2];
- AVFilterPad* i0 = const_cast<AVFilterPad*> (&buffer_sink->inputs[0]);
- i0->name = "default";
- i0->type = AVMEDIA_TYPE_VIDEO;
- i0->min_perms = AV_PERM_READ;
- i0->rej_perms = 0;
- i0->start_frame = 0;
- i0->get_video_buffer = 0;
- i0->get_audio_buffer = 0;
- i0->end_frame = null_end_frame;
- i0->draw_slice = 0;
- i0->filter_samples = 0;
- i0->poll_frame = 0;
- i0->request_frame = 0;
- i0->config_props = 0;
- const_cast<AVFilterPad*> (&buffer_sink->inputs[1])->name = 0;
- buffer_sink->outputs = new AVFilterPad[1];
- const_cast<AVFilterPad*> (&buffer_sink->outputs[0])->name = 0;
- return buffer_sink;
-#else
- AVFilter* buffer_sink = avfilter_get_by_name("buffersink");
- if (buffer_sink == 0) {
- throw DecodeError ("Could not create buffer sink filter");
- }
-
- return buffer_sink;
-#endif
-}
-
-#ifdef DVDOMATIC_FFMPEG_0_8_3
-AVFilterInOut *
-avfilter_inout_alloc ()
-{
- return (AVFilterInOut *) av_malloc (sizeof (AVFilterInOut));
-}
-#endif
diff --git a/src/lib/wscript b/src/lib/wscript
index 71a2b23f4..b001fff2a 100644
--- a/src/lib/wscript
+++ b/src/lib/wscript
@@ -28,7 +28,6 @@ def build(bld):
encoder.cc
encoder_factory.cc
examine_content_job.cc
- ffmpeg_compatibility.cc
ffmpeg_decoder.cc
film.cc
film_state.cc