This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit 62156c59203873b985bf666ebc25bac74ab24d29
Author:     Kacper Michajłow <[email protected]>
AuthorDate: Tue Aug 11 12:16:43 2026 +0200
Commit:     Kacper Michajłow <[email protected]>
CommitDate: Sun Sep 6 00:48:26 2026 +0200

    avcodec/dsd: remove unused dsd2pcm implementation
    
    All decoders convert their DSD output to PCM with libswresample now.
    
    Signed-off-by: Kacper Michajłow <[email protected]>
---
 libavcodec/dsd.c | 112 +------------------------------------------------------
 libavcodec/dsd.h |  27 --------------
 2 files changed, 1 insertion(+), 138 deletions(-)

diff --git a/libavcodec/dsd.c b/libavcodec/dsd.c
index bca8b3e3a4..3d705dc7a3 100644
--- a/libavcodec/dsd.c
+++ b/libavcodec/dsd.c
@@ -1,7 +1,5 @@
 /*
  * Direct Stream Digital (DSD) decoder
- * based on BSD licensed dsd2pcm by Sebastian Gesemann
- * Copyright (c) 2009, 2011 Sebastian Gesemann. All rights reserved.
  * Copyright (c) 2014 Peter Ross
  *
  * This file is part of FFmpeg.
@@ -23,118 +21,10 @@
 
 #include "config.h"
 
-#include <string.h>
+#include "version_major.h"
 #include "libavutil/attributes.h"
-#include "libavutil/reverse.h"
-#include "libavutil/thread.h"
 #include "dsd.h"
 
-#define CTABLES ((HTAPS + 7) / 8) /** number of "8 MACs" lookup tables */
-
-/*
- * Properties of this 96-tap lowpass filter when applied on a signal
- * with sampling rate of 44100*64 Hz:
- *
- * () has a delay of 17 microseconds.
- *
- * () flat response up to 48 kHz
- *
- * () if you downsample afterwards by a factor of 8, the
- *    spectrum below 70 kHz is practically alias-free.
- *
- * () stopband rejection is about 160 dB
- *
- * The coefficient tables ("ctables") take only 6 Kibi Bytes and
- * should fit into a modern processor's fast cache.
- */
-
-/**
- * The 2nd half (48 coeffs) of a 96-tap symmetric lowpass filter
- */
-static const double htaps[HTAPS] = {
-     0.09950731974056658,    0.09562845727714668,    0.08819647126516944,
-     0.07782552527068175,    0.06534876523171299,    0.05172629311427257,
-     0.0379429484910187,     0.02490921351762261,    0.0133774746265897,
-     0.003883043418804416,  -0.003284703416210726,  -0.008080250212687497,
-    -0.01067241812471033,   -0.01139427235000863,   -0.0106813877974587,
-    -0.009007905078766049,  -0.006828859761015335,  -0.004535184322001496,
-    -0.002425035959059578,  -0.0006922187080790708,  0.0005700762133516592,
-     0.001353838005269448,   0.001713709169690937,   0.001742046839472948,
-     0.001545601648013235,   0.001226696225277855,   0.0008704322683580222,
-     0.0005381636200535649,  0.000266446345425276,   7.002968738383528e-05,
-    -5.279407053811266e-05, -0.0001140625650874684, -0.0001304796361231895,
-    -0.0001189970287491285, -9.396247155265073e-05, -6.577634378272832e-05,
-    -4.07492895872535e-05,  -2.17407957554587e-05,  -9.163058931391722e-06,
-    -2.017460145032201e-06,  1.249721855219005e-06,  2.166655190537392e-06,
-     1.930520892991082e-06,  1.319400334374195e-06,  7.410039764949091e-07,
-     3.423230509967409e-07,  1.244182214744588e-07,  3.130441005359396e-08
-};
-
-static double ctables_lsbf[CTABLES][256];
-static double ctables_msbf[CTABLES][256];
-
-static av_cold void dsd_ctables_tableinit(void)
-{
-    int t, e, m, sign;
-    double acc[CTABLES];
-    for (e = 0; e < 256; ++e) {
-        memset(acc, 0, sizeof(acc));
-        for (m = 0; m < 8; ++m) {
-            sign = (((e >> (7 - m)) & 1) * 2 - 1);
-            for (t = 0; t < CTABLES; ++t)
-                acc[t] += sign * htaps[t * 8 + m];
-        }
-        for (t = 0; t < CTABLES; ++t) {
-            ctables_msbf[CTABLES - 1 - t][e] = acc[t];
-            ctables_lsbf[CTABLES - 1 - t][ff_reverse[e]] = acc[t];
-        }
-    }
-}
-
-av_cold void ff_init_dsd_data(void)
-{
-    static AVOnce init_static_once = AV_ONCE_INIT;
-    ff_thread_once(&init_static_once, dsd_ctables_tableinit);
-}
-
-void ff_dsd2pcm_translate(DSDContext* s, size_t samples, int lsbf,
-                          const uint8_t *src, ptrdiff_t src_stride,
-                          float *dst, ptrdiff_t dst_stride)
-{
-    uint8_t buf[FIFOSIZE];
-    unsigned pos, i;
-    uint8_t* p;
-    double sum;
-    const double (*const ctables)[256] = lsbf ? ctables_lsbf : ctables_msbf;
-
-    pos = s->pos;
-
-    memcpy(buf, s->buf, sizeof(buf));
-
-    while (samples-- > 0) {
-        buf[pos] = *src;
-        src += src_stride;
-
-        p = buf + ((pos - CTABLES) & FIFOMASK);
-        *p = ff_reverse[*p];
-
-        sum = 0.0;
-        for (i = 0; i < CTABLES; i++) {
-            uint8_t a = buf[(pos                   - i) & FIFOMASK];
-            uint8_t b = buf[(pos - (CTABLES*2 - 1) + i) & FIFOMASK];
-            sum += ctables[i][a] + ctables[i][b];
-        }
-
-        *dst = (float)sum;
-        dst += dst_stride;
-
-        pos = (pos + 1) & FIFOMASK;
-    }
-
-    s->pos = pos;
-    memcpy(s->buf, buf, sizeof(buf));
-}
-
 #if CONFIG_SWRESAMPLE
 #include "libswresample/swresample.h"
 #include "avcodec.h"
