[FFmpeg-cvslog] avcodec/dsddec: Fix decoding LSBF samples

Andreas Rheinhardt git at videolan.org
Fri Apr 5 01:06:04 EEST 2024


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Sun Mar 31 23:42:13 2024 +0200| [6d38c260e57d3dcd9f106f378d0f190b0cb837fe] | committer: Andreas Rheinhardt

avcodec/dsddec: Fix decoding LSBF samples

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 at outlook.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6d38c260e57d3dcd9f106f378d0f190b0cb837fe
---

 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));



More information about the ffmpeg-cvslog mailing list