Rename libavcodec/i386/ --> libavcodec/x86/.

It contains optimizations that are not specific to i386 and
libavutil uses this naming scheme already.

Originally committed as revision 16270 to svn://svn.ffmpeg.org/ffmpeg/trunk
pull/126/head
Diego Biurrun 16 years ago
parent 50e3477f0f
commit a6493a8fbd
  1. 2
      MAINTAINERS
  2. 2
      README
  3. 4
      common.mak
  4. 2
      configure
  5. 6
      doc/optimization.txt
  6. 62
      libavcodec/Makefile
  7. 2
      libavcodec/dct-test.c
  8. 2
      libavcodec/h264.c
  9. 4
      libavcodec/imgconvert.c
  10. 2
      libavcodec/imgresample.c
  11. 2
      libavcodec/mathops.h
  12. 0
      libavcodec/x86/cavsdsp_mmx.c
  13. 0
      libavcodec/x86/cpuid.c
  14. 0
      libavcodec/x86/dnxhd_mmx.c
  15. 0
      libavcodec/x86/dsputil_h264_template_mmx.c
  16. 0
      libavcodec/x86/dsputil_h264_template_ssse3.c
  17. 0
      libavcodec/x86/dsputil_mmx.c
  18. 6
      libavcodec/x86/dsputil_mmx.h
  19. 0
      libavcodec/x86/dsputil_mmx_avg_template.c
  20. 0
      libavcodec/x86/dsputil_mmx_qns_template.c
  21. 0
      libavcodec/x86/dsputil_mmx_rnd_template.c
  22. 0
      libavcodec/x86/dsputil_yasm.asm
  23. 0
      libavcodec/x86/dsputilenc_mmx.c
  24. 0
      libavcodec/x86/fdct_mmx.c
  25. 0
      libavcodec/x86/fft_3dn.c
  26. 0
      libavcodec/x86/fft_3dn2.c
  27. 0
      libavcodec/x86/fft_mmx.asm
  28. 0
      libavcodec/x86/fft_sse.c
  29. 0
      libavcodec/x86/flacdsp_mmx.c
  30. 0
      libavcodec/x86/h264_deblock_sse2.asm
  31. 6
      libavcodec/x86/h264_i386.h
  32. 0
      libavcodec/x86/h264dsp_mmx.c
  33. 0
      libavcodec/x86/idct_mmx.c
  34. 0
      libavcodec/x86/idct_mmx_xvid.c
  35. 0
      libavcodec/x86/idct_sse2_xvid.c
  36. 6
      libavcodec/x86/idct_xvid.h
  37. 6
      libavcodec/x86/mathops.h
  38. 6
      libavcodec/x86/mmx.h
  39. 0
      libavcodec/x86/motion_est_mmx.c
  40. 0
      libavcodec/x86/mpegvideo_mmx.c
  41. 0
      libavcodec/x86/mpegvideo_mmx_template.c
  42. 0
      libavcodec/x86/simple_idct_mmx.c
  43. 0
      libavcodec/x86/snowdsp_mmx.c
  44. 0
      libavcodec/x86/vc1dsp_mmx.c
  45. 0
      libavcodec/x86/vp3dsp_mmx.c
  46. 6
      libavcodec/x86/vp3dsp_mmx.h
  47. 0
      libavcodec/x86/vp3dsp_sse2.c
  48. 6
      libavcodec/x86/vp3dsp_sse2.h
  49. 0
      libavcodec/x86/x86inc.asm

@ -298,7 +298,6 @@ Operating systems / CPU architectures
Alpha Mans Rullgard, Falk Hueffner
ARM Mans Rullgard
BeOS Francois Revol
i386 Michael Niedermayer
Mac OS X / PowerPC Romain Dolbeau, Guillaume Poirier
Amiga / PowerPC Colin Ward
Linux / PowerPC Luca Barbato
@ -306,3 +305,4 @@ Windows MinGW Alex Beregszaszi, Ramiro Polla
Windows Cygwin Victor Paesa
ADI/Blackfin DSP Marc Hoffman
Sparc Roman Shaposhnik
x86 Michael Niedermayer

@ -17,7 +17,7 @@ FFmpeg README
License, see the file COPYING.GPL for details. Their compilation and use
in FFmpeg is optional.
* The file libavcodec/i386/idct_mmx.c is distributed under the GNU General
* The file libavcodec/x86/idct_mmx.c is distributed under the GNU General
Public License. It is strictly an optimization and its use is optional.
* The file libavcodec/ac3dec.c is distributed under the GNU General Public

