35 #define FIFOMASK (FIFOSIZE - 1)
37 #if FIFOSIZE * 8 < HTAPS * 2
38 #error "FIFOSIZE too small"
50 const unsigned char *
src, ptrdiff_t src_stride,
51 float *dst, ptrdiff_t dst_stride)
59 while (samples-- > 0) {
69 unsigned char b = s->
buf[(pos - (CTABLES*2 - 1) + i) &
FIFOMASK];
102 for (i = 0; i < avctx->
channels; i++) {
104 memset(s[i].
buf, 0x69,
sizeof(s[i].buf));
119 int *got_frame_ptr,
AVPacket *avpkt)
141 for (i = 0; i < avctx->
channels; i++) {
144 avpkt->
data + i * src_next, src_stride,
152 #define DSD_DECODER(id_, name_, long_name_) \
153 AVCodec ff_##name_##_decoder = { \
155 .long_name = NULL_IF_CONFIG_SMALL(long_name_), \
156 .type = AVMEDIA_TYPE_AUDIO, \
157 .id = AV_CODEC_ID_##id_, \
158 .init = decode_init, \
159 .decode = decode_frame, \
160 .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP, \
161 AV_SAMPLE_FMT_NONE }, \
164 DSD_DECODER(DSD_LSBF, dsd_lsbf,
"DSD (Direct Stream Digital), least significant bit first")
165 DSD_DECODER(DSD_MSBF, dsd_msbf, "DSD (Direct
Stream Digital), most significant bit first")
166 DSD_DECODER(DSD_MSBF_PLANAR, dsd_msbf_planar, "DSD (Direct
Stream Digital), most significant bit first, planar")
167 DSD_DECODER(DSD_LSBF_PLANAR, dsd_lsbf_planar, "DSD (Direct
Stream Digital), least significant bit first, planar")