aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-05-21 05:00:01 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-05-21 05:32:03 +0200
commit6d32bcd770c638e49d69a4d5eb5464cfa4f35d9a (patch)
tree892dbfcfc54c4acdfe9619fdb597eb741c6abae6
parent840238b8706ea2ca740cf4b49bffd8ae196352f9 (diff)
parenta1d0dcc7134f1401c682b5e13d4ab3864da21efb (diff)
downloadffmpeg-6d32bcd770c638e49d69a4d5eb5464cfa4f35d9a.tar.gz
Merge remote-tracking branch 'qatar/master'
* qatar/master: configure: make executable again LATM/AAC: Free previously initialized context on reinit. configure: Do not unconditionally add -Wall to host CFLAGS. configure: Set OS/2 objformat to a.out. Add support for a.out object format to assembler macros. fate: disable threading for encoding fate: add comment field fate: allow overriding default build and install dirs mpegtsenc: Add an AVClass pointer to the private data mpegaudio: clean up #includes mpegaudio: move all header parsing to mpegaudiodecheader.[ch] Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rwxr-xr-xconfigure4
-rw-r--r--libavcodec/aacdec.c1
-rw-r--r--libavcodec/mp3_header_compress_bsf.c2
-rw-r--r--libavcodec/mp3_header_decompress_bsf.c2
-rw-r--r--libavcodec/mpegaudio.h38
-rw-r--r--libavcodec/mpegaudio_parser.c40
-rw-r--r--libavcodec/mpegaudiodata.h2
-rw-r--r--libavcodec/mpegaudiodec.c1
-rw-r--r--libavcodec/mpegaudiodecheader.c37
-rw-r--r--libavcodec/mpegaudiodecheader.h41
-rw-r--r--libavcodec/x86/dsputil_yasm.asm2
-rw-r--r--libavcodec/x86/fft_mmx.asm2
-rw-r--r--libavcodec/x86/fmtconvert.asm2
-rw-r--r--libavcodec/x86/x86inc.asm11
-rw-r--r--libavformat/mp3enc.c1
-rw-r--r--libavformat/mpegtsenc.c1
-rwxr-xr-xtests/fate.sh6
-rwxr-xr-xtests/regression-funcs.sh2
18 files changed, 104 insertions, 91 deletions
diff --git a/configure b/configure
index de321ba018..c41a949b54 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 7564714e31..34752b26e5 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 b67e78c046..417a2940d5 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 7af5a10e12..a9c23b17ce 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 7e2ca845d1..b829cd3f8a 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 ee54def579..94a286fb14 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 5626e3df50..9d65a1e2a6 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 decb23e665..872055c07b 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 0821dd43c1..1c3b004bcc 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 5578618288..aa77f0122e 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 a41640b0a2..695aba5ec3 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 02b638f144..2551b48df2 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 171e52a165..c4a9a66009 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 53091c14c9..c84d5566a2 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 082450779f..2775eb8fc8 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 e7d70015aa..687057b9f8 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 6f0e0fffcb..9fd117c3bc 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 b79c258e77..933aa648d6 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()
{