[FFmpeg-devel] [PATCH]configure: Fix libopus detection

James Almer jamrial at gmail.com
Thu Mar 30 02:52:45 EEST 2017


On 3/29/2017 7:47 PM, Carl Eugen Hoyos wrote:
> Hi!
> 
> Attached patch fixes a compilation error here.
> 
> Please test for success, Carl Eugen
> 
> 
> 0001-configure-Fix-libopus-detection.patch
> 
> 
> From 600b568651c60f8de609f211c814b5cd0640e584 Mon Sep 17 00:00:00 2001
> From: Carl Eugen Hoyos <cehoyos at ag.or.at>
> Date: Thu, 30 Mar 2017 00:45:06 +0200
> Subject: [PATCH] configure: Fix libopus detection.
> 
> Avoids a compilation error for old libopus.
> Regression since 37941878
> ---
>  configure |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/configure b/configure
> index a84b126..76a287e 100755
> --- a/configure
> +++ b/configure
> @@ -5797,7 +5797,7 @@ enabled libopenjpeg       && { { check_lib openjpeg-2.1/openjpeg.h opj_version -
>                                 { check_lib openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } ||
>                                 die "ERROR: libopenjpeg not found"; }
>  enabled libopenmpt        && require_pkg_config "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create
> -enabled libopus           && require_pkg_config opus opus_multistream.h opus_multistream_decoder_create
> +enabled libopus           && require_pkg_config opus opus_multistream.h opus_multistream_surround_encoder_create

Should be ok, but strictly speaking, this function is needed by the
encoder and not the decoder. Something like

enabled libopus           && {
    enabled libopus_decoder && {
        require_pkg_config opus opus_multistream.h opus_multistream_decoder_create
    }
    enabled libopus_encoder && {
        use_pkg_config "opus >= 1.1" opus_multistream.h opus_multistream_surround_encoder_create ||
            disable libopus_encoder;
    }
}

Would keep the decoder working as it used to with versions < 1.1 while
silently disabling the encoder.
A warn() call could be also added to let the user know they are getting
the decoder only with such old versions of libopus if deemed necessary.

>  enabled libpulse          && require_pkg_config libpulse pulse/pulseaudio.h pa_context_new
>  enabled librtmp           && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket
>  enabled librubberband     && require_pkg_config "rubberband >= 1.8.1" rubberband/rubberband-c.h rubberband_new
> -- 1.7.10.4



More information about the ffmpeg-devel mailing list