fixed config for direct mplayer build compatibility

Originally committed as revision 8 to svn://svn.ffmpeg.org/ffmpeg/trunk
pull/126/head
Fabrice Bellard 24 years ago
parent d78647e8b4
commit 980fc7b834
  1. 10
      Makefile
  2. 23
      configure
  3. 10
      doc/README.dev
  4. 4
      doc/TODO
  5. 4
      libav/Makefile
  6. 26
      libavcodec/Makefile
  7. 4
      libavcodec/common.h
  8. 4
      libavcodec/dsputil.c
  9. 2
      libavcodec/dsputil.h
  10. 10
      libavcodec/imgresample.c
  11. 2
      libavcodec/motion_est.c

@ -1,11 +1,11 @@
# Main ffmpeg Makefile # Main ffmpeg Makefile
# (c) 2000, 2001 Gerard Lantau # (c) 2000, 2001 Gerard Lantau
# #
include config.mk include config.mak
CFLAGS= -O2 -Wall -g -I./libavcodec -I./libav CFLAGS= $(OPTFLAGS) -Wall -g -I./libavcodec -I./libav
LDFLAGS= -g LDFLAGS= -g
ifdef CONFIG_GPROF ifeq ($(TARGET_GPROF),yes)
CFLAGS+=-p CFLAGS+=-p
LDFLAGS+=-p LDFLAGS+=-p
endif endif
@ -28,7 +28,7 @@ ffserver: ffserver.o libav/libav.a libavcodec/libavcodec.a
gcc $(CFLAGS) -c -o $@ $< gcc $(CFLAGS) -c -o $@ $<
install: all install: all
install -s -m 755 $(PROG) $(PREFIX)/bin install -s -m 755 $(PROG) $(prefix)/bin
clean: clean:
make -C libavcodec clean make -C libavcodec clean
@ -36,7 +36,7 @@ clean:
rm -f *.o *~ gmon.out TAGS $(PROG) rm -f *.o *~ gmon.out TAGS $(PROG)
distclean: clean distclean: clean
rm -f Rules.mk config.h rm -f config.mak config.h
TAGS: TAGS:
etags *.[ch] libav/*.[ch] libavcodec/*.[ch] etags *.[ch] libav/*.[ch] libavcodec/*.[ch]

23
configure vendored

@ -53,23 +53,24 @@ echo "CPU $cpu"
echo "MMX enabled $mmx" echo "MMX enabled $mmx"
echo "gprof enabled $gprof" echo "gprof enabled $gprof"
echo "Creating config.mk and config.h" echo "Creating config.mak and config.h"
echo "# Automatically generated by configure - do not modify" > config.mk echo "# Automatically generated by configure - do not modify" > config.mak
echo "/* Automatically generated by configure - do not modify */" > config.h echo "/* Automatically generated by configure - do not modify */" > config.h
echo "PREFIX=$prefix" >> config.mk echo "prefix=$prefix" >> config.mak
echo "CC=$cc" >> config.mk echo "CC=$cc" >> config.mak
echo "AR=$ar" >> config.mk echo "AR=$ar" >> config.mak
echo "OPTFLAGS=-O2" >> config.mak
if [ "$cpu" = "x86" ] ; then if [ "$cpu" = "x86" ] ; then
echo "CONFIG_CPU_X86=y" >> config.mk echo "TARGET_ARCH_X86=yes" >> config.mak
echo "#define CONFIG_CPU_X86 1" >> config.h echo "#define ARCH_X86 1" >> config.h
fi fi
if [ "$mmx" = "yes" ] ; then if [ "$mmx" = "yes" ] ; then
echo "CONFIG_MMX=y" >> config.mk echo "TARGET_MMX=yes" >> config.mak
echo "#define CONFIG_MMX 1" >> config.h echo "#define HAVE_MMX 1" >> config.h
fi fi
if [ "$gprof" = "yes" ] ; then if [ "$gprof" = "yes" ] ; then
echo "CONFIG_GPROF=y" >> config.mk echo "TARGET_GPROF=yes" >> config.mak
echo "#define CONFIG_GPROF 1" >> config.h echo "#define HAVE_GPROF 1" >> config.h
fi fi

@ -8,7 +8,15 @@
demux code for several formats). (no example yet, the API is likely demux code for several formats). (no example yet, the API is likely
to evolve). to evolve).
2) Coding Rules 2) Integrating libavXXX in your GPL'ed program
----------------------------------------------
You can integrate all the source code of the libraries to link them
statically to avoid any version problem. All you need is to provide a
'config.mak' and a 'config.h' in the parent directory. See the defines
generated by ./configure to understand what is needed.
3) Coding Rules
--------------- ---------------
ffmpeg is programmed in ANSI C language. GCC extension are ffmpeg is programmed in ANSI C language. GCC extension are

