Add configure options for jpeg/mpeg4 26/3326/1
authorZhao Halley <halley.zhao@intel.com>
Mon, 15 Apr 2013 01:16:39 +0000 (09:16 +0800)
committerZhao Halley <halley.zhao@intel.com>
Mon, 15 Apr 2013 01:42:43 +0000 (09:42 +0800)
some platforms may or may not support jpeg/mpeg4 decoder,
add configure options for these feature

configure.ac
gst-libs/gst/vaapi/Makefile.am
gst/vaapi/gstvaapidecode.c
tests/test-decode.c

index dd03187..80cf603 100755 (executable)
@@ -138,6 +138,16 @@ AC_ARG_ENABLE(encoders,
                    [enable encoders @<:@default=no@:>@]),
     [], [enable_encoders="no"])
 
+AC_ARG_ENABLE(jpeg,
+    AC_HELP_STRING([--disable-jpeg],
+                   [disable jpeg decoder @<:@default=yes@:>@]),
+    [], [enable_jpeg="yes"])
+
+AC_ARG_ENABLE(mpeg4,
+    AC_HELP_STRING([--disable-mpeg4],
+                   [disable mpeg4 decoders @<:@default=yes@:>@]),
+    [], [enable_mpeg4="yes"])
+
 dnl Check for basic libraries
 AC_CHECK_LIB(m, tan)
 
@@ -479,6 +489,7 @@ AC_SUBST(LIBVA_GLX_PKGNAME)
 
 dnl Check for JPEG decoding API (0.32.1+)
 USE_JPEG_DECODER=0
+if test "$enable_jpeg" = "yes"; then
 AC_CACHE_CHECK([for JPEG decoding API],
     ac_cv_have_jpeg_decoding_api, [
     saved_CFLAGS="$CFLAGS"
@@ -498,6 +509,13 @@ AC_CACHE_CHECK([for JPEG decoding API],
     CFLAGS="$saved_CFLAGS"
     LIBS="$saved_LIBS"
 ])
+fi
+
+dnl Check for MPEG-4 decoding
+USE_MPEG4_DECODER=1
+if test "$enable_mpeg4" = "no"; then
+    USE_MPEG4_DECODER=0
+fi
 
 dnl Check libva old H.264 encoder API
 HAVE_OLD_H264_ENCODER=0
@@ -558,6 +576,10 @@ AC_DEFINE_UNQUOTED(USE_JPEG_DECODER, $USE_JPEG_DECODER,
     [Defined to 1 if JPEG decoder is used])
 AM_CONDITIONAL(USE_JPEG_DECODER, test $USE_JPEG_DECODER -eq 1)
 
+AC_DEFINE_UNQUOTED(USE_MPEG4_DECODER, $USE_MPEG4_DECODER,
+    [Defined to 1 if MPEG4 decoder is used])
+AM_CONDITIONAL(USE_MPEG4_DECODER, test $USE_MPEG4_DECODER -eq 1)
+
 AC_DEFINE_UNQUOTED(USE_DRM, $USE_DRM,
     [Defined to 1 if DRM is enabled])
 AM_CONDITIONAL(USE_DRM, test $USE_DRM -eq 1)
index 6489431..3a758bf 100644 (file)
@@ -47,7 +47,6 @@ libgstvaapi_source_c =                                \
        gstvaapidecoder_dpb.c                   \
        gstvaapidecoder_h264.c                  \
        gstvaapidecoder_mpeg2.c                 \
-       gstvaapidecoder_mpeg4.c                 \
        gstvaapidecoder_objects.c               \
        gstvaapidecoder_vc1.c                   \
        gstvaapidisplay.c                       \
@@ -75,7 +74,6 @@ libgstvaapi_source_h =                                \
        gstvaapidecoder.h                       \
        gstvaapidecoder_h264.h                  \
        gstvaapidecoder_mpeg2.h                 \
-       gstvaapidecoder_mpeg4.h                 \
        gstvaapidecoder_vc1.h                   \
        gstvaapidisplay.h                       \
        gstvaapidisplaycache.h                  \
@@ -139,6 +137,11 @@ libgstvaapi_source_c += gstvaapidecoder_jpeg.c
 libgstvaapi_source_h += gstvaapidecoder_jpeg.h
 endif
 
+if USE_MPEG4_DECODER
+libgstvaapi_source_c += gstvaapidecoder_mpeg4.c
+libgstvaapi_source_h += gstvaapidecoder_mpeg4.h
+endif
+
 libgstvaapi_drm_source_c =                     \
        gstvaapidisplay_drm.c                   \
        gstvaapiwindow_drm.c                    \
index 5e2c8ef..309348e 100644 (file)
@@ -62,13 +62,17 @@ static const GstElementDetails gst_vaapidecode_details =
 
 static const char gst_vaapidecode_sink_caps_str[] =
     GST_CAPS_CODEC("video/mpeg, mpegversion=2, systemstream=(boolean)false")
+#if USE_MPEG4_DECODER
     GST_CAPS_CODEC("video/mpeg, mpegversion=4")
     GST_CAPS_CODEC("video/x-divx")
     GST_CAPS_CODEC("video/x-xvid")
     GST_CAPS_CODEC("video/x-h263")
+#endif
     GST_CAPS_CODEC("video/x-h264")
     GST_CAPS_CODEC("video/x-wmv")
+#if USE_JPEG_DECODER
     GST_CAPS_CODEC("image/jpeg")
+#endif
     ;
 
 static const char gst_vaapidecode_src_caps_str[] =
@@ -337,10 +341,12 @@ gst_vaapidecode_create(GstVaapiDecode *decode, GstCaps *caps)
     case GST_VAAPI_CODEC_MPEG2:
         decode->decoder = gst_vaapi_decoder_mpeg2_new(dpy, caps);
         break;
+#if USE_MPEG4_DECODER
     case GST_VAAPI_CODEC_MPEG4:
     case GST_VAAPI_CODEC_H263:
         decode->decoder = gst_vaapi_decoder_mpeg4_new(dpy, caps);
         break;
+#endif
     case GST_VAAPI_CODEC_H264:
         decode->decoder = gst_vaapi_decoder_h264_new(dpy, caps);
         break;
index 458416e..f02e612 100644 (file)
@@ -153,9 +153,11 @@ main(int argc, char *argv[])
     case GST_VAAPI_CODEC_MPEG2:
         decoder = gst_vaapi_decoder_mpeg2_new(display, decoder_caps);
         break;
+#if USE_MPEG4_DECODER
     case GST_VAAPI_CODEC_MPEG4:
         decoder = gst_vaapi_decoder_mpeg4_new(display, decoder_caps);
         break;
+#endif
     case GST_VAAPI_CODEC_VC1:
         decoder = gst_vaapi_decoder_vc1_new(display, decoder_caps);
         break;