mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
fixed config for direct mplayer build compatibility
Originally committed as revision 8 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
d78647e8b4
commit
980fc7b834
10
Makefile
10
Makefile
@ -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
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
|
||||||
|
4
doc/TODO
4
doc/TODO
@ -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…
Reference in New Issue
Block a user