Browse Source

Autodetect idcin only if audio properties allow decoding.

Fixes ticket #2688.
tags/n2.0
Carl Eugen Hoyos 12 years ago
parent
commit
06bede95fc
1 changed files with 5 additions and 5 deletions
  1. +5
    -5
      libavformat/idcin.c

+ 5
- 5
libavformat/idcin.c View File

@@ -93,7 +93,7 @@ typedef struct IdcinDemuxContext {


static int idcin_probe(AVProbeData *p) 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 * This is what you could call a "probabilistic" file check: id CIN
@@ -122,18 +122,18 @@ static int idcin_probe(AVProbeData *p)
return 0; return 0;


/* check the audio sample rate */ /* 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; return 0;


/* check the audio bytes/sample */ /* check the audio bytes/sample */
number = AV_RL32(&p->buf[12]); number = AV_RL32(&p->buf[12]);
if (number > 2)
if (number > 2 || sample_rate && !number)
return 0; return 0;


/* check the audio channels */ /* check the audio channels */
number = AV_RL32(&p->buf[16]); number = AV_RL32(&p->buf[16]);
if (number > 2)
if (number > 2 || sample_rate && !number)
return 0; return 0;


/* return half certainty since this check is a bit sketchy */ /* return half certainty since this check is a bit sketchy */


Loading…
Cancel
Save