fixed config for direct mplayer build compatibility
authorFabrice Bellard <fabrice@bellard.org>
Mon, 23 Jul 2001 20:06:54 +0000 (20:06 +0000)
committerFabrice Bellard <fabrice@bellard.org>
Mon, 23 Jul 2001 20:06:54 +0000 (20:06 +0000)
Originally committed as revision 8 to svn://svn.ffmpeg.org/ffmpeg/trunk

Makefile
configure
doc/README.dev
doc/TODO
libav/Makefile
libavcodec/Makefile
libavcodec/common.h
libavcodec/dsputil.c
libavcodec/dsputil.h
libavcodec/imgresample.c
libavcodec/motion_est.c

index 1650c89..ffa1b80 100644 (file)
--- 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]
index f22c837..df3087a 100755 (executable)
--- 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
index ae28bc0..39cd702 100644 (file)
@@ -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
index 09c5f2b..e9b2373 100644 (file)
--- 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).
index 08d507a..0f5dcf3 100644 (file)
@@ -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 \
index a418516..e6dbe85 100644 (file)
@@ -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
index bba7d1f..3b46035 100644 (file)
@@ -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
index 7e544a4..a1734be 100644 (file)
@@ -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
 }
index 717653e..fa8eb23 100644 (file)
@@ -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 */
index 9915301..d394abd 100644 (file)
@@ -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);
index 09fe662..0d77663 100644 (file)
@@ -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