Commit 980fc7b8 authored by Fabrice Bellard's avatar Fabrice Bellard
Browse files

fixed config for direct mplayer build compatibility


Originally committed as revision 8 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent d78647e8
# Main ffmpeg Makefile
# (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
ifdef CONFIG_GPROF
ifeq ($(TARGET_GPROF),yes)
CFLAGS+=-p
LDFLAGS+=-p
endif
......@@ -28,7 +28,7 @@ ffserver: ffserver.o libav/libav.a libavcodec/libavcodec.a
gcc $(CFLAGS) -c -o $@ $<
install: all
install -s -m 755 $(PROG) $(PREFIX)/bin
install -s -m 755 $(PROG) $(prefix)/bin
clean:
make -C libavcodec clean
......@@ -36,7 +36,7 @@ clean:
rm -f *.o *~ gmon.out TAGS $(PROG)
distclean: clean
rm -f Rules.mk config.h
rm -f config.mak config.h
TAGS:
etags *.[ch] libav/*.[ch] libavcodec/*.[ch]
......@@ -53,23 +53,24 @@ echo "CPU $cpu"
echo "MMX enabled $mmx"
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 "PREFIX=$prefix" >> config.mk
echo "CC=$cc" >> config.mk
echo "AR=$ar" >> config.mk
echo "prefix=$prefix" >> config.mak
echo "CC=$cc" >> config.mak
echo "AR=$ar" >> config.mak
echo "OPTFLAGS=-O2" >> config.mak
if [ "$cpu" = "x86" ] ; then
echo "CONFIG_CPU_X86=y" >> config.mk
echo "#define CONFIG_CPU_X86 1" >> config.h
echo "TARGET_ARCH_X86=yes" >> config.mak
echo "#define ARCH_X86 1" >> config.h
fi
if [ "$mmx" = "yes" ] ; then
echo "CONFIG_MMX=y" >> config.mk
echo "#define CONFIG_MMX 1" >> config.h
echo "TARGET_MMX=yes" >> config.mak
echo "#define HAVE_MMX 1" >> config.h
fi
if [ "$gprof" = "yes" ] ; then
echo "CONFIG_GPROF=y" >> config.mk
echo "#define CONFIG_GPROF 1" >> config.h
echo "TARGET_GPROF=yes" >> config.mak
echo "#define HAVE_GPROF 1" >> config.h
fi
......@@ -8,7 +8,15 @@
demux code for several formats). (no example yet, the API is likely
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
......
......@@ -16,7 +16,11 @@ Planned in next release:
(DONE) - add RV10 decoding.
(DONE) - add true pgm support.
(DONE) - msmpeg4 0x18 fix.
- add encode and ac3/mpglib disabling option
- 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
mpegvideo/mpegmux).
- add external alloc for libavcodec (avifile request).
......
include ../config.mk
CFLAGS= -O2 -Wall -g -I../libavcodec
include ../config.mak
CFLAGS= $(OPTFLAGS) -Wall -g -I../libavcodec
OBJS= rm.o mpeg.o asf.o avienc.o jpegenc.o swf.o wav.o raw.o \
avidec.o ffm.o \
......
include ../config.mk
CFLAGS= -O2 -Wall -g
include ../config.mak
CFLAGS= $(OPTFLAGS) -Wall -g
LDFLAGS= -g
OBJS= common.o utils.o mpegvideo.o h263.o jrevdct.o jfdctfst.o \
mpegaudio.o ac3enc.o mjpegenc.o resample.o dsputil.o \
motion_est.o imgconvert.o imgresample.o msmpeg4.o \
mpeg12.o h263dec.o rv10.o
ASM_OBJS=
# currently using libac3 for ac3 decoding
OBJS+= ac3dec.o \
......@@ -18,19 +20,22 @@ OBJS+= mpegaudiodec.o \
mpglib/dct64_i386.o mpglib/decode_i386.o mpglib/tabinit.o
# i386 mmx specific stuff
ifdef CONFIG_MMX
OBJS += i386/fdct_mmx.o i386/fdctdata.o i386/sad_mmx.o i386/cputest.o \
ifeq ($(TARGET_MMX),yes)
ASM_OBJS += i386/fdct_mmx.o i386/sad_mmx.o
OBJS += i386/fdctdata.o i386/cputest.o \
i386/dsputil_mmx.o
endif
SRCS = $(OBJS:.o=.c) $(ASM_OBJS:.o=.s)
LIB= libavcodec.a
TESTS= imgresample-test dct-test
all: $(LIB) apiexample
$(LIB): $(OBJS)
$(LIB): $(OBJS) $(ASM_OBJS)
rm -f $@
$(AR) rcs $@ $(OBJS)
$(AR) rcs $@ $(OBJS) $(ASM_OBJS)
dsputil.o: dsputil.c dsputil.h
......@@ -40,12 +45,21 @@ dsputil.o: dsputil.c dsputil.h
%.o: %.s
nasm -f elf -o $@ $<
# depend only used by mplayer now
dep: depend
depend:
$(CC) -MM $(CFLAGS) $(SRCS) 1>.depend
clean:
rm -f *.o *~ *.a i386/*.o i386/*~ \
libac3/*.o libac3/*~ \
mpglib/*.o mpglib/*~ \
apiexample $(TESTS)
distclean: clean
rm -f Makefile.bak .depend
# api example program
apiexample: apiexample.c $(LIB)
$(CC) $(CFLAGS) -o $@ $< $(LIB) -lm
......
......@@ -3,8 +3,8 @@
#include "../config.h"
#ifndef USE_LIBAVCODEC
// workaround for typedef conflict in MPlayer
#ifndef __WINE_WINDEF16_H
/* workaround for typedef conflict in MPlayer (wine typedefs) */
typedef unsigned short UINT16;
typedef signed short INT16;
#endif
......
......@@ -21,7 +21,7 @@
#include "avcodec.h"
#include "dsputil.h"
#ifdef CONFIG_MMX
#ifdef HAVE_MMX
int mm_flags; /* multimedia extension flags */
#endif
......@@ -377,7 +377,7 @@ void dsputil_init(void)
pix_abs16x16_xy2 = pix_abs16x16_xy2_c;
av_fdct = jpeg_fdct_ifast;
#ifdef CONFIG_MMX
#ifdef HAVE_MMX
dsputil_init_mmx();
#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_xy2_c(UINT8 *blk1, UINT8 *blk2, int lx, int h);
#ifdef CONFIG_MMX
#ifdef HAVE_MMX
#define MM_MMX 0x0001 /* standard MMX */
#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"
......@@ -317,7 +317,7 @@ static void h_resample(UINT8 *dst, int dst_width, UINT8 *src, int src_width,
} else {
n = dst_width;
}
#ifdef CONFIG_MMX
#ifdef HAVE_MMX
if ((mm_flags & MM_MMX) && NB_TAPS == 4)
h_resample_fast4_mmx(dst, n,
src, src_width, src_start, src_incr, filters);
......@@ -374,7 +374,7 @@ static void component_resample(ImgReSampleContext *s,
}
/* apply vertical filter */
phase_y = get_phase(src_y);
#ifdef CONFIG_MMX
#ifdef HAVE_MMX
/* desactivated MMX because loss of precision */
if ((mm_flags & MM_MMX) && NB_TAPS == 4 && 0)
v_resample4_mmx(output, owidth,
......@@ -516,7 +516,7 @@ static void dump_filter(INT16 *filter)
}
}
#ifdef CONFIG_MMX
#ifdef HAVE_MMX
int mm_flags;
#endif
......@@ -588,7 +588,7 @@ int main(int argc, char **argv)
}
/* mmx test */
#ifdef CONFIG_MMX
#ifdef HAVE_MMX
printf("MMX test\n");
fact = 0.72;
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);
break;
}
#ifdef CONFIG_MMX
#ifdef HAVE_MMX
if (mm_flags & MM_MMX)
emms();
#endif
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment