From 3f78a3a95535b21e32abc93f55b61ceecbbc8ee1 Mon Sep 17 00:00:00 2001 From: Baptiste Coudurier Date: Thu, 24 Apr 2008 17:17:41 +0000 Subject: [PATCH] demux qcelp, so this can work with soc decoder and stream copy Originally committed as revision 12941 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/mov.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 91f27c4045..ab5953c4a6 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -922,6 +922,9 @@ static int mov_read_stsd(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom) st->codec->sample_rate= 16000; st->codec->channels= 1; /* really needed */ break; + case CODEC_ID_QCELP: + st->codec->frame_size = sc->samples_per_frame; + st->need_parsing= AVSTREAM_PARSE_FULL; case CODEC_ID_AMR_NB: st->codec->sample_rate= 8000; st->codec->channels= 1; /* really needed */ @@ -1252,7 +1255,8 @@ static int mov_read_trak(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom) sc->time_scale= c->time_scale; av_set_pts_info(st, 64, sc->time_rate, sc->time_scale); - if (st->codec->codec_type == CODEC_TYPE_AUDIO && sc->stts_count == 1) + if (st->codec->codec_type == CODEC_TYPE_AUDIO && + !st->codec->frame_size && sc->stts_count == 1) st->codec->frame_size = av_rescale(sc->time_rate, st->codec->sample_rate, sc->time_scale); if(st->duration != AV_NOPTS_VALUE){