Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | ConfigGlobal: fix params not fully cleaned | Thomas Guillem | 2014-12-08 | 1 | -0/+1 |
| | |||||
* | Merge tag 'v0.19.6' | Max Kellermann | 2014-12-08 | 3 | -2/+8 |
|\ | |||||
| * | Merge tag 'v0.18.20' into v0.19.x | Max Kellermann | 2014-12-08 | 2 | -2/+7 |
| |\ | |||||
| | * | decoder/ffmpeg: support FFmpeg 2.5 | Max Kellermann | 2014-12-08 | 1 | -0/+5 |
| | | | | | | | | | | | | | | | | | | Version 2.5 fixed an API oddity, however it broke API compatibility, at least with C++. Disable the workaround when a libavformat version is detected that is recent enough. | ||||
| | * | thread/Id: drop "::" prefix before pthread function names | Max Kellermann | 2014-12-08 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | | | | The "::" to explicitly refer to the global namespace appeared like a good idea in C++, but it breaks with C libraries that implement standard functions using macros (e.g. musl). | ||||
| * | | Output: start with a null mixer. | Nix | 2014-12-01 | 1 | -0/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are code paths (mostly error cases) in which it is possible to initialize an AudioOutput and then kill it without ever calling audio_output_new(). In such a case, its destructor will attempt to free a mixer that was never initialized, leading to an attempt to take out a lock on a mutex that was similarly never initialized, which hangs forever. Fix by always initializing the mixer appropriately. | ||||
* | | | command: use ConstBuffer<const char *> for argument list | Max Kellermann | 2014-12-08 | 25 | -420/+417 |
| | | | |||||
* | | | AllCommands: simplify the tokenizer loop | Max Kellermann | 2014-12-08 | 1 | -17/+19 |
| | | | |||||
* | | | AllCommands: assign current_command early | Max Kellermann | 2014-12-08 | 1 | -5/+4 |
| | | | |||||
* | | | AllCommands: remove redundant initializer | Max Kellermann | 2014-12-08 | 1 | -1/+1 |
| | | | |||||
* | | | CommandLine: show id3tag support in --version | Max Kellermann | 2014-12-07 | 1 | -0/+5 |
| | | | |||||
* | | | AllCommands: make variables more local | Max Kellermann | 2014-12-06 | 1 | -16/+13 |
| | | | |||||
* | | | AllCommands: make the commands array "constexpr" | Max Kellermann | 2014-12-06 | 1 | -1/+1 |
| | | | |||||
* | | | playlist/soundcloud: drop support for libyajl1 | Max Kellermann | 2014-12-05 | 1 | -35/+4 |
| | | | | | | | | | | | | Require the version 2 which has a more sane API. | ||||
* | | | Win32Main: make the service table "constexpr" | Max Kellermann | 2014-12-05 | 1 | -1/+1 |
| | | | |||||
* | | | Win32Main: make variables more local | Max Kellermann | 2014-12-05 | 1 | -3/+1 |
| | | | |||||
* | | | configure.ac: require GLib 2.32 (if enabled) | Max Kellermann | 2014-12-05 | 1 | -5/+0 |
| | | | | | | | | | | | | | | | | | | Since version 2.32, g_thread_init() is deprecated and a no-op. Let's upgrade that (optional) dependency so we can remove all those g_thread_init() calls. | ||||
* | | | Win32Main: use FatalSystemError() | Max Kellermann | 2014-12-05 | 1 | -15/+3 |
| | | | |||||
* | | | system/FatalError: add FatalSystemError() overload with WIN32 error code | Max Kellermann | 2014-12-05 | 2 | -10/+30 |
| | | | |||||
* | | | system/FatalError: use FormatMessage() instead of g_win32_error_message() | Max Kellermann | 2014-12-05 | 1 | -5/+6 |
| | | | |||||
* | | | util/Error: use FormatMessage() instead of g_win32_error_message() | Max Kellermann | 2014-12-05 | 1 | -2/+6 |
| | | | |||||
* | | | playlist, InotifySource, ...: update GLib comments | Max Kellermann | 2014-12-04 | 6 | -8/+8 |
| | | | |||||
* | | | playlist/pls: custom INI parser | Max Kellermann | 2014-12-04 | 2 | -89/+107 |
| | | | | | | | | | | | | Don't use GLib. | ||||
* | | | util/DivideString: add option "strip" | Max Kellermann | 2014-12-04 | 3 | -3/+18 |
| | | | |||||
* | | | decoder/sidplay: pass SidTuneMod to get_song_length() | Max Kellermann | 2014-12-04 | 1 | -14/+9 |
| | | | | | | | | | | | | Eliminate duplicate SidTune construction. | ||||
* | | | decoder/sidplay: simplify the SidDatabase::length() call | Max Kellermann | 2014-12-04 | 1 | -4/+2 |
| | | | |||||
* | | | decoder/sidplay: include cleanup | Max Kellermann | 2014-12-04 | 1 | -2/+0 |
| | | | |||||
* | | | decoder/sidplay: use class SidDatabase | Max Kellermann | 2014-12-04 | 1 | -51/+11 |
| | | | | | | | | | | | | Remove our own songlength database parser. | ||||
* | | | decoder/sidplay: use config_param::GetBlockPath() | Max Kellermann | 2014-12-04 | 1 | -7/+12 |
| | | | |||||
* | | | decoder/sidplay: make "songlength_file" local | Max Kellermann | 2014-12-04 | 1 | -2/+1 |
| | | | |||||
* | | | ConfigData: update API documentation | Max Kellermann | 2014-12-04 | 1 | -1/+1 |
| | | | |||||
* | | | decoder/sidplay: pass parsed path to get_song_length() | Max Kellermann | 2014-12-04 | 1 | -4/+3 |
| | | | | | | | | | | | | Eliminates duplicate ParseContainerPath() call. | ||||
* | | | decoder/sidplay: merge get_container_name() and get_song_num() | Max Kellermann | 2014-12-04 | 1 | -50/+38 |
| | | | |||||
* | | | SongSticker: remove obsolete documentation | Max Kellermann | 2014-12-04 | 1 | -2/+1 |
| | | | |||||
* | | | util/StringUtil: add ToUpperASCII() | Max Kellermann | 2014-12-04 | 3 | -4/+31 |
| | | | | | | | | | | | | | | | Replaces g_ascii_strup() and allows building the Vorbis encoder without GLib. | ||||
* | | | util/SplitString: new utility class | Max Kellermann | 2014-12-04 | 4 | -28/+112 |
| | | | | | | | | | | | | Replaces GLib's g_strsplit(). | ||||
* | | | output/jack: use usleep() instead of g_usleep() | Max Kellermann | 2014-12-04 | 1 | -1/+2 |
| | | | |||||
* | | | util/SplitString: rename to DivideString | Max Kellermann | 2014-12-03 | 5 | -13/+13 |
| | | | |||||
* | | | encoder/vorbis: convert pointers to references | Max Kellermann | 2014-12-02 | 1 | -67/+67 |
| | | | |||||
* | | | output/ao: use class SplitString instead of g_strsplit() | Max Kellermann | 2014-12-02 | 1 | -6/+4 |
| | | | |||||
* | | | TagId3: add "pure" attributes | Max Kellermann | 2014-12-02 | 1 | -1/+4 |
| | | | |||||
* | | | mixer/null: new mixer plugin | Max Kellermann | 2014-12-02 | 5 | -0/+77 |
| | | | |||||
* | | | MixerType: convert to strictly-typed enum | Max Kellermann | 2014-12-02 | 3 | -17/+17 |
| | | | |||||
* | | | MixerType: rename to CamelCase | Max Kellermann | 2014-12-02 | 3 | -6/+6 |
| | | | |||||
* | | | decoder/gme: simplify ParseContainerPath() | Max Kellermann | 2014-12-02 | 1 | -32/+27 |
| | | | | | | | | | | | | | | | Use simple string and path parsing functions instead of GLib's g_pattern_match(), which was used in a very clumsy way. | ||||
* | | | decoder/gme: merge get_container_name() and get_song_num() | Max Kellermann | 2014-12-02 | 1 | -54/+28 |
| | | | | | | | | | | | | There is duplicate code in the two. | ||||
* | | | fs/Path: add methods GetBase() and GetDirectoryName() | Max Kellermann | 2014-12-02 | 3 | -1/+47 |
| | | | |||||
* | | | decoder/gme: get_song_num() returns unsigned | Max Kellermann | 2014-12-01 | 1 | -6/+9 |
| | | | |||||
* | | | decoder/gme: move code to ScanMusicEmu() | Max Kellermann | 2014-12-01 | 1 | -14/+22 |
| | | | |||||
* | | | decoder/gme: move code to ScanGmeInfo() | Max Kellermann | 2014-12-01 | 1 | -34/+42 |
| | | |