@ -91,10 +91,10 @@ $(SUBDIR)%-test.o: $(SUBDIR)%.c
$(SUBDIR)%-test.o: $(SUBDIR)%-test.c
$(CC) $(CFLAGS) -DTEST -c -o $$@ $$^
$(SUBDIR)i386/%.o: $(SUBDIR)i386/%.asm
$(SUBDIR)x86/%.o: $(SUBDIR)x86/%.asm
$(YASM) $(YASMFLAGS) -I $$(<D)/ -o $$@ $$<
$(SUBDIR)i386/%.d: $(SUBDIR)i386/%.asm
$(SUBDIR)x86/%.d: $(SUBDIR)x86/%.asm
$(YASM) $(YASMFLAGS) -I $$(<D)/ -M -o $$(@:%.d=%.o) $$< > $$@
clean::

2
configure vendored

@ -2359,11 +2359,11 @@ if enabled source_path_used; then
libavcodec/alpha \
libavcodec/arm \
libavcodec/bfin \
libavcodec/i386 \
libavcodec/mlib \
libavcodec/ppc \
libavcodec/sh4 \
libavcodec/sparc \
libavcodec/x86 \
libavdevice \
libavfilter \
libavformat \

@ -4,11 +4,11 @@ optimization Tips (for libavcodec):
What to optimize:
-----------------
If you plan to do non-x86 architecture specific optimizations (SIMD normally),
then take a look in the i386/ directory, as most important functions are
then take a look in the x86/ directory, as most important functions are
already optimized for MMX.
If you want to do x86 optimizations then you can either try to finetune the
stuff in the i386 directory or find some other functions in the C source to
stuff in the x86 directory or find some other functions in the C source to
optimize, but there aren't many left.
@ -20,7 +20,7 @@ architecture-specific versions. It is recommended to look at older
revisions of the interesting files (for a web frontend try ViewVC at
http://svn.mplayerhq.hu/ffmpeg/trunk/).
Alternatively, look into the other architecture-specific versions in
the i386/, ppc/, alpha/ subdirectories. Even if you don't exactly
the x86/, ppc/, alpha/ subdirectories. Even if you don't exactly
comprehend the instructions, it could help understanding the functions
and how they can be optimized.

@ -392,37 +392,37 @@ OBJS-$(HAVE_PTHREADS) += pthread.o
OBJS-$(HAVE_W32THREADS) += w32thread.o
# processor-specific code
MMX-OBJS-$(CONFIG_CAVS_DECODER) += i386/cavsdsp_mmx.o
MMX-OBJS-$(CONFIG_ENCODERS) += i386/dsputilenc_mmx.o
MMX-OBJS-$(CONFIG_FLAC_ENCODER) += i386/flacdsp_mmx.o
MMX-OBJS-$(CONFIG_GPL) += i386/idct_mmx.o
MMX-OBJS-$(CONFIG_SNOW_DECODER) += i386/snowdsp_mmx.o
MMX-OBJS-$(CONFIG_THEORA_DECODER) += i386/vp3dsp_mmx.o i386/vp3dsp_sse2.o
MMX-OBJS-$(CONFIG_VC1_DECODER) += i386/vc1dsp_mmx.o
MMX-OBJS-$(CONFIG_VP3_DECODER) += i386/vp3dsp_mmx.o i386/vp3dsp_sse2.o
MMX-OBJS-$(CONFIG_VP5_DECODER) += i386/vp3dsp_mmx.o i386/vp3dsp_sse2.o
MMX-OBJS-$(CONFIG_VP6_DECODER) += i386/vp3dsp_mmx.o i386/vp3dsp_sse2.o
MMX-OBJS-$(CONFIG_VP6A_DECODER) += i386/vp3dsp_mmx.o i386/vp3dsp_sse2.o
MMX-OBJS-$(CONFIG_VP6F_DECODER) += i386/vp3dsp_mmx.o i386/vp3dsp_sse2.o
MMX-OBJS-$(CONFIG_WMV3_DECODER) += i386/vc1dsp_mmx.o
MMX-OBJS-$(HAVE_YASM) += i386/dsputil_yasm.o \
i386/h264_deblock_sse2.o
OBJS-$(HAVE_MMX) += i386/cpuid.o \
i386/dnxhd_mmx.o \
i386/dsputil_mmx.o \
i386/fdct_mmx.o \
i386/idct_mmx_xvid.o \
i386/idct_sse2_xvid.o \
i386/motion_est_mmx.o \
i386/mpegvideo_mmx.o \
i386/simple_idct_mmx.o \
MMX-OBJS-$(CONFIG_CAVS_DECODER) += x86/cavsdsp_mmx.o
MMX-OBJS-$(CONFIG_ENCODERS) += x86/dsputilenc_mmx.o
MMX-OBJS-$(CONFIG_FLAC_ENCODER) += x86/flacdsp_mmx.o
MMX-OBJS-$(CONFIG_GPL) += x86/idct_mmx.o
MMX-OBJS-$(CONFIG_SNOW_DECODER) += x86/snowdsp_mmx.o
MMX-OBJS-$(CONFIG_THEORA_DECODER) += x86/vp3dsp_mmx.o x86/vp3dsp_sse2.o
MMX-OBJS-$(CONFIG_VC1_DECODER) += x86/vc1dsp_mmx.o
MMX-OBJS-$(CONFIG_VP3_DECODER) += x86/vp3dsp_mmx.o x86/vp3dsp_sse2.o
MMX-OBJS-$(CONFIG_VP5_DECODER) += x86/vp3dsp_mmx.o x86/vp3dsp_sse2.o
MMX-OBJS-$(CONFIG_VP6_DECODER) += x86/vp3dsp_mmx.o x86/vp3dsp_sse2.o
MMX-OBJS-$(CONFIG_VP6A_DECODER) += x86/vp3dsp_mmx.o x86/vp3dsp_sse2.o
MMX-OBJS-$(CONFIG_VP6F_DECODER) += x86/vp3dsp_mmx.o x86/vp3dsp_sse2.o
MMX-OBJS-$(CONFIG_WMV3_DECODER) += x86/vc1dsp_mmx.o
MMX-OBJS-$(HAVE_YASM) += x86/dsputil_yasm.o \
x86/h264_deblock_sse2.o \
OBJS-$(HAVE_MMX) += x86/cpuid.o \
x86/dnxhd_mmx.o \
x86/dsputil_mmx.o \
x86/fdct_mmx.o \
x86/idct_mmx_xvid.o \
x86/idct_sse2_xvid.o \
x86/motion_est_mmx.o \
x86/mpegvideo_mmx.o \
x86/simple_idct_mmx.o \
$(MMX-OBJS-yes)
OBJS-$(CONFIG_FFT_MMX) += i386/fft_3dn.o \
i386/fft_3dn2.o \
i386/fft_mmx.o \
i386/fft_sse.o \
OBJS-$(CONFIG_FFT_MMX) += x86/fft_3dn.o \
x86/fft_3dn2.o \
x86/fft_mmx.o \
x86/fft_sse.o \
OBJS-$(ARCH_ALPHA) += alpha/dsputil_alpha.o \
alpha/dsputil_alpha_asm.o \
@ -498,10 +498,10 @@ OBJS-$(HAVE_VIS) += sparc/dsputil_vis.o \
TESTS = $(addsuffix -test$(EXESUF), cabac dct eval fft h264 rangecoder snow)
TESTS-$(CONFIG_OLDSCALER) += imgresample-test$(EXESUF)
TESTS-$(ARCH_X86) += i386/cpuid-test$(EXESUF) motion-test$(EXESUF)
TESTS-$(ARCH_X86) += x86/cpuid-test$(EXESUF) motion-test$(EXESUF)
CLEANFILES = apiexample$(EXESUF)
DIRS = alpha arm bfin i386 mlib ppc ps2 sh4 sparc
DIRS = alpha arm bfin mlib ppc ps2 sh4 sparc x86
include $(SUBDIR)../subdir.mak

@ -38,7 +38,7 @@
#include "aandcttab.h"
#include "faandct.h"
#include "faanidct.h"
#include "i386/idct_xvid.h"
#include "x86/idct_xvid.h"
#undef printf
#undef random

@ -36,7 +36,7 @@
#include "cabac.h"
#ifdef ARCH_X86
#include "i386/h264_i386.h"
#include "x86/h264_i386.h"
#endif
//#undef NDEBUG

@ -35,8 +35,8 @@
#include "colorspace.h"
#ifdef HAVE_MMX
#include "i386/mmx.h"
#include "i386/dsputil_mmx.h"
#include "x86/mmx.h"
#include "x86/dsputil_mmx.h"
#endif
#define xglue(x, y) x ## y

@ -155,7 +155,7 @@ static void v_resample(uint8_t *dst, int dst_width, const uint8_t *src,
#ifdef HAVE_MMX
#include "i386/mmx.h"
#include "x86/mmx.h"
#define FILTER4(reg) \
{\

@ -26,7 +26,7 @@
#ifdef ARCH_X86_32
#include "i386/mathops.h"
#include "x86/mathops.h"
#elif defined(ARCH_ARM)

@ -19,8 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef AVCODEC_I386_DSPUTIL_MMX_H
#define AVCODEC_I386_DSPUTIL_MMX_H
#ifndef AVCODEC_X86_DSPUTIL_MMX_H
#define AVCODEC_X86_DSPUTIL_MMX_H
#include <stdint.h>
#include "libavcodec/dsputil.h"
@ -151,4 +151,4 @@ extern const double ff_pd_2[2];
void dsputilenc_init_mmx(DSPContext* c, AVCodecContext *avctx);
#endif /* AVCODEC_I386_DSPUTIL_MMX_H */
#endif /* AVCODEC_X86_DSPUTIL_MMX_H */

@ -26,8 +26,8 @@
* @author Michael Niedermayer <michaelni@gmx.at>
*/
#ifndef AVCODEC_I386_H264_I386_H
#define AVCODEC_I386_H264_I386_H
#ifndef AVCODEC_X86_H264_I386_H
#define AVCODEC_X86_H264_I386_H
#include "libavcodec/cabac.h"
@ -152,4 +152,4 @@ static int decode_significance_8x8_x86(CABACContext *c,
#endif /* defined(ARCH_X86) && defined(HAVE_7REGS) && */
/* defined(HAVE_EBX_AVAILABLE) && !defined(BROKEN_RELOCATIONS) */
#endif /* AVCODEC_I386_H264_I386_H */
#endif /* AVCODEC_X86_H264_I386_H */

@ -23,8 +23,8 @@
* header for Xvid IDCT functions
*/
#ifndef AVCODEC_I386_IDCT_XVID_H
#define AVCODEC_I386_IDCT_XVID_H
#ifndef AVCODEC_X86_IDCT_XVID_H
#define AVCODEC_X86_IDCT_XVID_H
#include <stdint.h>
@ -34,4 +34,4 @@ void ff_idct_xvid_sse2(short *block);
void ff_idct_xvid_sse2_put(uint8_t *dest, int line_size, short *block);
void ff_idct_xvid_sse2_add(uint8_t *dest, int line_size, short *block);
#endif /* AVCODEC_I386_IDCT_XVID_H */
#endif /* AVCODEC_X86_IDCT_XVID_H */

@ -19,8 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef AVCODEC_I386_MATHOPS_H
#define AVCODEC_I386_MATHOPS_H
#ifndef AVCODEC_X86_MATHOPS_H
#define AVCODEC_X86_MATHOPS_H
#define MULL(ra, rb, shift) \
({ int rt, dummy; __asm__ (\
@ -40,4 +40,4 @@
__asm__ ("imull %2\n\t" : "=A"(rt) : "a" ((int)ra), "g" ((int)rb));\
rt; })
#endif /* AVCODEC_I386_MATHOPS_H */
#endif /* AVCODEC_X86_MATHOPS_H */

@ -18,8 +18,8 @@
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef AVCODEC_I386_MMX_H
#define AVCODEC_I386_MMX_H
#ifndef AVCODEC_X86_MMX_H
#define AVCODEC_X86_MMX_H
#warning Everything in this header is deprecated, use plain __asm__()! New code using this header will be rejected.
@ -264,4 +264,4 @@
#define punpckhqdq_r2r(regs,regd) mmx_r2r (punpckhqdq, regs, regd)
#endif /* AVCODEC_I386_MMX_H */
#endif /* AVCODEC_X86_MMX_H */

@ -19,8 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef AVCODEC_I386_VP3DSP_MMX_H
#define AVCODEC_I386_VP3DSP_MMX_H
#ifndef AVCODEC_X86_VP3DSP_MMX_H
#define AVCODEC_X86_VP3DSP_MMX_H
#include <stdint.h>
#include "libavcodec/dsputil.h"
@ -32,4 +32,4 @@ void ff_vp3_idct_add_mmx(uint8_t *dest, int line_size, DCTELEM *block);
void ff_vp3_v_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values);
void ff_vp3_h_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values);
#endif /* AVCODEC_I386_VP3DSP_MMX_H */
#endif /* AVCODEC_X86_VP3DSP_MMX_H */

@ -19,8 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef AVCODEC_I386_VP3DSP_SSE2_H
#define AVCODEC_I386_VP3DSP_SSE2_H
#ifndef AVCODEC_X86_VP3DSP_SSE2_H
#define AVCODEC_X86_VP3DSP_SSE2_H
#include "libavcodec/dsputil.h"
@ -28,4 +28,4 @@ void ff_vp3_idct_sse2(int16_t *input_data);
void ff_vp3_idct_put_sse2(uint8_t *dest, int line_size, DCTELEM *block);
void ff_vp3_idct_add_sse2(uint8_t *dest, int line_size, DCTELEM *block);
#endif /* AVCODEC_I386_VP3DSP_SSE2_H */
#endif /* AVCODEC_X86_VP3DSP_SSE2_H */
Loading…
Cancel
Save