diff --git a/libavcodec/dsd.h b/libavcodec/dsd.h
index 69c6c5bd43..a65d7d7757 100644
--- a/libavcodec/dsd.h
+++ b/libavcodec/dsd.h
@@ -1,7 +1,5 @@
 /*
  * Direct Stream Digital (DSD) decoder
- * based on BSD licensed dsd2pcm by Sebastian Gesemann
- * Copyright (c) 2009, 2011 Sebastian Gesemann. All rights reserved.
  * Copyright (c) 2014 Peter Ross
  *
  * This file is part of FFmpeg.
@@ -24,31 +22,6 @@
 #ifndef AVCODEC_DSD_H
 #define AVCODEC_DSD_H
 
-#include <stddef.h>
-#include <stdint.h>
-
-#define HTAPS   48               /** number of FIR constants */
-#define FIFOSIZE 16              /** must be a power of two */
-#define FIFOMASK (FIFOSIZE - 1)  /** bit mask for FIFO offsets */
-
-#if FIFOSIZE * 8 < HTAPS * 2
-#error "FIFOSIZE too small"
-#endif
-
-/**
- * Per-channel buffer
- */
-typedef struct DSDContext {
-    uint8_t buf[FIFOSIZE];
-    unsigned pos;
-} DSDContext;
-
-void ff_init_dsd_data(void);
-
-void ff_dsd2pcm_translate(DSDContext* s, size_t samples, int lsbf,
-                          const uint8_t *src, ptrdiff_t src_stride,
-                          float *dst, ptrdiff_t dst_stride);
-
 struct AVCodecContext;
 struct SwrContext;
 

-- 
To stop receiving notification emails like this one, please contact
[email protected].
_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to