Message ID | GV1P250MB0737E070BC3631C474478FED8F3E2@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM |
---|---|
State | Accepted |
Commit | 6d38c260e57d3dcd9f106f378d0f190b0cb837fe |
Headers | show |
Series | [FFmpeg-devel,1/7] avcodec/wavpack: Fix leak and segfault on reallocation error | expand |
Context | Check | Description |
---|---|---|
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
On Tue, Apr 02, 2024 at 03:37:06AM +0200, Andreas Rheinhardt wrote: > ff_dsd2pcm_translate() works internally by converting LSBF input > to MSBF upon reading; its buffer is therefore always MSBF > and should therefore be initialized with MSBF silence; > but this is not true since e3d8963c3cb5b8cd31460dd9b3b9dba2a2343bf5 > which this patch effectively reverts. > > Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> > --- > libavcodec/dsddec.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libavcodec/dsddec.c b/libavcodec/dsddec.c > index 22009c70ef..2bb2e73b75 100644 > --- a/libavcodec/dsddec.c > +++ b/libavcodec/dsddec.c > @@ -56,7 +56,7 @@ static av_cold int decode_init(AVCodecContext *avctx) > if (!s) > return AVERROR(ENOMEM); > > - silence = avctx->codec_id == AV_CODEC_ID_DSD_LSBF || avctx->codec_id == AV_CODEC_ID_DSD_LSBF_PLANAR ? DSD_SILENCE_REVERSED : DSD_SILENCE; > + silence = DSD_SILENCE; > for (i = 0; i < avctx->ch_layout.nb_channels; i++) { > s[i].pos = 0; > memset(s[i].buf, silence, sizeof(s[i].buf)); > -- ok. with this patch, DSD_SILENCE, DSD_SILENCE_REVERSED macros and even the silence var are no longer neccessary. i suggest reverting the memset line and attached comment back to way it was in the initial commit (5f4f9ee99f4e9ab980bb18475009c701ba47a74f). -- Peter (A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)
Peter Ross: > On Tue, Apr 02, 2024 at 03:37:06AM +0200, Andreas Rheinhardt wrote: >> ff_dsd2pcm_translate() works internally by converting LSBF input >> to MSBF upon reading; its buffer is therefore always MSBF >> and should therefore be initialized with MSBF silence; >> but this is not true since e3d8963c3cb5b8cd31460dd9b3b9dba2a2343bf5 >> which this patch effectively reverts. >> >> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> >> --- >> libavcodec/dsddec.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/libavcodec/dsddec.c b/libavcodec/dsddec.c >> index 22009c70ef..2bb2e73b75 100644 >> --- a/libavcodec/dsddec.c >> +++ b/libavcodec/dsddec.c >> @@ -56,7 +56,7 @@ static av_cold int decode_init(AVCodecContext *avctx) >> if (!s) >> return AVERROR(ENOMEM); >> >> - silence = avctx->codec_id == AV_CODEC_ID_DSD_LSBF || avctx->codec_id == AV_CODEC_ID_DSD_LSBF_PLANAR ? DSD_SILENCE_REVERSED : DSD_SILENCE; >> + silence = DSD_SILENCE; >> for (i = 0; i < avctx->ch_layout.nb_channels; i++) { >> s[i].pos = 0; >> memset(s[i].buf, silence, sizeof(s[i].buf)); >> -- > > ok. > > with this patch, DSD_SILENCE, DSD_SILENCE_REVERSED macros and even the silence > var are no longer neccessary. > > i suggest reverting the memset line and attached comment back to way it was in > the initial commit (5f4f9ee99f4e9ab980bb18475009c701ba47a74f). > I see you haven't made it till the next commit yet. - Andreas
diff --git a/libavcodec/dsddec.c b/libavcodec/dsddec.c index 22009c70ef..2bb2e73b75 100644 --- a/libavcodec/dsddec.c +++ b/libavcodec/dsddec.c @@ -56,7 +56,7 @@ static av_cold int decode_init(AVCodecContext *avctx) if (!s) return AVERROR(ENOMEM); - silence = avctx->codec_id == AV_CODEC_ID_DSD_LSBF || avctx->codec_id == AV_CODEC_ID_DSD_LSBF_PLANAR ? DSD_SILENCE_REVERSED : DSD_SILENCE; + silence = DSD_SILENCE; for (i = 0; i < avctx->ch_layout.nb_channels; i++) { s[i].pos = 0; memset(s[i].buf, silence, sizeof(s[i].buf));
ff_dsd2pcm_translate() works internally by converting LSBF input to MSBF upon reading; its buffer is therefore always MSBF and should therefore be initialized with MSBF silence; but this is not true since e3d8963c3cb5b8cd31460dd9b3b9dba2a2343bf5 which this patch effectively reverts. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> --- libavcodec/dsddec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)