From 25164969932590894671895944f30743d344e541 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 1 Mar 2012 00:25:08 +0100 Subject: audio_format: add DSD sample format Basic support for Direct Stream Digital. No conversion yet, and no decoder/output plugin support. --- src/audio_format.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/audio_format.h') diff --git a/src/audio_format.h b/src/audio_format.h index 4f7dbfb1a..2c86b70b9 100644 --- a/src/audio_format.h +++ b/src/audio_format.h @@ -49,6 +49,18 @@ enum sample_format { * range is -1.0f to +1.0f. */ SAMPLE_FORMAT_FLOAT, + + /** + * Direct Stream Digital. 1-bit samples; each frame has one + * byte (8 samples) per channel. + */ + SAMPLE_FORMAT_DSD, + + /** + * Same as #SAMPLE_FORMAT_DSD, but the least significant bit + * comes first. + */ + SAMPLE_FORMAT_DSD_LSBFIRST, }; static const unsigned MAX_CHANNELS = 8; @@ -175,6 +187,8 @@ audio_valid_sample_format(enum sample_format format) case SAMPLE_FORMAT_S24_P32: case SAMPLE_FORMAT_S32: case SAMPLE_FORMAT_FLOAT: + case SAMPLE_FORMAT_DSD: + case SAMPLE_FORMAT_DSD_LSBFIRST: return true; case SAMPLE_FORMAT_UNDEFINED: @@ -251,6 +265,11 @@ sample_format_size(enum sample_format format) case SAMPLE_FORMAT_FLOAT: return 4; + case SAMPLE_FORMAT_DSD: + case SAMPLE_FORMAT_DSD_LSBFIRST: + /* each frame has 8 samples per channel */ + return 1; + case SAMPLE_FORMAT_UNDEFINED: return 0; } -- cgit v1.2.3