diff --git a/Makefile b/Makefile index 3f5f2e7f92..00bfea45a6 100644 --- a/Makefile +++ b/Makefile @@ -8,6 +8,14 @@ include config.mak PRG_CFG = codec-cfg +LIBAV_INC = +ifeq ($(CONFIG_LIBAVUTIL),yes) +LIBAV_INC += -I./libavutil +endif +ifeq ($(CONFIG_LIBAVCODEC),yes) +LIBAV_INC += -I./libavcodec +endif + # Do not strip the binaries at installation ifeq ($(STRIPBINARIES),yes) INSTALLSTRIP = -s @@ -129,6 +137,7 @@ CFLAGS = $(OPTFLAGS) -I. \ $(SDL_INC) \ $(X11_INC) \ $(XVID_INC) \ + $(LIBAV_INC) \ #CFLAGS += -Wall @@ -292,6 +301,9 @@ loader/dshow/libDS_Filter.a: loader/dmo/libDMO_Filter.a: $(MAKE) -C loader/dmo +libavutil/libavutil.a: + $(MAKE) -C libavutil LIBPREF=lib LIBSUF=.a + libavcodec/libavcodec.a: $(MAKE) -C libavcodec LIBPREF=lib LIBSUF=.a diff --git a/configure b/configure index 74cc50463a..b167043001 100755 --- a/configure +++ b/configure @@ -5859,6 +5859,13 @@ else _noinputmodules="live.com $_noinputmodules" fi +echocheck "FFmpeg libavutil (static)" +if test -d libavutil ; then + _libavutil=yes +else + _libavutil=no +fi +echores "$_libavutil" echocheck "FFmpeg libavcodec (static)" if test "$_libavcodec" = auto ; then @@ -5866,8 +5873,26 @@ if test "$_libavcodec" = auto ; then _libavcodec=no if test -d libavcodec && test -f libavcodec/utils.c ; then if grep avcodec_find_encoder_by_name libavcodec/utils.c > /dev/null 2>&1 ; then - _libavcodec=yes - echores "yes" + # check if libavutil is a required + cat > $TMPC << EOF +#include "libavcodec/avcodec.h" +#if LIBAVCODEC_BUILD >= 3211265 +#error We need libavutil! +#endif +int main(void) { return 0; } +EOF + + if cc_check -I. -I./libavutil; then + _libavutil_required="no" + else + _libavutil_required="yes" + fi + if test "$_libavutil_required" != "$_libavutil"; then + _libavcodec="no (libavutil availability does not fit libavcodec version)" + else + _libavcodec="yes" + fi + echores $_libavcodec else echores "no (old ffmpeg version, use CVS !)" fi @@ -5930,6 +5955,10 @@ if test "$_libavcodec" = yes ; then _dep_libavcodec='libavcodec/libavcodec.a' _def_ffpostprocess='#define FF_POSTPROCESS 1' _codecmodules="libavcodec $_codecmodules" + if test "$_libavutil" = yes; then + _ld_libavutil='libavutil/libavutil.a' + _dep_libavutil='libavutil/libavutil.a' + fi elif test "$_libavcodecso" = yes ; then _def_libavcodec='#define USE_LIBAVCODEC 1' _def_libavcodecso='#define USE_LIBAVCODEC_SO 1' @@ -7003,8 +7032,9 @@ W32_DEP = $_dep_win32 W32_LIB = $_ld_win32 DS_DEP = $_dep_dshow DS_LIB = $_ld_dshow -AV_DEP = $_dep_libavcodec $_dep_libavformat -AV_LIB = $_ld_libavcodec $_ld_libavformat +AV_DEP = $_dep_libavutil $_dep_libavcodec $_dep_libavformat +AV_LIB = $_ld_libavformat $_ld_libavcodec $_ld_libavutil +CONFIG_LIBAVUTIL = $_libavutil_required CONFIG_LIBAVCODEC = $_libavcodec CONFIG_LIBAVFORMAT = $_libavformat ZORAN = $_zr diff --git a/libmpcodecs/Makefile b/libmpcodecs/Makefile index e2867f312e..909aef1907 100644 --- a/libmpcodecs/Makefile +++ b/libmpcodecs/Makefile @@ -183,7 +183,12 @@ ifeq ($(CONFIG_MP3LAME),yes) ENCODER_SRCS += ae_lame.c endif +LIBAV_INC = +ifeq ($(CONFIG_LIBAVUTIL),yes) +LIBAV_INC += -I../libavutil +endif ifeq ($(CONFIG_LIBAVCODEC),yes) +LIBAV_INC += -I../libavcodec ENCODER_SRCS += ae_lavc.c endif @@ -201,7 +206,7 @@ OBJS=$(SRCS:.c=.o) SRCS2=$(ENCODER_SRCS) OBJS2=$(SRCS2:.c=.o) -CFLAGS = $(OPTFLAGS) -I. -Inative -I.. -I../libmpdemux -I../loader $(EXTRA_INC) $(X264_INC) -D_GNU_SOURCE +CFLAGS = $(OPTFLAGS) -I. -Inative -I.. -I../libmpdemux -I../loader $(LIBAV_INC) $(EXTRA_INC) $(X264_INC) -D_GNU_SOURCE .SUFFIXES: .c .o diff --git a/libmpcodecs/ad_ffmpeg.c b/libmpcodecs/ad_ffmpeg.c index 4d6de38fcd..d1132d43f1 100644 --- a/libmpcodecs/ad_ffmpeg.c +++ b/libmpcodecs/ad_ffmpeg.c @@ -28,7 +28,7 @@ LIBAD_EXTERN(ffmpeg) #ifdef USE_LIBAVCODEC_SO #include #else -#include "libavcodec/avcodec.h" +#include "avcodec.h" #endif extern int avcodec_inited; diff --git a/libmpdemux/Makefile b/libmpdemux/Makefile index fc8b606b7e..0c13fb69f9 100644 --- a/libmpdemux/Makefile +++ b/libmpdemux/Makefile @@ -106,8 +106,15 @@ SRCS += muxer.c \ muxer_rawaudio.c \ muxer_rawvideo.c \ +LIBAV_INC = +ifeq ($(CONFIG_LIBAVUTIL),yes) +LIBAV_INC += -I../libavutil +endif +ifeq ($(CONFIG_LIBAVCODEC),yes) +LIBAV_INC += -I../libavcodec +endif ifeq ($(CONFIG_LIBAVFORMAT),yes) -LIBAV_INC = -I../libavcodec -I../libavformat +LIBAV_INC += -I../libavformat SRCS += muxer_lavf.c endif diff --git a/mencoder.c b/mencoder.c index 8e1f9d9da3..8592dd6d2f 100644 --- a/mencoder.c +++ b/mencoder.c @@ -80,7 +80,7 @@ #ifdef USE_LIBAVCODEC_SO #include #else -#include "libavcodec/avcodec.h" +#include "avcodec.h" #endif #endif