Update README a bit.
authorCarl Hetherington <cth@carlh.net>
Sat, 4 Aug 2012 14:46:53 +0000 (15:46 +0100)
committerCarl Hetherington <cth@carlh.net>
Sat, 4 Aug 2012 14:46:53 +0000 (15:46 +0100)
README
src/lib/decoder.cc
src/lib/ffmpeg_compatibility.cc [deleted file]
src/lib/wscript
wscript

diff --git a/README b/README
index 47a971fe6e3deac6de06d31bd2e73badd7aaa4ce..d9f9ab4df3ff12cf0e3decfad9e9a0f1a361da5f 100644 (file)
--- a/README
+++ b/README
@@ -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
index d1b04ed324d2fa0de5da3a4931275de49092dcd9..faee5beceec118fa0c6bd1bfa9541738e32bc6d0 100644 (file)
@@ -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 (file)
index bdaf735..0000000
+++ /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
index 71a2b23f41be508c893b0c250ee1137e389b93f2..b001fff2a89a97a968824e43bc02a70554aa0221 100644 (file)
@@ -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
diff --git a/wscript b/wscript
index 1996b9db17013786489acf085a0f92c713c79e59..48f189073772ef10179a2e38cc4fd1a48fc943b4 100644 (file)
--- a/wscript
+++ b/wscript
@@ -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)