[FFmpeg-devel] [PATCH 1/3] aacenc: use constants to set AAC coder

Michael Niedermayer michaelni at gmx.at
Thu Sep 12 17:34:22 CEST 2013


On Thu, Sep 12, 2013 at 09:17:00AM +0200, Stefano Sabatini wrote:
> On date Tuesday 2013-09-10 20:28:07 -0700, Timothy Gu encoded:
> > On Tue, Sep 10, 2013 at 2:59 AM, Stefano Sabatini <stefasab at gmail.com> wrote:
> > 
> > > Yes, and probably while at it also:
> > >
> > > AACCoefficientsEncoder ff_aac_coders[AAC_CODER_NB] = {
> > >     [AAC_CODER_FAAC] = {
> > >         search_for_quantizers_faac,
> > >         encode_window_bands_info,
> > >         quantize_and_encode_band,
> > >         search_for_ms,
> > >     },
> > >     [AAC_CODER_ANMR] = {
> > >         search_for_quantizers_anmr,
> > >         encode_window_bands_info,
> > >         quantize_and_encode_band,
> > >         search_for_ms,
> > >     },
> > >     ...
> > 
> > I honestly didn't know that you can do this before you told me this
> > (due to my very poor C skills and experience) ...
> > 
> > New patched attached.
> > 
> > [...]
> > 
> > Timothy
> 
> > From 36902a0b03c61b6aff1ae1be469a12db914e4a89 Mon Sep 17 00:00:00 2001
> > From: Timothy Gu <timothygu99 at gmail.com>
> > Date: Tue, 10 Sep 2013 20:23:32 -0700
> > Subject: [PATCH 1/4] aacenc: add AAC_CODER_(FAAC|ANMR|etc.) macros
> > 
> > Signed-off-by: Timothy Gu <timothygu99 at gmail.com>
> > ---
> >  libavcodec/aaccoder.c | 8 ++++----
> >  libavcodec/aacenc.h   | 7 ++++++-
> >  2 files changed, 10 insertions(+), 5 deletions(-)
> > 
> > diff --git a/libavcodec/aaccoder.c b/libavcodec/aaccoder.c
> > index 45fbc2d..50a246f 100644
> > --- a/libavcodec/aaccoder.c
> > +++ b/libavcodec/aaccoder.c
> > @@ -1113,25 +1113,25 @@ static void search_for_ms(AACEncContext *s, ChannelElement *cpe,
> >  }
> >  
> >  AACCoefficientsEncoder ff_aac_coders[AAC_CODER_NB] = {
> > -    {
> > +    [AAC_CODER_FAAC] = {
> >          search_for_quantizers_faac,
> >          encode_window_bands_info,
> >          quantize_and_encode_band,
> >          search_for_ms,
> >      },
> > -    {
> > +    [AAC_CODER_ANMR] = {
> >          search_for_quantizers_anmr,
> >          encode_window_bands_info,
> >          quantize_and_encode_band,
> >          search_for_ms,
> >      },
> > -    {
> > +    [AAC_CODER_TWOLOOP] = {
> >          search_for_quantizers_twoloop,
> >          codebook_trellis_rate,
> >          quantize_and_encode_band,
> >          search_for_ms,
> >      },
> > -    {
> > +    [AAC_CODER_FAST] = {
> >          search_for_quantizers_fast,
> >          encode_window_bands_info,
> >          quantize_and_encode_band,
> > diff --git a/libavcodec/aacenc.h b/libavcodec/aacenc.h
> > index cebdd18..19e442a 100644
> > --- a/libavcodec/aacenc.h
> > +++ b/libavcodec/aacenc.h
> > @@ -30,7 +30,12 @@
> >  #include "audio_frame_queue.h"
> >  #include "psymodel.h"
> >  
> > -#define AAC_CODER_NB 4
> > +#define AAC_CODER_FAAC    0
> > +#define AAC_CODER_ANMR    1
> > +#define AAC_CODER_TWOLOOP 2
> > +#define AAC_CODER_FAST    3
> > +
> > +#define AAC_CODER_NB      4
> >  
> >  typedef struct AACEncOptions {
> >      int stereo_mode;
> > -- 
> > 1.8.1.2
> > 
> 
> > From a99002384f0c62b4cfb724eb363462b38070a4be Mon Sep 17 00:00:00 2001
> > From: Timothy Gu <timothygu99 at gmail.com>
> > Date: Tue, 10 Sep 2013 20:24:39 -0700
> > Subject: [PATCH 2/4] aacenc: use constants to set AAC coder
> > 
> > Signed-off-by: Timothy Gu <timothygu99 at gmail.com>
> > ---
> >  libavcodec/aacenc.c | 6 +++++-
> >  1 file changed, 5 insertions(+), 1 deletion(-)
> > 
> > diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c
> > index 362f02b..3227edb 100644
> > --- a/libavcodec/aacenc.c
> > +++ b/libavcodec/aacenc.c
> > @@ -791,7 +791,11 @@ static const AVOption aacenc_options[] = {
> >          {"auto",     "Selected by the Encoder", 0, AV_OPT_TYPE_CONST, {.i64 = -1 }, INT_MIN, INT_MAX, AACENC_FLAGS, "stereo_mode"},
> >          {"ms_off",   "Disable Mid/Side coding", 0, AV_OPT_TYPE_CONST, {.i64 =  0 }, INT_MIN, INT_MAX, AACENC_FLAGS, "stereo_mode"},
> >          {"ms_force", "Force Mid/Side for the whole frame if possible", 0, AV_OPT_TYPE_CONST, {.i64 =  1 }, INT_MIN, INT_MAX, AACENC_FLAGS, "stereo_mode"},
> > -    {"aac_coder", "", offsetof(AACEncContext, options.aac_coder), AV_OPT_TYPE_INT, {.i64 = 2}, 0, AAC_CODER_NB-1, AACENC_FLAGS},
> > +    {"aac_coder", "", offsetof(AACEncContext, options.aac_coder), AV_OPT_TYPE_INT, {.i64 = AAC_CODER_TWOLOOP}, 0, AAC_CODER_NB-1, AACENC_FLAGS, "aac_coder"},
> > +        {"faac",     "FAAC-inspired method",      0, AV_OPT_TYPE_CONST, {.i64 = AAC_CODER_FAAC},    INT_MIN, INT_MAX, AACENC_FLAGS, "aac_coder"},
> > +        {"anmr",     "ANMR method",               0, AV_OPT_TYPE_CONST, {.i64 = AAC_CODER_ANMR},    INT_MIN, INT_MAX, AACENC_FLAGS, "aac_coder"},
> > +        {"twoloop",  "Two loop searching method", 0, AV_OPT_TYPE_CONST, {.i64 = AAC_CODER_TWOLOOP}, INT_MIN, INT_MAX, AACENC_FLAGS, "aac_coder"},
> > +        {"fast",     "Constant quantizer",        0, AV_OPT_TYPE_CONST, {.i64 = AAC_CODER_FAST},    INT_MIN, INT_MAX, AACENC_FLAGS, "aac_coder"},
> >      {NULL}
> >  };
> 
> Both patches look good, but I'm no aacenc maintainer, thanks.

theres no aacenc maintainer in MAINTAINERs
applied

PS: if someone wants to maintain aacenc, please post a patch that adds
yourself to MAINTAINERs

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Opposition brings concord. Out of discord comes the fairest harmony.
-- Heraclitus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20130912/9d9bbd9b/attachment.asc>


More information about the ffmpeg-devel mailing list