summaryrefslogtreecommitdiff
path: root/libavformat/gsmdec.c
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2012-01-09 13:48:46 -0500
committerJustin Ruggles <justin.ruggles@gmail.com>2012-01-11 08:56:24 -0500
commit467879eb54526d187847bbbd32723500ab0ab330 (patch)
tree65cad1ceff1eb7d632b64e03b3d038fcd4976d1d /libavformat/gsmdec.c
parent82390f57d1714fdc952c15ba91511d93f2e59bfc (diff)
gsm demuxer: return packets with only 1 gsm block at a time.
fixes stream copy of raw gsm to mov. tested with QuickTime.
Diffstat (limited to 'libavformat/gsmdec.c')
-rw-r--r--libavformat/gsmdec.c5
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);