avcodec/wavarc: really fix bits per sample detection

This commit is contained in:
Paul B Mahol 2023-02-06 18:26:01 +01:00
parent 64b242d030
commit c5aeb8f4db
1 changed files with 4 additions and 4 deletions

View File

@ -52,7 +52,7 @@ static av_cold int wavarc_init(AVCodecContext *avctx)
{
WavArcContext *s = avctx->priv_data;
if (avctx->extradata_size < 44)
if (avctx->extradata_size < 52)
return AVERROR_INVALIDDATA;
if (AV_RL32(avctx->extradata + 16) != MKTAG('R','I','F','F'))
return AVERROR_INVALIDDATA;
@ -68,9 +68,9 @@ static av_cold int wavarc_init(AVCodecContext *avctx)
av_channel_layout_default(&avctx->ch_layout, AV_RL16(avctx->extradata + 38));
avctx->sample_rate = AV_RL32(avctx->extradata + 40);
switch (AV_RL16(avctx->extradata + 38)) {
case 1: avctx->sample_fmt = AV_SAMPLE_FMT_U8P; break;
case 2: avctx->sample_fmt = AV_SAMPLE_FMT_S16P; break;
switch (AV_RL16(avctx->extradata + 50)) {
case 8: avctx->sample_fmt = AV_SAMPLE_FMT_U8P; break;
case 16: avctx->sample_fmt = AV_SAMPLE_FMT_S16P; break;
}
s->shift = 0;