1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
// SPDX-License-Identifier: BSD-2-Clause
// Copyright The Music Player Daemon Project
/*! \file
* \brief MPD client library
*
* Do not include this header directly. Use mpd/client.h instead.
*/
#ifndef MPD_AUDIO_FORMAT_H
#define MPD_AUDIO_FORMAT_H
#include <stdint.h>
enum {
/**
* The sample format is unknown or unspecified.
*
* @since libmpdclient 2.15
*/
MPD_SAMPLE_FORMAT_UNDEFINED = 0x00,
/**
* 32 bit floating point samples.
*/
MPD_SAMPLE_FORMAT_FLOAT = 0xe0,
/**
* DSD samples.
*/
MPD_SAMPLE_FORMAT_DSD = 0xe1,
};
/**
* This structure describes the format of a raw PCM stream.
*/
struct mpd_audio_format {
/**
* The sample rate in Hz. A better name for this attribute is
* "frame rate", because technically, you have two samples per
* frame in stereo sound.
*
* The special value 0 means "unknown or unspecified".
*/
uint32_t sample_rate;
/**
* The number of significant bits per sample. Samples are
* currently always signed. Supported values are 8, 16, 24,
* 32 and the special values #MPD_SAMPLE_FORMAT_FLOAT,
* #MPD_SAMPLE_FORMAT_DSD, #MPD_SAMPLE_FORMAT_UNDEFINED.
*
* @since libmpdclient 2.10 added support for #MPD_SAMPLE_FORMAT_FLOAT and
* #MPD_SAMPLE_FORMAT_DSD.
*/
uint8_t bits;
/**
* The number of channels. Only mono (1) and stereo (2) are
* fully supported currently.
*
* The special value 0 means "unknown or unspecified".
*/
uint8_t channels;
/** reserved for future use */
uint16_t reserved0;
/** reserved for future use */
uint32_t reserved1;
};
#endif
|