[FFmpeg-devel] [PATCH 2/2] libfdk-aacenc: disable hard version requirements

Timothy Gu timothygu99 at gmail.com
Wed Feb 5 22:19:15 CET 2014


On Feb 4, 2014 8:40 PM, "James Almer" <jamrial at gmail.com> wrote:
>
> On 05/02/14 1:01 AM, Timothy Gu wrote:
> > Enable compilation on machines with an old libfdk-aac.
> >
> > Signed-off-by: Timothy Gu <timothygu99 at gmail.com>
> > ---
> >  configure                  | 4 +---
> >  doc/encoders.texi          | 3 +++
> >  libavcodec/libfdk-aacenc.c | 4 ++++
> >  3 files changed, 8 insertions(+), 3 deletions(-)
> >
> > diff --git a/configure b/configure
> > index c46bfd3..32bc5ba 100755
> > --- a/configure
> > +++ b/configure
> > @@ -4437,9 +4437,7 @@ enabled libcelt           && require libcelt
celt/celt.h celt_decode -lcelt0 &&
> >                                 die "ERROR: libcelt must be installed
and version must be >= 0.11.0."; }
> >  enabled libcaca           && require_pkg_config caca caca.h
caca_create_canvas
> >  enabled libfaac           && require2 libfaac "stdint.h faac.h"
faacEncGetVersion -lfaac
> > -enabled libfdk_aac        && require libfdk_aac fdk-aac/aacenc_lib.h
aacEncOpen -lfdk-aac &&
> > -                             { check_cpp_condition
fdk-aac/aacenc_lib.h "AACENCODER_LIB_VL0 >= 3 && AACENCODER_LIB_VL1 >= 4 &&
AACENCODER_LIB_VL2 >= 12" ||
> > -                               die "ERROR: libfdk-aac must be
installed and version must be >= 0.1.3."; }
> > +enabled libfdk_aac        && require libfdk_aac fdk-aac/aacenc_lib.h
aacEncOpen -lfdk-aac
> >  flite_libs="-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal
-lflite_cmu_us_kal16 -lflite_cmu_us_rms -lflite_cmu_us_slt
-lflite_usenglish -lflite_cmulex -lflite"
> >  enabled libflite          && require2 libflite "flite/flite.h"
flite_init $flite_libs
> >  enabled libfreetype       && require_libfreetype
> > diff --git a/doc/encoders.texi b/doc/encoders.texi
> > index d163440..027b395 100644
> > --- a/doc/encoders.texi
> > +++ b/doc/encoders.texi
> > @@ -623,6 +623,9 @@ VBR encoding, enabled through the @option{vbr} or
@option{flags
> >  +qscale} options, is experimental and only works with some
> >  combinations of parameters.
> >
> > +Support for encoding 7.1 audio is only supported with libfdk-aac 0.1.3
or
> > +higher.
>
> "Support for encoding 7.1 audio is only available with libfdk-aac 0.1.3
or higher"
>
> > +
> >  For more information see the fdk-aac project at
> >  @url{http://sourceforge.net/p/opencore-amr/fdk-aac/}.
> >
> > diff --git a/libavcodec/libfdk-aacenc.c b/libavcodec/libfdk-aacenc.c
> > index 2d91e58..e6bcfd7 100644
> > --- a/libavcodec/libfdk-aacenc.c
> > +++ b/libavcodec/libfdk-aacenc.c
> > @@ -151,6 +151,7 @@ static av_cold int aac_encode_init(AVCodecContext
*avctx)
> >      case 4: mode = MODE_1_2_1;   sce = 2; cpe = 1; break;
> >      case 5: mode = MODE_1_2_2;   sce = 1; cpe = 2; break;
> >      case 6: mode = MODE_1_2_2_1; sce = 2; cpe = 2; break;
> > +#if AACENCODER_LIB_VL0 >= 3 && AACENCODER_LIB_VL1 >= 4 &&
AACENCODER_LIB_VL2 >= 12
>

> Assuming AACENCODER_LIB_VL2 will be reset to 0 once AACENCODER_LIB_VL1 is
bumped to 5
> or AACENCODER_LIB_VL0 to 4, the correct check would be
>
> #if AACENCODER_LIB_VL0 > 3 || (AACENCODER_LIB_VL0 == 3 &&
AACENCODER_LIB_VL1 > 4) || \
>     (AACENCODER_LIB_VL0 == 3 && AACENCODER_LIB_VL1 == 4 &&
AACENCODER_LIB_VL2 >= 12)
>
> Otherwise, it will be false with versions 3.5.* and above.
> Alternatively, since these three defines were introduced after the 7.1
encoding feature,
> a simple #ifdef AACENCODER_LIB_VL0 should be enough.

Yes. I just copied from the configure check. Obviously the configure check
wasn't correct either.

>
> >      case 8:
> >          sce = 2;
> >          cpe = 3;
> > @@ -161,6 +162,7 @@ static av_cold int aac_encode_init(AVCodecContext
*avctx)
> >              mode = MODE_7_1_FRONT_CENTER;
> >          }
> >          break;
> > +#endif
> >      default:
> >          av_log(avctx, AV_LOG_ERROR,
> >                 "Unsupported number of channels %d\n", avctx->channels);
> > @@ -394,8 +396,10 @@ static const uint64_t aac_channel_layout[] = {
> >      AV_CH_LAYOUT_4POINT0,
> >      AV_CH_LAYOUT_5POINT0_BACK,
> >      AV_CH_LAYOUT_5POINT1_BACK,
> > +#if AACENCODER_LIB_VL0 >= 3 && AACENCODER_LIB_VL1 >= 4 &&
AACENCODER_LIB_VL2 >= 12
>
> Same as above
>
> >      AV_CH_LAYOUT_7POINT1_WIDE_BACK,
> >      AV_CH_LAYOUT_7POINT1,
> > +#endif
> >      0,
> >  };
> >
> >
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


More information about the ffmpeg-devel mailing list