typedef struct MpegAudioContext {
PutBitContext pb;
int nb_channels;
- int freq, bit_rate;
int lsf; /* 1 if mpeg2 low bitrate selected */
int bitrate_index; /* bit rate */
int freq_index;
int frame_size; /* frame size, in bits, without padding */
- int64_t nb_samples; /* total number of samples encoded */
/* padding computation */
int frame_frac, frame_frac_incr, do_padding;
short samples_buf[MPA_MAX_CHANNELS][SAMPLES_BUF_SIZE]; /* buffer for filter */
}
bitrate = bitrate / 1000;
s->nb_channels = channels;
- s->freq = freq;
- s->bit_rate = bitrate * 1000;
avctx->frame_size = MPA_FRAME_SIZE;
/* encoding freq */
s->sblimit = ff_mpa_sblimit_table[table];
s->alloc_table = ff_mpa_alloc_tables[table];
- dprintf(avctx, "%d kb/s, %d Hz, frame_size=%d bits, table=%d, padincr=%x\n",
+ av_dlog(avctx, "%d kb/s, %d Hz, frame_size=%d bits, table=%d, padincr=%x\n",
bitrate, freq, s->frame_size, table, s->frame_frac_incr);
for(i=0;i<s->nb_channels;i++)
#define WSHIFT (WFRAC_BITS + 15 - FRAC_BITS)
-static void filter(MpegAudioContext *s, int ch, short *samples, int incr)
+static void filter(MpegAudioContext *s, int ch, const short *samples, int incr)
{
short *p, *q;
int sum, offset, i, j;
unsigned char *frame, int buf_size, void *data)
{
MpegAudioContext *s = avctx->priv_data;
- short *samples = data;
+ const short *samples = data;
short smr[MPA_MAX_CHANNELS][SBLIMIT];
unsigned char bit_alloc[MPA_MAX_CHANNELS][SBLIMIT];
int padding, i;
encode_frame(s, bit_alloc, padding);
- s->nb_samples += MPA_FRAME_SIZE;
return put_bits_ptr(&s->pb) - s->pb.buf;
}
return 0;
}
-AVCodec mp2_encoder = {
+AVCodec ff_mp2_encoder = {
"mp2",
AVMEDIA_TYPE_AUDIO,
CODEC_ID_MP2,
MPA_encode_frame,
MPA_encode_close,
NULL,
- .sample_fmts = (const enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
+ .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
+ .supported_samplerates= (const int[]){44100, 48000, 32000, 22050, 24000, 16000, 0},
.long_name = NULL_IF_CONFIG_SMALL("MP2 (MPEG audio layer 2)"),
};