Merge branch 'v0.20.x'
This commit is contained in:
commit
7e46277016
2
NEWS
2
NEWS
@ -10,6 +10,8 @@ ver 0.20.5 (not yet released)
|
|||||||
- id3: fix memory leak on corrupt ID3 tags
|
- id3: fix memory leak on corrupt ID3 tags
|
||||||
* decoder
|
* decoder
|
||||||
- sidplay: don't require libsidutils when building with libsidplayfp
|
- sidplay: don't require libsidutils when building with libsidplayfp
|
||||||
|
* output
|
||||||
|
- httpd: fix two buffer overflows in IcyMetaData length calculation
|
||||||
* mixer
|
* mixer
|
||||||
- alsa: fix crash bug
|
- alsa: fix crash bug
|
||||||
|
|
||||||
|
@ -55,7 +55,8 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<varname>track</varname>: the track number within the album.
|
<varname>track</varname>: the decimal track number within the
|
||||||
|
album.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@ -103,7 +104,8 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<varname>disc</varname>: the disc number in a multi-disc album.
|
<varname>disc</varname>: the decimal disc number in a multi-disc
|
||||||
|
album.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
@ -101,6 +101,7 @@ public:
|
|||||||
~AlsaInputStream() {
|
~AlsaInputStream() {
|
||||||
BlockingCall(MultiSocketMonitor::GetEventLoop(), [this](){
|
BlockingCall(MultiSocketMonitor::GetEventLoop(), [this](){
|
||||||
MultiSocketMonitor::Reset();
|
MultiSocketMonitor::Reset();
|
||||||
|
DeferredMonitor::Cancel();
|
||||||
});
|
});
|
||||||
|
|
||||||
snd_pcm_close(capture_handle);
|
snd_pcm_close(capture_handle);
|
||||||
|
@ -58,6 +58,7 @@ public:
|
|||||||
~AlsaMixerMonitor() {
|
~AlsaMixerMonitor() {
|
||||||
BlockingCall(MultiSocketMonitor::GetEventLoop(), [this](){
|
BlockingCall(MultiSocketMonitor::GetEventLoop(), [this](){
|
||||||
MultiSocketMonitor::Reset();
|
MultiSocketMonitor::Reset();
|
||||||
|
DeferredMonitor::Cancel();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,7 +60,11 @@ icy_server_metadata_string(const char *stream_title, const char* stream_url)
|
|||||||
{
|
{
|
||||||
// The leading n is a placeholder for the length information
|
// The leading n is a placeholder for the length information
|
||||||
auto icy_metadata = FormatString("nStreamTitle='%s';"
|
auto icy_metadata = FormatString("nStreamTitle='%s';"
|
||||||
"StreamUrl='%s';",
|
"StreamUrl='%s';"
|
||||||
|
/* pad 15 spaces just in case
|
||||||
|
the length needs to be
|
||||||
|
rounded up */
|
||||||
|
" ",
|
||||||
stream_title,
|
stream_title,
|
||||||
stream_url);
|
stream_url);
|
||||||
|
|
||||||
@ -68,7 +72,7 @@ icy_server_metadata_string(const char *stream_title, const char* stream_url)
|
|||||||
|
|
||||||
meta_length--; // subtract placeholder
|
meta_length--; // subtract placeholder
|
||||||
|
|
||||||
meta_length = ((int)meta_length / 16) + 1;
|
meta_length = meta_length / 16;
|
||||||
|
|
||||||
icy_metadata[0] = meta_length;
|
icy_metadata[0] = meta_length;
|
||||||
|
|
||||||
@ -109,5 +113,5 @@ icy_server_metadata_page(const Tag &tag, const TagType *types)
|
|||||||
if (icy_string.IsNull())
|
if (icy_string.IsNull())
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
return Page::Copy(icy_string.c_str(), (icy_string[0] * 16) + 1);
|
return Page::Copy(icy_string.c_str(), uint8_t(icy_string[0]) * 16 + 1);
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,7 @@ add_tag_tag(TagType type, const char *value, void *ctx)
|
|||||||
unsigned n = strtoul(value, &end, 10);
|
unsigned n = strtoul(value, &end, 10);
|
||||||
if (value != end) {
|
if (value != end) {
|
||||||
char s[21];
|
char s[21];
|
||||||
if (snprintf(s, 21, "%u", n) >= 0)
|
if (snprintf(s, 21, "%u", n) > 0)
|
||||||
tag.AddItem(type, s);
|
tag.AddItem(type, s);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
|
Loading…
Reference in New Issue
Block a user