aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-05-22 04:53:19 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-05-22 04:53:19 +0200
commitbf8bb94322d92134206392c3f238a58c424b1c9e (patch)
tree5522036771e42e1e7b539fb190302b530bcb49d0 /libavcodec
parent33adcdb53118df8f281742b75adf861cda64801a (diff)
parent71cc331cab8d61130048f3003f2ca77cfb94e3f3 (diff)
downloadffmpeg-bf8bb94322d92134206392c3f238a58c424b1c9e.tar.gz
Merge remote-tracking branch 'qatar/master'
* qatar/master: ffmpeg: get rid of the -vglobal option. dct32: Add AVX implementation of 32-point DCT dct32: Change pass 6 permutation to allow for AVX implementation dct32: port SSE 32-point DCT to YASM multiple inclusion guard cleanup avio: document buffer must created with av_malloc() and friends avio: check AVIOContext malloc failure swscale: point out an alternative to sws_getContext svq3: Do initialization after parsing the extradata add changelog entries for 0.7_beta2 mp3lame: add #include required for AV_RB32 macro. Conflicts: Changelog libavcodec/svq3.c libavcodec/x86/dct32_sse.c libavfilter/vsrc_buffer.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/aac_tablegen.h6
-rw-r--r--libavcodec/aac_tablegen_decl.h6
-rw-r--r--libavcodec/amrwbdata.h2
-rw-r--r--libavcodec/arm/asm-offsets.h2
-rw-r--r--libavcodec/arm/dsputil_arm.h2
-rw-r--r--libavcodec/arm/mpegvideo_arm.h2
-rw-r--r--libavcodec/arm/vp56_arith.h2
-rw-r--r--libavcodec/arm/vp8.h2
-rw-r--r--libavcodec/cavsdsp.h2
-rw-r--r--libavcodec/cbrt_tablegen.h6
-rw-r--r--libavcodec/cga_data.h2
-rw-r--r--libavcodec/dct.h2
-rw-r--r--libavcodec/dctref.h2
-rw-r--r--libavcodec/dv_tablegen.h6
-rw-r--r--libavcodec/flv.h3
-rw-r--r--libavcodec/gsmdec_data.h6
-rw-r--r--libavcodec/h263.h3
-rw-r--r--libavcodec/kbdwin.h2
-rw-r--r--libavcodec/motionpixels_tablegen.h6
-rw-r--r--libavcodec/mpeg4video.h2
-rw-r--r--libavcodec/mpegaudio_tablegen.h6
-rw-r--r--libavcodec/mpegaudiodec.c4
-rw-r--r--libavcodec/mpegaudiodsp.h2
-rw-r--r--libavcodec/msgsmdec.h6
-rw-r--r--libavcodec/nellymoser.h2
-rw-r--r--libavcodec/opt.h2
-rw-r--r--libavcodec/pcm_tablegen.h6
-rw-r--r--libavcodec/qdm2_tablegen.h6
-rw-r--r--libavcodec/rdft.h2
-rw-r--r--libavcodec/sh4/dsputil_sh4.h2
-rw-r--r--libavcodec/sinewin.h2
-rw-r--r--libavcodec/sinewin_tablegen.h5
-rw-r--r--libavcodec/sparc/dsputil_vis.h2
-rw-r--r--libavcodec/svq3.c19
-rw-r--r--libavcodec/targa.h5
-rw-r--r--libavcodec/vp8.h2
-rw-r--r--libavcodec/vp8data.h2
-rw-r--r--libavcodec/x86/Makefile3
-rw-r--r--libavcodec/x86/dct32_sse.asm391
-rw-r--r--libavcodec/x86/dct32_sse.c296
-rw-r--r--libavcodec/x86/fft.c4
-rw-r--r--libavcodec/x86/fft.h3
-rw-r--r--libavcodec/xvmc_internal.h6
43 files changed, 477 insertions, 367 deletions
diff --git a/libavcodec/aac_tablegen.h b/libavcodec/aac_tablegen.h
index 27fa0e7ba3..0c009ba48e 100644
--- a/libavcodec/aac_tablegen.h
+++ b/libavcodec/aac_tablegen.h
@@ -20,8 +20,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef AAC_TABLEGEN_H
-#define AAC_TABLEGEN_H
+#ifndef AVCODEC_AAC_TABLEGEN_H
+#define AVCODEC_AAC_TABLEGEN_H
#include "aac_tablegen_decl.h"
@@ -40,4 +40,4 @@ void ff_aac_tableinit(void)
}
#endif /* CONFIG_HARDCODED_TABLES */
-#endif /* AAC_TABLEGEN_H */
+#endif /* AVCODEC_AAC_TABLEGEN_H */
diff --git a/libavcodec/aac_tablegen_decl.h b/libavcodec/aac_tablegen_decl.h
index 9a90a09b07..0d86e80bc2 100644
--- a/libavcodec/aac_tablegen_decl.h
+++ b/libavcodec/aac_tablegen_decl.h
@@ -20,8 +20,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef AAC_TABLEGEN_DECL_H
-#define AAC_TABLEGEN_DECL_H
+#ifndef AVCODEC_AAC_TABLEGEN_DECL_H
+#define AVCODEC_AAC_TABLEGEN_DECL_H
#if CONFIG_HARDCODED_TABLES
#define ff_aac_tableinit()
@@ -31,4 +31,4 @@ void ff_aac_tableinit(void);
extern float ff_aac_pow2sf_tab[428];
#endif /* CONFIG_HARDCODED_TABLES */
-#endif /* AAC_TABLEGEN_DECL_H */
+#endif /* AVCODEC_AAC_TABLEGEN_DECL_H */
diff --git a/libavcodec/amrwbdata.h b/libavcodec/amrwbdata.h
index 36553d5a0f..1327b0237a 100644
--- a/libavcodec/amrwbdata.h
+++ b/libavcodec/amrwbdata.h
@@ -1887,4 +1887,4 @@ static const uint16_t cf_sizes_wb[] = {
40 /// SID/comfort noise frame
};
-#endif
+#endif /* AVCODEC_AMRWBDATA_H */
diff --git a/libavcodec/arm/asm-offsets.h b/libavcodec/arm/asm-offsets.h
index 7f73534834..fe124ba702 100644
--- a/libavcodec/arm/asm-offsets.h
+++ b/libavcodec/arm/asm-offsets.h
@@ -36,4 +36,4 @@
#define H263_AIC 0xf0
#define INTER_SCANTAB_RASTER_END 0x138
-#endif
+#endif /* AVCODEC_ARM_ASM_OFFSETS_H */
diff --git a/libavcodec/arm/dsputil_arm.h b/libavcodec/arm/dsputil_arm.h
index 7f8579d507..b333c70226 100644
--- a/libavcodec/arm/dsputil_arm.h
+++ b/libavcodec/arm/dsputil_arm.h
@@ -30,4 +30,4 @@ void ff_dsputil_init_vfp(DSPContext* c, AVCodecContext *avctx);
void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx);
void ff_dsputil_init_iwmmxt(DSPContext* c, AVCodecContext *avctx);
-#endif
+#endif /* AVCODEC_ARM_DSPUTIL_H */
diff --git a/libavcodec/arm/mpegvideo_arm.h b/libavcodec/arm/mpegvideo_arm.h
index 4cc25fdd36..3549bb244b 100644
--- a/libavcodec/arm/mpegvideo_arm.h
+++ b/libavcodec/arm/mpegvideo_arm.h
@@ -24,4 +24,4 @@
void MPV_common_init_iwmmxt(MpegEncContext *s);
void MPV_common_init_armv5te(MpegEncContext *s);
-#endif
+#endif /* AVCODEC_ARM_MPEGVIDEO_H */
diff --git a/libavcodec/arm/vp56_arith.h b/libavcodec/arm/vp56_arith.h
index 9bcb466bdc..50a164d51c 100644
--- a/libavcodec/arm/vp56_arith.h
+++ b/libavcodec/arm/vp56_arith.h
@@ -89,4 +89,4 @@ static inline int vp56_rac_get_prob_branchy_armv6(VP56RangeCoder *c, int pr)
#endif
-#endif
+#endif /* AVCODEC_ARM_VP56_ARITH_H */
diff --git a/libavcodec/arm/vp8.h b/libavcodec/arm/vp8.h
index 90e7344b62..55193394c5 100644
--- a/libavcodec/arm/vp8.h
+++ b/libavcodec/arm/vp8.h
@@ -26,4 +26,4 @@ int ff_decode_block_coeffs_armv6(VP56RangeCoder *rc, DCTELEM block[16],
int i, uint8_t *token_prob, int16_t qmul[2]);
#endif
-#endif
+#endif /* AVCODEC_ARM_VP8_H */
diff --git a/libavcodec/cavsdsp.h b/libavcodec/cavsdsp.h
index d3fae69e84..b41ad21bca 100644
--- a/libavcodec/cavsdsp.h
+++ b/libavcodec/cavsdsp.h
@@ -38,4 +38,4 @@ typedef struct CAVSDSPContext {
void ff_cavsdsp_init(CAVSDSPContext* c, AVCodecContext *avctx);
void ff_cavsdsp_init_mmx(CAVSDSPContext* c, AVCodecContext *avctx);
-#endif
+#endif /* AVCODEC_CAVSDSP_H */
diff --git a/libavcodec/cbrt_tablegen.h b/libavcodec/cbrt_tablegen.h
index 930e513705..a9d34dc75d 100644
--- a/libavcodec/cbrt_tablegen.h
+++ b/libavcodec/cbrt_tablegen.h
@@ -20,8 +20,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef CBRT_TABLEGEN_H
-#define CBRT_TABLEGEN_H
+#ifndef AVCODEC_CBRT_TABLEGEN_H
+#define AVCODEC_CBRT_TABLEGEN_H
#include <stdint.h>
#include <math.h>
@@ -48,4 +48,4 @@ static void cbrt_tableinit(void)
}
#endif /* CONFIG_HARDCODED_TABLES */
-#endif /* CBRT_TABLEGEN_H */
+#endif /* AVCODEC_CBRT_TABLEGEN_H */
diff --git a/libavcodec/cga_data.h b/libavcodec/cga_data.h
index 788b2b3911..998dccaefb 100644
--- a/libavcodec/cga_data.h
+++ b/libavcodec/cga_data.h
@@ -45,4 +45,4 @@ extern const uint32_t ff_ega_palette[64];
*/
void ff_draw_pc_font(uint8_t *dst, int linesize, const uint8_t *font, int font_height, int ch, int fg, int bg);
-#endif
+#endif /* AVCODEC_CGA_DATA_H */
diff --git a/libavcodec/dct.h b/libavcodec/dct.h
index ffc1d9aed2..bb17d75d0c 100644
--- a/libavcodec/dct.h
+++ b/libavcodec/dct.h
@@ -49,4 +49,4 @@ void ff_dct_end (DCTContext *s);
void ff_dct_init_mmx(DCTContext *s);
-#endif
+#endif /* AVCODEC_DCT_H */
diff --git a/libavcodec/dctref.h b/libavcodec/dctref.h
index adbaf689e2..be481f07b0 100644
--- a/libavcodec/dctref.h
+++ b/libavcodec/dctref.h
@@ -28,4 +28,4 @@ void ff_ref_fdct(DCTELEM *block);
void ff_ref_idct(DCTELEM *block);
void ff_ref_dct_init(void);
-#endif
+#endif /* AVCODEC_DCTREF_H */
diff --git a/libavcodec/dv_tablegen.h b/libavcodec/dv_tablegen.h
index 47e8c362c1..678be73940 100644
--- a/libavcodec/dv_tablegen.h
+++ b/libavcodec/dv_tablegen.h
@@ -20,8 +20,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef DV_TABLEGEN_H
-#define DV_TABLEGEN_H
+#ifndef AVCODEC_DV_TABLEGEN_H
+#define AVCODEC_DV_TABLEGEN_H
#include <stdint.h>
#include "dv_vlc_data.h"
@@ -93,4 +93,4 @@ static void dv_vlc_map_tableinit(void)
}
#endif /* CONFIG_HARDCODED_TABLES */
-#endif /* DV_TABLEGEN_H */
+#endif /* AVCODEC_DV_TABLEGEN_H */
diff --git a/libavcodec/flv.h b/libavcodec/flv.h
index eb10f22608..16bc88b663 100644
--- a/libavcodec/flv.h
+++ b/libavcodec/flv.h
@@ -30,5 +30,4 @@ void ff_flv2_encode_ac_esc(PutBitContext *pb, int slevel, int level, int run, in
int ff_flv_decode_picture_header(MpegEncContext *s);
void ff_flv2_decode_ac_esc(GetBitContext *gb, int *level, int *run, int *last);
-#endif
-
+#endif /* AVCODEC_FLV_H */
diff --git a/libavcodec/gsmdec_data.h b/libavcodec/gsmdec_data.h
index 6b05bf6c97..bb4f159c60 100644
--- a/libavcodec/gsmdec_data.h
+++ b/libavcodec/gsmdec_data.h
@@ -19,8 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef GSMDEC_DATA
-#define GSMDEC_DATA
+#ifndef AVCODEC_GSMDEC_DATA
+#define AVCODEC_GSMDEC_DATA
#include <stdint.h>
@@ -44,4 +44,4 @@ typedef struct {
extern const uint16_t ff_gsm_long_term_gain_tab[4];
extern const int16_t ff_gsm_dequant_tab[64][8];
-#endif
+#endif /* AVCODEC_GSMDEC_DATA */
diff --git a/libavcodec/h263.h b/libavcodec/h263.h
index 6c05565c70..b2b6613536 100644
--- a/libavcodec/h263.h
+++ b/libavcodec/h263.h
@@ -248,4 +248,5 @@ static inline void memsetw(short *tab, int val, int n)
for(i=0;i<n;i++)
tab[i] = val;
}
-#endif
+
+#endif /* AVCODEC_H263_H */
diff --git a/libavcodec/kbdwin.h b/libavcodec/kbdwin.h
index e762105628..4b939756c1 100644
--- a/libavcodec/kbdwin.h
+++ b/libavcodec/kbdwin.h
@@ -32,4 +32,4 @@
*/
void ff_kbd_window_init(float *window, float alpha, int n);
-#endif
+#endif /* AVCODEC_KBDWIN_H */
diff --git a/libavcodec/motionpixels_tablegen.h b/libavcodec/motionpixels_tablegen.h
index 5d6df52af1..b56dec64a4 100644
--- a/libavcodec/motionpixels_tablegen.h
+++ b/libavcodec/motionpixels_tablegen.h
@@ -20,8 +20,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef MOTIONPIXELS_TABLEGEN_H
-#define MOTIONPIXELS_TABLEGEN_H
+#ifndef AVCODEC_MOTIONPIXELS_TABLEGEN_H
+#define AVCODEC_MOTIONPIXELS_TABLEGEN_H
#include <stdint.h>
@@ -88,4 +88,4 @@ static void motionpixels_tableinit(void)
}
#endif /* CONFIG_HARDCODED_TABLES */
-#endif /* MOTIONPIXELS_TABLEGEN_H */
+#endif /* AVCODEC_MOTIONPIXELS_TABLEGEN_H */
diff --git a/libavcodec/mpeg4video.h b/libavcodec/mpeg4video.h
index 96db36683e..f1e6a4d172 100644
--- a/libavcodec/mpeg4video.h
+++ b/libavcodec/mpeg4video.h
@@ -196,4 +196,4 @@ static inline int ff_mpeg4_pred_dc(MpegEncContext * s, int n, int level, int *di
return ret;
}
-#endif
+#endif /* AVCODEC_MPEG4VIDEO_H */
diff --git a/libavcodec/mpegaudio_tablegen.h b/libavcodec/mpegaudio_tablegen.h
index 214959348a..291e40b9aa 100644
--- a/libavcodec/mpegaudio_tablegen.h
+++ b/libavcodec/mpegaudio_tablegen.h
@@ -20,8 +20,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef MPEGAUDIO_TABLEGEN_H
-#define MPEGAUDIO_TABLEGEN_H
+#ifndef AVCODEC_MPEGAUDIO_TABLEGEN_H
+#define AVCODEC_MPEGAUDIO_TABLEGEN_H
#include <stdint.h>
#include <math.h>
@@ -68,4 +68,4 @@ static void mpegaudio_tableinit(void)
}
#endif /* CONFIG_HARDCODED_TABLES */
-#endif /* MPEGAUDIO_TABLEGEN_H */
+#endif /* AVCODEC_MPEGAUDIO_TABLEGEN_H */
diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c
index 872055c07b..4500739189 100644
--- a/libavcodec/mpegaudiodec.c
+++ b/libavcodec/mpegaudiodec.c
@@ -69,9 +69,9 @@ typedef struct MPADecodeContext {
uint32_t free_format_next_header;
GetBitContext gb;
GetBitContext in_gb;
- DECLARE_ALIGNED(16, MPA_INT, synth_buf)[MPA_MAX_CHANNELS][512 * 2];
+ DECLARE_ALIGNED(32, MPA_INT, synth_buf)[MPA_MAX_CHANNELS][512 * 2];
int synth_buf_offset[MPA_MAX_CHANNELS];
- DECLARE_ALIGNED(16, INTFLOAT, sb_samples)[MPA_MAX_CHANNELS][36][SBLIMIT];
+ DECLARE_ALIGNED(32, INTFLOAT, sb_samples)[MPA_MAX_CHANNELS][36][SBLIMIT];
INTFLOAT mdct_buf[MPA_MAX_CHANNELS][SBLIMIT * 18]; /* previous samples, for layer 3 MDCT */
GranuleDef granules[2][2]; /* Used in Layer 3 */
#ifdef DEBUG
diff --git a/libavcodec/mpegaudiodsp.h b/libavcodec/mpegaudiodsp.h
index 597e2533f5..a47019cc4b 100644
--- a/libavcodec/mpegaudiodsp.h
+++ b/libavcodec/mpegaudiodsp.h
@@ -60,4 +60,4 @@ void ff_mpadsp_apply_window_fixed(int32_t *synth_buf, int32_t *window,
int *dither_state, int16_t *samples,
int incr);
-#endif
+#endif /* AVCODEC_MPEGAUDIODSP_H */
diff --git a/libavcodec/msgsmdec.h b/libavcodec/msgsmdec.h
index fbf819a49c..3bfd1fd407 100644
--- a/libavcodec/msgsmdec.h
+++ b/libavcodec/msgsmdec.h
@@ -19,12 +19,12 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef MSGSMDEC_H
-#define MSGSMDEC_H
+#ifndef AVCODEC_MSGSMDEC_H
+#define AVCODEC_MSGSMDEC_H
#include "avcodec.h"
int ff_msgsm_decode_block(AVCodecContext *avctx, int16_t *samples,
const uint8_t *buf);
-#endif
+#endif /* AVCODEC_MSGSMDEC_H */
diff --git a/libavcodec/nellymoser.h b/libavcodec/nellymoser.h
index 88d9aa6245..027fc7ed23 100644
--- a/libavcodec/nellymoser.h
+++ b/libavcodec/nellymoser.h
@@ -54,4 +54,4 @@ extern const int16_t ff_nelly_delta_table[32];
void ff_nelly_get_sample_bits(const float *buf, int *bits);
-#endif
+#endif /* AVCODEC_NELLYMOSER_H */
diff --git a/libavcodec/opt.h b/libavcodec/opt.h
index e754bb93d8..70de27d192 100644
--- a/libavcodec/opt.h
+++ b/libavcodec/opt.h
@@ -13,4 +13,4 @@
#include "libavutil/opt.h"
#endif
-#endif
+#endif /* AVCODEC_OPT_H */
diff --git a/libavcodec/pcm_tablegen.h b/libavcodec/pcm_tablegen.h
index 3d641b05bb..1387210a58 100644
--- a/libavcodec/pcm_tablegen.h
+++ b/libavcodec/pcm_tablegen.h
@@ -20,8 +20,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef PCM_TABLEGEN_H
-#define PCM_TABLEGEN_H
+#ifndef AVCODEC_PCM_TABLEGEN_H
+#define AVCODEC_PCM_TABLEGEN_H
#include <stdint.h>
#include "libavutil/attributes.h"
@@ -116,4 +116,4 @@ static void pcm_ulaw_tableinit(void)
}
#endif /* CONFIG_HARDCODED_TABLES */
-#endif /* PCM_TABLEGEN_H */
+#endif /* AVCODEC_PCM_TABLEGEN_H */
diff --git a/libavcodec/qdm2_tablegen.h b/libavcodec/qdm2_tablegen.h
index 6718f58b09..f215b15ffc 100644
--- a/libavcodec/qdm2_tablegen.h
+++ b/libavcodec/qdm2_tablegen.h
@@ -20,8 +20,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef QDM2_TABLEGEN_H
-#define QDM2_TABLEGEN_H
+#ifndef AVCODEC_QDM2_TABLEGEN_H
+#define AVCODEC_QDM2_TABLEGEN_H
#include <stdint.h>
#include <math.h>
@@ -99,4 +99,4 @@ static av_cold void init_noise_samples(void) {
}
#endif /* CONFIG_HARDCODED_TABLES */
-#endif /* QDM2_TABLEGEN_H */
+#endif /* AVCODEC_QDM2_TABLEGEN_H */
diff --git a/libavcodec/rdft.h b/libavcodec/rdft.h
index cf50aba39c..5fb03232a1 100644
--- a/libavcodec/rdft.h
+++ b/libavcodec/rdft.h
@@ -71,4 +71,4 @@ void ff_rdft_end(RDFTContext *s);
void ff_rdft_init_arm(RDFTContext *s);
-#endif
+#endif /* AVCODEC_RDFT_H */
diff --git a/libavcodec/sh4/dsputil_sh4.h b/libavcodec/sh4/dsputil_sh4.h
index 2c1f77c770..2e554e7370 100644
--- a/libavcodec/sh4/dsputil_sh4.h
+++ b/libavcodec/sh4/dsputil_sh4.h
@@ -25,4 +25,4 @@
void idct_sh4(DCTELEM *block);
void dsputil_init_align(DSPContext* c, AVCodecContext *avctx);
-#endif
+#endif /* AVCODEC_SH4_DSPUTIL_SH4_H */
diff --git a/libavcodec/sinewin.h b/libavcodec/sinewin.h
index 33f7d68b40..61135fd6a2 100644
--- a/libavcodec/sinewin.h
+++ b/libavcodec/sinewin.h
@@ -56,4 +56,4 @@ extern SINETABLE(4096);
extern SINETABLE_CONST float * const ff_sine_windows[13];
-#endif
+#endif /* AVCODEC_SINEWIN_H */
diff --git a/libavcodec/sinewin_tablegen.h b/libavcodec/sinewin_tablegen.h
index 1c85d79f2f..f587595c21 100644
--- a/libavcodec/sinewin_tablegen.h
+++ b/libavcodec/sinewin_tablegen.h
@@ -20,6 +20,9 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#ifndef AVCODEC_SINEWIN_TABLEGEN_H
+#define AVCODEC_SINEWIN_TABLEGEN_H
+
#include <assert.h>
// do not use libavutil/libm.h since this is compiled both
// for the host and the target and config.h is only valid for the target
@@ -58,3 +61,5 @@ av_cold void ff_init_ff_sine_windows(int index) {
ff_sine_window_init(ff_sine_windows[index], 1 << index);
#endif
}
+
+#endif /* AVCODEC_SINEWIN_TABLEGEN_H */
diff --git a/libavcodec/sparc/dsputil_vis.h b/libavcodec/sparc/dsputil_vis.h
index 97ff965da2..e1cbcb49e3 100644
--- a/libavcodec/sparc/dsputil_vis.h
+++ b/libavcodec/sparc/dsputil_vis.h
@@ -26,4 +26,4 @@ void ff_simple_idct_put_vis(uint8_t *dest, int line_size, DCTELEM *data);
void ff_simple_idct_add_vis(uint8_t *dest, int line_size, DCTELEM *data);
void ff_simple_idct_vis(DCTELEM *data);
-#endif
+#endif /* AVCODEC_SPARC_DSPUTIL_VIS_H */
diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c
index a7e806540a..95c85fa0bb 100644
--- a/libavcodec/svq3.c
+++ b/libavcodec/svq3.c
@@ -819,21 +819,12 @@ static av_cold int svq3_decode_init(AVCodecContext *avctx)
avctx->pix_fmt = avctx->codec->pix_fmts[0];
if (!s->context_initialized) {
- s->width = avctx->width;
- s->height = avctx->height;
h->chroma_qp[0] = h->chroma_qp[1] = 4;
svq3->halfpel_flag = 1;
svq3->thirdpel_flag = 1;
svq3->unknown_flag = 0;
- if (MPV_common_init(s) < 0)
- return -1;
-
- h->b_stride = 4*s->mb_width;
-
- ff_h264_alloc_tables(h);
-
/* prowl for the "SEQH" marker in the extradata */
extradata = (unsigned char *)avctx->extradata;
for (m = 0; m < avctx->extradata_size; m++) {
@@ -920,6 +911,16 @@ static av_cold int svq3_decode_init(AVCodecContext *avctx)
#endif
}
}
+
+ s->width = avctx->width;
+ s->height = avctx->height;
+
+ if (MPV_common_init(s) < 0)
+ return -1;
+
+ h->b_stride = 4*s->mb_width;
+
+ ff_h264_alloc_tables(h);
}
return 0;
diff --git a/libavcodec/targa.h b/libavcodec/targa.h
index 5bc2a4407c..158a5ea0f4 100644
--- a/libavcodec/targa.h
+++ b/libavcodec/targa.h
@@ -16,6 +16,9 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#ifndef AVCODEC_TARGA_H
+#define AVCODEC_TARGA_H
+
/**
* @file
* targa file common definitions
@@ -34,3 +37,5 @@ enum TargaCompr {
TGA_BW = 3, // black & white or grayscale
TGA_RLE = 8, // flag pointing that data is RLE-coded
};
+
+#endif /* AVCODEC_TARGA_H */
diff --git a/libavcodec/vp8.h b/libavcodec/vp8.h
index d706b34aa6..468e28e8d5 100644
--- a/libavcodec/vp8.h
+++ b/libavcodec/vp8.h
@@ -239,4 +239,4 @@ typedef struct {
AVFrame frames[5];
} VP8Context;
-#endif
+#endif /* AVCODEC_VP8_H */
diff --git a/libavcodec/vp8data.h b/libavcodec/vp8data.h
index af9b0d9188..9ff21a1a97 100644
--- a/libavcodec/vp8data.h
+++ b/libavcodec/vp8data.h
@@ -685,4 +685,4 @@ static const uint8_t vp8_mv_default_prob[2][19] = {
128, 130, 130, 74, 148, 180, 203, 236, 254, 254 }
};
-#endif
+#endif /* AVCODEC_VP8DATA_H */
diff --git a/libavcodec/x86/Makefile b/libavcodec/x86/Makefile
index 578ce04d77..b18153ebbd 100644
--- a/libavcodec/x86/Makefile
+++ b/libavcodec/x86/Makefile
@@ -1,6 +1,8 @@
OBJS-$(CONFIG_MLP_DECODER) += x86/mlpdsp.o
OBJS-$(CONFIG_TRUEHD_DECODER) += x86/mlpdsp.o
+YASM-OBJS-$(CONFIG_DCT) += x86/dct32_sse.o
+
YASM-OBJS-FFT-$(HAVE_AMD3DNOW) += x86/fft_3dn.o
YASM-OBJS-FFT-$(HAVE_AMD3DNOWEXT) += x86/fft_3dn2.o
YASM-OBJS-FFT-$(HAVE_SSE) += x86/fft_sse.o
@@ -55,4 +57,3 @@ OBJS-$(HAVE_MMX) += x86/dnxhd_mmx.o \
x86/mpegvideo_mmx.o \
x86/simple_idct_mmx.o \
-MMX-OBJS-$(CONFIG_DCT) += x86/dct32_sse.o
diff --git a/libavcodec/x86/dct32_sse.asm b/libavcodec/x86/dct32_sse.asm
new file mode 100644
index 0000000000..2e1176cd84
--- /dev/null
+++ b/libavcodec/x86/dct32_sse.asm
@@ -0,0 +1,391 @@
+;******************************************************************************
+;* 32 point SSE-optimized DCT transform
+;* Copyright (c) 2010 Vitor Sessak
+;*
+;* This file is part of Libav.
+;*
+;* Libav is free software; you can redistribute it and/or
+;* modify it under the terms of the GNU Lesser General Public
+;* License as published by the Free Software Foundation; either
+;* version 2.1 of the License, or (at your option) any later version.
+;*
+;* Libav is distributed in the hope that it will be useful,
+;* but WITHOUT ANY WARRANTY; without even the implied warranty of
+;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;* Lesser General Public License for more details.
+;*
+;* You should have received a copy of the GNU Lesser General Public
+;* License along with Libav; if not, write to the Free Software
+;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+;******************************************************************************
+
+%include "x86inc.asm"
+%include "config.asm"
+
+SECTION_RODATA 32
+
+align 32
+ps_cos_vec: dd 0.500603, 0.505471, 0.515447, 0.531043
+ dd 0.553104, 0.582935, 0.622504, 0.674808
+ dd -10.190008, -3.407609, -2.057781, -1.484165
+ dd -1.169440, -0.972568, -0.839350, -0.744536
+ dd 0.502419, 0.522499, 0.566944, 0.646822
+ dd 0.788155, 1.060678, 1.722447, 5.101149
+ dd 0.509796, 0.601345, 0.899976, 2.562916
+ dd 0.509796, 0.601345, 0.899976, 2.562916
+ dd 1.000000, 1.000000, 1.306563, 0.541196
+ dd 1.000000, 1.000000, 1.306563, 0.541196
+ dd 1.000000, 0.707107, 1.000000, -0.707107
+ dd 1.000000, 0.707107, 1.000000, -0.707107
+
+
+ps_p1p1m1m1: dd 0, 0, 0x80000000, 0x80000000, 0, 0, 0x80000000, 0x80000000
+
+%macro BUTTERFLY_SSE 4
+ movaps %4, %1
+ subps %1, %2
+ addps %2, %4
+ mulps %1, %3
+%endmacro
+
+%macro BUTTERFLY_AVX 4
+ vsubps %4, %1, %2
+ vaddps %2, %2, %1
+ vmulps %1, %4, %3
+%endmacro
+
+%macro BUTTERFLY0_SSE 5
+ movaps %4, %1
+ shufps %1, %1, %5
+ xorps %4, %2
+ addps %1, %4
+ mulps %1, %3
+%endmacro
+
+%macro BUTTERFLY0_AVX 5
+ vshufps %4, %1, %1, %5
+ vxorps %1, %1, %2
+ vaddps %4, %4, %1
+ vmulps %1, %4, %3
+%endmacro
+
+%macro BUTTERFLY2 4
+ BUTTERFLY0 %1, %2, %3, %4, 0x1b
+%endmacro
+
+%macro BUTTERFLY3 4
+ BUTTERFLY0 %1, %2, %3, %4, 0xb1
+%endmacro
+
+%macro PASS6_AND_PERMUTE 0
+ mov tmpd, [outq+4]
+ movss m7, [outq+72]
+ addss m7, [outq+76]
+ movss m3, [outq+56]
+ addss m3, [outq+60]
+ addss m4, m3
+ movss m2, [outq+52]
+ addss m2, m3
+ movss m3, [outq+104]
+ addss m3, [outq+108]
+ addss m1, m3
+ addss m5, m4
+ movss [outq+ 16], m1
+ movss m1, [outq+100]
+ addss m1, m3
+ movss m3, [outq+40]
+ movss [outq+ 48], m1
+ addss m3, [outq+44]
+ movss m1, [outq+100]
+ addss m4, m3
+ addss m3, m2
+ addss m1, [outq+108]
+ movss [outq+ 40], m3
+ addss m2, [outq+36]
+ movss m3, [outq+8]
+ movss [outq+ 56], m2
+ addss m3, [outq+12]
+ movss [outq+ 32], m3
+ movss m3, [outq+80]
+ movss [outq+ 8], m5
+ movss [outq+ 80], m1
+ movss m2, [outq+52]
+ movss m5, [outq+120]
+ addss m5, [outq+124]
+ movss m1, [outq+64]
+ addss m2, [outq+60]
+ addss m0, m5
+ addss m5, [outq+116]
+ mov [outq+64], tmpd
+ addss m6, m0
+ addss m1, m6
+ mov tmpd, [outq+12]
+ mov [outq+ 96], tmpd
+ movss [outq+ 4], m1
+ movss m1, [outq+24]
+ movss [outq+ 24], m4
+ movss m4, [outq+88]
+ addss m4, [outq+92]
+ addss m3, m4
+ addss m4, [outq+84]
+ mov tmpd, [outq+108]
+ addss m1, [outq+28]
+ addss m0, m1
+ addss m1, m5
+ addss m6, m3
+ addss m3, m0
+ addss m0, m7
+ addss m5, [outq+20]
+ addss m7, m1
+ movss [outq+ 12], m6
+ mov [outq+112], tmpd
+ movss m6, [outq+28]
+ movss [outq+ 28], m0
+ movss m0, [outq+36]
+ movss [outq+ 36], m7
+ addss m1, m4
+ movss m7, [outq+116]
+ addss m0, m2
+ addss m7, [outq+124]
+ movss [outq+ 72], m0
+ movss m0, [outq+44]
+ addss m2, m0
+ movss [outq+ 44], m1
+ movss [outq+ 88], m2
+ addss m0, [outq+60]
+ mov tmpd, [outq+60]
+ mov [outq+120], tmpd
+ movss [outq+104], m0
+ addss m4, m5
+ addss m5, [outq+68]
+ movss [outq+52], m4
+ movss [outq+60], m5
+ movss m4, [outq+68]
+ movss m5, [outq+20]
+ movss [outq+ 20], m3
+ addss m5, m7
+ addss m7, m6
+ addss m4, m5
+ movss m2, [outq+84]
+ addss m2, [outq+92]
+ addss m5, m2
+ movss [outq+ 68], m4
+ addss m2, m7
+ movss m4, [outq+76]
+ movss [outq+ 84], m2
+ movss [outq+ 76], m5
+ addss m7, m4
+ addss m6, [outq+124]
+ addss m4, m6
+ addss m6, [outq+92]
+ movss [outq+100], m4
+ movss [outq+108], m6
+ movss m6, [outq+92]
+ movss [outq+92], m7
+ addss m6, [outq+124]
+ movss [outq+116], m6
+%endmacro
+
+%define BUTTERFLY BUTTERFLY_AVX
+%define BUTTERFLY0 BUTTERFLY0_AVX
+
+INIT_YMM
+section .text align=16
+%ifdef HAVE_AVX
+; void ff_dct32_float_avx(FFTSample *out, const FFTSample *in)
+cglobal dct32_float_avx, 2,3,8, out, in, tmp
+ ; pass 1
+ vmovaps m4, [inq+0]
+ vinsertf128 m5, m5, [inq+96], 1
+ vinsertf128 m5, m5, [inq+112], 0
+ vshufps m5, m5, m5, 0x1b
+ BUTTERFLY m4, m5, [ps_cos_vec], m6
+
+ vmovaps m2, [inq+64]
+ vinsertf128 m6, m6, [inq+32], 1
+ vinsertf128 m6, m6, [inq+48], 0
+ vshufps m6, m6, m6, 0x1b
+ BUTTERFLY m2, m6, [ps_cos_vec+32], m0
+
+ ; pass 2
+
+ BUTTERFLY m5, m6, [ps_cos_vec+64], m0
+ BUTTERFLY m4, m2, [ps_cos_vec+64], m7
+
+
+ ; pass 3
+ vperm2f128 m3, m6, m4, 0x31
+ vperm2f128 m1, m6, m4, 0x20
+ vshufps m3, m3, m3, 0x1b
+
+ BUTTERFLY m1, m3, [ps_cos_vec+96], m6
+
+
+ vperm2f128 m4, m5, m2, 0x20
+ vperm2f128 m5, m5, m2, 0x31
+ vshufps m5, m5, m5, 0x1b
+
+ BUTTERFLY m4, m5, [ps_cos_vec+96], m6
+
+ ; pass 4
+ vmovaps m6, [ps_p1p1m1m1+0]
+ vmovaps m2, [ps_cos_vec+128]
+
+ BUTTERFLY2 m5, m6, m2, m7
+ BUTTERFLY2 m4, m6, m2, m7
+ BUTTERFLY2 m1, m6, m2, m7
+ BUTTERFLY2 m3, m6, m2, m7
+
+
+ ; pass 5
+ vshufps m6, m6, m6, 0xcc
+ vmovaps m2, [ps_cos_vec+160]
+
+ BUTTERFLY3 m5, m6, m2, m7
+ BUTTERFLY3 m4, m6, m2, m7
+ BUTTERFLY3 m1, m6, m2, m7
+ BUTTERFLY3 m3, m6, m2, m7
+
+ vperm2f128 m6, m3, m3, 0x31
+ vmovaps [outq], m3
+
+ vextractf128 [outq+64], m5, 1
+ vextractf128 [outq+32], m5, 0
+
+ vextractf128 [outq+80], m4, 1
+ vextractf128 [outq+48], m4, 0
+
+ vperm2f128 m0, m1, m1, 0x31
+ vmovaps [outq+96], m1
+
+ vzeroupper
+
+ ; pass 6, no SIMD...
+INIT_XMM
+ PASS6_AND_PERMUTE
+ RET
+%endif
+
+%define BUTTERFLY BUTTERFLY_SSE
+%define BUTTERFLY0 BUTTERFLY0_SSE
+
+INIT_XMM
+; void ff_dct32_float_sse(FFTSample *out, const FFTSample *in)
+cglobal dct32_float_sse, 2,3,8, out, in, tmp
+ ; pass 1
+
+ movaps m0, [inq+0]
+ movaps m1, [inq+112]
+ shufps m1, m1, 0x1b
+ BUTTERFLY m0, m1, [ps_cos_vec], m3
+
+ movaps m7, [inq+64]
+ movaps m4, [inq+48]
+ shufps m4, m4, 0x1b
+ BUTTERFLY m7, m4, [ps_cos_vec+32], m3
+
+ ; pass 2
+ movaps m2, [ps_cos_vec+64]
+ BUTTERFLY m1, m4, m2, m3
+ movaps [outq+48], m1
+ movaps [outq+ 0], m4
+
+ ; pass 1
+ movaps m1, [inq+16]
+ movaps m6, [inq+96]
+ shufps m6, m6, 0x1b
+ BUTTERFLY m1, m6, [ps_cos_vec+16], m3
+
+ movaps m4, [inq+80]
+ movaps m5, [inq+32]
+ shufps m5, m5, 0x1b
+ BUTTERFLY m4, m5, [ps_cos_vec+48], m3
+
+ ; pass 2
+ BUTTERFLY m0, m7, m2, m3
+
+ movaps m2, [ps_cos_vec+80]
+ BUTTERFLY m6, m5, m2, m3
+
+ BUTTERFLY m1, m4, m2, m3
+
+ ; pass 3
+ movaps m2, [ps_cos_vec+96]
+ shufps m1, m1, 0x1b
+ BUTTERFLY m0, m1, m2, m3
+ movaps [outq+112], m0
+ movaps [outq+ 96], m1
+
+ movaps m0, [outq+0]
+ shufps m5, m5, 0x1b
+ BUTTERFLY m0, m5, m2, m3
+
+ movaps m1, [outq+48]
+ shufps m6, m6, 0x1b
+ BUTTERFLY m1, m6, m2, m3
+ movaps [outq+48], m1
+
+ shufps m4, m4, 0x1b
+ BUTTERFLY m7, m4, m2, m3
+
+ ; pass 4
+ movaps m3, [ps_p1p1m1m1+0]
+ movaps m2, [ps_cos_vec+128]
+
+ BUTTERFLY2 m5, m3, m2, m1
+
+ BUTTERFLY2 m0, m3, m2, m1
+ movaps [outq+16], m0
+
+ BUTTERFLY2 m6, m3, m2, m1
+ movaps [outq+32], m6
+
+ movaps m0, [outq+48]
+ BUTTERFLY2 m0, m3, m2, m1
+ movaps [outq+48], m0
+
+ BUTTERFLY2 m4, m3, m2, m1
+
+ BUTTERFLY2 m7, m3, m2, m1
+
+ movaps m6, [outq+96]
+ BUTTERFLY2 m6, m3, m2, m1
+
+ movaps m0, [outq+112]
+ BUTTERFLY2 m0, m3, m2, m1
+
+ ; pass 5
+ movaps m2, [ps_cos_vec+160]
+ shufps m3, m3, 0xcc
+
+ BUTTERFLY3 m5, m3, m2, m1
+ movaps [outq+0], m5
+
+ movaps m1, [outq+16]
+ BUTTERFLY3 m1, m3, m2, m5
+ movaps [outq+96], m1
+
+ BUTTERFLY3 m4, m3, m2, m5
+ movaps [outq+64], m4
+
+ BUTTERFLY3 m7, m3, m2, m5
+ movaps [outq+80], m7
+
+ movaps m5, [outq+32]
+ BUTTERFLY3 m5, m3, m2, m7
+ movaps [outq+32], m5
+
+ movaps m4, [outq+48]
+ BUTTERFLY3 m4, m3, m2, m7
+ movaps [outq+48], m4
+
+ BUTTERFLY3 m6, m3, m2, m7
+ movaps [outq+16], m6
+
+ BUTTERFLY3 m0, m3, m2, m7
+ movaps [outq+112], m0
+
+
+ ; pass 6, no SIMD...
+ PASS6_AND_PERMUTE
+ RET
diff --git a/libavcodec/x86/dct32_sse.c b/libavcodec/x86/dct32_sse.c
deleted file mode 100644
index 74338d6920..0000000000
--- a/libavcodec/x86/dct32_sse.c
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * 32 point SSE-optimized DCT transform
- * Copyright (c) 2010 Vitor Sessak
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <stdint.h>
-
-#include "libavutil/x86_cpu.h"
-#include "libavutil/mem.h"
-#include "libavcodec/dsputil.h"
-#include "fft.h"
-
-DECLARE_ALIGNED(16, static const float, b1)[] = {
- 0.500603, 0.505471, 0.515447, 0.531043,
- 0.553104, 0.582935, 0.622504, 0.674808,
- -1.169440, -0.972568, -0.839350, -0.744536,
- -10.190008, -3.407609, -2.057781, -1.484165,
- 0.502419, 0.522499, 0.566944, 0.646822,
- 0.788155, 1.060678, 1.722447, 5.101149,
- 0.509796, 0.601345, 0.899976, 2.562916,
- 1.000000, 1.000000, 1.306563, 0.541196,
- 1.000000, 0.707107, 1.000000, -0.707107
-};
-
-DECLARE_ALIGNED(16, static const int32_t, smask)[4] = {
- 0, 0, 0x80000000, 0x80000000
-};
-
-/* butterfly operator */
-#define BUTTERFLY(a,b,c,tmp) \
- "movaps %%" #a ", %%" #tmp " \n\t" \
- "subps %%" #b ", %%" #a " \n\t" \
- "addps %%" #tmp ", %%" #b " \n\t" \
- "mulps " #c ", %%" #a " \n\t"
-
-///* Same as BUTTERFLY when vectors a and b overlap */
-#define BUTTERFLY0(val, mask, cos, tmp, shuf) \
- "movaps %%" #val ", %%" #tmp " \n\t" \
- "shufps " #shuf ", %%" #val ",%%" #val " \n\t" \
- "xorps %%" #mask ", %%" #tmp " \n\t" /* flip signs */ \
- "addps %%" #tmp ", %%" #val " \n\t" \
- "mulps %%" #cos ", %%" #val " \n\t"
-
-#define BUTTERFLY2(val, mask, cos, tmp) BUTTERFLY0(val, mask, cos, tmp, $0x1b)
-#define BUTTERFLY3(val, mask, cos, tmp) BUTTERFLY0(val, mask, cos, tmp, $0xb1)
-
-void ff_dct32_float_sse(FFTSample *out, const FFTSample *in)
-{
- int32_t tmp1 = 0;
- __asm__ volatile(
- /* pass 1 */
-
- "movaps (%4), %%xmm0 \n\t"
- "movaps 112(%4), %%xmm1 \n\t"
- "shufps $0x1b, %%xmm1, %%xmm1 \n\t"
- BUTTERFLY(xmm0, xmm1, (%2), xmm3)
-
- "movaps 64(%4), %%xmm7 \n\t"
- "movaps 48(%4), %%xmm4 \n\t"
- "shufps $0x1b, %%xmm4, %%xmm4 \n\t"
- BUTTERFLY(xmm7, xmm4, 48(%2), xmm3)
-
-
- /* pass 2 */
- "movaps 64(%2), %%xmm2 \n\t"
- BUTTERFLY(xmm1, xmm4, %%xmm2, xmm3)
- "movaps %%xmm1, 48(%1) \n\t"
- "movaps %%xmm4, (%1) \n\t"
-
- /* pass 1 */
- "movaps 16(%4), %%xmm1 \n\t"
- "movaps 96(%4), %%xmm6 \n\t"
- "shufps $0x1b, %%xmm6, %%xmm6 \n\t"
- BUTTERFLY(xmm1, xmm6, 16(%2), xmm3)
-
- "movaps 80(%4), %%xmm4 \n\t"
- "movaps 32(%4), %%xmm5 \n\t"
- "shufps $0x1b, %%xmm5, %%xmm5 \n\t"
- BUTTERFLY(xmm4, xmm5, 32(%2), xmm3)
-
- /* pass 2 */
- BUTTERFLY(xmm0, xmm7, %%xmm2, xmm3)
-
- "movaps 80(%2), %%xmm2 \n\t"
- BUTTERFLY(xmm6, xmm5, %%xmm2, xmm3)
-
- BUTTERFLY(xmm1, xmm4, %%xmm2, xmm3)
-
- /* pass 3 */
- "movaps 96(%2), %%xmm2 \n\t"
- "shufps $0x1b, %%xmm1, %%xmm1 \n\t"
- BUTTERFLY(xmm0, xmm1, %%xmm2, xmm3)
- "movaps %%xmm0, 112(%1) \n\t"
- "movaps %%xmm1, 96(%1) \n\t"
-
- "movaps 0(%1), %%xmm0 \n\t"
- "shufps $0x1b, %%xmm5, %%xmm5 \n\t"
- BUTTERFLY(xmm0, xmm5, %%xmm2, xmm3)
-
- "movaps 48(%1), %%xmm1 \n\t"
- "shufps $0x1b, %%xmm6, %%xmm6 \n\t"
- BUTTERFLY(xmm1, xmm6, %%xmm2, xmm3)
- "movaps %%xmm1, 48(%1) \n\t"
-
- "shufps $0x1b, %%xmm4, %%xmm4 \n\t"
- BUTTERFLY(xmm7, xmm4, %%xmm2, xmm3)
-
- /* pass 4 */
- "movaps (%3), %%xmm3 \n\t"
- "movaps 112(%2), %%xmm2 \n\t"
-
- BUTTERFLY2(xmm5, xmm3, xmm2, xmm1)
-
- BUTTERFLY2(xmm0, xmm3, xmm2, xmm1)
- "movaps %%xmm0, 16(%1) \n\t"
-
- BUTTERFLY2(xmm6, xmm3, xmm2, xmm1)
- "movaps %%xmm6, 32(%1) \n\t"
-
- "movaps 48(%1), %%xmm0 \n\t"
- BUTTERFLY2(xmm0, xmm3, xmm2, xmm1)
- "movaps %%xmm0, 48(%1) \n\t"
-
- BUTTERFLY2(xmm4, xmm3, xmm2, xmm1)
-
- BUTTERFLY2(xmm7, xmm3, xmm2, xmm1)
-
- "movaps 96(%1), %%xmm6 \n\t"
- BUTTERFLY2(xmm6, xmm3, xmm2, xmm1)
-
- "movaps 112(%1), %%xmm0 \n\t"
- BUTTERFLY2(xmm0, xmm3, xmm2, xmm1)
-
- /* pass 5 */
- "movaps 128(%2), %%xmm2 \n\t"
- "shufps $0xCC, %%xmm3,%%xmm3 \n\t"
-
- BUTTERFLY3(xmm5, xmm3, xmm2, xmm1)
- "movaps %%xmm5, (%1) \n\t"
-
- "movaps 16(%1), %%xmm1 \n\t"
- BUTTERFLY3(xmm1, xmm3, xmm2, xmm5)
- "movaps %%xmm1, 16(%1) \n\t"
-
- BUTTERFLY3(xmm4, xmm3, xmm2, xmm5)
- "movaps %%xmm4, 64(%1) \n\t"
-
- BUTTERFLY3(xmm7, xmm3, xmm2, xmm5)
- "movaps %%xmm7, 80(%1) \n\t"
-
- "movaps 32(%1), %%xmm5 \n\t"
- BUTTERFLY3(xmm5, xmm3, xmm2, xmm7)
- "movaps %%xmm5, 32(%1) \n\t"
-
- "movaps 48(%1), %%xmm4 \n\t"
- BUTTERFLY3(xmm4, xmm3, xmm2, xmm7)
- "movaps %%xmm4, 48(%1) \n\t"
-
- BUTTERFLY3(xmm6, xmm3, xmm2, xmm7)
- "movaps %%xmm6, 96(%1) \n\t"
-
- BUTTERFLY3(xmm0, xmm3, xmm2, xmm7)
- "movaps %%xmm0, 112(%1) \n\t"
-
-
- /* pass 6, no SIMD... */
- "movss 56(%1), %%xmm3 \n\t"
- "movl 4(%1), %0 \n\t"
- "addss 60(%1), %%xmm3 \n\t"
- "movss 72(%1), %%xmm7 \n\t"
- "addss %%xmm3, %%xmm4 \n\t"
- "movss 52(%1), %%xmm2 \n\t"
- "addss %%xmm3, %%xmm2 \n\t"
- "movss 24(%1), %%xmm3 \n\t"
- "addss 28(%1), %%xmm3 \n\t"
- "addss 76(%1), %%xmm7 \n\t"
- "addss %%xmm3, %%xmm1 \n\t"
- "addss %%xmm4, %%xmm5 \n\t"
- "movss %%xmm1, 16(%1) \n\t"
- "movss 20(%1), %%xmm1 \n\t"
- "addss %%xmm3, %%xmm1 \n\t"
- "movss 40(%1), %%xmm3 \n\t"
- "movss %%xmm1, 48(%1) \n\t"
- "addss 44(%1), %%xmm3 \n\t"
- "movss 20(%1), %%xmm1 \n\t"
- "addss %%xmm3, %%xmm4 \n\t"
- "addss %%xmm2, %%xmm3 \n\t"
- "addss 28(%1), %%xmm1 \n\t"
- "movss %%xmm3, 40(%1) \n\t"
- "addss 36(%1), %%xmm2 \n\t"
- "movss 8(%1), %%xmm3 \n\t"
- "movss %%xmm2, 56(%1) \n\t"
- "addss 12(%1), %%xmm3 \n\t"
- "movss %%xmm5, 8(%1) \n\t"
- "movss %%xmm3, 32(%1) \n\t"
- "movss 52(%1), %%xmm2 \n\t"
- "movss 80(%1), %%xmm3 \n\t"
- "movss 120(%1), %%xmm5 \n\t"
- "movss %%xmm1, 80(%1) \n\t"
- "movss %%xmm4, 24(%1) \n\t"
- "addss 124(%1), %%xmm5 \n\t"
- "movss 64(%1), %%xmm1 \n\t"
- "addss 60(%1), %%xmm2 \n\t"
- "addss %%xmm5, %%xmm0 \n\t"
- "addss 116(%1), %%xmm5 \n\t"
- "movl %0, 64(%1) \n\t"
- "addss %%xmm0, %%xmm6 \n\t"
- "addss %%xmm6, %%xmm1 \n\t"
- "movl 12(%1), %0 \n\t"
- "movss %%xmm1, 4(%1) \n\t"
- "movss 88(%1), %%xmm1 \n\t"
- "movl %0, 96(%1) \n\t"
- "addss 92(%1), %%xmm1 \n\t"
- "movss 104(%1), %%xmm4 \n\t"
- "movl 28(%1), %0 \n\t"
- "addss 108(%1), %%xmm4 \n\t"
- "addss %%xmm4, %%xmm0 \n\t"
- "addss %%xmm1, %%xmm3 \n\t"
- "addss 84(%1), %%xmm1 \n\t"
- "addss %%xmm5, %%xmm4 \n\t"
- "addss %%xmm3, %%xmm6 \n\t"
- "addss %%xmm0, %%xmm3 \n\t"
- "addss %%xmm7, %%xmm0 \n\t"
- "addss 100(%1), %%xmm5 \n\t"
- "addss %%xmm4, %%xmm7 \n\t"
- "movl %0, 112(%1) \n\t"
- "movss %%xmm0, 28(%1) \n\t"
- "movss 36(%1), %%xmm0 \n\t"
- "movss %%xmm7, 36(%1) \n\t"
- "addss %%xmm1, %%xmm4 \n\t"
- "movss 116(%1), %%xmm7 \n\t"
- "addss %%xmm2, %%xmm0 \n\t"
- "addss 124(%1), %%xmm7 \n\t"
- "movss %%xmm0, 72(%1) \n\t"
- "movss 44(%1), %%xmm0 \n\t"
- "movss %%xmm6, 12(%1) \n\t"
- "movss %%xmm3, 20(%1) \n\t"
- "addss %%xmm0, %%xmm2 \n\t"
- "movss %%xmm4, 44(%1) \n\t"
- "movss %%xmm2, 88(%1) \n\t"
- "addss 60(%1), %%xmm0 \n\t"
- "movl 60(%1), %0 \n\t"
- "movl %0, 120(%1) \n\t"
- "movss %%xmm0, 104(%1) \n\t"
- "addss %%xmm5, %%xmm1 \n\t"
- "addss 68(%1), %%xmm5 \n\t"
- "movss %%xmm1, 52(%1) \n\t"
- "movss %%xmm5, 60(%1) \n\t"
- "movss 68(%1), %%xmm1 \n\t"
- "movss 100(%1), %%xmm5 \n\t"
- "addss %%xmm7, %%xmm5 \n\t"
- "addss 108(%1), %%xmm7 \n\t"
- "addss %%xmm5, %%xmm1 \n\t"
- "movss 84(%1), %%xmm2 \n\t"
- "addss 92(%1), %%xmm2 \n\t"
- "addss %%xmm2, %%xmm5 \n\t"
- "movss %%xmm1, 68(%1) \n\t"
- "addss %%xmm7, %%xmm2 \n\t"
- "movss 76(%1), %%xmm1 \n\t"
- "movss %%xmm2, 84(%1) \n\t"
- "movss %%xmm5, 76(%1) \n\t"
- "movss 108(%1), %%xmm2 \n\t"
- "addss %%xmm1, %%xmm7 \n\t"
- "addss 124(%1), %%xmm2 \n\t"
- "addss %%xmm2, %%xmm1 \n\t"
- "addss 92(%1), %%xmm2 \n\t"
- "movss %%xmm1, 100(%1) \n\t"
- "movss %%xmm2, 108(%1) \n\t"
- "movss 92(%1), %%xmm2 \n\t"
- "movss %%xmm7, 92(%1) \n\t"
- "addss 124(%1), %%xmm2 \n\t"
- "movss %%xmm2, 116(%1) \n\t"
- :"+&r"(tmp1)
- :"r"(out), "r"(b1), "r"(smask), "r"(in)
- :XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3",
- "%xmm4", "%xmm5", "%xmm6", "%xmm7",)
- "memory"
- );
-}
-
diff --git a/libavcodec/x86/fft.c b/libavcodec/x86/fft.c
index 13f7ea6ec2..fb8329c011 100644
--- a/libavcodec/x86/fft.c
+++ b/libavcodec/x86/fft.c
@@ -57,7 +57,9 @@ av_cold void ff_fft_init_mmx(FFTContext *s)
av_cold void ff_dct_init_mmx(DCTContext *s)
{
int has_vectors = av_get_cpu_flags();
- if (has_vectors & AV_CPU_FLAG_SSE && HAVE_SSE)
+ if (has_vectors & AV_CPU_FLAG_AVX && HAVE_AVX)
+ s->dct32 = ff_dct32_float_avx;
+ else if (has_vectors & AV_CPU_FLAG_SSE && HAVE_SSE)
s->dct32 = ff_dct32_float_sse;
}
#endif
diff --git a/libavcodec/x86/fft.h b/libavcodec/x86/fft.h
index 611db8508f..79064c27cd 100644
--- a/libavcodec/x86/fft.h
+++ b/libavcodec/x86/fft.h
@@ -35,5 +35,6 @@ void ff_imdct_calc_sse(FFTContext *s, FFTSample *output, const FFTSample *input)
void ff_imdct_half_sse(FFTContext *s, FFTSample *output, const FFTSample *input);
void ff_imdct_half_avx(FFTContext *s, FFTSample *output, const FFTSample *input);
void ff_dct32_float_sse(FFTSample *out, const FFTSample *in);
+void ff_dct32_float_avx(FFTSample *out, const FFTSample *in);
-#endif
+#endif /* AVCODEC_X86_FFT_H */
diff --git a/libavcodec/xvmc_internal.h b/libavcodec/xvmc_internal.h
index 9bb8909d28..04197cefae 100644
--- a/libavcodec/xvmc_internal.h
+++ b/libavcodec/xvmc_internal.h
@@ -18,8 +18,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef AVCODEC_INTERNAL_XVMC_H
-#define AVCODEC_INTERNAL_XVMC_H
+#ifndef AVCODEC_XVMC_INTERNAL_H
+#define AVCODEC_XVMC_INTERNAL_H
#include "avcodec.h"
#include "mpegvideo.h"
@@ -30,4 +30,4 @@ int ff_xvmc_field_start(MpegEncContext*s, AVCodecContext *avctx);
void ff_xvmc_field_end(MpegEncContext *s);
void ff_xvmc_decode_mb(MpegEncContext *s);
-#endif /* AVCODEC_INTERNAL_XVMC_H */
+#endif /* AVCODEC_XVMC_INTERNAL_H */