mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2026-10-24 02:09:03 +03:00
Convert DSD to PCM with the same 96-tap symmetric lowpass filter the libavcodec DSD decoders use. The implementation is copied from libavcodec/dsd.c, minus the LSBF table variants, since AV_SAMPLE_FMT_DSD is defined as MSBF. The libavcodec copy will be removed in future commits as decoders are transitioned to SWR. The conversion is stateful (per-channel filter history), so the audio conversion functions gain a per-channel state argument. DSD silence is the 0x69 bit pattern instead of the 0x80 used for PCM. Only a direct DSD to float conversion function is provided. For format pairs without a direct conversion function (e.g. DSD to s16 with equal rates), swr_init() now falls back from the full_convert shortcut to the generic two-stage path instead of failing, and reports unsupported conversions with a proper error message instead of ENOMEM. Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
31 lines
1002 B
Makefile
31 lines
1002 B
Makefile
NAME = swresample
|
|
DESC = FFmpeg audio resampling library
|
|
FFLIBS = avutil
|
|
|
|
HEADERS = swresample.h \
|
|
version.h \
|
|
version_major.h \
|
|
|
|
OBJS = audioconvert.o \
|
|
dsd2pcm.o \
|
|
dither.o \
|
|
options.o \
|
|
rematrix.o \
|
|
resample.o \
|
|
resample_dsp.o \
|
|
swresample.o \
|
|
swresample_frame.o \
|
|
version.o \
|
|
|
|
OBJS-$(CONFIG_LIBSOXR) += soxr_resample.o
|
|
|
|
# Objects duplicated from other libraries for shared builds
|
|
SHLIBOBJS += log2_tab.o reverse.o
|
|
|
|
# Windows resource file
|
|
SHLIBOBJS-$(HAVE_GNU_WINDRES) += swresampleres.o
|
|
|
|
TESTPROGS = rematrix \
|
|
swresample \
|
|
swresample_resample_realloc \
|