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
3a901098
Commit
3a901098
authored
Mar 17, 2019
by
Max Kellermann
Browse files
Options
Browse Files
Download
Plain Diff
Merge tag 'v0.21.6'
release v0.21.6
parents
a6609712
808dd7cc
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
54 additions
and
5 deletions
+54
-5
NEWS
NEWS
+7
-1
PlaylistFile.cxx
src/PlaylistFile.cxx
+3
-1
OggVisitor.cxx
src/lib/xiph/OggVisitor.cxx
+9
-0
OggVisitor.hxx
src/lib/xiph/OggVisitor.hxx
+8
-0
meson.build
src/lib/xiph/meson.build
+15
-2
meson.build
src/output/plugins/meson.build
+4
-1
SlesOutputPlugin.cxx
src/output/plugins/sles/SlesOutputPlugin.cxx
+8
-0
No files found.
NEWS
View file @
3a901098
...
@@ -2,22 +2,28 @@ ver 0.22 (not yet released)
...
@@ -2,22 +2,28 @@ ver 0.22 (not yet released)
* input
* input
- ffmpeg: allow partial reads
- ffmpeg: allow partial reads
ver 0.21.6 (
not yet released
)
ver 0.21.6 (
2019/03/17
)
* protocol
* protocol
- allow loading playlists specified as absolute filesystem paths
- allow loading playlists specified as absolute filesystem paths
- fix negated filter expressions with multiple tag values
- fix negated filter expressions with multiple tag values
- fix "list" with filter expression
- fix "list" with filter expression
- omit empty playlist names in "listplaylists"
* input
* input
- cdio_paranoia: fix build failure due to missing #include
- cdio_paranoia: fix build failure due to missing #include
* decoder
* decoder
- opus: fix replay gain when there are no other tags
- opus: fix replay gain when there are no other tags
- opus: fix seeking to beginning of song
- vorbis: fix Tremor conflict resulting in crash
* output
* output
- pulse: work around error with unusual channel count
- pulse: work around error with unusual channel count
- osx: fix build failure
* playlist
* playlist
- flac: fix use-after-free bug
- flac: fix use-after-free bug
* support abstract sockets on Linux
* support abstract sockets on Linux
* Windows
* Windows
- remove the unused libwinpthread-1.dll dependency
- remove the unused libwinpthread-1.dll dependency
* Android
- enable SLES power saving mode
ver 0.21.5 (2019/02/22)
ver 0.21.5 (2019/02/22)
* protocol
* protocol
...
...
src/PlaylistFile.cxx
View file @
3a901098
...
@@ -134,7 +134,9 @@ LoadPlaylistFileInfo(PlaylistInfo &info,
...
@@ -134,7 +134,9 @@ LoadPlaylistFileInfo(PlaylistInfo &info,
const
auto
*
const
name_fs_end
=
const
auto
*
const
name_fs_end
=
FindStringSuffix
(
name_fs_str
,
FindStringSuffix
(
name_fs_str
,
PATH_LITERAL
(
PLAYLIST_FILE_SUFFIX
));
PATH_LITERAL
(
PLAYLIST_FILE_SUFFIX
));
if
(
name_fs_end
==
nullptr
)
if
(
name_fs_end
==
nullptr
||
/* no empty playlist names (raw file name = ".m3u") */
name_fs_end
==
name_fs_str
)
return
false
;
return
false
;
FileInfo
fi
;
FileInfo
fi
;
...
...
src/lib/xiph/OggVisitor.cxx
View file @
3a901098
...
@@ -20,6 +20,7 @@
...
@@ -20,6 +20,7 @@
#include "OggVisitor.hxx"
#include "OggVisitor.hxx"
#include <stdexcept>
#include <stdexcept>
#include <utility>
void
void
OggVisitor
::
EndStream
()
OggVisitor
::
EndStream
()
...
@@ -51,7 +52,13 @@ OggVisitor::ReadNextPage()
...
@@ -51,7 +52,13 @@ OggVisitor::ReadNextPage()
inline
void
inline
void
OggVisitor
::
HandlePacket
(
const
ogg_packet
&
packet
)
OggVisitor
::
HandlePacket
(
const
ogg_packet
&
packet
)
{
{
const
bool
_post_seek
=
std
::
exchange
(
post_seek
,
false
);
if
(
packet
.
b_o_s
)
{
if
(
packet
.
b_o_s
)
{
if
(
_post_seek
)
/* ignore the BOS packet after seeking */
return
;
EndStream
();
EndStream
();
has_stream
=
true
;
has_stream
=
true
;
OnOggBeginning
(
packet
);
OnOggBeginning
(
packet
);
...
@@ -97,4 +104,6 @@ OggVisitor::PostSeek()
...
@@ -97,4 +104,6 @@ OggVisitor::PostSeek()
/* find the next Ogg page and feed it into the stream */
/* find the next Ogg page and feed it into the stream */
sync
.
ExpectPageSeekIn
(
stream
);
sync
.
ExpectPageSeekIn
(
stream
);
post_seek
=
true
;
}
}
src/lib/xiph/OggVisitor.hxx
View file @
3a901098
...
@@ -39,6 +39,14 @@ class OggVisitor {
...
@@ -39,6 +39,14 @@ class OggVisitor {
bool
has_stream
=
false
;
bool
has_stream
=
false
;
/**
* This is true after seeking; its one-time effect is to
* ignore the BOS packet, just in case we have been seeking to
* the beginning of the file, because that would disrupt
* playback.
*/
bool
post_seek
=
false
;
public
:
public
:
explicit
OggVisitor
(
Reader
&
reader
)
explicit
OggVisitor
(
Reader
&
reader
)
:
sync
(
reader
),
stream
(
0
)
{}
:
sync
(
reader
),
stream
(
0
)
{}
...
...
src/lib/xiph/meson.build
View file @
3a901098
libflac_dep = dependency('flac', version: '>= 1.2', required: get_option('flac'))
libflac_dep = dependency('flac', version: '>= 1.2', required: get_option('flac'))
libopus_dep = dependency('opus', required: get_option('opus'))
libopus_dep = dependency('opus', required: get_option('opus'))
libvorbis_dep = dependency('vorbis', required: get_option('vorbis'))
libvorbisidec_dep = dependency('vorbisidec', required: get_option('tremor'))
if get_option('tremor').enabled()
# no libvorbis if Tremor was explicitly enabled
libvorbis_dep = dependency('', required: false)
else
libvorbis_dep = dependency('vorbis', required: get_option('vorbis'))
endif
if libvorbis_dep.found()
# no Tremor if libvorbis is used
libvorbisidec_dep = dependency('', required: false)
else
# attempt to auto-detect Tremor only if libvorbis was disabled or not found
libvorbisidec_dep = dependency('vorbisidec', required: get_option('tremor'))
endif
if get_option('vorbis').enabled() and get_option('tremor').enabled()
if get_option('vorbis').enabled() and get_option('tremor').enabled()
error('Cannot build both, the Vorbis decoder AND the Tremor (Vorbis fixed-point) decoder')
error('Cannot build both, the Vorbis decoder AND the Tremor (Vorbis fixed-point) decoder')
...
...
src/output/plugins/meson.build
View file @
3a901098
...
@@ -76,7 +76,10 @@ if is_darwin
...
@@ -76,7 +76,10 @@ if is_darwin
audiounit_dep = declare_dependency(
audiounit_dep = declare_dependency(
link_args: [
link_args: [
'-framework', 'AudioUnit', '-framework', 'CoreAudio', '-framework', 'CoreServices',
'-framework', 'AudioUnit', '-framework', 'CoreAudio', '-framework', 'CoreServices',
]
],
dependencies: [
boost_dep,
],
)
)
else
else
audiounit_dep = dependency('', required: false)
audiounit_dep = dependency('', required: false)
...
...
src/output/plugins/sles/SlesOutputPlugin.cxx
View file @
3a901098
...
@@ -229,6 +229,14 @@ SlesOutput::Open(AudioFormat &audio_format)
...
@@ -229,6 +229,14 @@ SlesOutput::Open(AudioFormat &audio_format)
SL_ANDROID_KEY_STREAM_TYPE
,
SL_ANDROID_KEY_STREAM_TYPE
,
&
stream_type
,
&
stream_type
,
sizeof
(
stream_type
));
sizeof
(
stream_type
));
/* MPD doesn't care much about latency, so let's
configure power saving mode */
SLuint32
performance_mode
=
SL_ANDROID_PERFORMANCE_POWER_SAVING
;
(
*
android_config
)
->
SetConfiguration
(
android_config
,
SL_ANDROID_KEY_PERFORMANCE_MODE
,
&
performance_mode
,
sizeof
(
performance_mode
));
}
}
result
=
play_object
.
Realize
(
false
);
result
=
play_object
.
Realize
(
false
);
...
...
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