Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Eugen Hoyos <cehoyos@ag.or.at>2013-06-19 18:31:10 +0400
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2013-06-20 01:45:18 +0400
commit59549b5ab7f26d6b95853e8f998baf8d2889c426 (patch)
tree17f0b482bf57f31eb2ec5e4f19ad014c1f784352 /libavformat
parentc0445df5b35947cf40abcb15ce6b39e404e20799 (diff)
Autodetect idcin only if audio properties allow decoding.
Fixes ticket #2688. (cherry picked from commit 06bede95fcea47d2e51e8ff248c15311f335b898)
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/idcin.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/libavformat/idcin.c b/libavformat/idcin.c
index c32607def2..e73e873d34 100644
--- a/libavformat/idcin.c
+++ b/libavformat/idcin.c
@@ -93,7 +93,7 @@ typedef struct IdcinDemuxContext {
static int idcin_probe(AVProbeData *p)
{
- unsigned int number;
+ unsigned int number, sample_rate;
/*
* This is what you could call a "probabilistic" file check: id CIN
@@ -122,18 +122,18 @@ static int idcin_probe(AVProbeData *p)
return 0;
/* check the audio sample rate */
- number = AV_RL32(&p->buf[8]);
- if ((number != 0) && ((number < 8000) | (number > 48000)))
+ sample_rate = AV_RL32(&p->buf[8]);
+ if (sample_rate && (sample_rate < 8000 || sample_rate > 48000))
return 0;
/* check the audio bytes/sample */
number = AV_RL32(&p->buf[12]);
- if (number > 2)
+ if (number > 2 || sample_rate && !number)
return 0;
/* check the audio channels */
number = AV_RL32(&p->buf[16]);
- if (number > 2)
+ if (number > 2 || sample_rate && !number)
return 0;
/* return half certainly since this check is a bit sketchy */