mirror of
https://github.com/mpv-player/mpv
synced 2025-03-19 18:05:21 +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:
parent
dddd7c62c5
commit
a92a43b91f
13
Makefile
13
Makefile
@ -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
111
configure
vendored
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user