aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/flac_common.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2012-10-02decoder/flac: use C++ compilerMax Kellermann1-103/+0
2012-09-04decoder/_ogg_common: rename to ogg_common.cMax Kellermann1-0/+0
2012-08-02gcc.h: re-add gcc_const and gcc_pureMax Kellermann1-2/+0
Remove GLib dependency from some headers.
2012-02-11decoder/flac: use error messages from libFLACMax Kellermann1-2/+1
2011-01-29copyright year 2011Max Kellermann1-1/+1
2010-01-06decoder/flac: moved decoder initialization to _flac_common.cMax Kellermann1-15/+6
Invoke decoder_initialized() in the libFLAC metadata callback. This merges code from the FLAC and the OggFLAC decoder plugin into the common library.
2010-01-06decoder/flac: remember audio_format, not stream_infoMax Kellermann1-7/+13
2010-01-06decoder/flac: removed CUE sheet supportMax Kellermann1-11/+0
This feature has been moved to the "flac" playlist plugin.
2010-01-04decoder_api: added function decoder_replay_gain()Max Kellermann1-1/+0
This function replaces the replay_gain_info parameter for decoder_data(). This allows the decoder to announce replay gain changes, instead of having to pass the same object over and over.
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-12-02audio_format: changed "bits" to "enum sample_format"Max Kellermann1-0/+2
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.
2009-11-11decoder/flac: moved code to flac_data_get_audio_format()Max Kellermann1-1/+16
Remove the audio_format attribute, add "frame_size" instead. The audio_format initialization and check is moved both to flac_data_get_audio_format().
2009-11-11decoder/flac: calculate time stamp from current frameMax Kellermann1-1/+6
Don't update a float timestamp, this will make imprecisions add up after a while. We already have the number of the current frame, let's just calculate the float timestamp from that for every decoder_data() command. For this, we need to add the attribute "first_frame", for CUE sheet songs.
2009-11-11decoder/flac: calculate bit rate in flac_common_write()Max Kellermann1-2/+2
Removed the "bit_rate" attribute from the flac_data struct. Pass the number of bytes since the last call to flac_common_write(), and let it calculate the bit rate.
2009-11-11decoder/flac: store the whole stream info object, not durationMax Kellermann1-1/+13
We don't want to work with floating point values if possible. Get the integer number of frames from the FLAC__StreamMetadata_StreamInfo object, and convert it into a float duration on demand. This patch adds a check if the STREAMINFO packet has been received yet.
2009-11-11decoder/flac: moved code to flac_compat.hMax Kellermann1-113/+3
2009-11-11decoder/flac: keep track of current frame numberMax Kellermann1-0/+5
We need this for more exact end-of-subsong detection for CUE files.
2009-11-11decoder/flac: moved code to flac_metadata.cMax Kellermann1-11/+0
2009-11-11decoder/flac: merged some code into flac_tag_apply_metadata()Max Kellermann1-2/+2
2009-11-10decoder/flac: don't use float to calculate song durationMax Kellermann1-0/+7
Simple (up-rounding) integer division is good enough. We're casting the result back to an integer anyway.
2009-11-10decoder/flac: pass VorbisComment to comments_to_tag()Max Kellermann1-1/+1
2009-11-10decoder/flac: use pcm_buffer instead of fixed bufferMax Kellermann1-2/+4
This is a great simplification for flac_common_write(), because we can convert and submit all of the buffer in one turn. No more partial buffers with complicated formulas.
2009-11-10decoder/flac: added function flac_data_deinit()Max Kellermann1-0/+3
Clean up tag and replay_gain_info there.
2009-03-16flac: get CUE track titles from additional FLAC commentsMario Lenz1-1/+1
The cue sheet embedded in a flac file doen't contain any information about track titles and similar. There are three possibilities: Use an external cue sheet that includes these information, use a tag CUESHEET with a cue sheet including these information or use tags. I think the latter is the best option and is already used by other projects.
2009-03-13all: Update copyright header.Avuton Olrich1-9/+11
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.
2009-03-09Initial support for embedded cue sheets found in flac filesJochen Keil1-0/+11
So far only seekpoints are supported, so no proper tagging yet except for track number and track length. Tagging should be done by parsing the cue sheet which is often embedded as vorbis comment in flac files. Furthermore the pathname should be configurable like "%A - %t - %T", where %A means Artist, %t track number and %T Title or so.
2009-01-19flac: include config.hMax Kellermann1-0/+1
The plugin queries build-time configuration variables, and should include config.h.
2009-01-15flac: always allocate tag objectMax Kellermann1-3/+3
Free the tag object when it turns out to be empty. This simplifies several functions and APIs.
2009-01-15flac: no CamelCaseMax Kellermann1-12/+16
Renamed types, functions, variables.
2008-11-21flac, oggflac: use GLib instead of utils.h/log.hMax Kellermann1-0/+5
2008-11-11replay_gain: no CamelCaseMax Kellermann1-1/+1
Renamed functions and variables.
2008-10-31added prefix to header macrosMax Kellermann1-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.
2008-10-26input_stream: removed the InputStream typedefMax Kellermann1-2/+2
Everybody should use struct input_stream.
2008-10-26renamed src/inputPlugins/ to src/decoder/Max Kellermann1-0/+0
These plugins are not input plugins, they are decoder plugins. No CamelCase in the directory name.
2008-10-17Makefile.am: don't compile disabled decoder pluginsMax Kellermann1-4/+0
Don't compile the sources of disabled decoder plugins at all, and don't attempt to register these.
2008-09-23flac: removed FlacData.chunk_lengthMax Kellermann1-1/+0
chunk_length can be converted to a local variable, because it is always reset to 0 after it was used.
2008-09-23flac: moved code from flacWrite() to _flac_common.cMax Kellermann1-12/+3
There is still a lot of duplicated code in flac_plugin.c and oggflac_plugin.c. Move code from flac_plugin.c to _flac_common.c, and use the new function flac_common_write() also in oggflac_plugin.c, porting lots of optimizations over to it.
2008-09-07audio_format: converted typedef AudioFormat to struct audio_formatMax Kellermann1-1/+1
Get rid of CamelCase, and don't use a typedef, so we can forward-declare it, and unclutter the include dependencies.
2008-08-29tag: renamed MpdTag and MpdTagItem to struct tag, struct mpd_tag_itemMax Kellermann1-3/+3
Getting rid of CamelCase; not having typedefs also allows us to forward-declare the structures.
2008-08-26eliminate OUTPUT_BUFFER_DC_STOP, OUTPUT_BUFFER_DC_SEEKMax Kellermann1-1/+1
(Ab)use the decoder_command enumeration, which has nearly the same values and the same meaning.
2008-08-26added parameter total_time to decoder_initialized()Max Kellermann1-0/+1
Similar to the previous patch: pass total_time instead of manipulating dc->totalTime directly.
2008-08-26added audio_format parameter to decoder_initialized()Max Kellermann1-0/+1
dc->audioFormat is set once by the decoder plugins before invoking decoder_initialized(); hide dc->audioFormat and let the decoder pass an AudioFormat pointer to decoder_initialized().
2008-08-26added decoder_data()Max Kellermann1-6/+5
Moved all of the player-waiting code to decoder_data(), to make OutputBuffer more generic.
2008-08-26added decoder_initialized()Max Kellermann1-1/+1
decoder_initialized() sets the state to DECODE_STATE_DECODE and wakes up the player thread. It is called by the decoder plugin after its internal initialization is finished. More arguments will be added later to prevent direct accesses to the DecoderControl struct.
2008-08-26added struct decoderMax Kellermann1-1/+3
The decoder struct should later be made opaque to the decoder plugin, because maintaining a stable struct ABI is quite difficult. The ABI should only consist of a small number of stable functions.
2008-08-26clean up CPP includesMax Kellermann1-4/+0
Include only headers which are really required. This speeds up compilation and helps detect cross-layer accesses.
2008-04-13Make the OutputBuffer API more consistentEric Wong1-1/+1
We had functions names varied between outputBufferFoo, fooOutputBuffer, and output_buffer_foo That was too confusing for my little brain to handle. And the global variable was somehow named 'cb' instead of the more obvious 'ob'... git-svn-id: https://svn.musicpd.org/mpd/trunk@7355 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-04-13Stop passing our single OutputBuffer object everywhereEric Wong1-3/+2
All of our main singleton data structures are implicitly shared, so there's no reason to keep passing them around and around in the stack and making our internal API harder to deal with. git-svn-id: https://svn.musicpd.org/mpd/trunk@7354 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-04-13Stop passing our single DecoderControl object everywhereEric Wong1-4/+2
This at least makes the argument list to a lot of our plugin functions shorter and removes a good amount of line nois^W^Wcode, hopefully making things easier to read and follow. git-svn-id: https://svn.musicpd.org/mpd/trunk@7353 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-04-12use unsigned integers and size_t in the flac pluginMax Kellermann1-2/+2
git-svn-id: https://svn.musicpd.org/mpd/trunk@7324 09075e82-0dd4-0310-85a5-a0d7c8717e4f