diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2012-01-09 13:48:46 -0500 |
---|---|---|
committer | Justin Ruggles <justin.ruggles@gmail.com> | 2012-01-11 08:56:24 -0500 |
commit | 467879eb54526d187847bbbd32723500ab0ab330 (patch) | |
tree | 65cad1ceff1eb7d632b64e03b3d038fcd4976d1d | |
parent | 82390f57d1714fdc952c15ba91511d93f2e59bfc (diff) | |
download | ffmpeg-467879eb54526d187847bbbd32723500ab0ab330.tar.gz |
gsm demuxer: return packets with only 1 gsm block at a time.
fixes stream copy of raw gsm to mov.
tested with QuickTime.
-rw-r--r-- | libavformat/gsmdec.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/libavformat/gsmdec.c b/libavformat/gsmdec.c index 23608873c1..a23ce3b7a0 100644 --- a/libavformat/gsmdec.c +++ b/libavformat/gsmdec.c @@ -37,7 +37,7 @@ static int gsm_read_packet(AVFormatContext *s, AVPacket *pkt) { int ret, size; - size = GSM_BLOCK_SIZE * 32; + size = GSM_BLOCK_SIZE; pkt->pos = avio_tell(s->pb); pkt->stream_index = 0; @@ -48,7 +48,7 @@ static int gsm_read_packet(AVFormatContext *s, AVPacket *pkt) return ret < 0 ? ret : AVERROR(EIO); } pkt->size = ret; - pkt->duration = ret / GSM_BLOCK_SIZE; + pkt->duration = 1; pkt->pts = pkt->pos / GSM_BLOCK_SIZE; return 0; @@ -65,7 +65,6 @@ static int gsm_read_header(AVFormatContext *s, AVFormatParameters *ap) st->codec->codec_id = s->iformat->value; st->codec->channels = 1; st->codec->sample_rate = c->sample_rate; - st->codec->block_align = GSM_BLOCK_SIZE; st->codec->bit_rate = GSM_BLOCK_SIZE * 8 * c->sample_rate / GSM_BLOCK_SAMPLES; avpriv_set_pts_info(st, 64, GSM_BLOCK_SAMPLES, GSM_SAMPLE_RATE); |