Skip to content

Commit e5df578

Browse files
committed
Merge branch 'v0.24.x'
2 parents 86448df + 58a843b commit e5df578

File tree

11 files changed

+218
-124
lines changed

11 files changed

+218
-124
lines changed

NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ ver 0.25 (not yet released)
1313
* require Meson 1.2
1414

1515
ver 0.24.7 (not yet released)
16+
* decoder
17+
- ffmpeg: allow seeking only if both AVFormatContext and InputStream allow it
18+
* fix GCC 16 compiler warning
1619
* fix spurious linker failures
1720

1821
ver 0.24.6 (2025/10/20)

doc/mpd.conf.5.rst

Lines changed: 124 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -80,23 +80,34 @@ Global Settings
8080
System Settings
8181
^^^^^^^^^^^^^^^
8282

83-
user <username>
83+
.. confval:: user
84+
:type: NAME
85+
8486
This specifies the user that MPD will run as, if set. MPD should never run
8587
as root, and you may use this option to make MPD change its user id after
8688
initialization. Do not use this option if you start MPD as an unprivileged
8789
user.
8890

89-
group <groupname>
91+
.. confval:: group
92+
:type: NAME
93+
9094
Change to this group. This discards all default groups and uses
9195
only this group. Do not use this setting.
9296

93-
pid_file <file>
97+
.. confval:: pid_file
98+
:type: PATH
99+
94100
This specifies the file to save mpd's process ID in.
95101

96-
log_file <file>
102+
.. confval:: log_file
103+
:type: PATH
104+
97105
This specifies where the log file should be located. The special value "syslog" makes MPD use the local syslog daemon.
98106

99-
log_level <level>
107+
.. confval:: log_level
108+
:type: LEVEL
109+
:default: ``notice``
110+
100111
Suppress all messages below the given threshold. The following
101112
log levels are available:
102113

@@ -107,126 +118,174 @@ log_level <level>
107118
- :samp:`verbose`: debug messages (for developers and for
108119
troubleshooting)
109120

110-
The default is :samp:`notice`.
111-
112121

113122
Client Settings
114123
^^^^^^^^^^^^^^^
115124

116-
port <port>
117-
This specifies the port that mpd listens on. The default is 6600.
125+
.. confval:: port
126+
:type: number
127+
:default: :samp:`6600`
128+
129+
This specifies the port that mpd listens on.
118130

119131

120132
File Settings
121133
^^^^^^^^^^^^^
122134

123-
db_file <file>
135+
.. confval:: db_file
136+
:type: PATH
137+
124138
This specifies where the db file will be stored.
125139

126-
sticker_file <file>
140+
.. confval:: sticker_file
141+
:type: PATH
142+
127143
The location of the sticker database. This is a database which manages
128144
dynamic information attached to songs.
129145

130-
music_directory <directory>
146+
.. confval:: music_directory
147+
:type: PATH
148+
131149
This specifies the directory where music is located. If you do not configure
132150
this, you can only play streams.
133151

134-
playlist_directory <directory>
152+
.. confval:: playlist_directory
153+
:type: PATH
154+
135155
This specifies the directory where saved playlists are stored. If
136156
you do not configure this, you cannot save playlists.
137157

138-
state_file <file>
158+
.. confval:: state_file
159+
:type: PATH
160+
139161
This specifies if a state file is used and where it is located. The state of
140162
mpd will be saved to this file when mpd is terminated by a TERM signal or by
141163
the :program:`kill` command. When mpd is restarted, it will read the state file and
142164
restore the state of mpd (including the playlist).
143165

144-
follow_outside_symlinks <yes or no>
145-
Control if MPD will follow symbolic links pointing outside the music dir. You
146-
must recreate the database after changing this option. The default is "yes".
166+
.. confval:: follow_outside_symlinks
167+
:type: ``yes`` or ``no``
168+
:default: ``yes``
169+
170+
Control if MPD will follow symbolic links pointing outside the music dir. You
171+
must recreate the database after changing this option.
172+
173+
.. confval:: follow_inside_symlinks
174+
:type: ``yes`` or ``no``
175+
:default: ``yes``
147176

148-
follow_inside_symlinks <yes or no>
149-
Control if MPD will follow symbolic links pointing inside the music dir,
150-
potentially adding duplicates to the database. You must recreate the
151-
database after changing this option. The default is "yes".
177+
Control if MPD will follow symbolic links pointing inside the music dir,
178+
potentially adding duplicates to the database. You must recreate the
179+
database after changing this option.
152180

153-
auto_update <yes or no>
154-
This specifies the whether to support automatic update of music database
155-
when files are changed in music_directory. The default is to disable
156-
autoupdate of database.
157-
(Only implemented on Linux.)
181+
.. confval:: auto_update
182+
:type: ``yes`` or ``no``
183+
:default: ``no``
158184

159-
auto_update_depth <N>
160-
Limit the depth of the directories being watched, 0 means only watch the
161-
music directory itself. There is no limit by default.
185+
This specifies the whether to support automatic update of music database
186+
when files are changed in music_directory.
187+
(Only implemented on Linux.)
162188

163-
save_absolute_paths_in_playlists <yes or no>
164-
This specifies whether relative or absolute paths for song filenames are used
165-
when saving playlists. The default is "no".
189+
.. confval:: auto_update_depth
190+
:type: number
191+
:default: unlimited
166192

167-
filesystem_charset <charset>
168-
This specifies the character set used for the filesystem. A list of supported
169-
character sets can be obtained by running "iconv -l". The default is
170-
determined from the locale when the db was originally created.
193+
Limit the depth of the directories being watched, 0 means only watch the
194+
music directory itself.
195+
196+
.. confval:: save_absolute_paths_in_playlists
197+
:type: ``yes`` or ``no``
198+
:default: ``no``
199+
200+
This specifies whether relative or absolute paths for song filenames are used
201+
when saving playlists.
202+
203+
.. confval:: filesystem_charset
204+
:type: CHARSET
205+
206+
This specifies the character set used for the filesystem. A list of supported
207+
character sets can be obtained by running "iconv -l". The default is
208+
determined from the locale when the db was originally created.
171209

172210

173211
Player Settings
174212
^^^^^^^^^^^^^^^
175213

176-
restore_paused <yes or no>
214+
.. confval:: restore_paused
215+
:type: ``yes`` or ``no``
216+
:default: ``no``
217+
177218
Put MPD into pause mode instead of starting playback after startup.
178219

179220

180221
Other Settings
181222
^^^^^^^^^^^^^^
182223

183-
zeroconf_enabled <yes or no>
184-
If yes, and MPD has been compiled with support for Avahi or Bonjour, service
185-
information will be published with Zeroconf. The default is yes.
224+
.. confval:: zeroconf_enabled
225+
:type: ``yes`` or ``no``
226+
:default: ``yes``
227+
228+
If yes, and MPD has been compiled with support for Avahi or Bonjour, service
229+
information will be published with Zeroconf.
230+
231+
.. confval:: zeroconf_name
232+
:type: NAME
233+
:default: :samp:`Music Player @ %h`
186234

187-
zeroconf_name <name>
188-
If Zeroconf is enabled, this is the service name to publish. This name should
189-
be unique to your local network, but name collisions will be properly dealt
190-
with. The default is "Music Player @ %h", where %h will be replaced with the
191-
hostname of the machine running MPD.
235+
If Zeroconf is enabled, this is the service name to publish. This
236+
name should be unique to your local network, but name collisions
237+
will be properly dealt with. ``%h`` will be replaced with the
238+
hostname of the machine running MPD.
192239

193-
audio_output
194-
See DESCRIPTION and the various ``AUDIO OUTPUT OPTIONS`` sections for the
195-
format of this block. Multiple audio_output sections may be specified. If
196-
no audio_output section is specified, then MPD will scan for a usable audio
197-
output.
240+
.. confval:: audio_output
241+
242+
See DESCRIPTION and the various ``AUDIO OUTPUT OPTIONS`` sections for the
243+
format of this block. Multiple audio_output sections may be specified. If
244+
no audio_output section is specified, then MPD will scan for a usable audio
245+
output.
198246

199247
Required Audio Output Settings
200248
------------------------------
201249

