***********************************/
#include "libavutil/libm.h"
-#include "libavutil/thread.h"
#include "libavutil/float_dsp.h"
#include "libavutil/opt.h"
#include "avcodec.h"
#include "put_bits.h"
#include "internal.h"
#include "mpeg4audio.h"
-#include "kbdwin.h"
#include "sinewin.h"
#include "profiles.h"
#include "psymodel.h"
-static AVOnce aac_table_init = AV_ONCE_INIT;
-
static void put_pce(PutBitContext *pb, AVCodecContext *avctx)
{
int i, j;
align_put_bits(pb);
put_bits(pb, 8, strlen(aux_data));
- avpriv_put_string(pb, aux_data, 0);
+ ff_put_string(pb, aux_data, 0);
}
/**
put_bits(&pb, 5, AOT_SBR);
put_bits(&pb, 1, 0);
flush_put_bits(&pb);
- avctx->extradata_size = put_bits_count(&pb) >> 3;
+ avctx->extradata_size = put_bytes_output(&pb);
return 0;
}
flush_put_bits(&s->pb);
s->last_frame_pb_count = put_bits_count(&s->pb);
+ avpkt->size = put_bytes_output(&s->pb);
s->lambda_sum += s->lambda;
s->lambda_count++;
ff_af_queue_remove(&s->afq, avctx->frame_size, &avpkt->pts,
&avpkt->duration);
- avpkt->size = put_bits_count(&s->pb) >> 3;
*got_packet_ptr = 1;
return 0;
}
return AVERROR(ENOMEM);
// window init
- ff_kbd_window_init(ff_aac_kbd_long_1024, 4.0, 1024);
- ff_kbd_window_init(ff_aac_kbd_short_128, 6.0, 128);
- ff_init_ff_sine_windows(10);
- ff_init_ff_sine_windows(7);
+ ff_aac_float_common_init();
if ((ret = ff_mdct_init(&s->mdct1024, 11, 0, 32768.0)) < 0)
return ret;
return 0;
}
-static av_cold void aac_encode_init_tables(void)
-{
- ff_aac_tableinit();
-}
-
static av_cold int aac_encode_init(AVCodecContext *avctx)
{
AACEncContext *s = avctx->priv_data;
if (HAVE_MIPSDSP)
ff_aac_coder_init_mips(s);
- if ((ret = ff_thread_once(&aac_table_init, &aac_encode_init_tables)) != 0)
- return AVERROR_UNKNOWN;
-
ff_af_queue_init(avctx, &s->afq);
+ ff_aac_tableinit();
return 0;
}
{ NULL }
};
-AVCodec ff_aac_encoder = {
+const AVCodec ff_aac_encoder = {
.name = "aac",
.long_name = NULL_IF_CONFIG_SMALL("AAC (Advanced Audio Coding)"),
.type = AVMEDIA_TYPE_AUDIO,