[FFmpeg-cvslog] aacenc: use the new function for setting special band scalefactor indices

Rostislav Pehlivanov git at videolan.org
Sun Jul 5 16:52:10 CEST 2015


ffmpeg | branch: master | Rostislav Pehlivanov <atomnuker at gmail.com> | Thu Jul  2 19:13:04 2015 +0100| [e06578e392e36b8d1a9ce33b88f7825529ee45e3] | committer: Michael Niedermayer

aacenc: use the new function for setting special band scalefactor indices

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.

Reviewed-by: Claudio Freire <klaussfreire at gmail.com>
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e06578e392e36b8d1a9ce33b88f7825529ee45e3
---

 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 aaf70d5..22104a2 100644
--- a/libavcodec/aaccoder.c
+++ b/libavcodec/aaccoder.c
@@ -1222,24 +1222,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;
 



More information about the ffmpeg-cvslog mailing list