202-
type <type>
203-
This specifies the audio output type. See the list of supported outputs in
204-
``mpd --version`` for possible values.
250+
.. confval:: type
251+
:type: NAME
252+
253+
This specifies the audio output type. See the list of supported outputs in
254+
``mpd --version`` for possible values.
255+
256+
.. confval:: name
257+
:type: NAME
205258

206-
name <name>
207-
This specifies a unique name for the audio output.
259+
This specifies a unique name for the audio output.
208260

209261
Optional Audio Output Settings
210262
------------------------------
211263

212-
format <sample_rate:bits:channels>
264+
.. confval:: format
265+
:type: ``sample_rate:bits:channels``
266+
213267
This specifies the sample rate, bits per sample, and number of channels of
214268
audio that is sent to the audio output device. See documentation for the
215269
``audio_output_format`` option for more details. The default is to use
216270
whatever audio format is passed to the audio output. Any of the three
217271
attributes may be an asterisk to specify that this attribute should not be
218272
enforced
219273

220-
replay_gain_handler <software, mixer or none>
221-
Specifies how replay gain is applied. The default is "software", which uses
222-
an internal software volume control. "mixer" uses the configured (hardware)
223-
mixer control. "none" disables replay gain on this audio output.
274+
.. confval:: replay_gain_handler
275+
:type: ``software``, ``mixer`` or ``none``
276+
:default: ``software``
277+
278+
Specifies how replay gain is applied. ``software`` uses an internal
279+
software volume control. ``mixer`` uses the configured (hardware)
280+
mixer control. ``none`` disables replay gain on this audio output.
281+
282+
.. confval:: mixer_type
283+
:type: ``hardware``, ``software`` or ``none``
284+
:default: ``hardware`` (if supported) or ``none``
224285

225-
mixer_type <hardware, software or none>
226-
Specifies which mixer should be used for this audio output: the hardware
227-
mixer (available for ALSA, OSS and PulseAudio), the software mixer or no
228-
mixer ("none"). By default, the hardware mixer is used for devices which
229-
support it, and none for the others.
286+
Specifies which mixer should be used for this audio output: the hardware
287+
mixer (available for ALSA, OSS and PulseAudio), the software mixer or no
288+
mixer (``none``).
230289

231290
Files
232291
-----

doc/user.rst

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -249,9 +249,16 @@ information about the :program:`MPD` configuration file.
249249
Configuring the music directory
250250
-------------------------------
251251

252-
When you play local files, you should organize them within a directory called the "music directory". This is configured in :program:`MPD` with the music_directory setting.
252+
When you play local files, you should organize them within a directory
253+
called the "music directory". This is configured in :program:`MPD`
254+
with the :confval:`music_directory` setting.
253255

254-
By default, :program:`MPD` follows symbolic links in the music directory. This behavior can be switched off: :code:`follow_outside_symlinks` controls whether :program:`MPD` follows links pointing to files outside of the music directory, and :code:`follow_inside_symlinks` lets you disable symlinks to files inside the music directory.
256+
By default, :program:`MPD` follows symbolic links in the music
257+
directory. This behavior can be switched off:
258+
:confval:`follow_outside_symlinks` controls whether :program:`MPD`
259+
follows links pointing to files outside of the music directory, and
260+
:confval:`follow_inside_symlinks` lets you disable symlinks to files
261+
inside the music directory.
255262

256263
Instead of using local files, you can use storage plugins to access
257264
files on a remote file server. For example, to use music from the
@@ -788,7 +795,7 @@ address::
788795
bind_to_address "@mpd"
789796

790797
If no port is specified, the default port is 6600. This default can
791-
be changed with the port setting::
798+
be changed with the :confval:`port` setting::
792799

793800
port "6601"
794801

