Restore the possibility to link liba52 instead of dlopening.
Originally committed as revision 7945 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
b5ea085b52
commit
7bc5f2a8a4
11
configure
vendored
11
configure
vendored
@ -78,6 +78,7 @@ show_help(){
|
|||||||
echo " --enable-x11grab enable X11 grabbing [default=no]"
|
echo " --enable-x11grab enable X11 grabbing [default=no]"
|
||||||
echo " --enable-dc1394 enable IIDC-1394 grabbing using libdc1394"
|
echo " --enable-dc1394 enable IIDC-1394 grabbing using libdc1394"
|
||||||
echo " and libraw1394 [default=no]"
|
echo " and libraw1394 [default=no]"
|
||||||
|
echo " --enable-a52 enable GPLed liba52 support [default=no]"
|
||||||
echo " --enable-a52bin open liba52.so.0 at runtime [default=no]"
|
echo " --enable-a52bin open liba52.so.0 at runtime [default=no]"
|
||||||
echo " --enable-avisynth allow reading AVISynth script files [default=no]"
|
echo " --enable-avisynth allow reading AVISynth script files [default=no]"
|
||||||
echo " --enable-dts enable GPLed libdts support [default=no]"
|
echo " --enable-dts enable GPLed libdts support [default=no]"
|
||||||
@ -486,6 +487,7 @@ CONFIG_LIST='
|
|||||||
gpl
|
gpl
|
||||||
gprof
|
gprof
|
||||||
ipv6
|
ipv6
|
||||||
|
liba52
|
||||||
liba52bin
|
liba52bin
|
||||||
libdts
|
libdts
|
||||||
libfaac
|
libfaac
|
||||||
@ -595,7 +597,7 @@ amr_wb_decoder_deps="amr_wb"
|
|||||||
amr_wb_encoder_deps="amr_wb"
|
amr_wb_encoder_deps="amr_wb"
|
||||||
dts_decoder_deps="libdts"
|
dts_decoder_deps="libdts"
|
||||||
faac_encoder_deps="libfaac"
|
faac_encoder_deps="libfaac"
|
||||||
liba52_decoder_deps="liba52bin"
|
liba52_decoder_deps="liba52"
|
||||||
libgsm_decoder_deps="libgsm"
|
libgsm_decoder_deps="libgsm"
|
||||||
libgsm_encoder_deps="libgsm"
|
libgsm_encoder_deps="libgsm"
|
||||||
libtheora_encoder_deps="libtheora"
|
libtheora_encoder_deps="libtheora"
|
||||||
@ -754,6 +756,7 @@ avisynth="no"
|
|||||||
dc1394="no"
|
dc1394="no"
|
||||||
dlfcn_h="no"
|
dlfcn_h="no"
|
||||||
dlopen="no"
|
dlopen="no"
|
||||||
|
liba52="no"
|
||||||
liba52bin="no"
|
liba52bin="no"
|
||||||
libdts="no"
|
libdts="no"
|
||||||
libfaac="no"
|
libfaac="no"
|
||||||
@ -1032,6 +1035,8 @@ for opt do
|
|||||||
;;
|
;;
|
||||||
--disable-v4l2) video4linux2="no"
|
--disable-v4l2) video4linux2="no"
|
||||||
;;
|
;;
|
||||||
|
--enable-a52) liba52="yes"
|
||||||
|
;;
|
||||||
--enable-a52bin) liba52bin="yes"
|
--enable-a52bin) liba52bin="yes"
|
||||||
;;
|
;;
|
||||||
--enable-dts) libdts="yes"
|
--enable-dts) libdts="yes"
|
||||||
@ -1182,7 +1187,7 @@ if disabled gpl ; then
|
|||||||
enabled_any $@ && die "$name is under GPL and --enable-gpl is not specified."
|
enabled_any $@ && die "$name is under GPL and --enable-gpl is not specified."
|
||||||
}
|
}
|
||||||
die_gpl_disabled "The Postprocessing code" pp
|
die_gpl_disabled "The Postprocessing code" pp
|
||||||
die_gpl_disabled "liba52" liba52bin
|
die_gpl_disabled "liba52" liba52
|
||||||
die_gpl_disabled "libxvidcore" xvid
|
die_gpl_disabled "libxvidcore" xvid
|
||||||
die_gpl_disabled "x264" x264
|
die_gpl_disabled "x264" x264
|
||||||
die_gpl_disabled "libdts" libdts
|
die_gpl_disabled "libdts" libdts
|
||||||
@ -1494,6 +1499,7 @@ enabled_all amr_nb amr_nb_fixed &&
|
|||||||
die "Only one of amr_nb and amr_nb_fixed may be enabled."
|
die "Only one of amr_nb and amr_nb_fixed may be enabled."
|
||||||
|
|
||||||
# these are off by default, so fail if requested and not available
|
# these are off by default, so fail if requested and not available
|
||||||
|
enabled liba52 && require liba52 a52dec/a52.h a52_init -la52
|
||||||
enabled libdts && require libdts dts.h dts_init -ldts -lm
|
enabled libdts && require libdts dts.h dts_init -ldts -lm
|
||||||
enabled libgsm && require libgsm gsm.h gsm_create -lgsm
|
enabled libgsm && require libgsm gsm.h gsm_create -lgsm
|
||||||
enabled libmp3lame && require LAME lame/lame.h lame_init -lmp3lame -lm
|
enabled libmp3lame && require LAME lame/lame.h lame_init -lmp3lame -lm
|
||||||
@ -1815,6 +1821,7 @@ if enabled sdl_too_old; then
|
|||||||
fi
|
fi
|
||||||
echo "Sun medialib support $mlib"
|
echo "Sun medialib support $mlib"
|
||||||
echo "AVISynth enabled $avisynth"
|
echo "AVISynth enabled $avisynth"
|
||||||
|
echo "liba52 support $liba52"
|
||||||
echo "liba52 dlopened $liba52bin"
|
echo "liba52 dlopened $liba52bin"
|
||||||
echo "libdts support $libdts"
|
echo "libdts support $libdts"
|
||||||
echo "libfaac enabled $libfaac"
|
echo "libfaac enabled $libfaac"
|
||||||
|
@ -248,7 +248,7 @@ OBJS-$(CONFIG_ADPCM_YAMAHA_DECODER) += adpcm.o
|
|||||||
OBJS-$(CONFIG_ADPCM_YAMAHA_ENCODER) += adpcm.o
|
OBJS-$(CONFIG_ADPCM_YAMAHA_ENCODER) += adpcm.o
|
||||||
|
|
||||||
# external codec libraries
|
# external codec libraries
|
||||||
OBJS-$(CONFIG_LIBA52BIN) += a52dec.o
|
OBJS-$(CONFIG_LIBA52) += a52dec.o
|
||||||
OBJS-$(CONFIG_LIBDTS) += dtsdec.o
|
OBJS-$(CONFIG_LIBDTS) += dtsdec.o
|
||||||
OBJS-$(CONFIG_LIBFAAC) += faac.o
|
OBJS-$(CONFIG_LIBFAAC) += faac.o
|
||||||
OBJS-$(CONFIG_LIBFAAD) += faad.o
|
OBJS-$(CONFIG_LIBFAAD) += faad.o
|
||||||
|
@ -26,8 +26,11 @@
|
|||||||
|
|
||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
#include <a52dec/a52.h>
|
#include <a52dec/a52.h>
|
||||||
|
|
||||||
|
#ifdef CONFIG_LIBA52BIN
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
static const char* liba52name = "liba52.so.0";
|
static const char* liba52name = "liba52.so.0";
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* liba52 - Copyright (C) Aaron Holtzman
|
* liba52 - Copyright (C) Aaron Holtzman
|
||||||
@ -79,6 +82,7 @@ static int a52_decode_init(AVCodecContext *avctx)
|
|||||||
{
|
{
|
||||||
AC3DecodeState *s = avctx->priv_data;
|
AC3DecodeState *s = avctx->priv_data;
|
||||||
|
|
||||||
|
#ifdef CONFIG_LIBA52BIN
|
||||||
s->handle = dlopen(liba52name, RTLD_LAZY);
|
s->handle = dlopen(liba52name, RTLD_LAZY);
|
||||||
if (!s->handle)
|
if (!s->handle)
|
||||||
{
|
{
|
||||||
@ -97,6 +101,15 @@ static int a52_decode_init(AVCodecContext *avctx)
|
|||||||
dlclose(s->handle);
|
dlclose(s->handle);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
s->handle = 0;
|
||||||
|
s->a52_init = a52_init;
|
||||||
|
s->a52_samples = a52_samples;
|
||||||
|
s->a52_syncinfo = a52_syncinfo;
|
||||||
|
s->a52_frame = a52_frame;
|
||||||
|
s->a52_block = a52_block;
|
||||||
|
s->a52_free = a52_free;
|
||||||
|
#endif
|
||||||
s->state = s->a52_init(0); /* later use CPU flags */
|
s->state = s->a52_init(0); /* later use CPU flags */
|
||||||
s->samples = s->a52_samples(s->state);
|
s->samples = s->a52_samples(s->state);
|
||||||
s->inbuf_ptr = s->inbuf;
|
s->inbuf_ptr = s->inbuf;
|
||||||
@ -226,7 +239,9 @@ static int a52_decode_end(AVCodecContext *avctx)
|
|||||||
{
|
{
|
||||||
AC3DecodeState *s = avctx->priv_data;
|
AC3DecodeState *s = avctx->priv_data;
|
||||||
s->a52_free(s->state);
|
s->a52_free(s->state);
|
||||||
|
#ifdef CONFIG_LIBA52BIN
|
||||||
dlclose(s->handle);
|
dlclose(s->handle);
|
||||||
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user