Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d4d2bc072e | ||
|
|
bcccc8f66c | ||
|
|
848c63e2d5 | ||
|
|
f6d0310f9c | ||
|
|
3ef043392c | ||
|
|
864d6f312d | ||
|
|
f44c67de09 |
8
NEWS
8
NEWS
@@ -1,3 +1,11 @@
|
||||
ver 0.21.13 (2019/08/06)
|
||||
* input
|
||||
- cdio_paranoia: require libcdio-paranoia 10.2+0.93+1
|
||||
* decoder
|
||||
- mad: fix crackling sound (0.21.12 regression)
|
||||
* output
|
||||
- jack: improved Windows compatibility
|
||||
|
||||
ver 0.21.12 (2019/08/03)
|
||||
* decoder
|
||||
- mad: update bit rate after seeking
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.musicpd"
|
||||
android:installLocation="auto"
|
||||
android:versionCode="35"
|
||||
android:versionName="0.21.12">
|
||||
android:versionCode="36"
|
||||
android:versionName="0.21.13">
|
||||
|
||||
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="26"/>
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ author = 'Max Kellermann'
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '0.21.12'
|
||||
version = '0.21.13'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = version
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
project(
|
||||
'mpd',
|
||||
['c', 'cpp'],
|
||||
version: '0.21.12',
|
||||
version: '0.21.13',
|
||||
meson_version: '>= 0.49.0',
|
||||
default_options: [
|
||||
'c_std=c99',
|
||||
|
||||
@@ -79,12 +79,14 @@ static inline int32_t
|
||||
mad_fixed_to_24_sample(mad_fixed_t sample) noexcept
|
||||
{
|
||||
static constexpr unsigned bits = 24;
|
||||
static constexpr mad_fixed_t MIN = -MAD_F_ONE;
|
||||
static constexpr mad_fixed_t MAX = MAD_F_ONE - 1;
|
||||
|
||||
/* round */
|
||||
sample = sample + (1L << (MAD_F_FRACBITS - bits));
|
||||
|
||||
/* quantize */
|
||||
return Clamp(sample, MAD_F_MIN, MAD_F_MAX)
|
||||
return Clamp(sample, MIN, MAX)
|
||||
>> (MAD_F_FRACBITS + 1 - bits);
|
||||
}
|
||||
|
||||
|
||||
@@ -298,11 +298,7 @@ CdioParanoiaInputStream::Read(void *ptr, size_t length)
|
||||
if (s_err) {
|
||||
FormatError(cdio_domain,
|
||||
"paranoia_read: %s", s_err);
|
||||
#if LIBCDIO_VERSION_NUM >= 90
|
||||
cdio_cddap_free_messages(s_err);
|
||||
#else
|
||||
free(s_err);
|
||||
#endif
|
||||
}
|
||||
|
||||
throw;
|
||||
|
||||
@@ -6,7 +6,7 @@ if alsa_dep.found()
|
||||
input_plugins_sources += 'AlsaInputPlugin.cxx'
|
||||
endif
|
||||
|
||||
libcdio_paranoia_dep = dependency('libcdio_paranoia', version: '>= 0.4', required: get_option('cdio_paranoia'))
|
||||
libcdio_paranoia_dep = dependency('libcdio_paranoia', version: '>= 10.2+0.93+1', required: get_option('cdio_paranoia'))
|
||||
conf.set('ENABLE_CDIO_PARANOIA', libcdio_paranoia_dep.found())
|
||||
if libcdio_paranoia_dep.found()
|
||||
input_plugins_sources += 'CdioParanoiaInputPlugin.cxx'
|
||||
|
||||
@@ -34,11 +34,7 @@
|
||||
#include "util/Compiler.h"
|
||||
|
||||
#include <cdio/version.h>
|
||||
#if LIBCDIO_VERSION_NUM >= 90
|
||||
#include <cdio/paranoia/paranoia.h>
|
||||
#else
|
||||
#include <cdio/paranoia.h>
|
||||
#endif
|
||||
|
||||
#include <stdexcept>
|
||||
#include <utility>
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
#include "util/Domain.hxx"
|
||||
#include "Log.hxx"
|
||||
|
||||
#include <atomic>
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
#include <jack/jack.h>
|
||||
@@ -69,13 +71,13 @@ struct JackOutput final : AudioOutput {
|
||||
jack_client_t *client;
|
||||
jack_ringbuffer_t *ringbuffer[MAX_PORTS];
|
||||
|
||||
bool shutdown;
|
||||
std::atomic_bool shutdown;
|
||||
|
||||
/**
|
||||
* While this flag is set, the "process" callback generates
|
||||
* silence.
|
||||
*/
|
||||
bool pause;
|
||||
std::atomic_bool pause;
|
||||
|
||||
explicit JackOutput(const ConfigBlock &block);
|
||||
|
||||
@@ -529,7 +531,10 @@ JackOutput::Start()
|
||||
jports = nullptr;
|
||||
}
|
||||
|
||||
AtScopeExit(jports) { free(jports); };
|
||||
AtScopeExit(jports) {
|
||||
if (jports != nullptr)
|
||||
jack_free(jports);
|
||||
};
|
||||
|
||||
assert(num_dports > 0);
|
||||
|
||||
@@ -602,7 +607,7 @@ JackOutput::WriteSamples(const float *src, size_t n_frames)
|
||||
const unsigned n_channels = audio_format.channels;
|
||||
|
||||
float *dest[MAX_CHANNELS];
|
||||
size_t space = -1;
|
||||
size_t space = SIZE_MAX;
|
||||
for (unsigned i = 0; i < n_channels; ++i) {
|
||||
jack_ringbuffer_data_t d[2];
|
||||
jack_ringbuffer_get_write_vector(ringbuffer[i], d);
|
||||
|
||||
Reference in New Issue
Block a user