summaryrefslogtreecommitdiff
path: root/libavcodec/wavpack.h
diff options
context:
space:
mode:
authorDavid Bryant <david@wavpack.com>2020-03-09 15:23:53 -0700
committerPaul B Mahol <onemda@gmail.com>2020-03-11 21:11:36 +0100
commit9a13ed522f361cdc3fa424922d59aca214d55a15 (patch)
treef5927db329e22a880cdb05575ebf3d1f8793e367 /libavcodec/wavpack.h
parent34d7c8d942c370965d3823e017c79b58f18285ca (diff)
downloadffmpeg-9a13ed522f361cdc3fa424922d59aca214d55a15.tar.gz
avcodec/wavpack: add support for DSD files
Add support for WavPack DSD files to the existing WavPack decoder using avcodec/dsd to perform the 8:1 decimation to 32-bit float samples. We must serialize the dsd2pcm operation (cross-boundary filtering) but would like to use frame-level multithreading for the CPU-intensive DSD decompression, and this is accomplished with ff_thread_report/await_progress(). Because the dsd2pcm operation is independent across channels we use slice-based multithreading for that part. Also a few things were removed from the existing WavPack decoder that weren't being used (primarily the SavedContext stuff) and the WavPack demuxer was enhanced to correctly determine the sampling rate of DSD files (and of course to no longer reject them). Signed-off-by: David Bryant <david@wavpack.com>
Diffstat (limited to 'libavcodec/wavpack.h')
-rw-r--r--libavcodec/wavpack.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/libavcodec/wavpack.h b/libavcodec/wavpack.h
index 6caad038e9..43aaac815f 100644
--- a/libavcodec/wavpack.h
+++ b/libavcodec/wavpack.h
@@ -35,6 +35,7 @@
#define WV_FLOAT_DATA 0x00000080
#define WV_INT32_DATA 0x00000100
#define WV_FALSE_STEREO 0x40000000
+#define WV_DSD_DATA 0x80000000
#define WV_HYBRID_MODE 0x00000008
#define WV_HYBRID_SHAPE 0x00000008
@@ -77,6 +78,7 @@ enum WP_ID {
WP_ID_CORR,
WP_ID_EXTRABITS,
WP_ID_CHANINFO,
+ WP_ID_DSD_DATA,
WP_ID_SAMPLE_RATE = 0x27,
};