Commit 5798368b authored by Juanjo's avatar Juanjo

- Added MP3 encoding through libmp3lame contributed by Lennert Buytenhek.

- Changes on AVI and WAV muxers to support MP3.

Originally committed as revision 324 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent a6741398
...@@ -127,6 +127,10 @@ void parse_specific_params(AVCodecContext *stream, int *au_byterate, int *au_ssi ...@@ -127,6 +127,10 @@ void parse_specific_params(AVCodecContext *stream, int *au_byterate, int *au_ssi
*au_ssize = 1; *au_ssize = 1;
*au_scale = 1; *au_scale = 1;
*au_byterate = stream->bit_rate / 8; *au_byterate = stream->bit_rate / 8;
case CODEC_ID_MP3LAME:
*au_ssize = 1;
*au_scale = 1;
*au_byterate = stream->bit_rate / 8;
default: default:
*au_ssize = 1; *au_ssize = 1;
*au_scale = 1; *au_scale = 1;
...@@ -361,7 +365,7 @@ static int avi_write_trailer(AVFormatContext *s) ...@@ -361,7 +365,7 @@ static int avi_write_trailer(AVFormatContext *s)
if (nb_frames < stream->frame_number) if (nb_frames < stream->frame_number)
nb_frames = stream->frame_number; nb_frames = stream->frame_number;
} else { } else {
if (stream->codec_id == CODEC_ID_MP2) { if (stream->codec_id == CODEC_ID_MP2 || stream->codec_id == CODEC_ID_MP3LAME) {
put_le32(pb, stream->frame_number); put_le32(pb, stream->frame_number);
nb_frames += stream->frame_number; nb_frames += stream->frame_number;
} else { } else {
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
CodecTag codec_wav_tags[] = { CodecTag codec_wav_tags[] = {
{ CODEC_ID_MP2, 0x55 }, { CODEC_ID_MP2, 0x55 },
{ CODEC_ID_MP3LAME, 0x55 },
{ CODEC_ID_MP2, 0x50 }, { CODEC_ID_MP2, 0x50 },
{ CODEC_ID_AC3, 0x2000 }, { CODEC_ID_AC3, 0x2000 },
{ CODEC_ID_PCM_S16LE, 0x01 }, { CODEC_ID_PCM_S16LE, 0x01 },
...@@ -45,13 +46,13 @@ int put_wav_header(ByteIOContext *pb, AVCodecContext *enc) ...@@ -45,13 +46,13 @@ int put_wav_header(ByteIOContext *pb, AVCodecContext *enc)
enc->codec_id == CODEC_ID_PCM_ALAW || enc->codec_id == CODEC_ID_PCM_ALAW ||
enc->codec_id == CODEC_ID_PCM_MULAW) { enc->codec_id == CODEC_ID_PCM_MULAW) {
bps = 8; bps = 8;
} else if (enc->codec_id == CODEC_ID_MP2) { } else if (enc->codec_id == CODEC_ID_MP2 || enc->codec_id == CODEC_ID_MP3LAME) {
bps = 0; bps = 0;
} else { } else {
bps = 16; bps = 16;
} }
if (enc->codec_id == CODEC_ID_MP2) if (enc->codec_id == CODEC_ID_MP2 || enc->codec_id == CODEC_ID_MP3LAME)
blkalign = 1; blkalign = 1;
else else
blkalign = enc->channels*bps >> 3; blkalign = enc->channels*bps >> 3;
...@@ -64,7 +65,7 @@ int put_wav_header(ByteIOContext *pb, AVCodecContext *enc) ...@@ -64,7 +65,7 @@ int put_wav_header(ByteIOContext *pb, AVCodecContext *enc)
put_le32(pb, bytespersec); /* bytes per second */ put_le32(pb, bytespersec); /* bytes per second */
put_le16(pb, blkalign); /* block align */ put_le16(pb, blkalign); /* block align */
put_le16(pb, bps); /* bits per sample */ put_le16(pb, bps); /* bits per sample */
if (enc->codec_id == CODEC_ID_MP2) { if (enc->codec_id == CODEC_ID_MP2 || enc->codec_id == CODEC_ID_MP3LAME) {
put_le16(pb, 12); /* wav_extra_size */ put_le16(pb, 12); /* wav_extra_size */
put_le16(pb, 1); /* wID */ put_le16(pb, 1); /* wID */
put_le32(pb, 2); /* fdwFlags */ put_le32(pb, 2); /* fdwFlags */
......
...@@ -16,6 +16,10 @@ OBJS+= ac3dec.o \ ...@@ -16,6 +16,10 @@ OBJS+= ac3dec.o \
libac3/imdct.o libac3/parse.o libac3/imdct.o libac3/parse.o
endif endif
ifeq ($(CONFIG_MP3LAME),yes)
OBJS += mp3lameaudio.o
endif
ifeq ($(TARGET_GPROF),yes) ifeq ($(TARGET_GPROF),yes)
CFLAGS+=-p CFLAGS+=-p
LDFLAGS+=-p LDFLAGS+=-p
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment