diff options
| author | Carl Hetherington <cth@carlh.net> | 2012-08-04 15:46:53 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2012-08-04 15:46:53 +0100 |
| commit | 29ec724e75f11e6e20997cbeaa7c2519c11cfda2 (patch) | |
| tree | f2c0bc1bcbb234454455d46d09a00b5d83785869 | |
| parent | e0e7f9f5dc1360e836db4c785f1a563dffeb2e44 (diff) | |
Update README a bit.
| -rw-r--r-- | README | 15 | ||||
| -rw-r--r-- | src/lib/decoder.cc | 11 | ||||
| -rw-r--r-- | src/lib/ffmpeg_compatibility.cc | 109 | ||||
| -rw-r--r-- | src/lib/wscript | 1 | ||||
| -rw-r--r-- | wscript | 4 |
5 files changed, 16 insertions, 124 deletions
@@ -18,16 +18,26 @@ Dependencies You will need these libraries: libdcp (from http://carlh.net/software/libdcp) - FFmpeg + FFmpeg version 0.9.x or higher libtiff boost thread and filesystem libopenjpeg + wxWidgets + libsndfile + libssh and also the command line tool: vobcopy (if you want to rip DVDs straight into DVD-o-matic) +Documentation +------------- + +There is a manual available at http://carlh.net/software/dvdomatic +The DocBook source for this is in doc/manual. + + In a nutshell ------------- @@ -55,7 +65,6 @@ The `Format' field dictates what size your image will be: - Scope: 2.39:1 images to the DCI spec. - Server/client ------------- @@ -79,4 +88,4 @@ Email me at cth@carlh.net in the first instance. Carl Hetherington -July 2012 +August 2012 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 @@ -13,7 +13,6 @@ def options(opt): opt.add_option('--enable-debug', action='store_true', default = False, help = 'build with debugging information and without optimisation') opt.add_option('--disable-gui', action='store_true', default = False, help = 'disable building of GUI tools') opt.add_option('--disable-player', action='store_true', default = False, help = 'disable building of the player components') - opt.add_option('--ffmpeg-083', action='store_true', default = False, help = 'Use FFmpeg version in Ubuntu 12.04') opt.add_option('--target-windows', action='store_true', default = False, help = 'set up to do a cross-compile to Windows') def configure(conf): @@ -52,9 +51,6 @@ def configure(conf): else: conf.env.append_value('CXXFLAGS', '-O3') - if conf.options.ffmpeg_083: - conf.env.append_value('CXXFLAGS', '-DDVDOMATIC_FFMPEG_0_8_3') - conf.check_cfg(package = 'sigc++-2.0', args = '--cflags --libs', uselib_store = 'SIGC++', mandatory = True) conf.check_cfg(package = 'libavformat', args = '--cflags --libs', uselib_store = 'AVFORMAT', mandatory = True) conf.check_cfg(package = 'libavfilter', args = '--cflags --libs', uselib_store = 'AVFILTER', mandatory = True) |
