Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mpd
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Иван Мажукин
mpd
Commits
1a94794c
Commit
1a94794c
authored
Jan 19, 2023
by
Konstantin A. Lepikhov
Browse files
Options
Browse Files
Download
Plain Diff
Merge tag 'v0.23.12' of
https://github.com/MusicPlayerDaemon/MPD
into sisyphus
release v0.23.12
parents
78ab2d63
d91da967
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
46 additions
and
32 deletions
+46
-32
NEWS
NEWS
+11
-0
AndroidManifest.xml
android/AndroidManifest.xml
+2
-2
meson.build
meson.build
+1
-2
libs.py
python/build/libs.py
+4
-4
RemoteTagCache.hxx
src/RemoteTagCache.hxx
+4
-0
MadDecoderPlugin.cxx
src/decoder/plugins/MadDecoderPlugin.cxx
+3
-1
StandardDirectory.cxx
src/fs/StandardDirectory.cxx
+1
-13
FileReader.hxx
src/io/FileReader.hxx
+2
-0
Easy.hxx
src/lib/curl/Easy.hxx
+4
-8
meson.build
src/lib/curl/meson.build
+1
-1
PipeWireOutputPlugin.cxx
src/output/plugins/PipeWireOutputPlugin.cxx
+7
-1
Builder.cxx
src/tag/Builder.cxx
+6
-0
No files found.
NEWS
View file @
1a94794c
ver 0.23.12 (2023/01/17)
* input
- curl: require CURL 7.55.0 or later
* decoder
- mad: fix integer underflow with very small files
* tags
- fix crash bug due to race condition
* output
- pipewire: adjust to PipeWire 0.3.64 API change
* fix build failures with GCC 13
ver 0.23.11 (2022/11/28)
* database
- simple: move default database to ~/.cache/mpd/db from ~/.cache/mpd.db
...
...
android/AndroidManifest.xml
View file @
1a94794c
...
...
@@ -2,8 +2,8 @@
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
package=
"org.musicpd"
android:installLocation=
"auto"
android:versionCode=
"7
0
"
android:versionName=
"0.23.1
1
"
>
android:versionCode=
"7
1
"
android:versionName=
"0.23.1
2
"
>
<uses-sdk
android:minSdkVersion=
"21"
android:targetSdkVersion=
"30"
/>
...
...
meson.build
View file @
1a94794c
project(
'mpd',
['c', 'cpp'],
version: '0.23.1
1
',
version: '0.23.1
2
',
meson_version: '>= 0.56.0',
default_options: [
'c_std=c11',
...
...
@@ -205,7 +205,6 @@ enable_daemon = not is_windows and not is_android and get_option('daemon')
conf.set('ENABLE_DAEMON', enable_daemon)
conf.set('HAVE_GETPWNAM_R', compiler.has_function('getpwnam_r'))
conf.set('HAVE_GETPWUID_R', compiler.has_function('getpwuid_r'))
conf.set('HAVE_INITGROUPS', compiler.has_function('initgroups'))
conf.set('HAVE_FNMATCH', compiler.has_function('fnmatch'))
...
...
python/build/libs.py
View file @
1a94794c
...
...
@@ -393,8 +393,8 @@ openssl = OpenSSLProject(
)
curl
=
CmakeProject
(
'https://curl.se/download/curl-7.8
6
.0.tar.xz'
,
'
2d61116e5f485581f6d59865377df4463f2e788677ac43222b496d4e49fb627b
'
,
'https://curl.se/download/curl-7.8
7
.0.tar.xz'
,
'
ee5f1a1955b0ed413435ef79db28b834ea5f0fb7c8cfb1ce47175cc3bee08fff
'
,
'lib/libcurl.a'
,
[
'-DBUILD_CURL_EXE=OFF'
,
...
...
@@ -450,7 +450,7 @@ jack = JackProject(
)
boost
=
BoostProject
(
'https://boostorg.jfrog.io/artifactory/main/release/1.8
0.0/source/boost_1_80
_0.tar.bz2'
,
'
1e19565d82e43bc59209a168f5ac899d3ba471d55c7610c677d4ccf2c9c500c0
'
,
'https://boostorg.jfrog.io/artifactory/main/release/1.8
1.0/source/boost_1_81
_0.tar.bz2'
,
'
71feeed900fbccca04a3b4f2f84a7c217186f28a940ed8b7ed4725986baf99fa
'
,
'include/boost/version.hpp'
,
)
src/RemoteTagCache.hxx
View file @
1a94794c
...
...
@@ -28,7 +28,11 @@
#include <boost/intrusive/list.hpp>
#include <boost/intrusive/unordered_set.hpp>
#include <array>
#include <functional>
#include <memory>
#include <string>
#include <utility>
class
RemoteTagCacheHandler
;
...
...
src/decoder/plugins/MadDecoderPlugin.cxx
View file @
1a94794c
...
...
@@ -798,6 +798,8 @@ MadDecoder::UpdateTimerNextFrame() noexcept
DecoderCommand
MadDecoder
::
SubmitPCM
(
size_t
i
,
size_t
pcm_length
)
noexcept
{
assert
(
i
<=
pcm_length
);
size_t
num_samples
=
pcm_length
-
i
;
mad_fixed_to_24_buffer
(
output_buffer
,
synth
.
pcm
,
...
...
@@ -843,7 +845,7 @@ MadDecoder::SynthAndSubmit() noexcept
size_t
pcm_length
=
synth
.
pcm
.
length
;
if
(
drop_end_samples
&&
current_frame
==
max_frames
-
drop_end_frames
-
1
)
{
if
(
drop_end_samples
>=
pcm_length
)
if
(
i
+
drop_end_samples
>=
pcm_length
)
return
DecoderCommand
::
STOP
;
pcm_length
-=
drop_end_samples
;
...
...
src/fs/StandardDirectory.cxx
View file @
1a94794c
...
...
@@ -34,7 +34,6 @@
#include <shlobj.h>
#else
#include <stdlib.h>
#include <unistd.h>
#include <pwd.h>
#endif
...
...
@@ -80,15 +79,6 @@ public:
return
result
!=
nullptr
;
}
bool
ReadByUid
(
uid_t
uid
)
{
#ifdef HAVE_GETPWUID_R
getpwuid_r
(
uid
,
&
pw
,
buf
.
data
(),
buf
.
size
(),
&
result
);
#else
result
=
getpwuid
(
uid
);
#endif
return
result
!=
nullptr
;
}
const
passwd
*
operator
->
()
{
assert
(
result
!=
nullptr
);
return
result
;
...
...
@@ -375,10 +365,8 @@ GetHomeDir() noexcept
if
(
const
auto
home
=
getenv
(
"HOME"
);
IsValidPathString
(
home
)
&&
IsValidDir
(
home
))
return
AllocatedPath
::
FromFS
(
home
);
if
(
PasswdEntry
pw
;
pw
.
ReadByUid
(
getuid
()))
return
SafePathFromFS
(
pw
->
pw_dir
);
#endif
return
nullptr
;
}
...
...
src/io/FileReader.hxx
View file @
1a94794c
...
...
@@ -42,6 +42,8 @@
#include "io/UniqueFileDescriptor.hxx"
#endif
#include <cstdint>
class
Path
;
class
FileInfo
;
...
...
src/lib/curl/Easy.hxx
View file @
1a94794c
...
...
@@ -186,10 +186,6 @@ public:
SetOption
(
CURLOPT_POSTFIELDSIZE
,
(
long
)
size
);
}
void
SetHttpPost
(
const
struct
curl_httppost
*
post
)
{
SetOption
(
CURLOPT_HTTPPOST
,
post
);
}
template
<
typename
T
>
bool
GetInfo
(
CURLINFO
info
,
T
value_r
)
const
noexcept
{
return
::
curl_easy_getinfo
(
handle
,
info
,
value_r
)
==
CURLE_OK
;
...
...
@@ -199,10 +195,10 @@ public:
* Returns the response body's size, or -1 if that is unknown.
*/
[[
gnu
::
pure
]]
int64
_t
GetContentLength
()
const
noexcept
{
double
value
;
return
GetInfo
(
CURLINFO_CONTENT_LENGTH_DOWNLOAD
,
&
value
)
?
(
int64_t
)
value
curl_off
_t
GetContentLength
()
const
noexcept
{
curl_off_t
value
;
return
GetInfo
(
CURLINFO_CONTENT_LENGTH_DOWNLOAD
_T
,
&
value
)
?
value
:
-
1
;
}
...
...
src/lib/curl/meson.build
View file @
1a94794c
curl_dep = dependency('libcurl', version: '>= 7.
33
', required: get_option('curl'))
curl_dep = dependency('libcurl', version: '>= 7.
55
', required: get_option('curl'))
conf.set('ENABLE_CURL', curl_dep.found())
if not curl_dep.found()
subdir_done()
...
...
src/output/plugins/PipeWireOutputPlugin.cxx
View file @
1a94794c
...
...
@@ -523,7 +523,13 @@ PipeWireOutput::Open(AudioFormat &audio_format)
pw_properties_setf
(
props
,
PW_KEY_REMOTE_NAME
,
"%s"
,
remote
);
if
(
target
!=
nullptr
&&
target_id
==
PW_ID_ANY
)
pw_properties_setf
(
props
,
PW_KEY_NODE_TARGET
,
"%s"
,
target
);
pw_properties_setf
(
props
,
#if PW_CHECK_VERSION(0, 3, 64)
PW_KEY_TARGET_OBJECT
,
#else
PW_KEY_NODE_TARGET
,
#endif
"%s"
,
target
);
#ifdef PW_KEY_NODE_RATE
/* ask PipeWire to change the graph sample rate to ours
...
...
src/tag/Builder.cxx
View file @
1a94794c
...
...
@@ -263,8 +263,14 @@ TagBuilder::RemoveAll() noexcept
void
TagBuilder
::
RemoveType
(
TagType
type
)
noexcept
{
if
(
items
.
empty
())
/* don't acquire the tag_pool_lock if we're not going
to call tag_pool_put_item() anyway */
return
;
const
auto
begin
=
items
.
begin
(),
end
=
items
.
end
();
const
std
::
scoped_lock
<
Mutex
>
protect
(
tag_pool_lock
);
items
.
erase
(
std
::
remove_if
(
begin
,
end
,
[
type
](
TagItem
*
item
)
{
if
(
item
->
type
!=
type
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment