1
0
mirror of https://github.com/mpv-player/mpv synced 2025-03-20 10:17:31 +00:00

build: Readd support for code depending on FFmpeg internals

Add configure option --ffmpeg-source-dir=PATH. If the user specifies
this option then building code that depends on FFmpeg internals is
enabled and the files files which use internal lavf headers will get
them from this path. The FFmpeg libraries linked with must export
needed internal symbols.
This commit is contained in:
Uoti Urpala 2009-07-26 05:55:40 +03:00
parent dddd7c62c5
commit a92a43b91f
3 changed files with 83 additions and 43 deletions

View File

@ -137,7 +137,7 @@ SRCS_COMMON-$(LIBAVCODEC) += av_opts.c \
libmpcodecs/vf_screenshot.c \
# These filters use private headers and do not work with shared libavcodec.
SRCS_COMMON-$(LIBAVCODEC_A) += libaf/af_lavcac3enc.c \
SRCS_COMMON-$(LIBAVCODEC_INTERNALS) += libaf/af_lavcac3enc.c \
libmpcodecs/vf_fspp.c \
libmpcodecs/vf_geq.c \
libmpcodecs/vf_mcdeint.c \
@ -791,6 +791,17 @@ codec-cfg.d codec-cfg.o: codecs.conf.h
$(DEPS) $(MENCODER_DEPS) $(MPLAYER_DEPS): help_mp.h
$(call ADDSUFFIXES,.d .o,mpcommon vobsub stream/stream_cddb stream/network libmpdemux/muxer_avi): version.h
# Files that depend on libswscale internals
libvo/vo_mga.o libvo/vo_xmga.o libmpcodecs/vf_halfpack.o libmpcodecs/vf_palette.o libmpcodecs/vf_rgb2bgr.o libmpcodecs/vf_yuy2.o: CFLAGS := -I$(FFMPEG_SOURCE_PATH) $(CFLAGS)
# Files that depend on libavcodec internals
libaf/af_lavcac3enc.o libmpcodecs/vf_fspp.o libmpcodecs/vf_geq.o libmpcodecs/vf_mcdeint.o libmpcodecs/vf_qp.o libmpcodecs/vf_spp.o libvo/jpeg_enc.o: CFLAGS := -I$(FFMPEG_SOURCE_PATH) $(CFLAGS)
# yuv4mpeg has rgb conversion code under #ifdef CONFIG_LIBSWSCALE_INTERNALS
ifeq ($(LIBSWSCALE_INTERNALS),yes)
libvo/vo_yuv4mpeg.o: CFLAGS := -I$(FFMPEG_SOURCE_PATH) $(CFLAGS)
endif
libdvdcss/%: CFLAGS := -Ilibdvdcss -D__USE_UNIX98 -D_GNU_SOURCE -DVERSION=\"1.2.10\" $(CFLAGS_LIBDVDCSS) $(CFLAGS)
libdvdnav/%: CFLAGS := -Ilibdvdnav -D__USE_UNIX98 -D_GNU_SOURCE -DHAVE_CONFIG_H -DVERSION=\"MPlayer-custom\" $(CFLAGS)
libdvdread4/%: CFLAGS := -Ilibdvdread4 -D__USE_UNIX98 -D_GNU_SOURCE $(CFLAGS_LIBDVDCSS_DVDREAD) $(CFLAGS)

111
configure vendored
View File

