libavcodec/aacenc_is.h
d1ca7142
 /*
  * AAC encoder intensity stereo
  * Copyright (C) 2015 Rostislav Pehlivanov
  *
  * This file is part of FFmpeg.
  *
  * FFmpeg is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.
  *
  * FFmpeg is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with FFmpeg; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
 /**
  * @file
  * AAC encoder Intensity Stereo
  * @author Rostislav Pehlivanov ( atomnuker gmail com )
  */
 
d4401a9e
 #ifndef AVCODEC_AACENC_IS_H
 #define AVCODEC_AACENC_IS_H
d1ca7142
 
5f1c37ae
 #include "aacenc.h"
 
d1ca7142
 /** Frequency in Hz for lower limit of intensity stereo **/
 #define INT_STEREO_LOW_LIMIT 6100
 
2c94e45f
 struct AACISError {
d1ca7142
     int pass;    /* 1 if dist2 <= dist1  */
     int phase;   /* -1 or +1             */
     float error; /* fabs(dist1 - dist2)  */
     float dist1; /* From original coeffs */
     float dist2; /* From IS'd coeffs     */
01ecb717
     float ener01;
d1ca7142
 };
 
2c94e45f
 struct AACISError ff_aac_is_encoding_err(AACEncContext *s, ChannelElement *cpe,
                                          int start, int w, int g, float ener0,
4565611b
                                          float ener1, float ener01,
                                          int use_pcoeffs, int phase);
21dd5279
 void ff_aac_search_for_is(AACEncContext *s, AVCodecContext *avctx, ChannelElement *cpe);
d1ca7142
 
d4401a9e
 #endif /* AVCODEC_AACENC_IS_H */