@ -16,7 +16,11 @@ Planned in next release:
(DONE) - add RV10 decoding. (DONE) - add RV10 decoding.
(DONE) - add true pgm support. (DONE) - add true pgm support.
(DONE) - msmpeg4 0x18 fix. (DONE) - msmpeg4 0x18 fix.
- add encode and ac3/mpglib disabling option
- add qscale out. - add qscale out.
- add decode quant optimisation.
- see black region optimization (Arpi request).
- check ffmpeg mpeg1 encoding (Happy Camer mail)
- add format autodetect with content (for example to distinguish - add format autodetect with content (for example to distinguish
mpegvideo/mpegmux). mpegvideo/mpegmux).
- add external alloc for libavcodec (avifile request). - add external alloc for libavcodec (avifile request).

@ -1,5 +1,5 @@
include ../config.mk include ../config.mak
CFLAGS= -O2 -Wall -g -I../libavcodec CFLAGS= $(OPTFLAGS) -Wall -g -I../libavcodec
OBJS= rm.o mpeg.o asf.o avienc.o jpegenc.o swf.o wav.o raw.o \ OBJS= rm.o mpeg.o asf.o avienc.o jpegenc.o swf.o wav.o raw.o \
avidec.o ffm.o \ avidec.o ffm.o \

@ -1,11 +1,13 @@
include ../config.mk include ../config.mak
CFLAGS= -O2 -Wall -g
CFLAGS= $(OPTFLAGS) -Wall -g
LDFLAGS= -g LDFLAGS= -g
OBJS= common.o utils.o mpegvideo.o h263.o jrevdct.o jfdctfst.o \ OBJS= common.o utils.o mpegvideo.o h263.o jrevdct.o jfdctfst.o \
mpegaudio.o ac3enc.o mjpegenc.o resample.o dsputil.o \ mpegaudio.o ac3enc.o mjpegenc.o resample.o dsputil.o \
motion_est.o imgconvert.o imgresample.o msmpeg4.o \ motion_est.o imgconvert.o imgresample.o msmpeg4.o \
mpeg12.o h263dec.o rv10.o mpeg12.o h263dec.o rv10.o
ASM_OBJS=
# currently using libac3 for ac3 decoding # currently using libac3 for ac3 decoding
OBJS+= ac3dec.o \ OBJS+= ac3dec.o \
@ -18,19 +20,22 @@ OBJS+= mpegaudiodec.o \
mpglib/dct64_i386.o mpglib/decode_i386.o mpglib/tabinit.o mpglib/dct64_i386.o mpglib/decode_i386.o mpglib/tabinit.o
# i386 mmx specific stuff # i386 mmx specific stuff
ifdef CONFIG_MMX ifeq ($(TARGET_MMX),yes)
OBJS += i386/fdct_mmx.o i386/fdctdata.o i386/sad_mmx.o i386/cputest.o \ ASM_OBJS += i386/fdct_mmx.o i386/sad_mmx.o
OBJS += i386/fdctdata.o i386/cputest.o \
i386/dsputil_mmx.o i386/dsputil_mmx.o
endif endif
SRCS = $(OBJS:.o=.c) $(ASM_OBJS:.o=.s)
LIB= libavcodec.a LIB= libavcodec.a
TESTS= imgresample-test dct-test TESTS= imgresample-test dct-test
all: $(LIB) apiexample all: $(LIB) apiexample
$(LIB): $(OBJS) $(LIB): $(OBJS) $(ASM_OBJS)
rm -f $@ rm -f $@
$(AR) rcs $@ $(OBJS) $(AR) rcs $@ $(OBJS) $(ASM_OBJS)
dsputil.o: dsputil.c dsputil.h dsputil.o: dsputil.c dsputil.h
@ -40,12 +45,21 @@ dsputil.o: dsputil.c dsputil.h
%.o: %.s %.o: %.s
nasm -f elf -o $@ $< nasm -f elf -o $@ $<
# depend only used by mplayer now
dep: depend
depend:
$(CC) -MM $(CFLAGS) $(SRCS) 1>.depend
clean: clean:
rm -f *.o *~ *.a i386/*.o i386/*~ \ rm -f *.o *~ *.a i386/*.o i386/*~ \
libac3/*.o libac3/*~ \ libac3/*.o libac3/*~ \
mpglib/*.o mpglib/*~ \ mpglib/*.o mpglib/*~ \
apiexample $(TESTS) apiexample $(TESTS)
distclean: clean
rm -f Makefile.bak .depend
# api example program # api example program
apiexample: apiexample.c $(LIB) apiexample: apiexample.c $(LIB)
$(CC) $(CFLAGS) -o $@ $< $(LIB) -lm $(CC) $(CFLAGS) -o $@ $< $(LIB) -lm

@ -3,8 +3,8 @@
#include "../config.h" #include "../config.h"
#ifndef USE_LIBAVCODEC #ifndef __WINE_WINDEF16_H
// workaround for typedef conflict in MPlayer /* workaround for typedef conflict in MPlayer (wine typedefs) */
typedef unsigned short UINT16; typedef unsigned short UINT16;
typedef signed short INT16; typedef signed short INT16;
#endif #endif