@@ -984,7 +991,14 @@ One approach for optimization is running :program:`MPD` on the file server, whic
984991
host "fileserver.local"
985992
}
986993
987-
The :code:`music_directory` setting tells :program:`MPD` to read files from the given NFS server. It does this by connecting to the server from userspace. This does not actually mount the file server into the kernel's virtual file system, and thus requires no kernel cooperation and no special privileges. It does not even require a kernel with NFS support, only the nfs storage plugin (using the libnfs userspace library). The same can be done with SMB/CIFS using the smbclient storage plugin (using libsmbclient).
994+
The :confval:`music_directory` setting tells :program:`MPD` to read
995+
files from the given NFS server. It does this by connecting to the
996+
server from userspace. This does not actually mount the file server
997+
into the kernel's virtual file system, and thus requires no kernel
998+
cooperation and no special privileges. It does not even require a
999+
kernel with NFS support, only the nfs storage plugin (using the libnfs
1000+
userspace library). The same can be done with SMB/CIFS using the
1001+
smbclient storage plugin (using libsmbclient).
9881002

9891003
The database setting tells :program:`MPD` to pass all database queries on to the :program:`MPD` instance running on the file server (using the proxy plugin).
9901004

@@ -1056,7 +1070,7 @@ simply type::
10561070
This will start :program:`MPD` as a daemon process (which means it
10571071
detaches from your terminal and continues to run in background). To
10581072
stop it, send ``SIGTERM`` to the process; if you have configured a
1059-
``pid_file``, you can use the ``--kill`` option::
1073+
:confval:`pid_file`, you can use the ``--kill`` option::
10601074

10611075
mpd --kill
10621076

@@ -1192,7 +1206,10 @@ Mounting is only possible with the simple database plugin and a :code:`cache_dir
11921206
# cache_directory "~/.mpd/cache"
11931207
}
11941208
1195-
This requires migrating from the old :code:`db_file` setting to a database section. The cache directory must exist, and :program:`MPD` will put one file per mount there, which will be reused when the same storage is used again later.
1209+
This requires migrating from the old :confval:`db_file` setting to a
1210+
database section. The cache directory must exist, and :program:`MPD`
1211+
will put one file per mount there, which will be reused when the same
1212+
storage is used again later.
11961213

11971214
Metadata
11981215
--------
@@ -1225,7 +1242,7 @@ Stored Playlists
12251242
Stored playlists are some kind of secondary playlists which can be
12261243
created, saved, edited and deleted by the client. They are addressed
12271244
by their names. Its contents can be loaded into the queue, to be
1228-
played back. The :code:`playlist_directory` setting specifies where
1245+
played back. The :confval:`playlist_directory` setting specifies where
12291246
those playlists are stored.
12301247

12311248
Advanced usage
@@ -1395,7 +1412,7 @@ Database
13951412
I can't see my music in the MPD database
13961413
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13971414

1398-
* Check your :code:`music_directory` setting.
1415+
* Check your :confval:`music_directory` setting.
13991416
* Does the MPD user have read permission on all music files, and read+execute permission on all music directories (and all of their parent directories)?
14001417
* Did you update the database? (mpc update)
14011418
* Did you enable all relevant decoder plugins at compile time? :command:`mpd --version` will tell you.

python/build/libs.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@
3636
)
3737

3838
libopenmpt = AutotoolsProject(
39-
'https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-0.8.3+release.autotools.tar.gz',
40-
'0b18a9b67674e300f4915f52ef902a9bb184b96a0d93efbc2058ec9526dc97039e0da53d9605e7fda97c46734529813008c2110e2cb4822e04e411444ff21db9',
39+
'https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-0.8.4+release.autotools.tar.gz',
40+
'627f9bf11aacae615a1f2c982c7e88cb21f11b2d6f0267946f7c82c5eae4943b',
4141
'lib/libopenmpt.a',
4242
[
4343
'--disable-shared', '--enable-static',
@@ -79,8 +79,8 @@
7979
)
8080

8181
ffmpeg = FfmpegProject(
82-
'http://ffmpeg.org/releases/ffmpeg-8.0.tar.xz',
83-
'b2751fccb6cc4c77708113cd78b561059b6fa904b24162fa0be2d60273d27b8e',
82+
'http://ffmpeg.org/releases/ffmpeg-8.0.1.tar.xz',
83+
'05ee0b03119b45c0bdb4df654b96802e909e0a752f72e4fe3794f487229e5a41',
8484
'lib/libavcodec.a',
8585
[
8686
'--disable-shared', '--enable-static',

0 commit comments

Comments
 (0)