Avoid divide-by-zero in vp8 initialization

Check that the numerator is not zero. If it is, guess 30fps.

Fixes a clang IOC error in the quantize test. It's very unlikely for
this to occur in the wild because the setup in the quantize test is very
nonstandard.

Change-Id: Icdab7b81d4e168d3423e14db20787f960052e0c3
This commit is contained in:
Johann 2014-11-04 10:46:24 -08:00
Родитель 1e753387c8
Коммит b4957234af
1 изменённых файлов: 11 добавлений и 6 удалений

Просмотреть файл

@ -1363,15 +1363,20 @@ static void init_config(VP8_COMP *cpi, VP8_CONFIG *oxcf)
cm->version = oxcf->Version;
vp8_setup_version(cm);
/* frame rate is not available on the first frame, as it's derived from
/* Frame rate is not available on the first frame, as it's derived from
* the observed timestamps. The actual value used here doesn't matter
* too much, as it will adapt quickly. If the reciprocal of the timebase
* seems like a reasonable framerate, then use that as a guess, otherwise
* use 30.
* too much, as it will adapt quickly.
*/
cpi->framerate = (double)(oxcf->timebase.den) /
(double)(oxcf->timebase.num);
if (oxcf->timebase.num > 0) {
cpi->framerate = (double)(oxcf->timebase.den) /
(double)(oxcf->timebase.num);
} else {
cpi->framerate = 30;
}
/* If the reciprocal of the timebase seems like a reasonable framerate,
* then use that as a guess, otherwise use 30.
*/
if (cpi->framerate > 180)
cpi->framerate = 30;