@ -21,7 +21,7 @@
#include "avcodec.h" #include "avcodec.h"
#include "dsputil.h" #include "dsputil.h"
#ifdef CONFIG_MMX #ifdef HAVE_MMX
int mm_flags; /* multimedia extension flags */ int mm_flags; /* multimedia extension flags */
#endif #endif
@ -377,7 +377,7 @@ void dsputil_init(void)
pix_abs16x16_xy2 = pix_abs16x16_xy2_c; pix_abs16x16_xy2 = pix_abs16x16_xy2_c;
av_fdct = jpeg_fdct_ifast; av_fdct = jpeg_fdct_ifast;
#ifdef CONFIG_MMX #ifdef HAVE_MMX
dsputil_init_mmx(); dsputil_init_mmx();
#endif #endif
} }

@ -61,7 +61,7 @@ int pix_abs16x16_x2_c(UINT8 *blk1, UINT8 *blk2, int lx, int h);
int pix_abs16x16_y2_c(UINT8 *blk1, UINT8 *blk2, int lx, int h); int pix_abs16x16_y2_c(UINT8 *blk1, UINT8 *blk2, int lx, int h);
int pix_abs16x16_xy2_c(UINT8 *blk1, UINT8 *blk2, int lx, int h); int pix_abs16x16_xy2_c(UINT8 *blk1, UINT8 *blk2, int lx, int h);
#ifdef CONFIG_MMX #ifdef HAVE_MMX
#define MM_MMX 0x0001 /* standard MMX */ #define MM_MMX 0x0001 /* standard MMX */
#define MM_3DNOW 0x0004 /* AMD 3DNOW */ #define MM_3DNOW 0x0004 /* AMD 3DNOW */

@ -130,7 +130,7 @@ static void v_resample(UINT8 *dst, int dst_width, UINT8 *src, int wrap,
} }
} }
#ifdef CONFIG_MMX #ifdef HAVE_MMX
#include "i386/mmx.h" #include "i386/mmx.h"
@ -317,7 +317,7 @@ static void h_resample(UINT8 *dst, int dst_width, UINT8 *src, int src_width,
} else { } else {
n = dst_width; n = dst_width;
} }
#ifdef CONFIG_MMX #ifdef HAVE_MMX
if ((mm_flags & MM_MMX) && NB_TAPS == 4) if ((mm_flags & MM_MMX) && NB_TAPS == 4)
h_resample_fast4_mmx(dst, n, h_resample_fast4_mmx(dst, n,
src, src_width, src_start, src_incr, filters); src, src_width, src_start, src_incr, filters);
@ -374,7 +374,7 @@ static void component_resample(ImgReSampleContext *s,
} }
/* apply vertical filter */ /* apply vertical filter */
phase_y = get_phase(src_y); phase_y = get_phase(src_y);
#ifdef CONFIG_MMX #ifdef HAVE_MMX
/* desactivated MMX because loss of precision */ /* desactivated MMX because loss of precision */
if ((mm_flags & MM_MMX) && NB_TAPS == 4 && 0) if ((mm_flags & MM_MMX) && NB_TAPS == 4 && 0)
v_resample4_mmx(output, owidth, v_resample4_mmx(output, owidth,
@ -516,7 +516,7 @@ static void dump_filter(INT16 *filter)
} }
} }
#ifdef CONFIG_MMX #ifdef HAVE_MMX
int mm_flags; int mm_flags;
#endif #endif
@ -588,7 +588,7 @@ int main(int argc, char **argv)
} }
/* mmx test */ /* mmx test */
#ifdef CONFIG_MMX #ifdef HAVE_MMX
printf("MMX test\n"); printf("MMX test\n");
fact = 0.72; fact = 0.72;
xsize = (int)(XSIZE * fact); xsize = (int)(XSIZE * fact);

@ -434,7 +434,7 @@ int estimate_motion(MpegEncContext * s,
dmin = phods_motion_search(s, &mx, &my, range / 2, xmin, ymin, xmax, ymax); dmin = phods_motion_search(s, &mx, &my, range / 2, xmin, ymin, xmax, ymax);
break; break;
} }
#ifdef CONFIG_MMX #ifdef HAVE_MMX
if (mm_flags & MM_MMX) if (mm_flags & MM_MMX)
emms(); emms();
#endif #endif

Loading…
Cancel
Save