Package: vxl Version: 1.14.0-18 Severity: wishlist Tags: patch User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu raring ubuntu-patch
Dear Maintainer, vxl FTBFS with the following error when compiled against libav 0.9 (from experimental): .... [ 34%] Building CXX object core/vidl/CMakeFiles/vidl.dir/vidl_ffmpeg_istream.o cd /tmp/vxl-1.14.0/obj-i686-linux-gnu/core/vidl && /usr/bin/c++ -Dvidl_EXPORTS -DVXL_WARN_DEPRECATED -DVXL_WARN_DEPRECATED_ONCE -DVXL_LEGACY_ERROR_REPORTING -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -I/tmp/vxl-1.14.0/obj-i686-linux-gnu/vcl -I/tmp/vxl-1.14.0/vcl -I/tmp/vxl-1.14.0/obj-i686-linux-gnu/core -I/tmp/vxl-1.14.0/core -ftemplate-depth-1000 -o CMakeFiles/vidl.dir/vidl_ffmpeg_istream.o -c /tmp/vxl-1.14.0/core/vidl/vidl_ffmpeg_istream.cxx In file included from /tmp/vxl-1.14.0/core/vidl/vidl_ffmpeg_istream.cxx:29:0: /tmp/vxl-1.14.0/core/vidl/vidl_ffmpeg_istream_v3.txx: En la función miembro ‘virtual bool vidl_ffmpeg_istream::open(const string&)’: /tmp/vxl-1.14.0/core/vidl/vidl_ffmpeg_istream_v3.txx:140:43: error: ‘av_find_stream_info’ no se declaró en este ámbito /tmp/vxl-1.14.0/core/vidl/vidl_ffmpeg_istream_v3.txx:162:43: error: ‘avcodec_open’ no se declaró en este ámbito /tmp/vxl-1.14.0/core/vidl/vidl_ffmpeg_istream_v3.txx: En la función miembro ‘virtual void vidl_ffmpeg_istream::close()’: /tmp/vxl-1.14.0/core/vidl/vidl_ffmpeg_istream_v3.txx:205:5: aviso: ‘void av_close_input_file(AVFormatContext*)’ es obsoleto (declarado en /usr/include/libavformat/avformat.h:1391) [-Wdeprecated-declarations] /tmp/vxl-1.14.0/core/vidl/vidl_ffmpeg_istream_v3.txx:205:40: aviso: ‘void av_close_input_file(AVFormatContext*)’ es obsoleto (declarado en /usr/include/libavformat/avformat.h:1391) [-Wdeprecated-declarations] make[3]: *** [core/vidl/CMakeFiles/vidl.dir/vidl_ffmpeg_istream.o] Error 1 make[3]: se sale del directorio «/tmp/vxl-1.14.0/obj-i686-linux-gnu» make[2]: *** [core/vidl/CMakeFiles/vidl.dir/all] Error 2 *** /tmp/tmpf3thH2/bug_body In Ubuntu, the attached patch was applied to achieve the following: * libav-trunk.patch: updated to take into account libav 0.9 Thanks for considering the patch. -- System Information: Debian Release: wheezy/sid APT prefers quantal-updates APT policy: (500, 'quantal-updates'), (500, 'quantal-security'), (500, 'quantal') Architecture: i386 (i686) Kernel: Linux 3.5.0-18-generic (SMP w/1 CPU core) Locale: LANG=es_ES.UTF-8, LC_CTYPE=es_ES.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash
diff -Nru vxl-1.14.0/debian/patches/libav_trunk.patch vxl-1.14.0/debian/patches/libav_trunk.patch --- vxl-1.14.0/debian/patches/libav_trunk.patch 2012-05-05 16:25:23.000000000 +0200 +++ vxl-1.14.0/debian/patches/libav_trunk.patch 2012-11-17 09:07:44.000000000 +0100 @@ -5,11 +5,9 @@ Author: Matthew J. Leotta <matt.leo...@gmail.com> Bug: https://sourceforge.net/apps/trac/vxl/ticket/69 -Index: vxl-1.14.0/core/vidl/vidl_ffmpeg_ostream_v4.txx -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ vxl-1.14.0/core/vidl/vidl_ffmpeg_ostream_v4.txx 2011-12-20 11:07:57.000000000 +0100 -@@ -0,0 +1,540 @@ +--- /dev/null ++++ b/core/vidl/vidl_ffmpeg_ostream_v4.txx +@@ -0,0 +1,550 @@ +// This is core/vidl/vidl_ffmpeg_ostream_v4.txx +#ifndef vidl_ffmpeg_ostream_v3_txx_ +#define vidl_ffmpeg_ostream_v3_txx_ @@ -37,11 +35,21 @@ +extern "C" { +#if FFMPEG_IN_SEVERAL_DIRECTORIES +#include <libavformat/avformat.h> ++#include <libavutil/mem.h> +#else +#include <ffmpeg/avformat.h> +#endif +} + ++// Define deprecated codec flags as private ++#define CODEC_FLAG_H263P_UMV 0x02000000 ///< unlimited motion vector ++#define CODEC_FLAG_H263P_SLICE_STRUCT 0x10000000 ++#define CODEC_FLAG_H263P_AIV 0x00000008 ///< H.263 alternative inter VLC ++#define CODEC_FLAG_OBMC 0x00000001 ///< OBMC ++#define CODEC_FLAG_PART 0x0080 ///< Use data partitioning. ++#define CODEC_FLAG_ALT_SCAN 0x00100000 ///< Use alternate scan. ++#define CODEC_FLAG_SVCD_SCAN_OFFSET 0x40000000 ///< Will reserve space for SVCD scan offset user data. ++ +//----------------------------------------------------------------------------- + + @@ -129,7 +137,7 @@ + os_->fmt_cxt_->nb_streams = 0; + + // Create stream -+ AVStream* st = av_new_stream( os_->fmt_cxt_, 0 ); ++ AVStream* st = avformat_new_stream( os_->fmt_cxt_, NULL ); + if ( !st ) { + vcl_cerr << "ffmpeg: could not alloc stream\n"; + close(); @@ -241,7 +249,7 @@ + if (params_.video_qscale_ || params_.same_quality_) + { + video_enc->flags |= CODEC_FLAG_QSCALE; -+ st->quality = FF_QP2LAMBDA * params_.video_qscale_; ++ video_enc->global_quality = FF_QP2LAMBDA * params_.video_qscale_; + } + // if (bitexact) + // video_enc->flags |= CODEC_FLAG_BITEXACT; @@ -389,7 +397,7 @@ + + vcl_strncpy( os_->fmt_cxt_->filename, filename_.c_str(), 1023 ); + -+ if ( avio_open( &os_->fmt_cxt_->pb, filename_.c_str(), URL_WRONLY) < 0 ) ++ if ( avio_open( &os_->fmt_cxt_->pb, filename_.c_str(), AVIO_FLAG_WRITE) < 0 ) + { + vcl_cerr << "ffmpeg: couldn't open " << filename_ << " for writing\n"; + close(); @@ -399,7 +407,7 @@ + + //dump_format( os_->fmt_cxt_, 1, filename_, 1 ); + -+ if ( avcodec_open( video_enc, codec ) < 0 ) ++ if ( avcodec_open2( video_enc, codec, NULL ) < 0 ) + { + vcl_cerr << "ffmpeg: couldn't open codec\n"; + close(); @@ -550,10 +558,8 @@ +} + +#endif // vidl_ffmpeg_ostream_v3_txx_ -Index: vxl-1.14.0/core/vidl/vidl_ffmpeg_istream_v3.txx -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ vxl-1.14.0/core/vidl/vidl_ffmpeg_istream_v3.txx 2011-12-20 11:07:57.000000000 +0100 +--- /dev/null ++++ b/core/vidl/vidl_ffmpeg_istream_v3.txx @@ -0,0 +1,569 @@ +// This is core/vidl/vidl_ffmpeg_istream_v3.txx +#ifndef vidl_ffmpeg_istream_v3_txx_ @@ -694,7 +700,7 @@ + } + + // Get the stream information by reading a bit of the file -+ if ( av_find_stream_info( is_->fmt_cxt_ ) < 0 ) { ++ if ( avformat_find_stream_info( is_->fmt_cxt_, NULL ) < 0 ) { + return false; + } + @@ -716,7 +722,7 @@ + + // Open the stream + AVCodec* codec = avcodec_find_decoder(enc->codec_id); -+ if ( !codec || avcodec_open( enc, codec ) < 0 ) { ++ if ( !codec || avcodec_open2( enc, codec, NULL ) < 0 ) { + return false; + } +