mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-27 21:40:34 +00:00
movdec: Set frame_size for AMR
Earlier, sc->samples_per_frame was used for setting the frame size, but all files don't have that set properly. The frame size is a known constant for these codecs. If frame_size isn't set, the mov/3gp muxer refuses to mux it. This fixes stream copy of audio from https://roundup.libav.org/file1248/Video_With_AMR-NB_Audio.3gp to another 3gp file (roundup issue 2468). Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
717401aff2
commit
237f13290b
@ -1291,14 +1291,16 @@ int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries)
|
||||
st->codec->channels= 1; /* really needed */
|
||||
break;
|
||||
case CODEC_ID_AMR_NB:
|
||||
case CODEC_ID_AMR_WB:
|
||||
st->codec->frame_size= sc->samples_per_frame;
|
||||
st->codec->channels= 1; /* really needed */
|
||||
/* force sample rate for amr, stsd in 3gp does not store sample rate */
|
||||
if (st->codec->codec_id == CODEC_ID_AMR_NB)
|
||||
st->codec->sample_rate = 8000;
|
||||
else if (st->codec->codec_id == CODEC_ID_AMR_WB)
|
||||
st->codec->sample_rate = 16000;
|
||||
st->codec->sample_rate = 8000;
|
||||
/* force frame_size, too, samples_per_frame isn't always set properly */
|
||||
st->codec->frame_size = 160;
|
||||
break;
|
||||
case CODEC_ID_AMR_WB:
|
||||
st->codec->channels = 1;
|
||||
st->codec->sample_rate = 16000;
|
||||
st->codec->frame_size = 320;
|
||||
break;
|
||||
case CODEC_ID_MP2:
|
||||
case CODEC_ID_MP3:
|
||||
|
Loading…
Reference in New Issue
Block a user