vp8: Only enable the encoder or decoder if it's available in libvpx

Fixes bug #619172.
This commit is contained in:
Sebastian Dröge 2010-05-20 16:49:03 +02:00
parent e428c10605
commit d3c9d84fdf
4 changed files with 22 additions and 12 deletions

View file

@ -1481,12 +1481,24 @@ AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
dnl *** vp8 *** dnl *** vp8 ***
translit(dnm, m, l) AM_CONDITIONAL(USE_VP8, vp8) translit(dnm, m, l) AM_CONDITIONAL(USE_VP8, vp8)
AG_GST_CHECK_FEATURE(VP8, [VP8 decoder], vp8, [ AG_GST_CHECK_FEATURE(VP8, [VP8 decoder], vp8, [
VPX_LIBS=""
AG_GST_CHECK_LIBHEADER(VPX, vpx, AG_GST_CHECK_LIBHEADER(VPX, vpx,
vpx_codec_version, , vpx_codec_version, ,
vpx/vpx_codec.h, vpx/vpx_codec.h, [
HAVE_VP8=yes HAVE_VP8_ENCODER=no
VPX_LIBS="-lvpx" HAVE_VP8_DECODER=no
AC_SUBST(VPX_LIBS)) AC_CHECK_LIB(vpx, vpx_codec_vp8_cx_algo, [
HAVE_VP8=yes
AC_DEFINE(HAVE_VP8_ENCODER, 1, [Defined if the VP8 encoder is available])
VPX_LIBS="-lvpx"
])
AC_CHECK_LIB(vpx, vpx_codec_vp8_dx_algo, [
HAVE_VP8=yes
AC_DEFINE(HAVE_VP8_DECODER, 1, [Defined if the VP8 decoder is available])
VPX_LIBS="-lvpx"
])
])
AC_SUBST(VPX_LIBS)
]) ])
else else

View file

@ -44,7 +44,7 @@
#include "gstvp8utils.h" #include "gstvp8utils.h"
#if CONFIG_VP8_DECODER #ifdef HAVE_VP8_DECODER
GST_DEBUG_CATEGORY_STATIC (gst_vp8dec_debug); GST_DEBUG_CATEGORY_STATIC (gst_vp8dec_debug);
#define GST_CAT_DEFAULT gst_vp8dec_debug #define GST_CAT_DEFAULT gst_vp8dec_debug
@ -532,4 +532,4 @@ gst_vp8_dec_handle_frame (GstBaseVideoDecoder * decoder, GstVideoFrame * frame)
return ret; return ret;
} }
#endif /* CONFIG_VP8_DECODER */ #endif /* HAVE_VP8_DECODER */

View file

@ -45,7 +45,7 @@
#include "gstvp8utils.h" #include "gstvp8utils.h"
#if CONFIG_VP8_ENCODER #ifdef HAVE_VP8_ENCODER
GST_DEBUG_CATEGORY_STATIC (gst_vp8enc_debug); GST_DEBUG_CATEGORY_STATIC (gst_vp8enc_debug);
#define GST_CAT_DEFAULT gst_vp8enc_debug #define GST_CAT_DEFAULT gst_vp8enc_debug
@ -844,4 +844,4 @@ gst_vp8_enc_sink_event (GstPad * pad, GstEvent * event)
return ret; return ret;
} }
#endif /* CONFIG_VP8_ENCODER */ #endif /* HAVE_VP8_ENCODER */

View file

@ -25,20 +25,18 @@
#include <gst/gst.h> #include <gst/gst.h>
#include <vpx/vpx_config.h>
GType gst_vp8_dec_get_type (void); GType gst_vp8_dec_get_type (void);
GType gst_vp8_enc_get_type (void); GType gst_vp8_enc_get_type (void);
static gboolean static gboolean
plugin_init (GstPlugin * plugin) plugin_init (GstPlugin * plugin)
{ {
#if CONFIG_VP8_DECODER #ifdef HAVE_VP8_DECODER
gst_element_register (plugin, "vp8dec", GST_RANK_PRIMARY, gst_element_register (plugin, "vp8dec", GST_RANK_PRIMARY,
gst_vp8_dec_get_type ()); gst_vp8_dec_get_type ());
#endif #endif
#if CONFIG_VP8_ENCODER #ifdef HAVE_VP8_DECODER
gst_element_register (plugin, "vp8enc", GST_RANK_PRIMARY, gst_element_register (plugin, "vp8enc", GST_RANK_PRIMARY,
gst_vp8_enc_get_type ()); gst_vp8_enc_get_type ());
#endif #endif