From 4f177d6f8ec2a586076aa9ad63f11b362b2d20e7 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sun, 30 Aug 2015 11:09:57 +0200 Subject: [PATCH] ffmpeg 0.11: make it work with gcc2. * Assembler code completely disabled for gcc2. Cross platform C code is used instead, which means this needs more CPU than the 0.10.x branch with asm enabled. But, at least it works. * Redone the gcc2 support to make it more well behaved. Things that only * need to be disabled for gcc2 are under a #if __GNUC__ > 2 check, instead of #if 0. Also removed a lot of hacks to the configure script that are not needed anymore. * Since the patch for gcc2 should not create problems for the gcc4 version, use a single patch. The hack used to decide which patchset to use did not work, because effectoiveTargetarchitecture was not set yet when parsing the file to find the PATCHES variable. * I leave this marked as broken for gcc2, because 0.11.5 was not updated for years, while the ffmpeg team is still updating the 0.10.x branch with regular releases. This means 0.10 gets bugfixes in the codecs, and 0.11 doesn't. We better use the latest codecs, even if we don't get the latest API. --- .../ffmpeg/ffmpeg_legacy-0.11.5.recipe | 36 +- .../ffmpeg/patches/ffmpeg-0.11.5-gcc2.patch | 1533 ----------------- .../ffmpeg/patches/ffmpeg-0.11.5-gcc4.patch | 22 - .../ffmpeg/patches/ffmpeg-0.11.5.patchset | 1043 +++++++++++ 4 files changed, 1064 insertions(+), 1570 deletions(-) delete mode 100644 media-video/ffmpeg/patches/ffmpeg-0.11.5-gcc2.patch delete mode 100644 media-video/ffmpeg/patches/ffmpeg-0.11.5-gcc4.patch create mode 100644 media-video/ffmpeg/patches/ffmpeg-0.11.5.patchset diff --git a/media-video/ffmpeg/ffmpeg_legacy-0.11.5.recipe b/media-video/ffmpeg/ffmpeg_legacy-0.11.5.recipe index 3b3deee47..b4860d9c4 100644 --- a/media-video/ffmpeg/ffmpeg_legacy-0.11.5.recipe +++ b/media-video/ffmpeg/ffmpeg_legacy-0.11.5.recipe @@ -11,18 +11,16 @@ SOURCE_URI="http://www.ffmpeg.org/releases/ffmpeg-0.11.5.tar.bz2" CHECKSUM_SHA256="9492991f44d6757080f457c0aef83e68884dbfb925666806c7f7ea0389e5b8c0" REVISION="2" SOURCE_DIR="ffmpeg-$portVersion" -# WARNING: although this can be built with gcc2, the resulting binaries will -# crash when decoding h263 or h264 videos in MediaPlayer. So gcc2 is stuck with -# ffmpeg version 0.10. Do not unmark this as broken until the runtime issues are -# actually fixed. + +# It works for gcc2, but we have to disable ASM optimizations. Moreover, the +# 0.10.x series gets more updates, so the interest of switching to 0.11 is +# very uncertain (we get a somewhat newer API which we don't use, and older +# codecs). So let's keep it "broken" for now, until we have a good reason to +# use APIs introduced in 0.11. ARCHITECTURES="!x86_gcc2 ?x86 x86_64" SECONDARY_ARCHITECTURES="!x86_gcc2 !x86" -if [ $effectiveTargetArchitecture == x86_gcc2 ]; then - PATCHES="ffmpeg-0.11.5-gcc2.patch" -else - PATCHES="ffmpeg-0.11.5-gcc4.patch" -fi +PATCHES="ffmpeg-0.11.5.patchset" PROVIDES=" ffmpeg_legacy$secondaryArchSuffix = $portVersion compat >= 0.11 @@ -64,6 +62,7 @@ REQUIRES_devel=" " BUILD_REQUIRES=" + devel:libbz2$secondaryArchSuffix devel:libbz2$secondaryArchSuffix devel:libogg$secondaryArchSuffix devel:libspeex$secondaryArchSuffix @@ -77,6 +76,7 @@ BUILD_PREREQUIRES=" cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix cmd:awk + cmd:cmp cmd:make cmd:perl cmd:pkg_config$secondaryArchSuffix @@ -95,14 +95,23 @@ PATCH() ffserver.c \ doc/ffserver.texi - # patch hard-coded paths to perl - sed -i "s,/usr/bin/perl,$portPackageLinksDir/cmd~perl/bin/perl," \ + # patch hard-coded paths to perl (used during build only) + sed -i "s,/usr/bin/perl,/system/bin/perl," \ Doxyfile \ doc/texi2pod.pl } BUILD() { + if [ "$effectiveTargetArchitecture" == "x86_gcc2" ]; then + extra_flags="--disable-asm --disable-stripping" + else + extra_flags="--disable-amd3dnow --disable-optimizations --disable-stripping \ + --disable-decoder=rv30 --disable-decoder=rv40 --disable-decoder=svq3 \ + --disable-decoder=vp8 --disable-decoder=h264 --disable-parser=h264 \ + --disable-decoder=h263" + fi + # not an autotools configure ./configure \ --prefix=$prefix \ @@ -118,10 +127,7 @@ BUILD() --enable-libspeex \ --enable-libtheora \ --enable-libvpx \ - --disable-amd3dnow --disable-optimizations --disable-stripping \ - --disable-decoder=rv30 --disable-decoder=rv40 --disable-decoder=svq3 \ - --disable-decoder=vp8 --disable-decoder=h264 --disable-parser=h264 \ - --disable-decoder=h263 + $extra_flags if [ "$effectiveTargetArchitecture" == "x86_64" ]; then pic=-fPIC diff --git a/media-video/ffmpeg/patches/ffmpeg-0.11.5-gcc2.patch b/media-video/ffmpeg/patches/ffmpeg-0.11.5-gcc2.patch deleted file mode 100644 index 5be7668d3..000000000 --- a/media-video/ffmpeg/patches/ffmpeg-0.11.5-gcc2.patch +++ /dev/null @@ -1,1533 +0,0 @@ -From a48079c520e49ab340f98e3df912ab7bdd76d44b Mon Sep 17 00:00:00 2001 -From: Adrien Destugues -Date: Thu, 23 Oct 2014 10:32:43 +0200 -Subject: applying patch ffmpeg-0.11.5-gcc2.patch - - -diff --git a/cmdutils.c b/cmdutils.c -index 9afb54c..306dd4b 100644 ---- a/cmdutils.c -+++ b/cmdutils.c -@@ -94,7 +94,7 @@ static void log_callback_report(void *ptr, int level, const char *fmt, va_list v - char line[1024]; - static int print_prefix = 1; - -- va_copy(vl2, vl); -+ __va_copy(vl2, vl); - av_log_default_callback(ptr, level, fmt, vl); - av_log_format_line(ptr, level, fmt, vl2, line, sizeof(line), &print_prefix); - va_end(vl2); -diff --git a/configure b/configure -index 66112bf..ee20361 100755 ---- a/configure -+++ b/configure -@@ -1378,7 +1378,6 @@ avx_deps="ssse3" - - aligned_stack_if_any="ppc x86" - fast_64bit_if_any="alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" --fast_clz_if_any="alpha armv5te avr32 mips ppc x86" - fast_unaligned_if_any="armv6 ppc x86" - - inline_asm_deps="!tms470" -@@ -1917,7 +1916,7 @@ AS_O='-o $@' - CC_O='-o $@' - CXX_O='-o $@' - --host_cflags='-D_ISOC99_SOURCE -O3 -g' -+host_cflags='-D_ISOC99_SOURCE -O2 -g' - host_libs='-lm' - - target_path='$(CURDIR)' -@@ -2000,6 +1999,7 @@ for n in $COMPONENT_LIST; do - done - - enable $ARCH_EXT_LIST $ALL_TESTS -+disable sse - - die_unknown(){ - echo "Unknown option \"$1\"." -@@ -2182,7 +2182,7 @@ if $cc -v 2>&1 | grep -q '^gcc.*LLVM'; then - cc_ident="llvm-gcc $($cc -dumpversion) $gcc_extra_ver" - CC_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' - AS_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' -- speed_cflags='-O3' -+ speed_cflags='-O2' - size_cflags='-Os' - elif $cc -v 2>&1 | grep -qi ^gcc; then - cc_type=gcc -@@ -2908,10 +2908,6 @@ check_cc <streams[pkt->stream_index]; - AVBPrint pbuf; - const char *s; -+ struct unit_value value2; - - av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED); - -@@ -1227,6 +1230,7 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream) - { - AVBPrint pbuf; - const char *s; -+ struct unit_value value2; - - av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED); - -@@ -1356,6 +1360,7 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i - const char *s; - AVRational display_aspect_ratio; - AVBPrint pbuf; -+ struct unit_value value2; - - av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED); - -@@ -1446,7 +1451,7 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i - print_fmt("time_base", "%d/%d", stream->time_base.num, stream->time_base.den); - print_time("start_time", stream->start_time, &stream->time_base); - print_time("duration", stream->duration, &stream->time_base); -- if (dec_ctx->bit_rate > 0) print_val ("bit_rate", dec_ctx->bit_rate, unit_bit_per_second_str); -+ if (dec_ctx->bit_rate > 0) { print_val ("bit_rate", dec_ctx->bit_rate, unit_bit_per_second_str); } - else print_str_opt("bit_rate", "N/A"); - if (stream->nb_frames) print_fmt ("nb_frames", "%"PRId64, stream->nb_frames); - else print_str_opt("nb_frames", "N/A"); -@@ -1472,6 +1477,7 @@ static void show_format(WriterContext *w, AVFormatContext *fmt_ctx) - { - char val_str[128]; - int64_t size = fmt_ctx->pb ? avio_size(fmt_ctx->pb) : -1; -+ struct unit_value value2; - - print_section_header("format"); - print_str("filename", fmt_ctx->filename); -@@ -1480,9 +1486,9 @@ static void show_format(WriterContext *w, AVFormatContext *fmt_ctx) - print_str("format_long_name", fmt_ctx->iformat->long_name); - print_time("start_time", fmt_ctx->start_time, &AV_TIME_BASE_Q); - print_time("duration", fmt_ctx->duration, &AV_TIME_BASE_Q); -- if (size >= 0) print_val ("size", size, unit_byte_str); -+ if (size >= 0) { print_val ("size", size, unit_byte_str); } - else print_str_opt("size", "N/A"); -- if (fmt_ctx->bit_rate > 0) print_val ("bit_rate", fmt_ctx->bit_rate, unit_bit_per_second_str); -+ if (fmt_ctx->bit_rate > 0) { print_val ("bit_rate", fmt_ctx->bit_rate, unit_bit_per_second_str); } - else print_str_opt("bit_rate", "N/A"); - show_tags(fmt_ctx->metadata); - print_section_footer("format"); -diff --git a/ffserver.c b/ffserver.c -index a0efa54..0d1684a 100644 ---- a/ffserver.c -+++ b/ffserver.c -@@ -305,7 +305,7 @@ static int rtp_new_av_stream(HTTPContext *c, - static const char *my_program_name; - static const char *my_program_dir; - --static const char *config_filename = "/etc/ffserver.conf"; -+static const char *config_filename = "/packages/ffmpeg-0.11.1-2/.settings/ffserver.conf"; - - static int ffserver_debug; - static int ffserver_daemon; -@@ -4659,7 +4659,7 @@ static const OptionDef options[] = { - #include "cmdutils_common_opts.h" - { "n", OPT_BOOL, {(void *)&no_launch }, "enable no-launch mode" }, - { "d", 0, {(void*)opt_debug}, "enable debug mode" }, -- { "f", HAS_ARG | OPT_STRING, {(void*)&config_filename }, "use configfile instead of /etc/ffserver.conf", "configfile" }, -+ { "f", HAS_ARG | OPT_STRING, {(void*)&config_filename }, "use configfile instead of /packages/ffmpeg-0.11.1-2/.settings/ffserver.conf", "configfile" }, - { NULL }, - }; - -diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c -index c29435b..1f73bc4 100644 ---- a/libavcodec/pngenc.c -+++ b/libavcodec/pngenc.c -@@ -55,8 +55,9 @@ static void png_get_interlaced_row(uint8_t *dst, int row_size, - int x, mask, dst_x, j, b, bpp; - uint8_t *d; - const uint8_t *s; -+ int mask_tmp[] = {0x80, 0x08, 0x88, 0x22, 0xaa, 0x55, 0xff}; - -- mask = (int[]){0x80, 0x08, 0x88, 0x22, 0xaa, 0x55, 0xff}[pass]; -+ mask = mask_tmp[pass]; - switch(bits_per_pixel) { - case 1: - memset(dst, 0, row_size); -diff --git a/libavfilter/af_aresample.c b/libavfilter/af_aresample.c -index 90e8781..bdba6db 100644 ---- a/libavfilter/af_aresample.c -+++ b/libavfilter/af_aresample.c -@@ -103,20 +103,23 @@ static int query_formats(AVFilterContext *ctx) - ff_channel_layouts_ref(in_layouts, &inlink->out_channel_layouts); - - if(out_rate > 0) { -- out_samplerates = avfilter_make_format_list((int[]){ out_rate, -1 }); -+ int samplerate_tmp[] = { out_rate, -1 }; -+ out_samplerates = avfilter_make_format_list(samplerate_tmp); - } else { - out_samplerates = ff_all_samplerates(); - } - avfilter_formats_ref(out_samplerates, &outlink->in_samplerates); - - if(out_format != AV_SAMPLE_FMT_NONE) { -- out_formats = avfilter_make_format_list((int[]){ out_format, -1 }); -+ int format_tmp[] = { out_format, -1 }; -+ out_formats = avfilter_make_format_list(format_tmp); - } else - out_formats = avfilter_make_all_formats(AVMEDIA_TYPE_AUDIO); - avfilter_formats_ref(out_formats, &outlink->in_formats); - - if(out_layout) { -- out_layouts = avfilter_make_format64_list((int64_t[]){ out_layout, -1 }); -+ int64_t layout_tmp[] = { out_layout, -1 }; -+ out_layouts = avfilter_make_format64_list(layout_tmp); - } else - out_layouts = ff_all_channel_layouts(); - ff_channel_layouts_ref(out_layouts, &outlink->in_channel_layouts); -diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c -index e73cf8d..0bff2d6 100644 ---- a/libavutil/pixdesc.c -+++ b/libavutil/pixdesc.c -@@ -1117,12 +1117,6 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { - .log2_chroma_h = 1, - .flags = PIX_FMT_HWACCEL, - }, -- [PIX_FMT_VDA_VLD] = { -- .name = "vda_vld", -- .log2_chroma_w = 1, -- .log2_chroma_h = 1, -- .flags = PIX_FMT_HWACCEL, -- }, - [PIX_FMT_GRAY8A] = { - .name = "gray8a", - .nb_components = 2, -diff --git a/libswresample/x86/swresample_x86.c b/libswresample/x86/swresample_x86.c -index 6cd6073..5436bc3 100644 ---- a/libswresample/x86/swresample_x86.c -+++ b/libswresample/x86/swresample_x86.c -@@ -25,7 +25,7 @@ - #define PROTO2(pre, out, cap) PROTO(pre, int16, out, cap) PROTO(pre, int32, out, cap) PROTO(pre, float, out, cap) - #define PROTO3(pre, cap) PROTO2(pre, int16, cap) PROTO2(pre, int32, cap) PROTO2(pre, float, cap) - #define PROTO4(pre) PROTO3(pre, mmx) PROTO3(pre, sse) PROTO3(pre, sse2) PROTO3(pre, ssse3) PROTO3(pre, sse4) PROTO3(pre, avx) --PROTO4() -+PROTO4( ) - PROTO4(_pack_2ch) - PROTO4(_pack_6ch) - PROTO4(_unpack_2ch) -diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c -index 52951e0..74a61b8 100644 ---- a/libswscale/swscale_unscaled.c -+++ b/libswscale/swscale_unscaled.c -@@ -472,38 +472,41 @@ static int planarRgbToRgbWrapper(SwsContext *c, const uint8_t *src[], - } - - switch (c->dstFormat) { -- case PIX_FMT_BGR24: -- gbr24ptopacked24((const uint8_t *[]) { src[1], src[0], src[2] }, -- (int []) { srcStride[1], srcStride[0], srcStride[2] }, -- dst[0] + srcSliceY * dstStride[0], dstStride[0], -+ case PIX_FMT_BGR24: { -+ const uint8_t* src2[] = {src[1], src[0], src[2]}; -+ int srcStride2[] = {srcStride[1], srcStride[0], srcStride[2]}; -+ gbr24ptopacked24(src2, srcStride2, dst[0] + srcSliceY * dstStride[0], dstStride[0], - srcSliceH, c->srcW); - break; - -- case PIX_FMT_RGB24: -- gbr24ptopacked24((const uint8_t *[]) { src[2], src[0], src[1] }, -- (int []) { srcStride[2], srcStride[0], srcStride[1] }, -- dst[0] + srcSliceY * dstStride[0], dstStride[0], -- srcSliceH, c->srcW); -+ } -+ case PIX_FMT_RGB24: { -+ const uint8_t* src2[] = {src[2], src[0], src[1]}; -+ int srcStride2[] = {srcStride[2], srcStride[0], srcStride[1]}; -+ gbr24ptopacked24(src2, srcStride2, dst[0] + srcSliceY * dstStride[0], dstStride[0], -+ srcSliceH, c->srcW); - break; -- -+ } - case PIX_FMT_ARGB: - alpha_first = 1; -- case PIX_FMT_RGBA: -- gbr24ptopacked32((const uint8_t *[]) { src[2], src[0], src[1] }, -- (int []) { srcStride[2], srcStride[0], srcStride[1] }, -- dst[0] + srcSliceY * dstStride[0], dstStride[0], -- srcSliceH, alpha_first, c->srcW); -- break; -- -+ case PIX_FMT_RGBA: { -+ const uint8_t* src2[] = {src[2], src[0], src[1]}; -+ int srcStride2[] = {srcStride[2], srcStride[0], srcStride[1]}; -+ gbr24ptopacked32(src2, srcStride2, -+ dst[0] + srcSliceY * dstStride[0], dstStride[0], -+ srcSliceH, alpha_first, c->srcW); -+ break; -+ } - case PIX_FMT_ABGR: - alpha_first = 1; -- case PIX_FMT_BGRA: -- gbr24ptopacked32((const uint8_t *[]) { src[1], src[0], src[2] }, -- (int []) { srcStride[1], srcStride[0], srcStride[2] }, -- dst[0] + srcSliceY * dstStride[0], dstStride[0], -- srcSliceH, alpha_first, c->srcW); -- break; -- -+ case PIX_FMT_BGRA: { -+ const uint8_t* src2[] = {src[1], src[0], src[2]}; -+ int srcStride2[] = {srcStride[1], srcStride[0], srcStride[2]}; -+ gbr24ptopacked32(src2, srcStride2, -+ dst[0] + srcSliceY * dstStride[0], dstStride[0], -+ srcSliceH, alpha_first, c->srcW); -+ break; -+ } - default: - av_log(c, AV_LOG_ERROR, - "unsupported planar RGB conversion %s -> %s\n", --- -1.8.3.4 - - -From bb2b8ce280cca96855ebbe3475b9e134f0d35427 Mon Sep 17 00:00:00 2001 -From: Adrien Destugues -Date: Thu, 23 Oct 2014 11:09:11 +0200 -Subject: Avoid utf8 in doc to make texi2pod happy. - - -diff --git a/doc/filters.texi b/doc/filters.texi -index 324a154..7303a7d 100644 ---- a/doc/filters.texi -+++ b/doc/filters.texi -@@ -2924,7 +2924,7 @@ Tile several successive frames together. - It accepts as argument the tile size (i.e. the number of lines and columns) - in the form "@var{w}x@var{h}". - --For example, produce 8×8 PNG tiles of all keyframes (@option{-skip_frame -+For example, produce 8x8 PNG tiles of all keyframes (@option{-skip_frame - nokey}) in a movie: - @example - ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png --- -1.8.3.4 - - -From 21b82aeed933d7a1811fd8b57866db841762b4be Mon Sep 17 00:00:00 2001 -From: Adrien Destugues -Date: Thu, 23 Oct 2014 11:09:37 +0200 -Subject: fix ffprobe when GPL libs are disabled. - -libpostproc is not built in that case. - -diff --git a/ffprobe.c b/ffprobe.c -index 41c5cec..95712b4 100644 ---- a/ffprobe.c -+++ b/ffprobe.c -@@ -1664,7 +1664,7 @@ static void ffprobe_show_library_versions(WriterContext *w) - SHOW_LIB_VERSION(avfilter, AVFILTER); - SHOW_LIB_VERSION(swscale, SWSCALE); - SHOW_LIB_VERSION(swresample, SWRESAMPLE); -- SHOW_LIB_VERSION(postproc, POSTPROC); -+// SHOW_LIB_VERSION(postproc, POSTPROC); - writer_print_chapter_footer(w, "library_versions"); - } - --- -1.8.3.4 - - -From a4f7f2a2d6634d1bd9c832b1c7103e58087c4306 Mon Sep 17 00:00:00 2001 -From: Adrien Destugues -Date: Thu, 23 Oct 2014 21:02:26 +0200 -Subject: gcc2 hacks. - -ffmpeg relies on the compiler optimizing: - - #define FOO 0 - if(FOO) call_foo(); - -gcc2 doesn't seem to do that, and in the end the lib can't be loaded -because of missing symbol call_foo. So replace the if with #ifdef to -make things work. - -Note that this shouldn't disable anything that wasn't already. Stuff is -disabled because either of: -- ARM/PPC/other CPU specific -- GPL licensed (we don't currently enable those parts - they need more - patches) -- Uses 3dnow (manually disabled - doesn't compile here) or AVX (not - enabled by buildsystem) - -diff --git a/libavcodec/aacpsdsp.c b/libavcodec/aacpsdsp.c -index e90c50b..84c4a49 100644 ---- a/libavcodec/aacpsdsp.c -+++ b/libavcodec/aacpsdsp.c -@@ -209,6 +209,7 @@ av_cold void ff_psdsp_init(PSDSPContext *s) - s->stereo_interpolate[0] = ps_stereo_interpolate_c; - s->stereo_interpolate[1] = ps_stereo_interpolate_ipdopd_c; - -- if (ARCH_ARM) -+#if ARCH_ARM - ff_psdsp_init_arm(s); -+#endif - } -diff --git a/libavcodec/ac3dsp.c b/libavcodec/ac3dsp.c -index 581e5f5..a4c1721 100644 ---- a/libavcodec/ac3dsp.c -+++ b/libavcodec/ac3dsp.c -@@ -228,8 +228,9 @@ av_cold void ff_ac3dsp_init(AC3DSPContext *c, int bit_exact) - c->sum_square_butterfly_int32 = ac3_sum_square_butterfly_int32_c; - c->sum_square_butterfly_float = ac3_sum_square_butterfly_float_c; - -- if (ARCH_ARM) -+#if ARCH_ARM - ff_ac3dsp_init_arm(c, bit_exact); -+#endif - if (HAVE_MMX) - ff_ac3dsp_init_x86(c, bit_exact); - } -diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c -index ac05b9b..9bfabd5 100644 ---- a/libavcodec/allcodecs.c -+++ b/libavcodec/allcodecs.c -@@ -54,6 +54,7 @@ void avcodec_register_all(void) - initialized = 1; - - /* hardware accelerators */ -+#ifndef __HAIKU__ - REGISTER_HWACCEL (H263_VAAPI, h263_vaapi); - REGISTER_HWACCEL (H264_DXVA2, h264_dxva2); - REGISTER_HWACCEL (H264_VAAPI, h264_vaapi); -@@ -67,6 +68,7 @@ void avcodec_register_all(void) - REGISTER_HWACCEL (VC1_VAAPI, vc1_vaapi); - REGISTER_HWACCEL (WMV3_DXVA2, wmv3_dxva2); - REGISTER_HWACCEL (WMV3_VAAPI, wmv3_vaapi); -+#endif - - /* video codecs */ - REGISTER_ENCODER (A64MULTI, a64multi); -@@ -115,7 +117,9 @@ void avcodec_register_all(void) - REGISTER_DECODER (ESCAPE124, escape124); - REGISTER_DECODER (ESCAPE130, escape130); - REGISTER_DECODER (EXR, exr); -+#ifndef __HAIKU__ - REGISTER_ENCDEC (FFV1, ffv1); -+#endif - REGISTER_ENCDEC (FFVHUFF, ffvhuff); - REGISTER_ENCDEC (FLASHSV, flashsv); - REGISTER_ENCDEC (FLASHSV2, flashsv2); -@@ -130,8 +134,10 @@ void avcodec_register_all(void) - REGISTER_DECODER (H263I, h263i); - REGISTER_ENCODER (H263P, h263p); - REGISTER_DECODER (H264, h264); -+#ifndef __HAIKU__ - REGISTER_DECODER (H264_CRYSTALHD, h264_crystalhd); - REGISTER_DECODER (H264_VDPAU, h264_vdpau); -+#endif - REGISTER_ENCDEC (HUFFYUV, huffyuv); - REGISTER_DECODER (IDCIN, idcin); - REGISTER_DECODER (IFF_BYTERUN1, iff_byterun1); -@@ -155,17 +161,23 @@ void avcodec_register_all(void) - REGISTER_DECODER (MJPEGB, mjpegb); - REGISTER_DECODER (MMVIDEO, mmvideo); - REGISTER_DECODER (MOTIONPIXELS, motionpixels); -+#ifndef __HAIKU__ - REGISTER_DECODER (MPEG_XVMC, mpeg_xvmc); -+#endif - REGISTER_ENCDEC (MPEG1VIDEO, mpeg1video); - REGISTER_ENCDEC (MPEG2VIDEO, mpeg2video); - REGISTER_ENCDEC (MPEG4, mpeg4); -+#ifndef __HAIKU__ - REGISTER_DECODER (MPEG4_CRYSTALHD, mpeg4_crystalhd); - REGISTER_DECODER (MPEG4_VDPAU, mpeg4_vdpau); -+#endif - REGISTER_DECODER (MPEGVIDEO, mpegvideo); -+#ifndef __HAIKU__ - REGISTER_DECODER (MPEG_VDPAU, mpeg_vdpau); - REGISTER_DECODER (MPEG1_VDPAU, mpeg1_vdpau); - REGISTER_DECODER (MPEG2_CRYSTALHD, mpeg2_crystalhd); - REGISTER_DECODER (MSMPEG4_CRYSTALHD, msmpeg4_crystalhd); -+#endif - REGISTER_DECODER (MSMPEG4V1, msmpeg4v1); - REGISTER_ENCDEC (MSMPEG4V2, msmpeg4v2); - REGISTER_ENCDEC (MSMPEG4V3, msmpeg4v3); -@@ -229,8 +241,10 @@ void avcodec_register_all(void) - REGISTER_DECODER (VB, vb); - REGISTER_DECODER (VBLE, vble); - REGISTER_DECODER (VC1, vc1); -+#ifndef __HAIKU__ - REGISTER_DECODER (VC1_CRYSTALHD, vc1_crystalhd); - REGISTER_DECODER (VC1_VDPAU, vc1_vdpau); -+#endif - REGISTER_DECODER (VC1IMAGE, vc1image); - REGISTER_DECODER (VCR1, vcr1); - REGISTER_DECODER (VMDVIDEO, vmdvideo); -@@ -245,8 +259,10 @@ void avcodec_register_all(void) - REGISTER_ENCDEC (WMV1, wmv1); - REGISTER_ENCDEC (WMV2, wmv2); - REGISTER_DECODER (WMV3, wmv3); -+#ifndef __HAIKU__ - REGISTER_DECODER (WMV3_CRYSTALHD, wmv3_crystalhd); - REGISTER_DECODER (WMV3_VDPAU, wmv3_vdpau); -+#endif - REGISTER_DECODER (WMV3IMAGE, wmv3image); - REGISTER_DECODER (WNV1, wnv1); - REGISTER_DECODER (XAN_WC3, xan_wc3); -@@ -284,7 +300,9 @@ void avcodec_register_all(void) - REGISTER_ENCDEC (FLAC, flac); - REGISTER_ENCDEC (G723_1, g723_1); - REGISTER_DECODER (G729, g729); -+#ifndef __HAIKU__ - REGISTER_DECODER (GSM, gsm); -+#endif - REGISTER_DECODER (GSM_MS, gsm_ms); - REGISTER_DECODER (IMC, imc); - REGISTER_DECODER (MACE3, mace3); -@@ -405,6 +423,7 @@ void avcodec_register_all(void) - REGISTER_ENCDEC (XSUB, xsub); - - /* external libraries */ -+#ifndef __HAIKU__ - REGISTER_DECODER (LIBCELT, libcelt); - REGISTER_ENCODER (LIBFAAC, libfaac); - REGISTER_ENCDEC (LIBGSM, libgsm); -@@ -414,19 +433,26 @@ void avcodec_register_all(void) - REGISTER_DECODER (LIBOPENCORE_AMRWB, libopencore_amrwb); - REGISTER_ENCDEC (LIBOPENJPEG, libopenjpeg); - REGISTER_ENCDEC (LIBSCHROEDINGER, libschroedinger); -+#endif - REGISTER_ENCDEC (LIBSPEEX, libspeex); -+#ifndef __HAIKU__ - REGISTER_DECODER (LIBSTAGEFRIGHT_H264, libstagefright_h264); -+#endif - REGISTER_ENCODER (LIBTHEORA, libtheora); -+#ifndef __HAIKU__ - REGISTER_ENCDEC (LIBUTVIDEO, libutvideo); - REGISTER_ENCODER (LIBVO_AACENC, libvo_aacenc); - REGISTER_ENCODER (LIBVO_AMRWBENC, libvo_amrwbenc); -+#endif - REGISTER_ENCDEC (LIBVORBIS, libvorbis); - REGISTER_ENCDEC (LIBVPX, libvpx); -+#ifndef __HAIKU__ - REGISTER_ENCODER (LIBX264, libx264); - REGISTER_ENCODER (LIBX264RGB, libx264rgb); - REGISTER_ENCODER (LIBXAVS, libxavs); - REGISTER_ENCODER (LIBXVID, libxvid); - REGISTER_ENCODER (LIBAACPLUS, libaacplus); -+#endif - - /* text */ - REGISTER_DECODER (BINTEXT, bintext); -diff --git a/libavcodec/dcadsp.c b/libavcodec/dcadsp.c -index dd4994d..94dd52c 100644 ---- a/libavcodec/dcadsp.c -+++ b/libavcodec/dcadsp.c -@@ -47,5 +47,7 @@ static void dca_lfe_fir_c(float *out, const float *in, const float *coefs, - void ff_dcadsp_init(DCADSPContext *s) - { - s->lfe_fir = dca_lfe_fir_c; -- if (ARCH_ARM) ff_dcadsp_init_arm(s); -+#if ARCH_ARM -+ ff_dcadsp_init_arm(s); -+#endif - } -diff --git a/libavcodec/dsputil.c b/libavcodec/dsputil.c -index a13540d..8254e3a 100644 ---- a/libavcodec/dsputil.c -+++ b/libavcodec/dsputil.c -@@ -3170,13 +3170,25 @@ av_cold void ff_dsputil_init(DSPContext* c, AVCodecContext *avctx) - - - if (HAVE_MMX) ff_dsputil_init_mmx (c, avctx); -- if (ARCH_ARM) ff_dsputil_init_arm (c, avctx); -- if (HAVE_VIS) ff_dsputil_init_vis (c, avctx); -- if (ARCH_ALPHA) ff_dsputil_init_alpha (c, avctx); -- if (ARCH_PPC) ff_dsputil_init_ppc (c, avctx); -- if (HAVE_MMI) ff_dsputil_init_mmi (c, avctx); -- if (ARCH_SH4) ff_dsputil_init_sh4 (c, avctx); -- if (ARCH_BFIN) ff_dsputil_init_bfin (c, avctx); -+#if ARCH_ARM -+ ff_dsputil_init_arm (c, avctx); -+#endif -+#if HAVE_VIS -+ ff_dsputil_init_vis (c, avctx); -+#endif -+#if ARCH_ALPHA -+ ff_dsputil_init_alpha (c, avctx); -+#elif ARCH_PPC -+ ff_dsputil_init_ppc (c, avctx); -+#endif -+#if HAVE_MMI -+ ff_dsputil_init_mmi (c, avctx); -+#endif -+#if ARCH_SH4 -+ ff_dsputil_init_sh4 (c, avctx); -+#elif ARCH_BFIN -+ ff_dsputil_init_bfin (c, avctx); -+#endif - - for (i = 0; i < 4; i++) { - for (j = 0; j < 16; j++) { -diff --git a/libavcodec/fft.c b/libavcodec/fft.c -index 6b93a5c..2d0618c 100644 ---- a/libavcodec/fft.c -+++ b/libavcodec/fft.c -@@ -158,13 +158,19 @@ av_cold int ff_fft_init(FFTContext *s, int nbits, int inverse) - #endif - - #if CONFIG_FFT_FLOAT -- if (ARCH_ARM) ff_fft_init_arm(s); -- if (HAVE_ALTIVEC) ff_fft_init_altivec(s); -+#if ARCH_ARM -+ ff_fft_init_arm(s); -+#endif -+#if HAVE_ALTIVEC -+ ff_fft_init_altivec(s); -+#endif - if (HAVE_MMX) ff_fft_init_mmx(s); - if (CONFIG_MDCT) s->mdct_calcw = s->mdct_calc; - #else - if (CONFIG_MDCT) s->mdct_calcw = ff_mdct_calcw_c; -- if (ARCH_ARM) ff_fft_fixed_init_arm(s); -+#if ARCH_ARM -+ ff_fft_fixed_init_arm(s); -+#endif - #endif - - for(j=4; j<=nbits; j++) { -diff --git a/libavcodec/fmtconvert.c b/libavcodec/fmtconvert.c -index c03117c..9a1ec1e 100644 ---- a/libavcodec/fmtconvert.c -+++ b/libavcodec/fmtconvert.c -@@ -82,8 +82,12 @@ av_cold void ff_fmt_convert_init(FmtConvertContext *c, AVCodecContext *avctx) - c->float_to_int16_interleave = float_to_int16_interleave_c; - c->float_interleave = ff_float_interleave_c; - -- if (ARCH_ARM) ff_fmt_convert_init_arm(c, avctx); -- if (HAVE_ALTIVEC) ff_fmt_convert_init_altivec(c, avctx); -+#if ARCH_ARM -+ ff_fmt_convert_init_arm(c, avctx); -+#endif -+#if HAVE_ALTIVEC -+ ff_fmt_convert_init_altivec(c, avctx); -+#endif - if (HAVE_MMX) ff_fmt_convert_init_x86(c, avctx); - } - -diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c -index 4d3c7b8..25bd9fc 100644 ---- a/libavcodec/h263dec.c -+++ b/libavcodec/h263dec.c -@@ -648,10 +648,12 @@ retry: - - if (!s->divx_packed) ff_thread_finish_setup(avctx); - -- if (CONFIG_MPEG4_VDPAU_DECODER && (s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU)) { -+#if CONFIG_MPEG4_VDPAU_DECODER -+ if (s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) { - ff_vdpau_mpeg4_decode_picture(s, s->gb.buffer, s->gb.buffer_end - s->gb.buffer); - goto frame_end; - } -+#endif - - if (avctx->hwaccel) { - if (avctx->hwaccel->start_frame(avctx, s->gb.buffer, s->gb.buffer_end - s->gb.buffer) < 0) -diff --git a/libavcodec/h264.c b/libavcodec/h264.c -index 1e6326f..0e45c37 100644 ---- a/libavcodec/h264.c -+++ b/libavcodec/h264.c -@@ -2746,9 +2746,10 @@ static int field_end(H264Context *h, int in_setup) - ff_thread_report_progress(&s->current_picture_ptr->f, INT_MAX, - s->picture_structure == PICT_BOTTOM_FIELD); - -- if (CONFIG_H264_VDPAU_DECODER && -- s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) -+#if CONFIG_H264_VDPAU_DECODER -+ if (s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) - ff_vdpau_h264_set_reference_frames(s); -+#endif - - if (in_setup || !(avctx->active_thread_type & FF_THREAD_FRAME)) { - if (!s->dropable) { -@@ -2767,9 +2768,10 @@ static int field_end(H264Context *h, int in_setup) - "hardware accelerator failed to decode picture\n"); - } - -- if (CONFIG_H264_VDPAU_DECODER && -- s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) -+#if CONFIG_H264_VDPAU_DECODER -+ if (s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) - ff_vdpau_h264_picture_complete(s); -+#endif - - /* - * FIXME: Error handling code does not seem to support interlaced -@@ -4394,9 +4396,10 @@ again: - if (s->avctx->hwaccel && - s->avctx->hwaccel->start_frame(s->avctx, NULL, 0) < 0) - return -1; -- if (CONFIG_H264_VDPAU_DECODER && -- s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) -+#if CONFIG_H264_VDPAU_DECODER -+ if (s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) - ff_vdpau_h264_picture_start(s); -+#endif - } - - if (hx->redundant_pic_count == 0 && -@@ -4412,14 +4415,15 @@ again: - &buf[buf_index - consumed], - consumed) < 0) - return -1; -- } else if (CONFIG_H264_VDPAU_DECODER && -- s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) { -+#if CONFIG_H264_VDPAU_DECODER -+ } else if (s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) { - static const uint8_t start_code[] = { - 0x00, 0x00, 0x01 }; - ff_vdpau_add_data_chunk(s, start_code, - sizeof(start_code)); - ff_vdpau_add_data_chunk(s, &buf[buf_index - consumed], - consumed); -+#endif - } else - context_count++; - } -diff --git a/libavcodec/h264dsp.c b/libavcodec/h264dsp.c -index bd35aa3..0bc9037 100644 ---- a/libavcodec/h264dsp.c -+++ b/libavcodec/h264dsp.c -@@ -111,7 +111,11 @@ void ff_h264dsp_init(H264DSPContext *c, const int bit_depth, const int chroma_fo - break; - } - -- if (ARCH_ARM) ff_h264dsp_init_arm(c, bit_depth, chroma_format_idc); -- if (HAVE_ALTIVEC) ff_h264dsp_init_ppc(c, bit_depth, chroma_format_idc); -+#if ARCH_ARM -+ ff_h264dsp_init_arm(c, bit_depth, chroma_format_idc); -+#endif -+#if HAVE_ALTIVEC -+ ff_h264dsp_init_ppc(c, bit_depth, chroma_format_idc); -+#endif - if (HAVE_MMX) ff_h264dsp_init_x86(c, bit_depth, chroma_format_idc); - } -diff --git a/libavcodec/h264pred.c b/libavcodec/h264pred.c -index a174b4c..19921d8 100644 ---- a/libavcodec/h264pred.c -+++ b/libavcodec/h264pred.c -@@ -532,6 +532,8 @@ void ff_h264_pred_init(H264PredContext *h, int codec_id, const int bit_depth, co - break; - } - -- if (ARCH_ARM) ff_h264_pred_init_arm(h, codec_id, bit_depth, chroma_format_idc); -+#if ARCH_ARM -+ ff_h264_pred_init_arm(h, codec_id, bit_depth, chroma_format_idc); -+#endif - if (HAVE_MMX) ff_h264_pred_init_x86(h, codec_id, bit_depth, chroma_format_idc); - } -diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c -index bcee1d8..25c573d 100644 ---- a/libavcodec/mpeg12.c -+++ b/libavcodec/mpeg12.c -@@ -834,12 +834,14 @@ static int mpeg_decode_mb(MpegEncContext *s, DCTELEM block[12][64]) - memset(s->last_mv, 0, sizeof(s->last_mv)); /* reset mv prediction */ - s->mb_intra = 1; - // if 1, we memcpy blocks in xvmcvideo -- if (CONFIG_MPEG_XVMC_DECODER && s->avctx->xvmc_acceleration > 1) { -+#if CONFIG_MPEG_XVMC_DECODER -+ if (s->avctx->xvmc_acceleration > 1) { - ff_xvmc_pack_pblocks(s, -1); // inter are always full blocks - if (s->swap_uv) { - exchange_uv(s); - } - } -+#endif - - if (s->codec_id == CODEC_ID_MPEG2VIDEO) { - if (s->flags2 & CODEC_FLAG2_FAST) { -@@ -1052,12 +1054,14 @@ static int mpeg_decode_mb(MpegEncContext *s, DCTELEM block[12][64]) - } - - //if 1, we memcpy blocks in xvmcvideo -- if (CONFIG_MPEG_XVMC_DECODER && s->avctx->xvmc_acceleration > 1) { -+#if CONFIG_MPEG_XVMC_DECODER -+ if (s->avctx->xvmc_acceleration > 1) { - ff_xvmc_pack_pblocks(s, cbp); - if (s->swap_uv) { - exchange_uv(s); - } - } -+#endif - - if (s->codec_id == CODEC_ID_MPEG2VIDEO) { - if (s->flags2 & CODEC_FLAG2_FAST) { -@@ -1656,9 +1660,11 @@ static int mpeg_field_start(MpegEncContext *s, const uint8_t *buf, int buf_size) - - // MPV_frame_start will call this function too, - // but we need to call it on every field -- if (CONFIG_MPEG_XVMC_DECODER && s->avctx->xvmc_acceleration) -+#if CONFIG_MPEG_XVMC_DECODER -+ if (s->avctx->xvmc_acceleration) - if (ff_xvmc_field_start(s, avctx) < 0) - return -1; -+#endif - - return 0; - } -@@ -1762,8 +1768,10 @@ static int mpeg_decode_slice(MpegEncContext *s, int mb_y, - - for (;;) { - // If 1, we memcpy blocks in xvmcvideo. -- if (CONFIG_MPEG_XVMC_DECODER && s->avctx->xvmc_acceleration > 1) -+#if CONFIG_MPEG_XVMC_DECODER -+ if (s->avctx->xvmc_acceleration > 1) - ff_xvmc_init_block(s); // set s->block -+#endif - - if (mpeg_decode_mb(s, s->block) < 0) - return -1; -@@ -1954,8 +1962,10 @@ static int slice_end(AVCodecContext *avctx, AVFrame *pict) - av_log(avctx, AV_LOG_ERROR, "hardware accelerator failed to decode picture\n"); - } - -- if (CONFIG_MPEG_XVMC_DECODER && s->avctx->xvmc_acceleration) -+#if CONFIG_MPEG_XVMC_DECODER -+ if (s->avctx->xvmc_acceleration) - ff_xvmc_field_end(s); -+#endif - - /* end of slice reached */ - if (/*s->mb_y << field_pic == s->mb_height &&*/ !s->first_field && !s->first_slice) { -@@ -2332,9 +2342,10 @@ static int decode_chunks(AVCodecContext *avctx, - s2->error_count += s2->thread_context[i]->error_count; - } - -- if (CONFIG_VDPAU && uses_vdpau(avctx)) -+#if CONFIG_VDPAU -+ if (uses_vdpau(avctx)) - ff_vdpau_mpeg_picture_complete(s2, buf, buf_size, s->slice_count); -- -+#endif - - if (slice_end(avctx, picture)) { - if (s2->last_picture_ptr || s2->low_delay) //FIXME merge with the stuff in mpeg_decode_slice -diff --git a/libavcodec/mpegaudiodsp.c b/libavcodec/mpegaudiodsp.c -index cc12dd9..2e8d214 100644 ---- a/libavcodec/mpegaudiodsp.c -+++ b/libavcodec/mpegaudiodsp.c -@@ -40,7 +40,11 @@ void ff_mpadsp_init(MPADSPContext *s) - s->imdct36_blocks_float = ff_imdct36_blocks_float; - s->imdct36_blocks_fixed = ff_imdct36_blocks_fixed; - -- if (ARCH_ARM) ff_mpadsp_init_arm(s); -+#if ARCH_ARM -+ ff_mpadsp_init_arm(s); -+#endif - if (HAVE_MMX) ff_mpadsp_init_mmx(s); -- if (HAVE_ALTIVEC) ff_mpadsp_init_altivec(s); -+#if HAVE_ALTIVEC -+ ff_mpadsp_init_altivec(s); -+#endif - } -diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c -index 705951a..b4ebe84 100644 ---- a/libavcodec/mpegvideo.c -+++ b/libavcodec/mpegvideo.c -@@ -1327,8 +1327,10 @@ int ff_MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx) - update_noise_reduction(s); - } - -- if (CONFIG_MPEG_XVMC_DECODER && s->avctx->xvmc_acceleration) -+#if CONFIG_MPEG_XVMC_DECODER -+ if (s->avctx->xvmc_acceleration) - return ff_xvmc_field_start(s, avctx); -+#endif - - return 0; - } -@@ -1340,9 +1342,12 @@ void ff_MPV_frame_end(MpegEncContext *s) - int i; - /* redraw edges for the frame if decoding didn't complete */ - // just to make sure that all data is rendered. -- if (CONFIG_MPEG_XVMC_DECODER && s->avctx->xvmc_acceleration) { -+#if CONFIG_MPEG_XVMC_DECODER -+ if (s->avctx->xvmc_acceleration) { - ff_xvmc_field_end(s); -- } else if((s->error_count || s->encoding || !(s->avctx->codec->capabilities&CODEC_CAP_DRAW_HORIZ_BAND)) && -+ } else -+#endif -+ if((s->error_count || s->encoding || !(s->avctx->codec->capabilities&CODEC_CAP_DRAW_HORIZ_BAND)) && - !s->avctx->hwaccel && - !(s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) && - s->unrestricted_mv && -@@ -2271,10 +2276,12 @@ void MPV_decode_mb_internal(MpegEncContext *s, DCTELEM block[12][64], - int lowres_flag, int is_mpeg12) - { - const int mb_xy = s->mb_y * s->mb_stride + s->mb_x; -- if(CONFIG_MPEG_XVMC_DECODER && s->avctx->xvmc_acceleration){ -+#if CONFIG_MPEG_XVMC_DECODER -+ if (s->avctx->xvmc_acceleration){ - ff_xvmc_decode_mb(s);//xvmc uses pblocks - return; - } -+#endif - - if(s->avctx->debug&FF_DEBUG_DCT_COEFF) { - /* save DCT coefficients */ -diff --git a/libavcodec/rdft.c b/libavcodec/rdft.c -index ebddd8b..66918f9 100644 ---- a/libavcodec/rdft.c -+++ b/libavcodec/rdft.c -@@ -122,7 +122,9 @@ av_cold int ff_rdft_init(RDFTContext *s, int nbits, enum RDFTransformType trans) - #endif - s->rdft_calc = ff_rdft_calc_c; - -- if (ARCH_ARM) ff_rdft_init_arm(s); -+#if ARCH_ARM -+ ff_rdft_init_arm(s); -+#endif - - return 0; - } -diff --git a/libavcodec/rv34dsp.c b/libavcodec/rv34dsp.c -index 1ddcea4..93bd66f 100644 ---- a/libavcodec/rv34dsp.c -+++ b/libavcodec/rv34dsp.c -@@ -134,8 +134,9 @@ av_cold void ff_rv34dsp_init(RV34DSPContext *c, DSPContext* dsp) { - c->rv34_idct_add = rv34_idct_add_c; - c->rv34_idct_dc_add = rv34_idct_dc_add_c; - -- if (HAVE_NEON) -+#if HAVE_NEON - ff_rv34dsp_init_neon(c, dsp); -+#endif - if (HAVE_MMX) - ff_rv34dsp_init_x86(c, dsp); - } -diff --git a/libavcodec/rv40dsp.c b/libavcodec/rv40dsp.c -index 8ba10be..d1b922c 100644 ---- a/libavcodec/rv40dsp.c -+++ b/libavcodec/rv40dsp.c -@@ -604,6 +604,7 @@ av_cold void ff_rv40dsp_init(RV34DSPContext *c, DSPContext* dsp) { - - if (HAVE_MMX) - ff_rv40dsp_init_x86(c, dsp); -- if (HAVE_NEON) -+#if HAVE_NEON - ff_rv40dsp_init_neon(c, dsp); -+#endif - } -diff --git a/libavcodec/sbrdsp.c b/libavcodec/sbrdsp.c -index 8c88fb3..1b514f4 100644 ---- a/libavcodec/sbrdsp.c -+++ b/libavcodec/sbrdsp.c -@@ -241,8 +241,9 @@ av_cold void ff_sbrdsp_init(SBRDSPContext *s) - s->hf_apply_noise[2] = sbr_hf_apply_noise_2; - s->hf_apply_noise[3] = sbr_hf_apply_noise_3; - -- if (ARCH_ARM) -+#if ARCH_ARM - ff_sbrdsp_init_arm(s); -+#endif - if (HAVE_MMX) - ff_sbrdsp_init_x86(s); - } -diff --git a/libavcodec/synth_filter.c b/libavcodec/synth_filter.c -index 5f10530..6022355 100644 ---- a/libavcodec/synth_filter.c -+++ b/libavcodec/synth_filter.c -@@ -60,5 +60,7 @@ av_cold void ff_synth_filter_init(SynthFilterContext *c) - { - c->synth_filter_float = synth_filter_float; - -- if (ARCH_ARM) ff_synth_filter_init_arm(c); -+#if ARCH_ARM -+ ff_synth_filter_init_arm(c); -+#endif - } -diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c -index 309194e..bc266d6 100644 ---- a/libavcodec/vc1dec.c -+++ b/libavcodec/vc1dec.c -@@ -5545,10 +5545,12 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data, - s->me.qpel_put = s->dsp.put_qpel_pixels_tab; - s->me.qpel_avg = s->dsp.avg_qpel_pixels_tab; - -- if ((CONFIG_VC1_VDPAU_DECODER) -- &&s->avctx->codec->capabilities&CODEC_CAP_HWACCEL_VDPAU) -+#if CONFIG_VC1_VDPAU_DECODER -+ if (s->avctx->codec->capabilities&CODEC_CAP_HWACCEL_VDPAU) - ff_vdpau_vc1_decode_picture(s, buf_start, (buf + buf_size) - buf_start); -- else if (avctx->hwaccel) { -+ else -+#endif -+ if (avctx->hwaccel) { - if (avctx->hwaccel->start_frame(avctx, buf, buf_size) < 0) - goto err; - if (avctx->hwaccel->decode_slice(avctx, buf_start, (buf + buf_size) - buf_start) < 0) -diff --git a/libavcodec/vc1dsp.c b/libavcodec/vc1dsp.c -index da7593f..90ede54 100644 ---- a/libavcodec/vc1dsp.c -+++ b/libavcodec/vc1dsp.c -@@ -846,8 +846,9 @@ av_cold void ff_vc1dsp_init(VC1DSPContext* dsp) { - dsp->sprite_v_double_twoscale = sprite_v_double_twoscale_c; - #endif - -- if (HAVE_ALTIVEC) -+#if HAVE_ALTIVEC - ff_vc1dsp_init_altivec(dsp); -+#endif - if (HAVE_MMX) - ff_vc1dsp_init_mmx(dsp); - } -diff --git a/libavcodec/vp56dsp.c b/libavcodec/vp56dsp.c -index c629343..d4d9e1c 100644 ---- a/libavcodec/vp56dsp.c -+++ b/libavcodec/vp56dsp.c -@@ -88,6 +88,8 @@ void ff_vp56dsp_init(VP56DSPContext *s, enum CodecID codec) - } - } - -- if (ARCH_ARM) ff_vp56dsp_init_arm(s, codec); -+#if ARCH_ARM -+ ff_vp56dsp_init_arm(s, codec); -+#endif - if (HAVE_MMX) ff_vp56dsp_init_x86(s, codec); - } -diff --git a/libavcodec/vp8dsp.c b/libavcodec/vp8dsp.c -index 1ee070c..423410e 100644 ---- a/libavcodec/vp8dsp.c -+++ b/libavcodec/vp8dsp.c -@@ -522,8 +522,9 @@ av_cold void ff_vp8dsp_init(VP8DSPContext *dsp) - - if (HAVE_MMX) - ff_vp8dsp_init_x86(dsp); -- if (HAVE_ALTIVEC) -+#if HAVE_ALTIVEC - ff_vp8dsp_init_altivec(dsp); -- if (ARCH_ARM) -+#elif ARCH_ARM - ff_vp8dsp_init_arm(dsp); -+#endif - } -diff --git a/libavcodec/x86/ac3dsp_mmx.c b/libavcodec/x86/ac3dsp_mmx.c -index 54fa380..b797268 100644 ---- a/libavcodec/x86/ac3dsp_mmx.c -+++ b/libavcodec/x86/ac3dsp_mmx.c -@@ -59,16 +59,19 @@ av_cold void ff_ac3dsp_init_x86(AC3DSPContext *c, int bit_exact) - c->ac3_lshift_int16 = ff_ac3_lshift_int16_mmx; - c->ac3_rshift_int32 = ff_ac3_rshift_int32_mmx; - } -+#if HAVE_AMD3DNOW - if (mm_flags & AV_CPU_FLAG_3DNOW && HAVE_AMD3DNOW) { - c->extract_exponents = ff_ac3_extract_exponents_3dnow; - if (!bit_exact) { - c->float_to_fixed24 = ff_float_to_fixed24_3dnow; - } - } -+#endif - if (mm_flags & AV_CPU_FLAG_MMX2 && HAVE_MMX2) { - c->ac3_exponent_min = ff_ac3_exponent_min_mmxext; - c->ac3_max_msb_abs_int16 = ff_ac3_max_msb_abs_int16_mmx2; - } -+#if HAVE_SSE - if (mm_flags & AV_CPU_FLAG_SSE && HAVE_SSE) { - c->float_to_fixed24 = ff_float_to_fixed24_sse; - } -@@ -83,6 +86,8 @@ av_cold void ff_ac3dsp_init_x86(AC3DSPContext *c, int bit_exact) - c->ac3_rshift_int32 = ff_ac3_rshift_int32_sse2; - } - } -+#endif -+#if HAVE_SSSE3 - if (mm_flags & AV_CPU_FLAG_SSSE3 && HAVE_SSSE3) { - c->ac3_max_msb_abs_int16 = ff_ac3_max_msb_abs_int16_ssse3; - if (!(mm_flags & AV_CPU_FLAG_ATOM)) { -@@ -90,4 +95,5 @@ av_cold void ff_ac3dsp_init_x86(AC3DSPContext *c, int bit_exact) - } - } - #endif -+#endif - } -diff --git a/libavcodec/x86/fft.c b/libavcodec/x86/fft.c -index 7c21335..4b0d908 100644 ---- a/libavcodec/x86/fft.c -+++ b/libavcodec/x86/fft.c -@@ -25,6 +25,7 @@ av_cold void ff_fft_init_mmx(FFTContext *s) - { - #if HAVE_YASM - int has_vectors = av_get_cpu_flags(); -+#if HAVE_AMD3DNOW - if (has_vectors & AV_CPU_FLAG_3DNOW && HAVE_AMD3DNOW) { - /* 3DNow! for K6-2/3 */ - s->imdct_calc = ff_imdct_calc_3dn; -@@ -37,6 +38,8 @@ av_cold void ff_fft_init_mmx(FFTContext *s) - s->imdct_half = ff_imdct_half_3dn2; - s->fft_calc = ff_fft_calc_3dn2; - } -+#endif -+#if HAVE_SSE - if (has_vectors & AV_CPU_FLAG_SSE && HAVE_SSE) { - /* SSE for P3/P4/K8 */ - s->imdct_calc = ff_imdct_calc_sse; -@@ -45,6 +48,8 @@ av_cold void ff_fft_init_mmx(FFTContext *s) - s->fft_calc = ff_fft_calc_sse; - s->fft_permutation = FF_FFT_PERM_SWAP_LSBS; - } -+#endif -+#if HAVE_AVX - if (has_vectors & AV_CPU_FLAG_AVX && HAVE_AVX && s->nbits >= 5) { - /* AVX for SB */ - s->imdct_half = ff_imdct_half_avx; -@@ -52,6 +57,7 @@ av_cold void ff_fft_init_mmx(FFTContext *s) - s->fft_permutation = FF_FFT_PERM_AVX; - } - #endif -+#endif - } - - #if CONFIG_DCT -@@ -59,12 +65,16 @@ av_cold void ff_dct_init_mmx(DCTContext *s) - { - #if HAVE_YASM - int has_vectors = av_get_cpu_flags(); -+#if HAVE_SSE - if (has_vectors & AV_CPU_FLAG_SSE && HAVE_SSE) - s->dct32 = ff_dct32_float_sse; - if (has_vectors & AV_CPU_FLAG_SSE2 && HAVE_SSE) - s->dct32 = ff_dct32_float_sse2; -+#endif -+#if HAVE_AVX - if (has_vectors & AV_CPU_FLAG_AVX && HAVE_AVX) - s->dct32 = ff_dct32_float_avx; - #endif -+#endif - } - #endif -diff --git a/libavcodec/x86/h264dsp_mmx.c b/libavcodec/x86/h264dsp_mmx.c -index 063e3de..6a2c7d9 100644 ---- a/libavcodec/x86/h264dsp_mmx.c -+++ b/libavcodec/x86/h264dsp_mmx.c -@@ -420,6 +420,7 @@ void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth, const int chrom - c->biweight_h264_pixels_tab[0]= ff_h264_biweight_16_ssse3; - c->biweight_h264_pixels_tab[1]= ff_h264_biweight_8_ssse3; - } -+#if HAVE_AVX - if (HAVE_AVX && mm_flags&AV_CPU_FLAG_AVX) { - #if HAVE_ALIGNED_STACK - c->h264_v_loop_filter_luma = ff_deblock_v_luma_8_avx; -@@ -428,6 +429,7 @@ void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth, const int chrom - c->h264_h_loop_filter_luma_intra = ff_deblock_h_luma_intra_8_avx; - #endif - } -+#endif - } - } - #endif -diff --git a/libavcodec/x86/v210-init.c b/libavcodec/x86/v210-init.c -index c961178..b61f1e8 100644 ---- a/libavcodec/x86/v210-init.c -+++ b/libavcodec/x86/v210-init.c -@@ -34,15 +34,19 @@ av_cold void v210_x86_init(V210DecContext *s) - if (cpu_flags & AV_CPU_FLAG_SSSE3) - s->unpack_frame = ff_v210_planar_unpack_aligned_ssse3; - -+#if HAVE_AVX - if (HAVE_AVX && cpu_flags & AV_CPU_FLAG_AVX) - s->unpack_frame = ff_v210_planar_unpack_aligned_avx; -+#endif - } - else { - if (cpu_flags & AV_CPU_FLAG_SSSE3) - s->unpack_frame = ff_v210_planar_unpack_unaligned_ssse3; - -+#if HAVE_AVX - if (HAVE_AVX && cpu_flags & AV_CPU_FLAG_AVX) - s->unpack_frame = ff_v210_planar_unpack_unaligned_avx; -+#endif - } - #endif - } -diff --git a/libavdevice/alldevices.c b/libavdevice/alldevices.c -index 86ebfee..8424bdd 100644 ---- a/libavdevice/alldevices.c -+++ b/libavdevice/alldevices.c -@@ -38,6 +38,7 @@ void avdevice_register_all(void) - initialized = 1; - - /* devices */ -+#ifndef __HAIKU__ - REGISTER_INOUTDEV (ALSA, alsa); - REGISTER_INDEV (BKTR, bktr); - REGISTER_INDEV (DSHOW, dshow); -@@ -58,4 +59,5 @@ void avdevice_register_all(void) - /* external libraries */ - REGISTER_INDEV (LIBCDIO, libcdio); - REGISTER_INDEV (LIBDC1394, libdc1394); -+#endif - } -diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c -index b9d44f2..2a95845 100644 ---- a/libavfilter/allfilters.c -+++ b/libavfilter/allfilters.c -@@ -43,12 +43,16 @@ void avfilter_register_all(void) - REGISTER_FILTER (ASHOWINFO, ashowinfo, af); - REGISTER_FILTER (ASPLIT, asplit, af); - REGISTER_FILTER (ASTREAMSYNC, astreamsync, af); -+#ifndef __HAIKU__ - REGISTER_FILTER (ASYNCTS, asyncts, af); -+#endif - REGISTER_FILTER (EARWAX, earwax, af); - REGISTER_FILTER (PAN, pan, af); - REGISTER_FILTER (SILENCEDETECT, silencedetect, af); - REGISTER_FILTER (VOLUME, volume, af); -+#ifndef __HAIKU__ - REGISTER_FILTER (RESAMPLE, resample, af); -+#endif - - REGISTER_FILTER (AEVALSRC, aevalsrc, asrc); - REGISTER_FILTER (AMOVIE, amovie, asrc); -@@ -57,37 +61,53 @@ void avfilter_register_all(void) - REGISTER_FILTER (ABUFFERSINK, abuffersink, asink); - REGISTER_FILTER (ANULLSINK, anullsink, asink); - -+#ifndef __HAIKU__ - REGISTER_FILTER (ASS, ass, vf); -+#endif - REGISTER_FILTER (BBOX, bbox, vf); - REGISTER_FILTER (BLACKDETECT, blackdetect, vf); -+#ifndef __HAIKU__ - REGISTER_FILTER (BLACKFRAME, blackframe, vf); - REGISTER_FILTER (BOXBLUR, boxblur, vf); - REGISTER_FILTER (COLORMATRIX, colormatrix, vf); -+#endif - REGISTER_FILTER (COPY, copy, vf); - REGISTER_FILTER (CROP, crop, vf); -+#ifndef __HAIKU__ - REGISTER_FILTER (CROPDETECT, cropdetect, vf); - REGISTER_FILTER (DELOGO, delogo, vf); -+#endif - REGISTER_FILTER (DESHAKE, deshake, vf); - REGISTER_FILTER (DRAWBOX, drawbox, vf); -+#ifndef __HAIKU__ - REGISTER_FILTER (DRAWTEXT, drawtext, vf); -+#endif - REGISTER_FILTER (FADE, fade, vf); - REGISTER_FILTER (FIELDORDER, fieldorder, vf); - REGISTER_FILTER (FIFO, fifo, vf); - REGISTER_FILTER (FORMAT, format, vf); - REGISTER_FILTER (FPS, fps, vf); -+#ifndef __HAIKU__ - REGISTER_FILTER (FREI0R, frei0r, vf); -+#endif - REGISTER_FILTER (GRADFUN, gradfun, vf); - REGISTER_FILTER (HFLIP, hflip, vf); -+#ifndef __HAIKU__ - REGISTER_FILTER (HQDN3D, hqdn3d, vf); -+#endif - REGISTER_FILTER (IDET, idet, vf); - REGISTER_FILTER (LUT, lut, vf); - REGISTER_FILTER (LUTRGB, lutrgb, vf); - REGISTER_FILTER (LUTYUV, lutyuv, vf); -+#ifndef __HAIKU__ - REGISTER_FILTER (MP, mp, vf); -+#endif - REGISTER_FILTER (NEGATE, negate, vf); - REGISTER_FILTER (NOFORMAT, noformat, vf); - REGISTER_FILTER (NULL, null, vf); -+#ifndef __HAIKU__ - REGISTER_FILTER (OCV, ocv, vf); -+#endif - REGISTER_FILTER (OVERLAY, overlay, vf); - REGISTER_FILTER (PAD, pad, vf); - REGISTER_FILTER (PIXDESCTEST, pixdesctest, vf); -@@ -101,23 +121,33 @@ void avfilter_register_all(void) - REGISTER_FILTER (SHOWINFO, showinfo, vf); - REGISTER_FILTER (SLICIFY, slicify, vf); - REGISTER_FILTER (SPLIT, split, vf); -+#ifndef __HAIKU__ - REGISTER_FILTER (SUPER2XSAI, super2xsai, vf); -+#endif - REGISTER_FILTER (SWAPUV, swapuv, vf); - REGISTER_FILTER (THUMBNAIL, thumbnail, vf); - REGISTER_FILTER (TILE, tile, vf); -+#ifndef __HAIKU__ - REGISTER_FILTER (TINTERLACE, tinterlace, vf); -+#endif - REGISTER_FILTER (TRANSPOSE, transpose, vf); - REGISTER_FILTER (UNSHARP, unsharp, vf); - REGISTER_FILTER (VFLIP, vflip, vf); -+#ifndef __HAIKU__ - REGISTER_FILTER (YADIF, yadif, vf); -+#endif - - REGISTER_FILTER (CELLAUTO, cellauto, vsrc); - REGISTER_FILTER (COLOR, color, vsrc); -+#ifndef __HAIKU__ - REGISTER_FILTER (FREI0R, frei0r_src, vsrc); -+#endif - REGISTER_FILTER (LIFE, life, vsrc); - REGISTER_FILTER (MANDELBROT, mandelbrot, vsrc); - REGISTER_FILTER (MOVIE, movie, vsrc); -+#ifndef __HAIKU__ - REGISTER_FILTER (MPTESTSRC, mptestsrc, vsrc); -+#endif - REGISTER_FILTER (NULLSRC, nullsrc, vsrc); - REGISTER_FILTER (RGBTESTSRC, rgbtestsrc, vsrc); - REGISTER_FILTER (TESTSRC, testsrc, vsrc); -diff --git a/libavformat/allformats.c b/libavformat/allformats.c -index 1862449..2c849b3 100644 ---- a/libavformat/allformats.c -+++ b/libavformat/allformats.c -@@ -67,7 +67,9 @@ void av_register_all(void) - REGISTER_MUXER (ASF_STREAM, asf_stream); - REGISTER_MUXDEMUX (AU, au); - REGISTER_MUXDEMUX (AVI, avi); -+#ifndef __HAIKU__ - REGISTER_DEMUXER (AVISYNTH, avisynth); -+#endif - REGISTER_MUXER (AVM2, avm2); - REGISTER_DEMUXER (AVS, avs); - REGISTER_DEMUXER (BETHSOFTVID, bethsoftvid); -@@ -92,7 +94,9 @@ void av_register_all(void) - REGISTER_DEMUXER (DXA, dxa); - REGISTER_DEMUXER (EA, ea); - REGISTER_DEMUXER (EA_CDATA, ea_cdata); -+#ifndef __HAIKU__ - REGISTER_MUXDEMUX (EAC3, eac3); -+#endif - REGISTER_MUXDEMUX (FFM, ffm); - REGISTER_MUXDEMUX (FFMETADATA, ffmetadata); - REGISTER_MUXDEMUX (FILMSTRIP, filmstrip); -@@ -121,7 +125,9 @@ void av_register_all(void) - REGISTER_DEMUXER (INGENIENT, ingenient); - REGISTER_DEMUXER (IPMOVIE, ipmovie); - REGISTER_MUXER (IPOD, ipod); -+#ifndef __HAIKU__ - REGISTER_MUXER (ISMV, ismv); -+#endif - REGISTER_DEMUXER (ISS, iss); - REGISTER_DEMUXER (IV8, iv8); - REGISTER_MUXDEMUX (IVF, ivf); -@@ -146,7 +152,9 @@ void av_register_all(void) - REGISTER_MUXDEMUX (MP3, mp3); - REGISTER_MUXER (MP4, mp4); - REGISTER_DEMUXER (MPC, mpc); -+#ifndef __HAIKU__ - REGISTER_DEMUXER (MPC8, mpc8); -+#endif - REGISTER_MUXER (MPEG1SYSTEM, mpeg1system); - REGISTER_MUXER (MPEG1VCD, mpeg1vcd); - REGISTER_MUXER (MPEG1VIDEO, mpeg1video); -@@ -262,7 +270,9 @@ void av_register_all(void) - #if FF_API_APPLEHTTP_PROTO - REGISTER_PROTOCOL (APPLEHTTP, applehttp); - #endif -+#ifndef __HAIKU__ - REGISTER_PROTOCOL (BLURAY, bluray); -+#endif - REGISTER_PROTOCOL (CACHE, cache); - REGISTER_PROTOCOL (CONCAT, concat); - REGISTER_PROTOCOL (CRYPTO, crypto); -@@ -271,23 +281,31 @@ void av_register_all(void) - REGISTER_PROTOCOL (HLS, hls); - REGISTER_PROTOCOL (HTTP, http); - REGISTER_PROTOCOL (HTTPPROXY, httpproxy); -+#ifndef __HAIKU__ - REGISTER_PROTOCOL (HTTPS, https); -+#endif - REGISTER_PROTOCOL (MMSH, mmsh); - REGISTER_PROTOCOL (MMST, mmst); - REGISTER_PROTOCOL (MD5, md5); - REGISTER_PROTOCOL (PIPE, pipe); - REGISTER_PROTOCOL (RTMP, rtmp); - REGISTER_PROTOCOL (RTP, rtp); -+#ifndef __HAIKU__ - REGISTER_PROTOCOL (SCTP, sctp); -+#endif - REGISTER_PROTOCOL (TCP, tcp); -+#ifndef __HAIKU__ - REGISTER_PROTOCOL (TLS, tls); -+#endif - REGISTER_PROTOCOL (UDP, udp); - - /* external libraries */ -+#ifndef __HAIKU__ - REGISTER_MUXDEMUX (LIBNUT, libnut); - REGISTER_PROTOCOL (LIBRTMP, librtmp); - REGISTER_PROTOCOL (LIBRTMPE, librtmpe); - REGISTER_PROTOCOL (LIBRTMPS, librtmps); - REGISTER_PROTOCOL (LIBRTMPT, librtmpt); - REGISTER_PROTOCOL (LIBRTMPTE, librtmpte); -+#endif - } -diff --git a/libavutil/cpu.c b/libavutil/cpu.c -index b911880..56cac12 100644 ---- a/libavutil/cpu.c -+++ b/libavutil/cpu.c -@@ -32,9 +32,13 @@ int av_get_cpu_flags(void) - if (checked) - return flags; - -- if (ARCH_ARM) flags = ff_get_cpu_flags_arm(); -- if (ARCH_PPC) flags = ff_get_cpu_flags_ppc(); -- if (ARCH_X86) flags = ff_get_cpu_flags_x86(); -+#if ARCH_ARM -+ flags = ff_get_cpu_flags_arm(); -+#elif ARCH_PPC -+ flags = ff_get_cpu_flags_ppc(); -+#else -+ flags = ff_get_cpu_flags_x86(); -+#endif - - checked = 1; - return flags; -diff --git a/libswresample/x86/swresample_x86.c b/libswresample/x86/swresample_x86.c -index 5436bc3..b1b6d3c 100644 ---- a/libswresample/x86/swresample_x86.c -+++ b/libswresample/x86/swresample_x86.c -@@ -129,6 +129,7 @@ MULTI_CAPS_FUNC(AV_CPU_FLAG_SSE, sse) - ac->simd_f = ff_pack_6ch_float_to_int32_a_sse4; - } - } -+#if HAVE_AVX - if(HAVE_AVX && mm_flags & AV_CPU_FLAG_AVX) { - if( out_fmt == AV_SAMPLE_FMT_FLT && in_fmt == AV_SAMPLE_FMT_S32 || out_fmt == AV_SAMPLE_FMT_FLTP && in_fmt == AV_SAMPLE_FMT_S32P) - ac->simd_f = ff_int32_to_float_a_avx; -@@ -141,4 +142,5 @@ MULTI_CAPS_FUNC(AV_CPU_FLAG_SSE, sse) - ac->simd_f = ff_pack_6ch_float_to_int32_a_avx; - } - } -+#endif - } -diff --git a/libswscale/swscale.c b/libswscale/swscale.c -index 5dd4124..5dc0f11 100644 ---- a/libswscale/swscale.c -+++ b/libswscale/swscale.c -@@ -736,8 +736,9 @@ SwsFunc ff_getSwsFunc(SwsContext *c) - - if (HAVE_MMX) - ff_sws_init_swScale_mmx(c); -- if (HAVE_ALTIVEC) -+#if HAVE_ALTIVEC - ff_sws_init_swScale_altivec(c); -+#endif - - return swScale; - } -diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c -index 74a61b8..b46a710 100644 ---- a/libswscale/swscale_unscaled.c -+++ b/libswscale/swscale_unscaled.c -@@ -984,10 +984,11 @@ void ff_get_unscaled_swscale(SwsContext *c) - c->swScale = planarCopyWrapper; - } - -- if (ARCH_BFIN) -+#if ARCH_BFIN - ff_bfin_get_unscaled_swscale(c); -- if (HAVE_ALTIVEC) -+#elif HAVE_ALTIVEC - ff_swscale_get_unscaled_altivec(c); -+#endif - } - - static void reset_ptr(const uint8_t *src[], int format) -diff --git a/libswscale/utils.c b/libswscale/utils.c -index dc489de..e5098b9 100644 ---- a/libswscale/utils.c -+++ b/libswscale/utils.c -@@ -778,9 +778,11 @@ int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4], - contrast, saturation); - // FIXME factorize - -- if (HAVE_ALTIVEC && av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC) -+#if HAVE_ALITVEC -+ if (av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC) - ff_yuv2rgb_init_tables_altivec(c, inv_table, brightness, - contrast, saturation); -+#endif - return 0; - } - -diff --git a/libswscale/x86/swscale_mmx.c b/libswscale/x86/swscale_mmx.c -index 0c8732c..2810500 100644 ---- a/libswscale/x86/swscale_mmx.c -+++ b/libswscale/x86/swscale_mmx.c -@@ -524,6 +524,7 @@ switch(c->dstBpc){ \ - c->yuv2plane1 = ff_yuv2plane1_16_sse4; - } - -+#if HAVE_AVX - if (HAVE_AVX && cpu_flags & AV_CPU_FLAG_AVX) { - ASSIGN_VSCALEX_FUNC(c->yuv2planeX, avx,); - ASSIGN_VSCALE_FUNC(c->yuv2plane1, avx, avx, 1); -@@ -552,4 +553,5 @@ switch(c->dstBpc){ \ - } - } - #endif -+#endif - } -diff --git a/libswscale/yuv2rgb.c b/libswscale/yuv2rgb.c -index 446b433..e3e8036 100644 ---- a/libswscale/yuv2rgb.c -+++ b/libswscale/yuv2rgb.c -@@ -536,12 +536,15 @@ SwsFunc ff_yuv2rgb_get_func_ptr(SwsContext *c) - - if (HAVE_MMX) - t = ff_yuv2rgb_init_mmx(c); -- else if (HAVE_VIS) -+ else { -+#if HAVE_VIS - t = ff_yuv2rgb_init_vis(c); -- else if (HAVE_ALTIVEC) -+#elif HAVE_ALTIVEC - t = ff_yuv2rgb_init_altivec(c); -- else if (ARCH_BFIN) -+#elif ARCH_BFIN - t = ff_yuv2rgb_get_func_ptr_bfin(c); -+#endif -+ } - - if (t) - return t; --- -1.8.3.4 - diff --git a/media-video/ffmpeg/patches/ffmpeg-0.11.5-gcc4.patch b/media-video/ffmpeg/patches/ffmpeg-0.11.5-gcc4.patch deleted file mode 100644 index 504dcbb94..000000000 --- a/media-video/ffmpeg/patches/ffmpeg-0.11.5-gcc4.patch +++ /dev/null @@ -1,22 +0,0 @@ -From c30864d40845001a62a3f160ad2e28b0612399e8 Mon Sep 17 00:00:00 2001 -From: Adrien Destugues -Date: Fri, 24 Oct 2014 11:03:59 +0200 -Subject: Fix utf8 in documentation. - - -diff --git a/doc/filters.texi b/doc/filters.texi -index 324a154..7303a7d 100644 ---- a/doc/filters.texi -+++ b/doc/filters.texi -@@ -2924,7 +2924,7 @@ Tile several successive frames together. - It accepts as argument the tile size (i.e. the number of lines and columns) - in the form "@var{w}x@var{h}". - --For example, produce 8×8 PNG tiles of all keyframes (@option{-skip_frame -+For example, produce 8x8 PNG tiles of all keyframes (@option{-skip_frame - nokey}) in a movie: - @example - ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png --- -1.8.3.4 - diff --git a/media-video/ffmpeg/patches/ffmpeg-0.11.5.patchset b/media-video/ffmpeg/patches/ffmpeg-0.11.5.patchset new file mode 100644 index 000000000..05adc2f73 --- /dev/null +++ b/media-video/ffmpeg/patches/ffmpeg-0.11.5.patchset @@ -0,0 +1,1043 @@ +From 6f35c0d178448ffa3b8fc22c9b88694c52f4e132 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Fri, 24 Oct 2014 09:41:41 +0000 +Subject: applying patch ffmpeg-0.11.5-gcc4.patch + + +diff --git a/doc/filters.texi b/doc/filters.texi +index 324a154..7303a7d 100644 +--- a/doc/filters.texi ++++ b/doc/filters.texi +@@ -2924,7 +2924,7 @@ Tile several successive frames together. + It accepts as argument the tile size (i.e. the number of lines and columns) + in the form "@var{w}x@var{h}". + +-For example, produce 8×8 PNG tiles of all keyframes (@option{-skip_frame ++For example, produce 8x8 PNG tiles of all keyframes (@option{-skip_frame + nokey}) in a movie: + @example + ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png +-- +2.2.2 + + +From 048247798d420c5c081dfa87c36c1c3099b122c5 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 30 Aug 2015 10:59:56 +0200 +Subject: Fix build with gcc2 and --disable-asm. + +* Confirmed that this fixes the problems with playing h264 and other +formats. Not sure if the update to 0.11.5 is worth it, since apparently +the 0.10.x series is getting more updates from ffmpeg team. + +diff --git a/cmdutils.c b/cmdutils.c +index 9afb54c..e331af1 100644 +--- a/cmdutils.c ++++ b/cmdutils.c +@@ -20,6 +20,7 @@ + */ + + #include ++#include + #include + #include + #include +@@ -55,6 +56,8 @@ + #include + #endif + ++#define va_copy(a,b) ((a)=(b)) ++ + struct SwsContext *sws_opts; + SwrContext *swr_opts; + AVDictionary *format_opts, *codec_opts; +diff --git a/ffprobe.c b/ffprobe.c +index d53ec11..d91eda7 100644 +--- a/ffprobe.c ++++ b/ffprobe.c +@@ -312,7 +312,7 @@ static void writer_print_time(WriterContext *wctx, const char *key, + writer_print_string(wctx, key, "N/A", 1); + } else { + double d = ts * av_q2d(*time_base); +- value_string(buf, sizeof(buf), (struct unit_value){.val.d=d, .unit=unit_second_str}); ++ value_string(buf, sizeof(buf), (struct unit_value){d, unit_second_str}); + writer_print_string(wctx, key, buf, 0); + } + } +@@ -1188,7 +1188,7 @@ static void writer_register_all(void) + #define print_time(k, v, tb) writer_print_time(w, k, v, tb) + #define print_ts(k, v) writer_print_ts(w, k, v) + #define print_val(k, v, u) writer_print_string(w, k, \ +- value_string(val_str, sizeof(val_str), (struct unit_value){.val.i = v, .unit=u}), 0) ++ value_string(val_str, sizeof(val_str), (struct unit_value){v, u}), 0) + #define print_section_header(s) writer_print_section_header(w, s) + #define print_section_footer(s) writer_print_section_footer(w, s) + #define show_tags(metadata) writer_show_tags(w, metadata) +@@ -1658,7 +1658,9 @@ static void ffprobe_show_library_versions(WriterContext *w) + SHOW_LIB_VERSION(avfilter, AVFILTER); + SHOW_LIB_VERSION(swscale, SWSCALE); + SHOW_LIB_VERSION(swresample, SWRESAMPLE); ++#if 0 + SHOW_LIB_VERSION(postproc, POSTPROC); ++#endif + writer_print_chapter_footer(w, "library_versions"); + } + +diff --git a/libavcodec/aacpsdsp.c b/libavcodec/aacpsdsp.c +index e90c50b..84c4a49 100644 +--- a/libavcodec/aacpsdsp.c ++++ b/libavcodec/aacpsdsp.c +@@ -209,6 +209,7 @@ av_cold void ff_psdsp_init(PSDSPContext *s) + s->stereo_interpolate[0] = ps_stereo_interpolate_c; + s->stereo_interpolate[1] = ps_stereo_interpolate_ipdopd_c; + +- if (ARCH_ARM) ++#if ARCH_ARM + ff_psdsp_init_arm(s); ++#endif + } +diff --git a/libavcodec/ac3dsp.c b/libavcodec/ac3dsp.c +index 581e5f5..cf7dedc 100644 +--- a/libavcodec/ac3dsp.c ++++ b/libavcodec/ac3dsp.c +@@ -228,8 +228,10 @@ av_cold void ff_ac3dsp_init(AC3DSPContext *c, int bit_exact) + c->sum_square_butterfly_int32 = ac3_sum_square_butterfly_int32_c; + c->sum_square_butterfly_float = ac3_sum_square_butterfly_float_c; + +- if (ARCH_ARM) ++#if ARCH_ARM + ff_ac3dsp_init_arm(c, bit_exact); +- if (HAVE_MMX) ++#endif ++#if HAVE_MMX + ff_ac3dsp_init_x86(c, bit_exact); ++#endif + } +diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c +index ac05b9b..8ca524a 100644 +--- a/libavcodec/allcodecs.c ++++ b/libavcodec/allcodecs.c +@@ -54,6 +54,7 @@ void avcodec_register_all(void) + initialized = 1; + + /* hardware accelerators */ ++#if __GNUC__ > 2 + REGISTER_HWACCEL (H263_VAAPI, h263_vaapi); + REGISTER_HWACCEL (H264_DXVA2, h264_dxva2); + REGISTER_HWACCEL (H264_VAAPI, h264_vaapi); +@@ -67,6 +68,7 @@ void avcodec_register_all(void) + REGISTER_HWACCEL (VC1_VAAPI, vc1_vaapi); + REGISTER_HWACCEL (WMV3_DXVA2, wmv3_dxva2); + REGISTER_HWACCEL (WMV3_VAAPI, wmv3_vaapi); ++#endif + + /* video codecs */ + REGISTER_ENCODER (A64MULTI, a64multi); +diff --git a/libavcodec/cavsdsp.c b/libavcodec/cavsdsp.c +index 192e0f9..42fa63c 100644 +--- a/libavcodec/cavsdsp.c ++++ b/libavcodec/cavsdsp.c +@@ -544,5 +544,7 @@ av_cold void ff_cavsdsp_init(CAVSDSPContext* c, AVCodecContext *avctx) { + c->cavs_filter_ch = cavs_filter_ch_c; + c->cavs_idct8_add = cavs_idct8_add_c; + +- if (HAVE_MMX) ff_cavsdsp_init_mmx(c, avctx); ++#if HAVE_MMX ++ ff_cavsdsp_init_mmx(c, avctx); ++#endif + } +diff --git a/libavcodec/dcadsp.c b/libavcodec/dcadsp.c +index dd4994d..7a980a1 100644 +--- a/libavcodec/dcadsp.c ++++ b/libavcodec/dcadsp.c +@@ -47,5 +47,7 @@ static void dca_lfe_fir_c(float *out, const float *in, const float *coefs, + void ff_dcadsp_init(DCADSPContext *s) + { + s->lfe_fir = dca_lfe_fir_c; +- if (ARCH_ARM) ff_dcadsp_init_arm(s); ++#if ARCH_ARM ++ ff_dcadsp_init_arm(s); ++#endif + } +diff --git a/libavcodec/dct.c b/libavcodec/dct.c +index 4800e13..aff6a81 100644 +--- a/libavcodec/dct.c ++++ b/libavcodec/dct.c +@@ -208,8 +208,9 @@ av_cold int ff_dct_init(DCTContext *s, int nbits, enum DCTTransformType inverse) + } + + s->dct32 = ff_dct32_float; +- if (HAVE_MMX) ++#if HAVE_MMX + ff_dct_init_mmx(s); ++#endif + + return 0; + } +diff --git a/libavcodec/diracdsp.c b/libavcodec/diracdsp.c +index 429241d..57990b1 100644 +--- a/libavcodec/diracdsp.c ++++ b/libavcodec/diracdsp.c +@@ -197,5 +197,7 @@ void ff_diracdsp_init(DiracDSPContext *c) + PIXFUNC(avg, 16); + PIXFUNC(avg, 32); + +- if (HAVE_MMX && HAVE_YASM) ff_diracdsp_init_mmx(c); ++#if HAVE_MMX && HAVE_YASM ++ ff_diracdsp_init_mmx(c); ++#endif + } +diff --git a/libavcodec/dsputil.c b/libavcodec/dsputil.c +index a13540d..96a955a 100644 +--- a/libavcodec/dsputil.c ++++ b/libavcodec/dsputil.c +@@ -3169,14 +3169,30 @@ av_cold void ff_dsputil_init(DSPContext* c, AVCodecContext *avctx) + } + + +- if (HAVE_MMX) ff_dsputil_init_mmx (c, avctx); +- if (ARCH_ARM) ff_dsputil_init_arm (c, avctx); +- if (HAVE_VIS) ff_dsputil_init_vis (c, avctx); +- if (ARCH_ALPHA) ff_dsputil_init_alpha (c, avctx); +- if (ARCH_PPC) ff_dsputil_init_ppc (c, avctx); +- if (HAVE_MMI) ff_dsputil_init_mmi (c, avctx); +- if (ARCH_SH4) ff_dsputil_init_sh4 (c, avctx); +- if (ARCH_BFIN) ff_dsputil_init_bfin (c, avctx); ++#if HAVE_MMX ++ ff_dsputil_init_mmx (c, avctx); ++#endif ++#if ARCH_ARM ++ ff_dsputil_init_arm (c, avctx); ++#endif ++#if HAVE_VIS ++ ff_dsputil_init_vis (c, avctx); ++#endif ++#if ARCH_ALPHA ++ ff_dsputil_init_alpha (c, avctx); ++#endif ++#if ARCH_PPC ++ ff_dsputil_init_ppc (c, avctx); ++#endif ++#if HAVE_MMI ++ ff_dsputil_init_mmi (c, avctx); ++#endif ++#if ARCH_SH4 ++ ff_dsputil_init_sh4 (c, avctx); ++#endif ++#if ARCH_BFIN ++ ff_dsputil_init_bfin (c, avctx); ++#endif + + for (i = 0; i < 4; i++) { + for (j = 0; j < 16; j++) { +diff --git a/libavcodec/dwt.c b/libavcodec/dwt.c +index 6c1f131..e87b19a 100644 +--- a/libavcodec/dwt.c ++++ b/libavcodec/dwt.c +@@ -993,8 +993,9 @@ void ff_dwt_init(DWTContext *c) + c->horizontal_compose97i = ff_snow_horizontal_compose97i; + c->inner_add_yblock = ff_snow_inner_add_yblock; + +- if (HAVE_MMX) ++#if HAVE_MMX + ff_dwt_init_x86(c); ++#endif + } + + +diff --git a/libavcodec/fft.c b/libavcodec/fft.c +index 6b93a5c..916145e 100644 +--- a/libavcodec/fft.c ++++ b/libavcodec/fft.c +@@ -164,7 +164,9 @@ av_cold int ff_fft_init(FFTContext *s, int nbits, int inverse) + if (CONFIG_MDCT) s->mdct_calcw = s->mdct_calc; + #else + if (CONFIG_MDCT) s->mdct_calcw = ff_mdct_calcw_c; +- if (ARCH_ARM) ff_fft_fixed_init_arm(s); ++#if ARCH_ARM ++ ff_fft_fixed_init_arm(s); ++#endif + #endif + + for(j=4; j<=nbits; j++) { +diff --git a/libavcodec/fmtconvert.c b/libavcodec/fmtconvert.c +index c03117c..40c0e33 100644 +--- a/libavcodec/fmtconvert.c ++++ b/libavcodec/fmtconvert.c +@@ -82,9 +82,15 @@ av_cold void ff_fmt_convert_init(FmtConvertContext *c, AVCodecContext *avctx) + c->float_to_int16_interleave = float_to_int16_interleave_c; + c->float_interleave = ff_float_interleave_c; + +- if (ARCH_ARM) ff_fmt_convert_init_arm(c, avctx); +- if (HAVE_ALTIVEC) ff_fmt_convert_init_altivec(c, avctx); +- if (HAVE_MMX) ff_fmt_convert_init_x86(c, avctx); ++#if (ARCH_ARM) ++ ff_fmt_convert_init_arm(c, avctx); ++#endif ++#if (HAVE_ALTIVEC) ++ ff_fmt_convert_init_altivec(c, avctx); ++#endif ++#if (HAVE_MMX) ++ ff_fmt_convert_init_x86(c, avctx); ++#endif + } + + /* ffdshow custom code */ +diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c +index 4d3c7b8..c3873f9 100644 +--- a/libavcodec/h263dec.c ++++ b/libavcodec/h263dec.c +@@ -648,10 +648,12 @@ retry: + + if (!s->divx_packed) ff_thread_finish_setup(avctx); + +- if (CONFIG_MPEG4_VDPAU_DECODER && (s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU)) { ++#if CONFIG_MPEG4_VDPAU_DECODER ++ if ((s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU)) { + ff_vdpau_mpeg4_decode_picture(s, s->gb.buffer, s->gb.buffer_end - s->gb.buffer); + goto frame_end; + } ++#endif + + if (avctx->hwaccel) { + if (avctx->hwaccel->start_frame(avctx, s->gb.buffer, s->gb.buffer_end - s->gb.buffer) < 0) +diff --git a/libavcodec/h264.c b/libavcodec/h264.c +index 1e6326f..fe76cf7 100644 +--- a/libavcodec/h264.c ++++ b/libavcodec/h264.c +@@ -2746,9 +2746,10 @@ static int field_end(H264Context *h, int in_setup) + ff_thread_report_progress(&s->current_picture_ptr->f, INT_MAX, + s->picture_structure == PICT_BOTTOM_FIELD); + +- if (CONFIG_H264_VDPAU_DECODER && +- s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) ++#if CONFIG_H264_VDPAU_DECODER ++ if (s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) + ff_vdpau_h264_set_reference_frames(s); ++#endif + + if (in_setup || !(avctx->active_thread_type & FF_THREAD_FRAME)) { + if (!s->dropable) { +@@ -2767,9 +2768,11 @@ static int field_end(H264Context *h, int in_setup) + "hardware accelerator failed to decode picture\n"); + } + ++#if CONFIG_H264_VDPAU_DECODER + if (CONFIG_H264_VDPAU_DECODER && + s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) + ff_vdpau_h264_picture_complete(s); ++#endif + + /* + * FIXME: Error handling code does not seem to support interlaced +@@ -4394,9 +4397,11 @@ again: + if (s->avctx->hwaccel && + s->avctx->hwaccel->start_frame(s->avctx, NULL, 0) < 0) + return -1; ++#if CONFIG_H264_VDPAU_DECODER + if (CONFIG_H264_VDPAU_DECODER && + s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) + ff_vdpau_h264_picture_start(s); ++#endif + } + + if (hx->redundant_pic_count == 0 && +@@ -4412,6 +4417,7 @@ again: + &buf[buf_index - consumed], + consumed) < 0) + return -1; ++#if CONFIG_H264_VDPAU_DECODER + } else if (CONFIG_H264_VDPAU_DECODER && + s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) { + static const uint8_t start_code[] = { +@@ -4420,6 +4426,7 @@ again: + sizeof(start_code)); + ff_vdpau_add_data_chunk(s, &buf[buf_index - consumed], + consumed); ++#endif + } else + context_count++; + } +diff --git a/libavcodec/h264dsp.c b/libavcodec/h264dsp.c +index bd35aa3..7b69198 100644 +--- a/libavcodec/h264dsp.c ++++ b/libavcodec/h264dsp.c +@@ -111,7 +111,13 @@ void ff_h264dsp_init(H264DSPContext *c, const int bit_depth, const int chroma_fo + break; + } + +- if (ARCH_ARM) ff_h264dsp_init_arm(c, bit_depth, chroma_format_idc); +- if (HAVE_ALTIVEC) ff_h264dsp_init_ppc(c, bit_depth, chroma_format_idc); +- if (HAVE_MMX) ff_h264dsp_init_x86(c, bit_depth, chroma_format_idc); ++#if (ARCH_ARM) ++ ff_h264dsp_init_arm(c, bit_depth, chroma_format_idc); ++#endif ++#if (HAVE_ALTIVEC) ++ ff_h264dsp_init_ppc(c, bit_depth, chroma_format_idc); ++#endif ++#if (HAVE_MMX) ++ ff_h264dsp_init_x86(c, bit_depth, chroma_format_idc); ++#endif + } +diff --git a/libavcodec/h264pred.c b/libavcodec/h264pred.c +index a174b4c..78e33cb 100644 +--- a/libavcodec/h264pred.c ++++ b/libavcodec/h264pred.c +@@ -532,6 +532,10 @@ void ff_h264_pred_init(H264PredContext *h, int codec_id, const int bit_depth, co + break; + } + +- if (ARCH_ARM) ff_h264_pred_init_arm(h, codec_id, bit_depth, chroma_format_idc); +- if (HAVE_MMX) ff_h264_pred_init_x86(h, codec_id, bit_depth, chroma_format_idc); ++#if (ARCH_ARM) ++ ff_h264_pred_init_arm(h, codec_id, bit_depth, chroma_format_idc); ++#endif ++#if (HAVE_MMX) ++ ff_h264_pred_init_x86(h, codec_id, bit_depth, chroma_format_idc); ++#endif + } +diff --git a/libavcodec/lpc.c b/libavcodec/lpc.c +index 5faddc2..459ec34 100644 +--- a/libavcodec/lpc.c ++++ b/libavcodec/lpc.c +@@ -258,8 +258,9 @@ av_cold int ff_lpc_init(LPCContext *s, int blocksize, int max_order, + s->lpc_apply_welch_window = lpc_apply_welch_window_c; + s->lpc_compute_autocorr = lpc_compute_autocorr_c; + +- if (HAVE_MMX) ++#if (HAVE_MMX) + ff_lpc_init_x86(s); ++#endif + + return 0; + } +diff --git a/libavcodec/mlpdsp.c b/libavcodec/mlpdsp.c +index 7ec8dd2..f1c04c0 100644 +--- a/libavcodec/mlpdsp.c ++++ b/libavcodec/mlpdsp.c +@@ -58,6 +58,7 @@ static void ff_mlp_filter_channel(int32_t *state, const int32_t *coeff, + void ff_mlp_init(DSPContext* c, AVCodecContext *avctx) + { + c->mlp_filter_channel = ff_mlp_filter_channel; +- if (ARCH_X86) ++#if (ARCH_X86) + ff_mlp_init_x86(c, avctx); ++#endif + } +diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c +index bcee1d8..8a8cdac 100644 +--- a/libavcodec/mpeg12.c ++++ b/libavcodec/mpeg12.c +@@ -834,12 +834,14 @@ static int mpeg_decode_mb(MpegEncContext *s, DCTELEM block[12][64]) + memset(s->last_mv, 0, sizeof(s->last_mv)); /* reset mv prediction */ + s->mb_intra = 1; + // if 1, we memcpy blocks in xvmcvideo ++#if CONFIG_XVMC_DECODER + if (CONFIG_MPEG_XVMC_DECODER && s->avctx->xvmc_acceleration > 1) { + ff_xvmc_pack_pblocks(s, -1); // inter are always full blocks + if (s->swap_uv) { + exchange_uv(s); + } + } ++#endif + + if (s->codec_id == CODEC_ID_MPEG2VIDEO) { + if (s->flags2 & CODEC_FLAG2_FAST) { +@@ -1052,12 +1054,14 @@ static int mpeg_decode_mb(MpegEncContext *s, DCTELEM block[12][64]) + } + + //if 1, we memcpy blocks in xvmcvideo ++#if CONFIG_XVMC_DECODER + if (CONFIG_MPEG_XVMC_DECODER && s->avctx->xvmc_acceleration > 1) { + ff_xvmc_pack_pblocks(s, cbp); + if (s->swap_uv) { + exchange_uv(s); + } + } ++#endif + + if (s->codec_id == CODEC_ID_MPEG2VIDEO) { + if (s->flags2 & CODEC_FLAG2_FAST) { +@@ -1656,9 +1660,11 @@ static int mpeg_field_start(MpegEncContext *s, const uint8_t *buf, int buf_size) + + // MPV_frame_start will call this function too, + // but we need to call it on every field ++#if CONFIG_MPEG_XVMC_DECODER + if (CONFIG_MPEG_XVMC_DECODER && s->avctx->xvmc_acceleration) + if (ff_xvmc_field_start(s, avctx) < 0) + return -1; ++#endif + + return 0; + } +diff --git a/libavcodec/mpegaudiodsp.c b/libavcodec/mpegaudiodsp.c +index cc12dd9..b311d21 100644 +--- a/libavcodec/mpegaudiodsp.c ++++ b/libavcodec/mpegaudiodsp.c +@@ -40,7 +40,13 @@ void ff_mpadsp_init(MPADSPContext *s) + s->imdct36_blocks_float = ff_imdct36_blocks_float; + s->imdct36_blocks_fixed = ff_imdct36_blocks_fixed; + +- if (ARCH_ARM) ff_mpadsp_init_arm(s); +- if (HAVE_MMX) ff_mpadsp_init_mmx(s); +- if (HAVE_ALTIVEC) ff_mpadsp_init_altivec(s); ++#if (ARCH_ARM) ++ ff_mpadsp_init_arm(s); ++#endif ++#if (HAVE_MMX) ++ ff_mpadsp_init_mmx(s); ++#endif ++#if (HAVE_ALTIVEC) ++ ff_mpadsp_init_altivec(s); ++#endif + } +diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c +index 705951a..49f52d5 100644 +--- a/libavcodec/mpegvideo.c ++++ b/libavcodec/mpegvideo.c +@@ -1327,8 +1327,10 @@ int ff_MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx) + update_noise_reduction(s); + } + ++#if CONFIG_MPEG_XVMC_DECODER + if (CONFIG_MPEG_XVMC_DECODER && s->avctx->xvmc_acceleration) + return ff_xvmc_field_start(s, avctx); ++#endif + + return 0; + } +@@ -1340,9 +1342,12 @@ void ff_MPV_frame_end(MpegEncContext *s) + int i; + /* redraw edges for the frame if decoding didn't complete */ + // just to make sure that all data is rendered. ++#if CONFIG_MPEG_XVMC_DECODER + if (CONFIG_MPEG_XVMC_DECODER && s->avctx->xvmc_acceleration) { + ff_xvmc_field_end(s); +- } else if((s->error_count || s->encoding || !(s->avctx->codec->capabilities&CODEC_CAP_DRAW_HORIZ_BAND)) && ++ } else ++#endif ++ if((s->error_count || s->encoding || !(s->avctx->codec->capabilities&CODEC_CAP_DRAW_HORIZ_BAND)) && + !s->avctx->hwaccel && + !(s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) && + s->unrestricted_mv && +@@ -2271,10 +2276,12 @@ void MPV_decode_mb_internal(MpegEncContext *s, DCTELEM block[12][64], + int lowres_flag, int is_mpeg12) + { + const int mb_xy = s->mb_y * s->mb_stride + s->mb_x; ++#if CONFIG_MPEG_XVMC_DECODER + if(CONFIG_MPEG_XVMC_DECODER && s->avctx->xvmc_acceleration){ + ff_xvmc_decode_mb(s);//xvmc uses pblocks + return; + } ++#endif + + if(s->avctx->debug&FF_DEBUG_DCT_COEFF) { + /* save DCT coefficients */ +diff --git a/libavcodec/pngdsp.c b/libavcodec/pngdsp.c +index eb8c6b2..989d9eb 100644 +--- a/libavcodec/pngdsp.c ++++ b/libavcodec/pngdsp.c +@@ -44,5 +44,7 @@ void ff_pngdsp_init(PNGDSPContext *dsp) + dsp->add_bytes_l2 = add_bytes_l2_c; + dsp->add_paeth_prediction = ff_add_png_paeth_prediction; + +- if (HAVE_MMX) ff_pngdsp_init_x86(dsp); ++#if (HAVE_MMX) ++ ff_pngdsp_init_x86(dsp); ++#endif + } +diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c +index c29435b..181b4a1 100644 +--- a/libavcodec/pngenc.c ++++ b/libavcodec/pngenc.c +@@ -56,7 +56,8 @@ static void png_get_interlaced_row(uint8_t *dst, int row_size, + uint8_t *d; + const uint8_t *s; + +- mask = (int[]){0x80, 0x08, 0x88, 0x22, 0xaa, 0x55, 0xff}[pass]; ++ const int tmp[] = {0x80, 0x08, 0x88, 0x22, 0xaa, 0x55, 0xff}; ++ mask = tmp[pass]; + switch(bits_per_pixel) { + case 1: + memset(dst, 0, row_size); +diff --git a/libavcodec/proresdsp.c b/libavcodec/proresdsp.c +index a21003c..99c22a5 100644 +--- a/libavcodec/proresdsp.c ++++ b/libavcodec/proresdsp.c +@@ -74,7 +74,9 @@ void ff_proresdsp_init(ProresDSPContext *dsp, AVCodecContext *avctx) + dsp->idct_put = prores_idct_put_c; + dsp->idct_permutation_type = FF_NO_IDCT_PERM; + +- if (HAVE_MMX) ff_proresdsp_x86_init(dsp, avctx); ++#if (HAVE_MMX) ++ ff_proresdsp_x86_init(dsp, avctx); ++#endif + + ff_init_scantable_permutation(dsp->idct_permutation, + dsp->idct_permutation_type); +diff --git a/libavcodec/rdft.c b/libavcodec/rdft.c +index ebddd8b..9509bc4 100644 +--- a/libavcodec/rdft.c ++++ b/libavcodec/rdft.c +@@ -122,7 +122,9 @@ av_cold int ff_rdft_init(RDFTContext *s, int nbits, enum RDFTransformType trans) + #endif + s->rdft_calc = ff_rdft_calc_c; + +- if (ARCH_ARM) ff_rdft_init_arm(s); ++#if (ARCH_ARM) ++ ff_rdft_init_arm(s); ++#endif + + return 0; + } +diff --git a/libavcodec/rv34dsp.c b/libavcodec/rv34dsp.c +index 1ddcea4..b6b380a 100644 +--- a/libavcodec/rv34dsp.c ++++ b/libavcodec/rv34dsp.c +@@ -134,8 +134,10 @@ av_cold void ff_rv34dsp_init(RV34DSPContext *c, DSPContext* dsp) { + c->rv34_idct_add = rv34_idct_add_c; + c->rv34_idct_dc_add = rv34_idct_dc_add_c; + +- if (HAVE_NEON) ++#if (HAVE_NEON) + ff_rv34dsp_init_neon(c, dsp); +- if (HAVE_MMX) ++#endif ++#if (HAVE_MMX) + ff_rv34dsp_init_x86(c, dsp); ++#endif + } +diff --git a/libavcodec/rv40dsp.c b/libavcodec/rv40dsp.c +index 8ba10be..c1bfd95 100644 +--- a/libavcodec/rv40dsp.c ++++ b/libavcodec/rv40dsp.c +@@ -602,8 +602,10 @@ av_cold void ff_rv40dsp_init(RV34DSPContext *c, DSPContext* dsp) { + c->rv40_loop_filter_strength[0] = rv40_h_loop_filter_strength; + c->rv40_loop_filter_strength[1] = rv40_v_loop_filter_strength; + +- if (HAVE_MMX) ++#if (HAVE_MMX) + ff_rv40dsp_init_x86(c, dsp); +- if (HAVE_NEON) ++#endif ++#if (HAVE_NEON) + ff_rv40dsp_init_neon(c, dsp); ++#endif + } +diff --git a/libavcodec/sbrdsp.c b/libavcodec/sbrdsp.c +index 8c88fb3..b3879b9 100644 +--- a/libavcodec/sbrdsp.c ++++ b/libavcodec/sbrdsp.c +@@ -241,8 +241,10 @@ av_cold void ff_sbrdsp_init(SBRDSPContext *s) + s->hf_apply_noise[2] = sbr_hf_apply_noise_2; + s->hf_apply_noise[3] = sbr_hf_apply_noise_3; + +- if (ARCH_ARM) ++#if (ARCH_ARM) + ff_sbrdsp_init_arm(s); +- if (HAVE_MMX) ++#endif ++#if (HAVE_MMX) + ff_sbrdsp_init_x86(s); ++#endif + } +diff --git a/libavcodec/synth_filter.c b/libavcodec/synth_filter.c +index 5f10530..9ecd440 100644 +--- a/libavcodec/synth_filter.c ++++ b/libavcodec/synth_filter.c +@@ -60,5 +60,7 @@ av_cold void ff_synth_filter_init(SynthFilterContext *c) + { + c->synth_filter_float = synth_filter_float; + +- if (ARCH_ARM) ff_synth_filter_init_arm(c); ++#if (ARCH_ARM) ++ ff_synth_filter_init_arm(c); ++#endif + } +diff --git a/libavcodec/v210dec.c b/libavcodec/v210dec.c +index 4533903..9684360 100644 +--- a/libavcodec/v210dec.c ++++ b/libavcodec/v210dec.c +@@ -63,8 +63,9 @@ static av_cold int decode_init(AVCodecContext *avctx) + + s->unpack_frame = v210_planar_unpack_c; + +- if (HAVE_MMX) ++#if (HAVE_MMX) + v210_x86_init(s); ++#endif + + return 0; + } +@@ -101,8 +102,9 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, + aligned_input = !((uintptr_t)psrc & 0xf) && !(stride & 0xf); + if (aligned_input != s->aligned_input) { + s->aligned_input = aligned_input; +- if (HAVE_MMX) ++#if (HAVE_MMX) + v210_x86_init(s); ++#endif + } + + if (pic->data[0]) +diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c +index 309194e..6341d98 100644 +--- a/libavcodec/vc1dec.c ++++ b/libavcodec/vc1dec.c +@@ -5545,10 +5545,13 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data, + s->me.qpel_put = s->dsp.put_qpel_pixels_tab; + s->me.qpel_avg = s->dsp.avg_qpel_pixels_tab; + ++#if CONFIG_VC1_VDPAU_DECODER + if ((CONFIG_VC1_VDPAU_DECODER) + &&s->avctx->codec->capabilities&CODEC_CAP_HWACCEL_VDPAU) + ff_vdpau_vc1_decode_picture(s, buf_start, (buf + buf_size) - buf_start); +- else if (avctx->hwaccel) { ++ else ++#endif ++ if (avctx->hwaccel) { + if (avctx->hwaccel->start_frame(avctx, buf, buf_size) < 0) + goto err; + if (avctx->hwaccel->decode_slice(avctx, buf_start, (buf + buf_size) - buf_start) < 0) +diff --git a/libavcodec/vc1dsp.c b/libavcodec/vc1dsp.c +index da7593f..38a28aa 100644 +--- a/libavcodec/vc1dsp.c ++++ b/libavcodec/vc1dsp.c +@@ -846,8 +846,10 @@ av_cold void ff_vc1dsp_init(VC1DSPContext* dsp) { + dsp->sprite_v_double_twoscale = sprite_v_double_twoscale_c; + #endif + +- if (HAVE_ALTIVEC) ++#if (HAVE_ALTIVEC) + ff_vc1dsp_init_altivec(dsp); +- if (HAVE_MMX) ++#endif ++#if (HAVE_MMX) + ff_vc1dsp_init_mmx(dsp); ++#endif + } +diff --git a/libavcodec/vp56dsp.c b/libavcodec/vp56dsp.c +index c629343..51419f6 100644 +--- a/libavcodec/vp56dsp.c ++++ b/libavcodec/vp56dsp.c +@@ -88,6 +88,10 @@ void ff_vp56dsp_init(VP56DSPContext *s, enum CodecID codec) + } + } + +- if (ARCH_ARM) ff_vp56dsp_init_arm(s, codec); +- if (HAVE_MMX) ff_vp56dsp_init_x86(s, codec); ++#if (ARCH_ARM) ++ ff_vp56dsp_init_arm(s, codec); ++#endif ++#if (HAVE_MMX) ++ ff_vp56dsp_init_x86(s, codec); ++#endif + } +diff --git a/libavcodec/vp8dsp.c b/libavcodec/vp8dsp.c +index 1ee070c..8a9af2b 100644 +--- a/libavcodec/vp8dsp.c ++++ b/libavcodec/vp8dsp.c +@@ -520,10 +520,13 @@ av_cold void ff_vp8dsp_init(VP8DSPContext *dsp) + VP8_BILINEAR_MC_FUNC(1, 8); + VP8_BILINEAR_MC_FUNC(2, 4); + +- if (HAVE_MMX) ++#if (HAVE_MMX) + ff_vp8dsp_init_x86(dsp); +- if (HAVE_ALTIVEC) ++#endif ++#if (HAVE_ALTIVEC) + ff_vp8dsp_init_altivec(dsp); +- if (ARCH_ARM) ++#endif ++#if (ARCH_ARM) + ff_vp8dsp_init_arm(dsp); ++#endif + } +diff --git a/libavdevice/alldevices.c b/libavdevice/alldevices.c +index 86ebfee..f994690 100644 +--- a/libavdevice/alldevices.c ++++ b/libavdevice/alldevices.c +@@ -38,7 +38,9 @@ void avdevice_register_all(void) + initialized = 1; + + /* devices */ ++#if __GNUC__ > 2 + REGISTER_INOUTDEV (ALSA, alsa); ++#endif + REGISTER_INDEV (BKTR, bktr); + REGISTER_INDEV (DSHOW, dshow); + REGISTER_INDEV (DV1394, dv1394); +diff --git a/libavfilter/af_aresample.c b/libavfilter/af_aresample.c +index 90e8781..9284f04 100644 +--- a/libavfilter/af_aresample.c ++++ b/libavfilter/af_aresample.c +@@ -103,20 +103,23 @@ static int query_formats(AVFilterContext *ctx) + ff_channel_layouts_ref(in_layouts, &inlink->out_channel_layouts); + + if(out_rate > 0) { +- out_samplerates = avfilter_make_format_list((int[]){ out_rate, -1 }); ++ int tmp[] = {out_rate, -1}; ++ out_samplerates = avfilter_make_format_list(tmp); + } else { + out_samplerates = ff_all_samplerates(); + } + avfilter_formats_ref(out_samplerates, &outlink->in_samplerates); + + if(out_format != AV_SAMPLE_FMT_NONE) { +- out_formats = avfilter_make_format_list((int[]){ out_format, -1 }); ++ int tmp[] = {out_format, -1}; ++ out_formats = avfilter_make_format_list(tmp); + } else + out_formats = avfilter_make_all_formats(AVMEDIA_TYPE_AUDIO); + avfilter_formats_ref(out_formats, &outlink->in_formats); + + if(out_layout) { +- out_layouts = avfilter_make_format64_list((int64_t[]){ out_layout, -1 }); ++ int64_t tmp[] = {out_layout, -1}; ++ out_layouts = avfilter_make_format64_list(tmp); + } else + out_layouts = ff_all_channel_layouts(); + ff_channel_layouts_ref(out_layouts, &outlink->in_channel_layouts); +diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c +index b9d44f2..f1940f1 100644 +--- a/libavfilter/allfilters.c ++++ b/libavfilter/allfilters.c +@@ -43,7 +43,9 @@ void avfilter_register_all(void) + REGISTER_FILTER (ASHOWINFO, ashowinfo, af); + REGISTER_FILTER (ASPLIT, asplit, af); + REGISTER_FILTER (ASTREAMSYNC, astreamsync, af); ++#if __GNUC__ > 2 + REGISTER_FILTER (ASYNCTS, asyncts, af); ++#endif + REGISTER_FILTER (EARWAX, earwax, af); + REGISTER_FILTER (PAN, pan, af); + REGISTER_FILTER (SILENCEDETECT, silencedetect, af); +diff --git a/libavfilter/vf_gradfun.c b/libavfilter/vf_gradfun.c +index 49e5255..db7a78a 100644 +--- a/libavfilter/vf_gradfun.c ++++ b/libavfilter/vf_gradfun.c +@@ -132,12 +132,18 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) + gf->blur_line = ff_gradfun_blur_line_c; + gf->filter_line = ff_gradfun_filter_line_c; + ++#if HAVE_MMX + if (HAVE_MMX && cpu_flags & AV_CPU_FLAG_MMX2) + gf->filter_line = ff_gradfun_filter_line_mmx2; ++#endif ++#if HAVE_SSSE3 + if (HAVE_SSSE3 && cpu_flags & AV_CPU_FLAG_SSSE3) + gf->filter_line = ff_gradfun_filter_line_ssse3; ++#endif ++#if HAVE_SSE + if (HAVE_SSE && cpu_flags & AV_CPU_FLAG_SSE2) + gf->blur_line = ff_gradfun_blur_line_sse2; ++#endif + + av_log(ctx, AV_LOG_INFO, "threshold:%.2f radius:%d\n", thresh, gf->radius); + +diff --git a/libavformat/allformats.c b/libavformat/allformats.c +index 1862449..b6fb353 100644 +--- a/libavformat/allformats.c ++++ b/libavformat/allformats.c +@@ -67,7 +67,9 @@ void av_register_all(void) + REGISTER_MUXER (ASF_STREAM, asf_stream); + REGISTER_MUXDEMUX (AU, au); + REGISTER_MUXDEMUX (AVI, avi); ++#if __GNUC__ > 2 + REGISTER_DEMUXER (AVISYNTH, avisynth); ++#endif + REGISTER_MUXER (AVM2, avm2); + REGISTER_DEMUXER (AVS, avs); + REGISTER_DEMUXER (BETHSOFTVID, bethsoftvid); +diff --git a/libavutil/cpu.c b/libavutil/cpu.c +index b911880..edf893e 100644 +--- a/libavutil/cpu.c ++++ b/libavutil/cpu.c +@@ -32,9 +32,15 @@ int av_get_cpu_flags(void) + if (checked) + return flags; + +- if (ARCH_ARM) flags = ff_get_cpu_flags_arm(); +- if (ARCH_PPC) flags = ff_get_cpu_flags_ppc(); +- if (ARCH_X86) flags = ff_get_cpu_flags_x86(); ++#if ARCH_ARM ++ flags = ff_get_cpu_flags_arm(); ++#endif ++#if ARCH_PPC ++ flags = ff_get_cpu_flags_ppc(); ++#endif ++#if ARCH_X86 ++ flags = ff_get_cpu_flags_x86(); ++#endif + + checked = 1; + return flags; +diff --git a/libswresample/audioconvert.c b/libswresample/audioconvert.c +index c531356..40634c6 100644 +--- a/libswresample/audioconvert.c ++++ b/libswresample/audioconvert.c +@@ -154,7 +154,9 @@ AudioConvert *swri_audio_convert_alloc(enum AVSampleFormat out_fmt, + } + } + +- if(HAVE_YASM && HAVE_MMX) swri_audio_convert_init_x86(ctx, out_fmt, in_fmt, channels); ++#if HAVE_YASM && HAVE_MMX ++ swri_audio_convert_init_x86(ctx, out_fmt, in_fmt, channels); ++#endif + + return ctx; + } +diff --git a/libswscale/rgb2rgb.c b/libswscale/rgb2rgb.c +index ba7d6de..5bdc182 100644 +--- a/libswscale/rgb2rgb.c ++++ b/libswscale/rgb2rgb.c +@@ -128,8 +128,9 @@ void (*yuyvtoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, + void sws_rgb2rgb_init(void) + { + rgb2rgb_init_c(); +- if (HAVE_MMX) ++#if (HAVE_MMX) + rgb2rgb_init_x86(); ++#endif + } + + void rgb32to24(const uint8_t *src, uint8_t *dst, int src_size) +diff --git a/libswscale/swscale.c b/libswscale/swscale.c +index 5dd4124..9901f83 100644 +--- a/libswscale/swscale.c ++++ b/libswscale/swscale.c +@@ -734,10 +734,12 @@ SwsFunc ff_getSwsFunc(SwsContext *c) + { + sws_init_swScale_c(c); + +- if (HAVE_MMX) ++#if (HAVE_MMX) + ff_sws_init_swScale_mmx(c); +- if (HAVE_ALTIVEC) ++#endif ++#if (HAVE_ALTIVEC) + ff_sws_init_swScale_altivec(c); ++#endif + + return swScale; + } +diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c +index 52951e0..b7310d4 100644 +--- a/libswscale/swscale_unscaled.c ++++ b/libswscale/swscale_unscaled.c +@@ -473,36 +473,48 @@ static int planarRgbToRgbWrapper(SwsContext *c, const uint8_t *src[], + + switch (c->dstFormat) { + case PIX_FMT_BGR24: +- gbr24ptopacked24((const uint8_t *[]) { src[1], src[0], src[2] }, +- (int []) { srcStride[1], srcStride[0], srcStride[2] }, ++ { ++ const uint8_t * srca[] = { src[1], src[0], src[2] }; ++ int stride[] = { srcStride[1], srcStride[0], srcStride[2] }; ++ gbr24ptopacked24(srca, stride, + dst[0] + srcSliceY * dstStride[0], dstStride[0], + srcSliceH, c->srcW); + break; ++ } + + case PIX_FMT_RGB24: +- gbr24ptopacked24((const uint8_t *[]) { src[2], src[0], src[1] }, +- (int []) { srcStride[2], srcStride[0], srcStride[1] }, ++ { ++ const uint8_t * srca[] = { src[2], src[0], src[1] }; ++ int stride[] = { srcStride[2], srcStride[0], srcStride[1] }; ++ gbr24ptopacked24(srca, stride, + dst[0] + srcSliceY * dstStride[0], dstStride[0], + srcSliceH, c->srcW); + break; ++ } + + case PIX_FMT_ARGB: + alpha_first = 1; + case PIX_FMT_RGBA: +- gbr24ptopacked32((const uint8_t *[]) { src[2], src[0], src[1] }, +- (int []) { srcStride[2], srcStride[0], srcStride[1] }, ++ { ++ const uint8_t * srca[] = { src[2], src[0], src[1] }; ++ int stride[] = { srcStride[2], srcStride[0], srcStride[1] }; ++ gbr24ptopacked32(srca, stride, + dst[0] + srcSliceY * dstStride[0], dstStride[0], + srcSliceH, alpha_first, c->srcW); + break; ++ } + + case PIX_FMT_ABGR: + alpha_first = 1; + case PIX_FMT_BGRA: +- gbr24ptopacked32((const uint8_t *[]) { src[1], src[0], src[2] }, +- (int []) { srcStride[1], srcStride[0], srcStride[2] }, ++ { ++ const uint8_t * srca[] = { src[1], src[0], src[2] }; ++ int stride[] = { srcStride[1], srcStride[0], srcStride[2] }; ++ gbr24ptopacked32(srca, stride, + dst[0] + srcSliceY * dstStride[0], dstStride[0], + srcSliceH, alpha_first, c->srcW); + break; ++ } + + default: + av_log(c, AV_LOG_ERROR, +@@ -981,10 +993,12 @@ void ff_get_unscaled_swscale(SwsContext *c) + c->swScale = planarCopyWrapper; + } + +- if (ARCH_BFIN) ++#if (ARCH_BFIN) + ff_bfin_get_unscaled_swscale(c); +- if (HAVE_ALTIVEC) ++#endif ++#if (HAVE_ALTIVEC) + ff_swscale_get_unscaled_altivec(c); ++#endif + } + + static void reset_ptr(const uint8_t *src[], int format) +diff --git a/libswscale/utils.c b/libswscale/utils.c +index dc489de..31ebda7 100644 +--- a/libswscale/utils.c ++++ b/libswscale/utils.c +@@ -778,9 +778,11 @@ int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4], + contrast, saturation); + // FIXME factorize + ++#if HAVE_ALTIVEC + if (HAVE_ALTIVEC && av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC) + ff_yuv2rgb_init_tables_altivec(c, inv_table, brightness, + contrast, saturation); ++#endif + return 0; + } + +diff --git a/libswscale/yuv2rgb.c b/libswscale/yuv2rgb.c +index 446b433..9e5e376 100644 +--- a/libswscale/yuv2rgb.c ++++ b/libswscale/yuv2rgb.c +@@ -534,14 +534,15 @@ SwsFunc ff_yuv2rgb_get_func_ptr(SwsContext *c) + { + SwsFunc t = NULL; + +- if (HAVE_MMX) ++#if (HAVE_MMX) + t = ff_yuv2rgb_init_mmx(c); +- else if (HAVE_VIS) ++#elif (HAVE_VIS) + t = ff_yuv2rgb_init_vis(c); +- else if (HAVE_ALTIVEC) ++#elif (HAVE_ALTIVEC) + t = ff_yuv2rgb_init_altivec(c); +- else if (ARCH_BFIN) ++#elif (ARCH_BFIN) + t = ff_yuv2rgb_get_func_ptr_bfin(c); ++#endif + + if (t) + return t; +-- +2.2.2 +