This commit enables the function added with commit 7c10b87 and uses that new 
function for setting any special scalefactor indices. This commit does not 
change the behaviour of the encoder since no bands are being marked as either 
NOISE_BT(due to the previous PNS implementation removed in the previous commit) 
or INTENSITY_BT2/INTENSITY_BT.
---
 libavcodec/aaccoder.c | 4 ++++
 libavcodec/aacenc.c   | 3 +++
 libavcodec/aacenc.h   | 1 +
 3 files changed, 8 insertions(+)

diff --git a/libavcodec/aaccoder.c b/libavcodec/aaccoder.c
index 33cbe7b..8695a88 100644
--- a/libavcodec/aaccoder.c
+++ b/libavcodec/aaccoder.c
@@ -1199,24 +1199,28 @@ AACCoefficientsEncoder ff_aac_coders[AAC_CODER_NB] = {
         search_for_quantizers_faac,
         encode_window_bands_info,
         quantize_and_encode_band,
+        set_special_band_scalefactors,
         search_for_ms,
     },
     [AAC_CODER_ANMR] = {
         search_for_quantizers_anmr,
         encode_window_bands_info,
         quantize_and_encode_band,
+        set_special_band_scalefactors,
         search_for_ms,
     },
     [AAC_CODER_TWOLOOP] = {
         search_for_quantizers_twoloop,
         codebook_trellis_rate,
         quantize_and_encode_band,
+        set_special_band_scalefactors,
         search_for_ms,
     },
     [AAC_CODER_FAST] = {
         search_for_quantizers_fast,
         encode_window_bands_info,
         quantize_and_encode_band,
+        set_special_band_scalefactors,
         search_for_ms,
     },
 };
diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c
index 05a8162..3854066 100644
--- a/libavcodec/aacenc.c
+++ b/libavcodec/aacenc.c
@@ -652,6 +652,9 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket 
*avpkt,
                     s->coder->search_for_ms(s, cpe, s->lambda);
                 }
             }
+            if (s->coder->set_special_band_scalefactors)
+                for (ch = 0; ch < chans; ch++)
+                    s->coder->set_special_band_scalefactors(s, &cpe->ch[ch]);
             adjust_frame_information(cpe, chans);
             if (chans == 2) {
                 put_bits(&s->pb, 1, cpe->common_window);
diff --git a/libavcodec/aacenc.h b/libavcodec/aacenc.h
index 7c1f277..cc1b06a 100644
--- a/libavcodec/aacenc.h
+++ b/libavcodec/aacenc.h
@@ -54,6 +54,7 @@ typedef struct AACCoefficientsEncoder {
                                      int win, int group_len, const float 
lambda);
     void (*quantize_and_encode_band)(struct AACEncContext *s, PutBitContext 
*pb, const float *in, int size,
                                      int scale_idx, int cb, const float 
lambda);
+    void (*set_special_band_scalefactors)(struct AACEncContext *s, 
SingleChannelElement *sce);
     void (*search_for_ms)(struct AACEncContext *s, ChannelElement *cpe, const 
float lambda);
 } AACCoefficientsEncoder;
 
-- 
2.1.4

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to