diff options
author | Stefano Sabatini <stefasab@gmail.com> | 2011-10-27 03:38:21 +0400 |
---|---|---|
committer | Stefano Sabatini <stefasab@gmail.com> | 2011-10-28 04:06:50 +0400 |
commit | aa638b4600e1fa7a1b64323b8228c459af644a47 (patch) | |
tree | 7275907eaf60021d6b636af6ee558099ed6212bf /libavformat/rawdec.c | |
parent | 8dc90371b1d0dac0a9417890d1a3dfcd9f31559b (diff) |
rawdec: add check on sample_rate
Prevent error condition in case sample_rate is unset or set to a negative
value. In particular, fix divide-by-zero error occurring in ffmpeg due to
sample_rate set to 0 in output_packet(), in code:
ist->next_pts += ((int64_t)AV_TIME_BASE * ist->st->codec->frame_size) /
ist->st->codec->sample_rate;
Fix trac ticket #324.
Diffstat (limited to 'libavformat/rawdec.c')
-rw-r--r-- | libavformat/rawdec.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libavformat/rawdec.c b/libavformat/rawdec.c index 37e9b0c8f1..a270ccd469 100644 --- a/libavformat/rawdec.c +++ b/libavformat/rawdec.c @@ -56,6 +56,12 @@ int ff_raw_read_header(AVFormatContext *s, AVFormatParameters *ap) if (s1 && s1->sample_rate) st->codec->sample_rate = s1->sample_rate; + if (st->codec->sample_rate <= 0) { + av_log(s, AV_LOG_ERROR, "Invalid sample rate %d specified\n", + st->codec->sample_rate); + return AVERROR(EINVAL); + } + if (s1 && s1->channels) st->codec->channels = s1->channels; |