[FFmpeg-devel] [PATCH 3/8] aacdec: expose decode_tns

Lynne dev at lynne.ee
Thu May 16 13:08:13 EEST 2024


USAC has the same syntax, with one minor change we can check for.
---
 libavcodec/aac/aacdec.c | 6 +++---
 libavcodec/aac/aacdec.h | 3 +++
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/libavcodec/aac/aacdec.c b/libavcodec/aac/aacdec.c
index 40554ff9e4..a7e5b2a369 100644
--- a/libavcodec/aac/aacdec.c
+++ b/libavcodec/aac/aacdec.c
@@ -1542,7 +1542,7 @@ static int decode_pulses(Pulse *pulse, GetBitContext *gb,
  *
  * @return  Returns error status. 0 - OK, !0 - error
  */
-static int decode_tns(AACDecContext *ac, TemporalNoiseShaping *tns,
+int ff_aac_decode_tns(AACDecContext *ac, TemporalNoiseShaping *tns,
                       GetBitContext *gb, const IndividualChannelStream *ics)
 {
     int w, filt, i, coef_len, coef_res, coef_compress;
@@ -1690,7 +1690,7 @@ int ff_aac_decode_ics(AACDecContext *ac, SingleChannelElement *sce,
         }
         tns->present = get_bits1(gb);
         if (tns->present && !er_syntax) {
-            ret = decode_tns(ac, tns, gb, ics);
+            ret = ff_aac_decode_tns(ac, tns, gb, ics);
             if (ret < 0)
                 goto fail;
         }
@@ -1704,7 +1704,7 @@ int ff_aac_decode_ics(AACDecContext *ac, SingleChannelElement *sce,
         // I see no textual basis in the spec for this occurring after SSR gain
         // control, but this is what both reference and real implmentations do
         if (tns->present && er_syntax) {
-            ret = decode_tns(ac, tns, gb, ics);
+            ret = ff_aac_decode_tns(ac, tns, gb, ics);
             if (ret < 0)
                 goto fail;
         }
diff --git a/libavcodec/aac/aacdec.h b/libavcodec/aac/aacdec.h
index f54618aaa9..303e285c81 100644
--- a/libavcodec/aac/aacdec.h
+++ b/libavcodec/aac/aacdec.h
@@ -351,6 +351,9 @@ int ff_aac_decode_init_fixed(AVCodecContext *avctx);
 int ff_aac_decode_ics(AACDecContext *ac, SingleChannelElement *sce,
                       GetBitContext *gb, int common_window, int scale_flag);
 
+int ff_aac_decode_tns(AACDecContext *ac, TemporalNoiseShaping *tns,
+                      GetBitContext *gb, const IndividualChannelStream *ics);
+
 int ff_aac_set_default_channel_config(AACDecContext *ac, AVCodecContext *avctx,
                                       uint8_t (*layout_map)[3],
                                       int *tags,
-- 
2.43.0.381.gb435a96ce8


More information about the ffmpeg-devel mailing list