mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
flacdec: allow sample rate to change mid-stream, but log a warning
message when it does Originally committed as revision 18162 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
6708cfc4d3
commit
e7e6b06802
@ -563,9 +563,7 @@ static int decode_frame(FLACContext *s)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* sample rate */
|
/* sample rate */
|
||||||
if (sr_code == 0) {
|
if (sr_code < 12) {
|
||||||
samplerate= s->samplerate;
|
|
||||||
} else if (sr_code < 12) {
|
|
||||||
samplerate = ff_flac_sample_rate_table[sr_code];
|
samplerate = ff_flac_sample_rate_table[sr_code];
|
||||||
} else if (sr_code == 12) {
|
} else if (sr_code == 12) {
|
||||||
samplerate = get_bits(gb, 8) * 1000;
|
samplerate = get_bits(gb, 8) * 1000;
|
||||||
@ -578,6 +576,12 @@ static int decode_frame(FLACContext *s)
|
|||||||
sr_code);
|
sr_code);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
if (samplerate == 0) {
|
||||||
|
samplerate = s->samplerate;
|
||||||
|
} else if (samplerate != s->samplerate) {
|
||||||
|
av_log(s->avctx, AV_LOG_WARNING, "sample rate changed from %d to %d\n",
|
||||||
|
s->samplerate, samplerate);
|
||||||
|
}
|
||||||
|
|
||||||
/* header CRC-8 check */
|
/* header CRC-8 check */
|
||||||
skip_bits(gb, 8);
|
skip_bits(gb, 8);
|
||||||
@ -588,7 +592,7 @@ static int decode_frame(FLACContext *s)
|
|||||||
}
|
}
|
||||||
|
|
||||||
s->blocksize = blocksize;
|
s->blocksize = blocksize;
|
||||||
s->samplerate = samplerate;
|
s->samplerate = s->avctx->sample_rate = samplerate;
|
||||||
s->bps = bps;
|
s->bps = bps;
|
||||||
s->ch_mode = ch_mode;
|
s->ch_mode = ch_mode;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user