1
0
mirror of https://git.ffmpeg.org/ffmpeg.git synced 2026-10-28 15:19:38 +03:00
Files
ffmpeg/tests/ref/fate/source
Kacper Michajłow 72b81d5b64 swresample: support AV_SAMPLE_FMT_DSD input
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>
2026-09-06 00:48:24 +02:00

36 lines
970 B
Plaintext

Files without standard license headers:
libavcodec/file_open.c
libavcodec/interplayacm.c
libavcodec/log2_tab.c
libavcodec/reverse.c
libavcodec/riscv/cpu_common.c
libavdevice/file_open.c
libavdevice/reverse.c
libavdevice/riscv/cpu_common.c
libavfilter/file_open.c
libavfilter/log2_tab.c
libavfilter/riscv/cpu_common.c
libavformat/file_open.c
libavformat/golomb_tab.c
libavformat/log2_tab.c
libavformat/rangecoder_dec.c
libavformat/riscv/cpu_common.c
libswresample/log2_tab.c
libswresample/reverse.c
libswscale/aarch64/ops_entries.c
libswscale/log2_tab.c
libswscale/riscv/cpu_common.c
libswscale/uops_macros.h
tools/uncoded_frame.c
tools/yuvcmp.c
Headers without standard inclusion guards:
compat/djgpp/math.h
compat/float/float.h
compat/float/limits.h
compat/stdbit/stdbit.h
libavcodec/bitstream_template.h
libswscale/x86/uops_macros.asm.h
tools/decode_simple.h
Use of av_clip() where av_clip_uintp2() could be used:
Use of av_clip() where av_clip_intp2() could be used: