summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile10
-rwxr-xr-xconfigure23
-rw-r--r--doc/README.dev10
-rw-r--r--doc/TODO4
-rw-r--r--libav/Makefile4
-rw-r--r--libavcodec/Makefile26
-rw-r--r--libavcodec/common.h4
-rw-r--r--libavcodec/dsputil.c4
-rw-r--r--libavcodec/dsputil.h2
-rw-r--r--libavcodec/imgresample.c10
-rw-r--r--libavcodec/motion_est.c2
11 files changed, 63 insertions, 36 deletions
diff --git a/Makefile b/Makefile
index 1650c89612..ffa1b80a14 100644
--- a/Makefile
+++ b/Makefile
@@ -1,11 +1,11 @@
# 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]
diff --git a/configure b/configure
index f22c837398..df3087a3a7 100755
--- a/configure
+++ b/configure
@@ -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
diff --git a/doc/README.dev b/doc/README.dev
index ae28bc03be..39cd70207f 100644
--- a/doc/README.dev
+++ b/doc/README.dev
@@ -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
diff --git a/doc/TODO b/doc/TODO
index 09c5f2b6c2..e9b237349c 100644
--- a/doc/TODO
+++ b/doc/TODO
@@ -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).
diff --git a/libav/Makefile b/libav/Makefile
index 08d507a7f2..0f5dcf32af 100644
--- a/libav/Makefile
+++ b/libav/Makefile
@@ -1,5 +1,5 @@
-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 \
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index a418516b16..e6dbe85bec 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -1,11 +1,13 @@
-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
diff --git a/libavcodec/common.h b/libavcodec/common.h
index bba7d1fb9d..3b46035a64 100644
--- a/libavcodec/common.h
+++ b/libavcodec/common.h
@@ -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
diff --git a/libavcodec/dsputil.c b/libavcodec/dsputil.c
index 7e544a4524..a1734be8c1 100644
--- a/libavcodec/dsputil.c
+++ b/libavcodec/dsputil.c
@@ -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
}
diff --git a/libavcodec/dsputil.h b/libavcodec/dsputil.h
index 717653e813..fa8eb239a5 100644
--- a/libavcodec/dsputil.h
+++ b/libavcodec/dsputil.h
@@ -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 */
diff --git a/libavcodec/imgresample.c b/libavcodec/imgresample.c
index 99153013cf..d394abdd3f 100644
--- a/libavcodec/imgresample.c
+++ b/libavcodec/imgresample.c
@@ -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);
diff --git a/libavcodec/motion_est.c b/libavcodec/motion_est.c
index 09fe662613..0d776631cc 100644
--- a/libavcodec/motion_est.c
+++ b/libavcodec/motion_est.c
@@ -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