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 +