#include "eac3enc.h"
#include "kbdwin.h"
-#define AC3ENC_TYPE AC3ENC_TYPE_AC3_FIXED
-#include "ac3enc_opts_template.c"
-
static const AVClass ac3enc_class = {
.class_name = "Fixed-Point AC-3 Encoder",
.item_name = av_default_item_name,
- .option = ac3_options,
+ .option = ff_ac3_enc_options,
.version = LIBAVUTIL_VERSION_INT,
};
{
float fwin[AC3_BLOCK_SIZE];
- int32_t *iwin = av_malloc_array(AC3_WINDOW_SIZE, sizeof(*iwin));
+ int32_t *iwin = av_malloc_array(AC3_BLOCK_SIZE, sizeof(*iwin));
if (!iwin)
return AVERROR(ENOMEM);
- ff_kbd_window_init(fwin, 5.0, AC3_WINDOW_SIZE/2);
- for (int i = 0; i < AC3_WINDOW_SIZE/2; i++) {
+ ff_kbd_window_init(fwin, 5.0, AC3_BLOCK_SIZE);
+ for (int i = 0; i < AC3_BLOCK_SIZE; i++)
iwin[i] = lrintf(fwin[i] * (1 << 22));
- iwin[AC3_WINDOW_SIZE-1-i] = lrintf(fwin[i] * (1 << 22));
- }
s->mdct_window = iwin;
}
-AVCodec ff_ac3_fixed_encoder = {
+const AVCodec ff_ac3_fixed_encoder = {
.name = "ac3_fixed",
.long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"),
.type = AVMEDIA_TYPE_AUDIO,
.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP,
.supported_samplerates = ff_ac3_sample_rate_tab,
.channel_layouts = ff_ac3_channel_layouts,
- .defaults = ac3_defaults,
+ .defaults = ff_ac3_enc_defaults,
};