Commit a2b5db00 authored by Max Kellermann's avatar Max Kellermann

audio_format: remove SAMPLE_FORMAT_DSD_OVER_USB

DSD-over-USB should not be a MPD core format, because it is not a "natural" format; it is just a temnporary over-the-wire format. This format has been implemented in pcm_export, and does not need to be supported by pcm_convert.
parent 2803ec2e
......@@ -29,15 +29,6 @@ audio_format_mask_apply(struct audio_format *af,
assert(audio_format_valid(af));
assert(audio_format_mask_valid(mask));
if (af->format == SAMPLE_FORMAT_DSD &&
mask->format == SAMPLE_FORMAT_DSD_OVER_USB &&
mask->sample_rate == 0)
/* each DSD-over-USB sample contains 2 DSD bytes (16
DSD bits), which means the sample rate must be
halved; this is not the real 1 bit sample rate, but
MPD's point of view */
af->sample_rate /= 2;
if (mask->sample_rate != 0)
af->sample_rate = mask->sample_rate;
......@@ -74,9 +65,6 @@ sample_format_to_string(enum sample_format format)
case SAMPLE_FORMAT_DSD:
return "dsd";
case SAMPLE_FORMAT_DSD_OVER_USB:
return "dsdusb";
}
/* unreachable */
......
......@@ -50,13 +50,6 @@ enum sample_format {
* byte (8 samples) per channel.
*/
SAMPLE_FORMAT_DSD,
/**
* DSD packed in 24 bit samples (padded to 32 bit), according
* to the dCS suggested standard:
* http://www.dcsltd.co.uk/page/assets/DSDoverUSB.pdf
*/
SAMPLE_FORMAT_DSD_OVER_USB,
};
static const unsigned MAX_CHANNELS = 8;
......@@ -174,7 +167,6 @@ audio_valid_sample_format(enum sample_format format)
case SAMPLE_FORMAT_S32:
case SAMPLE_FORMAT_FLOAT:
case SAMPLE_FORMAT_DSD:
case SAMPLE_FORMAT_DSD_OVER_USB:
return true;
case SAMPLE_FORMAT_UNDEFINED:
......@@ -245,7 +237,6 @@ sample_format_size(enum sample_format format)
case SAMPLE_FORMAT_S24_P32:
case SAMPLE_FORMAT_S32:
case SAMPLE_FORMAT_FLOAT:
case SAMPLE_FORMAT_DSD_OVER_USB:
return 4;
case SAMPLE_FORMAT_DSD:
......
......@@ -87,12 +87,6 @@ parse_sample_format(const char *src, bool mask,
return true;
}
if (memcmp(src, "dsdusb", 6) == 0) {
*sample_format_r = SAMPLE_FORMAT_DSD_OVER_USB;
*endptr_r = src + 6;
return true;
}
if (memcmp(src, "dsd", 3) == 0) {
*sample_format_r = SAMPLE_FORMAT_DSD;
*endptr_r = src + 3;
......
......@@ -103,7 +103,6 @@ flac_convert(void *dest,
case SAMPLE_FORMAT_FLOAT:
case SAMPLE_FORMAT_DSD:
case SAMPLE_FORMAT_DSD_OVER_USB:
case SAMPLE_FORMAT_UNDEFINED:
/* unreachable */
assert(false);
......
......@@ -227,7 +227,6 @@ get_bitformat(enum sample_format sample_format)
switch (sample_format) {
case SAMPLE_FORMAT_UNDEFINED:
case SAMPLE_FORMAT_DSD:
case SAMPLE_FORMAT_DSD_OVER_USB:
return SND_PCM_FORMAT_UNKNOWN;
case SAMPLE_FORMAT_S8:
......
......@@ -433,7 +433,6 @@ sample_format_to_oss(enum sample_format format)
case SAMPLE_FORMAT_UNDEFINED:
case SAMPLE_FORMAT_FLOAT:
case SAMPLE_FORMAT_DSD:
case SAMPLE_FORMAT_DSD_OVER_USB:
return AFMT_QUERY;
case SAMPLE_FORMAT_S8:
......
......@@ -22,7 +22,6 @@
#include "pcm_channels.h"
#include "pcm_format.h"
#include "pcm_pack.h"
#include "pcm_dsd_usb.h"
#include "audio_format.h"
#include "glib_compat.h"
......@@ -76,7 +75,6 @@ pcm_convert_channels(struct pcm_buffer *buffer, enum sample_format format,
case SAMPLE_FORMAT_S8:
case SAMPLE_FORMAT_FLOAT:
case SAMPLE_FORMAT_DSD:
case SAMPLE_FORMAT_DSD_OVER_USB:
g_set_error(error_r, pcm_convert_quark(), 0,
"Channel conversion not implemented for format '%s'",
sample_format_to_string(format));
......@@ -326,40 +324,6 @@ pcm_convert(struct pcm_convert_state *state,
size_t *dest_size_r,
GError **error_r)
{
struct audio_format usb_format;
if (src_format->format == SAMPLE_FORMAT_DSD &&
dest_format->format == SAMPLE_FORMAT_DSD_OVER_USB) {
size_t u_size;
const uint32_t *u = pcm_dsd_to_usb(&state->dsd.buffer,
src_format->channels,
src, src_size,
&u_size);
if (u == NULL) {
g_set_error_literal(error_r, pcm_convert_quark(), 0,
"DSD to USB conversion failed");
return NULL;
}
usb_format = *src_format;
usb_format.format = SAMPLE_FORMAT_DSD_OVER_USB;
/* each DSD-over-USB sample contains 2 DSD bytes (16
DSD bits), which means the sample rate must be
halved; this is not the real 1 bit sample rate, but
MPD's point of view */
usb_format.sample_rate = usb_format.sample_rate / 2;
if (audio_format_equals(&usb_format, dest_format)) {
*dest_size_r = u_size;
return u;
}
src_format = &usb_format;
src = u;
src_size = u_size;
}
struct audio_format float_format;
if (src_format->format == SAMPLE_FORMAT_DSD) {
size_t f_size;
......
......@@ -54,7 +54,7 @@ pcm_export_open(struct pcm_export_state *state,
sample_format = SAMPLE_FORMAT_S24_P32;
state->shift8 = shift8 && sample_format == SAMPLE_FORMAT_S24_P32;
state->pack24 = pack && (sample_format == SAMPLE_FORMAT_S24_P32 || sample_format == SAMPLE_FORMAT_DSD_OVER_USB);
state->pack24 = pack && sample_format == SAMPLE_FORMAT_S24_P32;
assert(!state->shift8 || !state->pack24);
......
......@@ -121,7 +121,6 @@ pcm_convert_to_16(struct pcm_buffer *buffer, struct pcm_dither *dither,
switch (src_format) {
case SAMPLE_FORMAT_UNDEFINED:
case SAMPLE_FORMAT_DSD:
case SAMPLE_FORMAT_DSD_OVER_USB:
break;
case SAMPLE_FORMAT_S8:
......@@ -237,7 +236,6 @@ pcm_convert_to_24(struct pcm_buffer *buffer,
switch (src_format) {
case SAMPLE_FORMAT_UNDEFINED:
case SAMPLE_FORMAT_DSD:
case SAMPLE_FORMAT_DSD_OVER_USB:
break;
case SAMPLE_FORMAT_S8:
......@@ -345,7 +343,6 @@ pcm_convert_to_32(struct pcm_buffer *buffer,
switch (src_format) {
case SAMPLE_FORMAT_UNDEFINED:
case SAMPLE_FORMAT_DSD:
case SAMPLE_FORMAT_DSD_OVER_USB:
break;
case SAMPLE_FORMAT_S8:
......@@ -463,7 +460,6 @@ pcm_convert_to_float(struct pcm_buffer *buffer,
switch (src_format) {
case SAMPLE_FORMAT_UNDEFINED:
case SAMPLE_FORMAT_DSD:
case SAMPLE_FORMAT_DSD_OVER_USB:
break;
case SAMPLE_FORMAT_S8:
......
......@@ -120,7 +120,6 @@ pcm_add_vol(void *buffer1, const void *buffer2, size_t size,
switch (format) {
case SAMPLE_FORMAT_UNDEFINED:
case SAMPLE_FORMAT_DSD:
case SAMPLE_FORMAT_DSD_OVER_USB:
/* not implemented */
return false;
......@@ -230,7 +229,6 @@ pcm_add(void *buffer1, const void *buffer2, size_t size,
switch (format) {
case SAMPLE_FORMAT_UNDEFINED:
case SAMPLE_FORMAT_DSD:
case SAMPLE_FORMAT_DSD_OVER_USB:
/* not implemented */
return false;
......
......@@ -159,7 +159,6 @@ pcm_volume(void *buffer, size_t length,
switch (format) {
case SAMPLE_FORMAT_UNDEFINED:
case SAMPLE_FORMAT_DSD:
case SAMPLE_FORMAT_DSD_OVER_USB:
/* not implemented */
return false;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment