aboutsummaryrefslogtreecommitdiffstats
path: root/src/audio_format.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* gcc.h: re-add gcc_const and gcc_pureMax Kellermann2012-08-021-9/+10
| | | | Remove GLib dependency from some headers.
* audio_format: remove SAMPLE_FORMAT_DSD_OVER_USBMax Kellermann2012-03-271-9/+0
| | | | | | | 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.
* audio_format: remove the packed S24 formatMax Kellermann2012-03-221-9/+0
| | | | | | For simplicity, the MPD core should not have to deal with packing. It is rarely used, and those plugins that need it should use the pcm_export library instead.
* audio_format: DSD_OVER_USB is padded to 32 bitMax Kellermann2012-03-211-3/+3
| | | | | | For simplicity, pad the dCS samples to 32 bit. Packed 24 bit samples are rarely used. This patch does not include a real code change, because there is no user of DSD_OVER_USB yet.
* audio_format: remove the reverse_endian attributeMax Kellermann2012-03-211-11/+1
| | | | | | Eliminate support for reverse endian samples from the MPD core. This moves a lot of complexity to the plugins that really need it (only ALSA and CDIO currently).
* audio_format: remove the format SAMPLE_FORMAT_DSD_LSBFIRSTMax Kellermann2012-03-211-8/+0
| | | | | This format is unused since the DSDIFF decoder plugin now reverses the bit order.
* audio_format: basic support for DSD-over-USBMax Kellermann2012-03-191-0/+9
|
* audio_format: add DSD sample formatMax Kellermann2012-03-011-0/+19
| | | | | Basic support for Direct Stream Digital. No conversion yet, and no decoder/output plugin support.
* audio_format: basic support for floating point samplesMax Kellermann2011-10-201-0/+8
| | | | | Support for conversion from float to 16, 24 and 32 bit integer samples.
* audio_format: convert reverse_endian to a "bool"Max Kellermann2011-10-101-3/+3
|
* audio_format: un-inline audio_format_mask_apply()Max Kellermann2011-10-101-17/+2
| | | | | This function is not critical for performance, and the inline expansion looks too expensive.
* audio_format: add function attributesMax Kellermann2011-10-101-0/+9
| | | | For better optimization.
* audio_format: move code to sample_format_size()Max Kellermann2011-10-081-6/+13
| | | | | Cast to enum sample_format. Without the cast, it's just a plain integer, and gcc cannot know that a "case" statement is missing.
* audio_format: add constant MAX_CHANNELSMax Kellermann2011-10-041-1/+3
| | | | To be used in fixed-size arrays.
* Merge commit 'release-0.16.2'Max Kellermann2011-03-191-0/+6
|\ | | | | | | | | | | | | Conflicts: Makefile.am NEWS configure.ac
| * audio_format, output_thread: add more audio_format_valid() assertionsMax Kellermann2011-03-161-0/+6
| |
* | copyright year 2011Max Kellermann2011-01-291-1/+1
|/
* audio_format: support packed 24 bit samplesMax Kellermann2010-01-161-0/+9
|
* Update copyright notices.Avuton Olrich2009-12-311-1/+1
|
* audio_format: changed "bits" to "enum sample_format"Max Kellermann2009-12-021-19/+67
| | | | | | This patch prepares support for floating point samples (and probably other formats). It changes the meaning of the "bits" attribute from a bit count to a symbolic value.
* audio_format: added function audio_format_to_string()Max Kellermann2009-11-141-0/+19
| | | | | Unified function for converting an audio_format object to a string, for log messages and for the "status" command.
* audio_format: wildcards allowed in audio_format configurationMax Kellermann2009-10-211-0/+47
| | | | | | An asterisk means that this attribute should not be enforced, and stays whatever it used to be. This way, some configuration values work like masks.
* player_thread: don't use precalculated size_to_timeMax Kellermann2009-07-231-9/+0
| | | | | | | Calculate the total play time with the audio_format object each time, using audio_format_time_to_size(). The function audioFormatSizeToTime() is not needed anymore, and will be removed with this patch.
* audio_format: added API documentationMax Kellermann2009-07-221-0/+48
|
* audio_format: initialize reverse_endian in audio_format_init()Max Kellermann2009-07-221-0/+1
| | | | | This line was missing in the reverse_endian patch, and led to undefined values and crashes in that attribute.
* Add reverse_endian field to struct audio_format and handle conversionDavid Woodhouse2009-07-191-1/+4
|
* Add audio_format_init() functionDavid Woodhouse2009-07-191-0/+9
| | | | | It makes no difference right now, but we're about to add an endianness flag and will want to make sure it's correctly initialised every time.
* all: Update copyright header.Avuton Olrich2009-03-131-6/+7
| | | | | | | | This updates the copyright header to all be the same, which is pretty much an update of where to mail request for a copy of the GPL and the years of the MPD project. This also puts all committers under 'The Music Player Project' umbrella. These entries should go individually in the AUTHORS file, for consistancy.
* audio_format: allow 32 bit samplesMax Kellermann2009-03-021-1/+1
| | | | | | This is the first patch in a series to enable 32 bit audio samples in MPD. 32 bit samples are more tricky than 24 bit samples, because the integer may overflow when you operate on a sample.
* audio_format: allow up to 8 channelsMax Kellermann2009-03-021-1/+1
| | | | | | | audio_valid_sample_format() verifies the number of channels. Let's just say up to 8 channels is allowed (which is possible with some consumer sound chips). I don't know if there are bigger cards, and since I cannot test it, I'll limit it to 8 for now.
* audio_format: added validation functionsMax Kellermann2009-02-111-3/+34
| | | | | | In addition to audio_format_valid(), provide functions which validate only one attribute of an audio_format. These functions are reused by audio_format_parse().
* audio_format: added audio_format_valid()Max Kellermann2008-11-211-0/+11
|
* added prefix to header macrosMax Kellermann2008-10-311-2/+2
| | | | | | | "LOG_H" is a macro which is also used by ffmpeg/log.h. This is ffmpeg's fault, because short macros should be reserved for applications, but since it's always a good idea to choose prefixed macro names, even for applications, we are going to do that in MPD.
* audio_format: added audio_format_frame_size()Max Kellermann2008-10-101-1/+7
| | | | | | | A frame contains one sample per channel, thus it is sample_size * channels. This patch includes some cleanup for various locations where the sample size for 24 bit audio was still 3 bytes (instead of 4).
* audio_format: renamed sampleRate to sample_rateMax Kellermann2008-10-101-5/+5
| | | | | The last bit of CamelCase in audio_format.h. Additionally, rename a bunch of local variables.
* audio_format: unsigned integersMax Kellermann2008-10-101-2/+2
| | | | "bits" and "channels" cannot be negative.
* use the "bool" data type instead of "int"Max Kellermann2008-10-081-3/+4
| | | | "bool" should be used in C99 programs for boolean values.
* assume stdint.h and stddef.h are availableMax Kellermann2008-09-291-1/+1
| | | | | | Since we use a C99 compiler now, we can assert that the C99 standard headers are available, no need for complicated compile time checks. Kill mpd_types.h.
* switch to C99 types, part IIMax Kellermann2008-09-291-3/+3
| | | | | Do full C99 integer type conversion in all modules which were not touched by Eric's merged patch.
* audio_format: added audio_format_sample_size()Max Kellermann2008-09-231-2/+15
| | | | | | The inline function audio_format_sample_size() calculates how many bytes each sample consumes. This function already takes into account that 24 bit samples are 4 bytes long, not 3.
* audio_format: added audio_format_clear() and audio_format_defined()Max Kellermann2008-09-101-0/+12
| | | | | | | | | audio_format_clear() sets an audio_format struct to an cleared (undefined) state, which is both faster and smaller than memset(0). audio_format_defined() checks if the audio_format struct actually has a defined value (i.e. non-zero). Both can be used to avoid pointers to audio_format, replacing the "NULL" value with an "undefined" audio_format.
* audio: moved cmpAudioFormat() to audio_format.hMax Kellermann2008-09-091-0/+8
| | | | | Rename it to audio_format_equals() and return "true" if they are equal.
* pack the struct audio_formatMax Kellermann2008-09-071-1/+1
| | | | | | Due to clumsy layout, the audio_format struct took 12 bytes. Move the "channels" to the end, so it can be merged into the same 32 bit slot as "bits", which reduces the struct size to 8 bytes.
* audio_format: converted typedef AudioFormat to struct audio_formatMax Kellermann2008-09-071-4/+4
| | | | | Get rid of CamelCase, and don't use a typedef, so we can forward-declare it, and unclutter the include dependencies.
* audio_format: volatile removalEric Wong2008-09-071-3/+3
| | | | | | | | | | | | | | | | | volatile provides absolutely no guarantee thread-safety in SMP environments. volatile was designed to access memory locations in peripheral hardware directly; not for SMP. If volatile is needed to work properly on SMP, then it is only hiding subtle bugs. volatile only prevents the /compiler/ from making optimizations when accessing variables. CPUs do their own optimizations at runtime so it cannot guarantee registers of CPUs are flushed to memory cache-coherent access on different CPUs. Furthermore, the thread-communication via condition variables between threads sharing audio formats already results in memory barriers.
* added inline function audio_format_time_to_size()Max Kellermann2008-08-261-0/+5
| | | | | Make the code more readable by hiding big formulas in an inline function with a nice name.
* moved struct AudioFormat to audio_format.hMax Kellermann2008-08-261-0/+35
We want to expose the AudioFormat structure to plugins; remove some clutter by moving its declaration to a separate header file.