@ -353,8 +353,8 @@ Video output:
--enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
--enable-dvb enable DVB video output [autodetect]
--enable-dvbhead enable DVB video output (HEAD version) [autodetect]
--enable-mga enable mga_vid video output [broken, disabled]
--enable-xmga enable mga_vid X11 video output [broken, disabled]
--enable-mga enable mga_vid video output [autodetect]
--enable-xmga enable mga_vid X11 video output [autodetect]
--enable-xv enable Xv video output [autodetect]
--enable-xvmc enable XvMC acceleration [disable]
--enable-vdpau enable VDPAU acceleration [autodetect]
@ -448,6 +448,7 @@ Advanced options:
--disable-sighandler disable sighandler for crashes [enable]
--enable-crash-debug enable automatic gdb attach on crash [disable]
--enable-dynamic-plugins enable dynamic A/V plugins [disable]
--ffmpeg-source-dir=PATH enable features requiring internal FFmpeg headers
Use these options if autodetection fails:
--extra-cflags=FLAGS extra CFLAGS
@ -509,6 +510,8 @@ _libavcodec_so=auto
_libavformat_so=auto
_libpostproc_so=auto
_libswscale_so=auto
_libavcodec_internals=no
_libswscale_internals=no
_mencoder=yes
_mplayer=yes
_x11=auto
@ -593,8 +596,8 @@ _live=auto
_nemesi=auto
_native_rtsp=yes
_xinerama=auto
_mga=no
_xmga=no
_mga=auto
_xmga=auto
_vm=auto
_xf86keysym=auto
_mlib=no #broken, thus disabled
@ -1004,9 +1007,9 @@ for ac_option do
--disable-nemesi) _nemesi=no ;;
--enable-xinerama) _xinerama=yes ;;
--disable-xinerama) _xinerama=no ;;
--enable-mga) _mga=no ;;
--enable-mga) _mga=yes ;;
--disable-mga) _mga=no ;;
--enable-xmga) _xmga=no ;;
--enable-xmga) _xmga=yes ;;
--disable-xmga) _xmga=no ;;
--enable-vm) _vm=yes ;;
--disable-vm) _vm=no ;;
@ -1080,6 +1083,8 @@ for ac_option do
--disable-libpostproc_so) _libpostproc_so=no ;;
--enable-libswscale_so) _libswscale_so=yes ;;
--disable-libswscale_so) _libswscale_so=no ;;
--ffmpeg-source-dir=*)
_ffmpeg_source=$(echo $ac_option | cut -d '=' -f 2 ) ;;
--enable-lirc) _lirc=yes ;;
--disable-lirc) _lirc=no ;;
@ -4481,36 +4486,6 @@ else
_novomodules="xvidix $_novomodules"
fi
echocheck "/dev/mga_vid"
if test "$_mga" = auto ; then
_mga=no
test -c /dev/mga_vid && _mga=yes
fi
if test "$_mga" = yes ; then
def_mga='#define CONFIG_MGA 1'
_vomodules="mga $_vomodules"
else
def_mga='#undef CONFIG_MGA'
_novomodules="mga $_novomodules"
fi
echores "$_mga"
echocheck "xmga"
if test "$_xmga" = auto ; then
_xmga=no
test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
fi
if test "$_xmga" = yes ; then
def_xmga='#define CONFIG_XMGA 1'
_vomodules="xmga $_vomodules"
else
def_xmga='#undef CONFIG_XMGA'
_novomodules="xmga $_novomodules"
fi
echores "$_xmga"
echocheck "GGI"
if test "$_ggi" = auto ; then
cat > $TMPC << EOF
@ -6919,6 +6894,16 @@ test "$_libswscale_so" = yes \
&& def_libswscale_so='#define CONFIG_LIBSWSCALE_SO 1'
echores "$_libswscale"
def_libswscale_internals="#undef CONFIG_LIBSWSCALE_INTERNALS"
if ! test -z "$_ffmpeg_source" ; then
test "$_libswscale" = yes && def_libswscale_internals="#define CONFIG_LIBSWSCALE_INTERNALS 1" && _libswscale_internals=yes
fi
def_libavcodec_internals="#undef CONFIG_LIBAVCODEC_INTERNALS"
if ! test -z "$_ffmpeg_source" ; then
test "$_libavcodec" = yes && def_libavcodec_internals="#define CONFIG_LIBAVCODEC_INTERNALS 1" && _libavcodec_internals=yes
fi
echocheck "libdv-0.9.5+"
if test "$_libdv" = auto ; then
_libdv=no
@ -7007,7 +6992,48 @@ else
fi
echores "$_libnut"
#check must be done after libavcodec one
# These VO checks must be done after libavcodec/libswscale one
echocheck "/dev/mga_vid"
if test "$_mga" = auto ; then
_mga=no
test -c /dev/mga_vid && _mga=yes
fi
if test "$_mga" = yes ; then
if test "$_libswscale_internals" = yes ; then
def_mga='#define CONFIG_MGA 1'
_vomodules="mga $_vomodules"
else
_res_comment="libswscale internal headers are required by mga, sorry"
def_mga='#undef CONFIG_MGA'
_novomodules="mga $_novomodules"
fi
else
def_mga='#undef CONFIG_MGA'
_novomodules="mga $_novomodules"
fi
echores "$_mga"
echocheck "xmga"
if test "$_xmga" = auto ; then
_xmga=no
test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
fi
if test "$_xmga" = yes ; then
if test "$_libswscale_internals" = yes ; then
def_xmga='#define CONFIG_XMGA 1'
_vomodules="xmga $_vomodules"
else
_res_comment="libswscale internal headers are required by mga, sorry"
def_xmga='#undef CONFIG_XMGA'
_novomodules="xmga $_novomodules"
fi
else
def_xmga='#undef CONFIG_XMGA'
_novomodules="xmga $_novomodules"
fi
echores "$_xmga"
echocheck "zr"
if test "$_zr" = auto ; then
#36067's seem to identify themselves as 36057PQC's, so the line
@ -7019,11 +7045,11 @@ if test "$_zr" = auto ; then
fi
fi
if test "$_zr" = yes ; then
if test "$_libavcodec_a" = yes ; then
if test "$_libavcodec_internals" = yes ; then
def_zr='#define CONFIG_ZR 1'
_vomodules="zr zr2 $_vomodules"
else
_res_comment="libavcodec (static) is required by zr, sorry"
_res_comment="libavcodec internal headers are required by zr, sorry"
_novomodules="zr $_novomodules"
def_zr='#undef CONFIG_ZR'
fi
@ -7925,7 +7951,9 @@ LIBPOSTPROC = $_libpostproc
LIBPOSTPROC_SO = $_libpostproc_so
LIBSWSCALE = $_libswscale
LIBSWSCALE_SO = $_libswscale_so
LIBSWSCALE_INTERNALS = no
LIBAVCODEC_INTERNALS = $_libavcodec_internals
LIBSWSCALE_INTERNALS = $_libswscale_internals
FFMPEG_SOURCE_PATH = $_ffmpeg_source
# Some FFmpeg codecs depend on these. Enable them unconditionally for now.
CONFIG_AANDCT=yes
@ -8338,7 +8366,8 @@ $def_libpostproc
$def_libpostproc_so
$def_libswscale
$def_libswscale_so
#undef CONFIG_LIBSWSCALE_INTERNALS
$def_libavcodec_internals
$def_libswscale_internals
#define CONFIG_DECODERS 1
#define CONFIG_ENCODERS 1

View File

@ -69,7 +69,7 @@ static af_info_t* filter_list[]={
#endif
&af_info_volnorm,
&af_info_extrastereo,
#ifdef CONFIG_LIBAVCODEC_A
#ifdef CONFIG_LIBAVCODEC_INTERNALS
&af_info_lavcac3enc,
#endif
#ifdef CONFIG_LIBAVCODEC