diff --git a/configure b/configure
index de321ba01827aae32c153554f849d5f94743feb7..c41a949b54bc44d2e165fb344e826c4a73fa018d 100755
--- a/configure
+++ b/configure
@@ -1700,7 +1700,7 @@ LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
 
 CC_O='-o $@'
 
-host_cflags='-D_ISOC99_SOURCE -O3 -g -Wall'
+host_cflags='-D_ISOC99_SOURCE -O3 -g'
 host_libs='-lm'
 
 target_path='$(CURDIR)'
@@ -2363,6 +2363,7 @@ check_cc -D_LARGEFILE_SOURCE <<EOF && add_cppflags -D_LARGEFILE_SOURCE
 EOF
 
 check_host_cflags -std=c99
+check_host_cflags -Wall
 
 case "$arch" in
     alpha|ia64|mips|parisc|sparc)
@@ -2504,6 +2505,7 @@ case $target_os in
     os/2*)
         strip="lxlite -CS"
         ln_s="cp -f"
+        objformat="aout"
         add_ldflags -Zomf -Zbin-files -Zargs-wild -Zmap
         SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf'
         FFSERVERLDFLAGS=""
diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c
index 7564714e319d577b7b6e4274a7c1c7c44655f72a..34752b26e54567a2fd3cb822ae8ceb562cf87938 100644
--- a/libavcodec/aacdec.c
+++ b/libavcodec/aacdec.c
@@ -2468,6 +2468,7 @@ static int latm_decode_frame(AVCodecContext *avctx, void *out, int *out_size,
             *out_size = 0;
             return avpkt->size;
         } else {
+            aac_decode_close(avctx);
             if ((err = aac_decode_init(avctx)) < 0)
                 return err;
             latmctx->initialized = 1;
diff --git a/libavcodec/mp3_header_compress_bsf.c b/libavcodec/mp3_header_compress_bsf.c
index b67e78c04656c3b55f8a5e95b203a8a7bad47d3a..417a2940d5b2f89c1a3fe18912a5ec117daec6fc 100644
--- a/libavcodec/mp3_header_compress_bsf.c
+++ b/libavcodec/mp3_header_compress_bsf.c
@@ -20,7 +20,7 @@
 
 #include "libavutil/intreadwrite.h"
 #include "avcodec.h"
-#include "mpegaudio.h"
+#include "mpegaudiodecheader.h"
 
 
 static int mp3_header_compress(AVBitStreamFilterContext *bsfc, AVCodecContext *avctx, const char *args,
diff --git a/libavcodec/mp3_header_decompress_bsf.c b/libavcodec/mp3_header_decompress_bsf.c
index 7af5a10e121b46d67e2523681354a5dd84bb327e..a9c23b17ce6eee7327c3f88313b3c8bb5d98accf 100644
--- a/libavcodec/mp3_header_decompress_bsf.c
+++ b/libavcodec/mp3_header_decompress_bsf.c
@@ -20,7 +20,7 @@
 
 #include "libavutil/intreadwrite.h"
 #include "avcodec.h"
-#include "mpegaudio.h"
+#include "mpegaudiodecheader.h"
 #include "mpegaudiodata.h"
 
 
diff --git a/libavcodec/mpegaudio.h b/libavcodec/mpegaudio.h
index 7e2ca845d177781e1356f284656b9305bcb66e88..b829cd3f8ac3bf0b5d8b4f235248c9183d17ddb4 100644
--- a/libavcodec/mpegaudio.h
+++ b/libavcodec/mpegaudio.h
@@ -30,7 +30,7 @@
 #   define CONFIG_FLOAT 0
 #endif
 
-#include "avcodec.h"
+#include <stdint.h>
 
 /* max frame size, in samples */
 #define MPA_FRAME_SIZE 1152
@@ -47,8 +47,6 @@
 #define MPA_DUAL    2
 #define MPA_MONO    3
 
-#define MP3_MASK 0xFFFE0CCF
-
 #ifndef FRAC_BITS
 #define FRAC_BITS   23   /* fractional bits for sb_samples and dct */
 #define WFRAC_BITS  16   /* fractional bits for window */
@@ -72,40 +70,6 @@ typedef int32_t MPA_INT;
 typedef int16_t OUT_INT;
 #endif
 
-#define MPA_DECODE_HEADER \
-    int frame_size; \
-    int error_protection; \
-    int layer; \
-    int sample_rate; \
-    int sample_rate_index; /* between 0 and 8 */ \
-    int bit_rate; \
-    int nb_channels; \
-    int mode; \
-    int mode_ext; \
-    int lsf;
-
-typedef struct MPADecodeHeader {
-  MPA_DECODE_HEADER
-} MPADecodeHeader;
-
 int ff_mpa_l2_select_table(int bitrate, int nb_channels, int freq, int lsf);
-int ff_mpa_decode_header(AVCodecContext *avctx, uint32_t head, int *sample_rate, int *channels, int *frame_size, int *bitrate);
-
-/* fast header check for resync */
-static inline int ff_mpa_check_header(uint32_t header){
-    /* header */
-    if ((header & 0xffe00000) != 0xffe00000)
-        return -1;
-    /* layer check */
-    if ((header & (3<<17)) == 0)
-        return -1;
-    /* bit rate */
-    if ((header & (0xf<<12)) == 0xf<<12)
-        return -1;
-    /* frequency */
-    if ((header & (3<<10)) == 3<<10)
-        return -1;
-    return 0;
-}
 
 #endif /* AVCODEC_MPEGAUDIO_H */
diff --git a/libavcodec/mpegaudio_parser.c b/libavcodec/mpegaudio_parser.c
index ee54def57935f47d82ba55381af1b97dacda86db..94a286fb14e007d8e67ec380f3a3a92a0fc28231 100644
--- a/libavcodec/mpegaudio_parser.c
+++ b/libavcodec/mpegaudio_parser.c
@@ -21,7 +21,6 @@
  */
 
 #include "parser.h"
-#include "mpegaudio.h"
 #include "mpegaudiodecheader.h"
 
 
@@ -38,45 +37,6 @@ typedef struct MpegAudioParseContext {
 #define SAME_HEADER_MASK \
    (0xffe00000 | (3 << 17) | (3 << 10) | (3 << 19))
 
-/* useful helper to get mpeg audio stream infos. Return -1 if error in
-   header, otherwise the coded frame size in bytes */
-int ff_mpa_decode_header(AVCodecContext *avctx, uint32_t head, int *sample_rate, int *channels, int *frame_size, int *bit_rate)
-{
-    MPADecodeHeader s1, *s = &s1;
-
-    if (ff_mpa_check_header(head) != 0)
-        return -1;
-
-    if (ff_mpegaudio_decode_header(s, head) != 0) {
-        return -1;
-    }
-
-    switch(s->layer) {
-    case 1:
-        avctx->codec_id = CODEC_ID_MP1;
-        *frame_size = 384;
-        break;
-    case 2:
-        avctx->codec_id = CODEC_ID_MP2;
-        *frame_size = 1152;
-        break;
-    default:
-    case 3:
-        avctx->codec_id = CODEC_ID_MP3;
-        if (s->lsf)
-            *frame_size = 576;
-        else
-            *frame_size = 1152;
-        break;
-    }
-
-    *sample_rate = s->sample_rate;
-    *channels = s->nb_channels;
-    *bit_rate = s->bit_rate;
-    avctx->sub_id = s->layer;
-    return s->frame_size;
-}
-
 static int mpegaudio_parse(AVCodecParserContext *s1,
                            AVCodecContext *avctx,
                            const uint8_t **poutbuf, int *poutbuf_size,
diff --git a/libavcodec/mpegaudiodata.h b/libavcodec/mpegaudiodata.h
index 5626e3df505cd6735a609092cd526e44b2b59084..9d65a1e2a62b7c376c1bf9b7d8582fec2a8d6009 100644
--- a/libavcodec/mpegaudiodata.h
+++ b/libavcodec/mpegaudiodata.h
@@ -27,7 +27,7 @@
 #ifndef AVCODEC_MPEGAUDIODATA_H
 #define AVCODEC_MPEGAUDIODATA_H
 
-#include "libavutil/common.h"
+#include <stdint.h>
 
 #define MODE_EXT_MS_STEREO 2
 #define MODE_EXT_I_STEREO  1
diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c
index decb23e665f2bcaedbc63bd6f169fdd26b1a8c16..872055c07b85ffcc1f22bed5c53525ddce7c7b28 100644
--- a/libavcodec/mpegaudiodec.c
+++ b/libavcodec/mpegaudiodec.c
@@ -27,7 +27,6 @@
 #include "libavutil/audioconvert.h"
 #include "avcodec.h"
 #include "get_bits.h"
-#include "dsputil.h"
 #include "mathops.h"
 #include "mpegaudiodsp.h"
 
diff --git a/libavcodec/mpegaudiodecheader.c b/libavcodec/mpegaudiodecheader.c
index 0821dd43c19f02f221269049f6f0768c8f832110..1c3b004bcce3112e6f31d4940493e880e1fb0e26 100644
--- a/libavcodec/mpegaudiodecheader.c
+++ b/libavcodec/mpegaudiodecheader.c
@@ -108,3 +108,40 @@ int ff_mpegaudio_decode_header(MPADecodeHeader *s, uint32_t header)
 #endif
     return 0;
 }
+
+int ff_mpa_decode_header(AVCodecContext *avctx, uint32_t head, int *sample_rate, int *channels, int *frame_size, int *bit_rate)
+{
+    MPADecodeHeader s1, *s = &s1;
+
+    if (ff_mpa_check_header(head) != 0)
+        return -1;
+
+    if (ff_mpegaudio_decode_header(s, head) != 0) {
+        return -1;
+    }
+
+    switch(s->layer) {
+    case 1:
+        avctx->codec_id = CODEC_ID_MP1;
+        *frame_size = 384;
+        break;
+    case 2:
+        avctx->codec_id = CODEC_ID_MP2;
+        *frame_size = 1152;
+        break;
+    default:
+    case 3:
+        avctx->codec_id = CODEC_ID_MP3;
+        if (s->lsf)
+            *frame_size = 576;
+        else
+            *frame_size = 1152;
+        break;
+    }
+
+    *sample_rate = s->sample_rate;
+    *channels = s->nb_channels;
+    *bit_rate = s->bit_rate;
+    avctx->sub_id = s->layer;
+    return s->frame_size;
+}
diff --git a/libavcodec/mpegaudiodecheader.h b/libavcodec/mpegaudiodecheader.h
index 55786182884272810220f0364b13a72fd35fd775..aa77f0122e6dc2f494f4d209ab97e1761482d3b7 100644
--- a/libavcodec/mpegaudiodecheader.h
+++ b/libavcodec/mpegaudiodecheader.h
@@ -27,13 +27,50 @@
 #ifndef AVCODEC_MPEGAUDIODECHEADER_H
 #define AVCODEC_MPEGAUDIODECHEADER_H
 
-#include "libavutil/common.h"
-#include "mpegaudio.h"
+#include "avcodec.h"
 
+#define MP3_MASK 0xFFFE0CCF
+
+#define MPA_DECODE_HEADER \
+    int frame_size; \
+    int error_protection; \
+    int layer; \
+    int sample_rate; \
+    int sample_rate_index; /* between 0 and 8 */ \
+    int bit_rate; \
+    int nb_channels; \
+    int mode; \
+    int mode_ext; \
+    int lsf;
+
+typedef struct MPADecodeHeader {
+  MPA_DECODE_HEADER
+} MPADecodeHeader;
 
 /* header decoding. MUST check the header before because no
    consistency check is done there. Return 1 if free format found and
    that the frame size must be computed externally */
 int ff_mpegaudio_decode_header(MPADecodeHeader *s, uint32_t header);
 
+/* useful helper to get mpeg audio stream infos. Return -1 if error in
+   header, otherwise the coded frame size in bytes */
+int ff_mpa_decode_header(AVCodecContext *avctx, uint32_t head, int *sample_rate, int *channels, int *frame_size, int *bitrate);
+
+/* fast header check for resync */
+static inline int ff_mpa_check_header(uint32_t header){
+    /* header */
+    if ((header & 0xffe00000) != 0xffe00000)
+        return -1;
+    /* layer check */
+    if ((header & (3<<17)) == 0)
+        return -1;
+    /* bit rate */
+    if ((header & (0xf<<12)) == 0xf<<12)
+        return -1;
+    /* frequency */
+    if ((header & (3<<10)) == 3<<10)
+        return -1;
+    return 0;
+}
+
 #endif /* AVCODEC_MPEGAUDIODECHEADER_H */
diff --git a/libavcodec/x86/dsputil_yasm.asm b/libavcodec/x86/dsputil_yasm.asm
index a41640b0a2eeb97b1bea38a721e837defe3711ed..695aba5ec3319b719e76f6460a26aa565aaa6a33 100644
--- a/libavcodec/x86/dsputil_yasm.asm
+++ b/libavcodec/x86/dsputil_yasm.asm
@@ -30,7 +30,7 @@ pb_zz11zz55zz99zzdd: db -1,-1,1,1,-1,-1,5,5,-1,-1,9,9,-1,-1,13,13
 pb_revwords: db 14, 15, 12, 13, 10, 11, 8, 9, 6, 7, 4, 5, 2, 3, 0, 1
 pd_16384: times 4 dd 16384
 
-section .text align=16
+SECTION_TEXT
 
 %macro SCALARPRODUCT 1
 ; int scalarproduct_int16(int16_t *v1, int16_t *v2, int order, int shift)
diff --git a/libavcodec/x86/fft_mmx.asm b/libavcodec/x86/fft_mmx.asm
index 02b638f144163ccdda75d30642ddc130580ac3b3..2551b48df2c8014abc74c41372f707c043f0015d 100644
--- a/libavcodec/x86/fft_mmx.asm
+++ b/libavcodec/x86/fft_mmx.asm
@@ -85,7 +85,7 @@ cextern cos_ %+ i
     %1
 %endmacro
 
-section .text align=16
+SECTION_TEXT
 
 %macro T2_3DN 4 ; z0, z1, mem0, mem1
     mova     %1, %3
diff --git a/libavcodec/x86/fmtconvert.asm b/libavcodec/x86/fmtconvert.asm
index 171e52a1655aef436bf83be7351ff16efcbefe1a..c4a9a66009be7d7d4dbfdce2eaa6c5151d8cf4e2 100644
--- a/libavcodec/x86/fmtconvert.asm
+++ b/libavcodec/x86/fmtconvert.asm
@@ -22,7 +22,7 @@
 %include "x86inc.asm"
 %include "x86util.asm"
 
-section .text align=16
+SECTION_TEXT
 
 %macro PSWAPD_SSE 2
     pshufw %1, %2, 0x4e
diff --git a/libavcodec/x86/x86inc.asm b/libavcodec/x86/x86inc.asm
index 53091c14c93c1df637f36863f41176e50c8ee3c7..c84d5566a2945794b6ce5a843bc1bddd52ae481e 100644
--- a/libavcodec/x86/x86inc.asm
+++ b/libavcodec/x86/x86inc.asm
@@ -63,11 +63,22 @@
     %elifidn __OUTPUT_FORMAT__,macho
         SECTION .text align=%1
         fakegot:
+    %elifidn __OUTPUT_FORMAT__,aout
+        section .text
     %else
         SECTION .rodata align=%1
     %endif
 %endmacro
 
+; aout does not support align=
+%macro SECTION_TEXT 0-1 16
+    %ifidn __OUTPUT_FORMAT__,aout
+        SECTION .text
+    %else
+        SECTION .text align=%1
+    %endif
+%endmacro
+
 %ifdef WIN64
     %define PIC
 %elifndef ARCH_X86_64
diff --git a/libavformat/mp3enc.c b/libavformat/mp3enc.c
index 082450779fdfcd94f9da0353115c63c82f22f613..2775eb8fc8b54224e5b381f73beb3c0b99bf405b 100644
--- a/libavformat/mp3enc.c
+++ b/libavformat/mp3enc.c
@@ -27,6 +27,7 @@
 #include "libavutil/avstring.h"
 #include "libavutil/intreadwrite.h"
 #include "libavutil/opt.h"
+#include "libavcodec/mpegaudio.h"
 #include "libavcodec/mpegaudiodata.h"
 #include "libavcodec/mpegaudiodecheader.h"
 #include "libavformat/avio_internal.h"
diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
index e7d70015aafc99996851969f9fce1896b7028818..687057b9f8373ccd5b64cd89a68bc5e8de8a8fbd 100644
--- a/libavformat/mpegtsenc.c
+++ b/libavformat/mpegtsenc.c
@@ -53,6 +53,7 @@ typedef struct MpegTSService {
 } MpegTSService;
 
 typedef struct MpegTSWrite {
+    const AVClass *av_class;
     MpegTSSection pat; /* MPEG2 pat table */
     MpegTSSection sdt; /* MPEG2 sdt table context */
     MpegTSService **services;
diff --git a/tests/fate.sh b/tests/fate.sh
index 6f0e0fffcb4102fdefd324d64a660b3219fc7856..9fd117c3bce0500b30d263f0dd778317dc5ceeb8 100755
--- a/tests/fate.sh
+++ b/tests/fate.sh
@@ -75,7 +75,7 @@ clean(){
 
 report(){
     date=$(date -u +%Y%m%d%H%M%S)
-    echo "fate:0:${date}:${slot}:${version}:$1:$2" >report
+    echo "fate:0:${date}:${slot}:${version}:$1:$2:${comment}" >report
     cat ${build}/config.fate ${build}/tests/data/fate/*.rep >>report
     test -n "$fate_recv" && $tar report *.log | gzip | $fate_recv
 }
@@ -91,8 +91,8 @@ lock ${workdir}     || die "${workdir} locked"
 cd ${workdir}       || die "cd ${workdir} failed"
 
 src=${workdir}/src
-build=${workdir}/build
-inst=${workdir}/install
+: ${build:=${workdir}/build}
+: ${inst:=${workdir}/install}
 
 test -d "$src" && update || checkout || die "Error fetching source"
 
diff --git a/tests/regression-funcs.sh b/tests/regression-funcs.sh
index b79c258e77bbc6734d8f56355a263d539eebc0ff..933aa648d68a21b26f7ebd05297e17af7591e119 100755
--- a/tests/regression-funcs.sh
+++ b/tests/regression-funcs.sh
@@ -53,7 +53,7 @@ echov(){
 FFMPEG_OPTS="-v 0 -y"
 COMMON_OPTS="-flags +bitexact -idct simple -sws_flags +accurate_rnd+bitexact"
 DEC_OPTS="$COMMON_OPTS -threads $threads"
-ENC_OPTS="$COMMON_OPTS -dct fastint"
+ENC_OPTS="$COMMON_OPTS -threads 1 -dct fastint"
 
 run_ffmpeg()
 {