Commit Graph

918 Commits

Author SHA1 Message Date
Max Kellermann b5ba94f1de tag/Set: do AlbumArtist/Artist fallback only if AlbumArtist is not disabled
On "list albumartist", songs that have no AlbumArtist tag will use the
Artist tag.  However, if AlbumArtist is disabled via
"metadata_to_use", the TagBuilder::AddItem() call is ignored, and
PrintUniqueTag() attempts to print a nullptr string.

This commit fixes the problem by attempting the fallback only if
AlbumArtist is not disabled.
2014-11-08 19:25:01 +01:00
Max Kellermann 125eb01e03 decoder/ffmpeg: support opus 2014-11-07 19:22:26 +01:00
Max Kellermann 6f23e91e33 lib/upnp/ContentDirectoryService: swap uri_apply_base() parameters
When uri_apply_base() was moved from db/upnp/Util.cpp to
util/UriUtil.cpp, the parameter order was changed, however without
swapping the parameters in the ContentDirectoryService constructor.
2014-11-07 18:43:00 +01:00
Max Kellermann 1bd8a322f5 input/AsyncInputStream: set Error when seeking unseekable
Fixes crash in the "audiofile" decoder while logging the seek error.
2014-11-07 13:57:57 +01:00
Max Kellermann 9f8c2b3b56 configure.ac: prepare for 0.19.3 2014-11-04 09:24:09 +01:00
Max Kellermann 6a7f6cdacd release v0.19.2 2014-11-02 13:46:32 +01:00
Max Kellermann 5715342fe0 release v0.18.17
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABAgAGBQJUViZ+AAoJECNuiljG20USnkQP/Ry2OyaQhmDD6Arc5MOiPJQH
 Iast5sW+3ufWsgUr6PE5aPaHivlNGyRLFvvwgZ+h6bFbhJpsHrh34ZSFJQMQYONh
 zWxQ+FJG83zmyAhZzEvZb6zsLIrjepqp403ltX0HKV1Ax+F3MMZp9DGy1tqaMZyX
 C4Bc+wrWpgtF1Yl7/oL7v2niEvzLM7wpP6HQlQNZ9/IqOUcx4u4zmv3mkYAF2o2U
 upAsNo2mFyPEzfcT6wJM2w20Z+li9FqYUIU6hp+wXM3411OhsvKeo1I0ygZ19Dlw
 nfzEp+l/UUgCOKJLp/672v0w1nbGvWhjyy49pa95Qk88LBDKJCWxEgbt7SO8Uh5S
 qvkWt1JI9HyFrhn9khYV986He0MU48qHTvgGDb7ZM9YiiYZR907N0+X6u57raAAW
 Dlrt0Z18SS/galhctlO/QRg+/1FldTimYRmZTqAApMf2qfpY2BrQX9hAgDnuPZ2D
 vcJIJG73+4F7Ypzhw2BGbee+IZMvGIuQw8Gf+NOnaVui5chi5U1S3AXUJoh34/Du
 jzhFA7J0e989779elgcmPxVdm6n2Fa/AdnslUcL04lNaOUEKY9hkwaZWh/+8V51E
 /6jf4W4VMUrfOChjPjhGFbSegO4bL0siA4GkUQat9KbgT2MEVEXBuN8wPaHw9+oj
 4Yk5k/Ibo065A+83A7ng
 =dFx9
 -----END PGP SIGNATURE-----

Merge tag 'v0.18.17' into v0.19.x
2014-11-02 13:46:09 +01:00
Max Kellermann 38a0d15190 release v0.18.17 2014-11-02 13:06:20 +01:00
Max Kellermann 56f763a4a8 input/curl: forget Content-Length (and more) after redirect
Fixes playback of redirected streams.
2014-11-02 13:00:28 +01:00
Max Kellermann 1f59701c46 Merge branch 'v0.18.x' into v0.19.x 2014-11-02 12:27:46 +01:00
Max Kellermann 32b5654a6e Decoder, Playlist: ignore URI query string for plugin detection
Use the new uri_get_suffix() overload that removes the query string.
2014-11-02 11:54:26 +01:00
Max Kellermann 6ad336743d PlaylistFile: don't allow empty playlist name 2014-11-02 11:52:48 +01:00
Max Kellermann c882568ccd playlist/m3u: recognize the file suffix ".m3u8" 2014-11-02 11:50:56 +01:00
Max Kellermann f6b2899dd2 decoder/faad: remove workaround for ancient libfaad2 ABI bug
Many years ago, FAAD had a serious ABI bug: the NeAACDecInit()
prototype in its header declared the "samplerate" parameter to be
"unsigned long *", but internally, the function assumed it was
"uint32_t *" instead.  On 32 bit machines, that was no difference, but
on 64 bit, this left one portion of the return value uninitialized;
and worse, on big-endian, the wrong word was filled.  This bug had to
be worked around in MPD (commit 9c4e97a6).

A few months later, the bug was fixed in the FAAD CVS in commit 1.117
on file libfaad/decoder.c; the commit message was:

 "Use public headers internally to prevent duplicate declarations"

The commit message was too brief at best; the problem was not
duplicate declarations, but a prototype mismatch.  No mention of the
bug fix in the ChangeLog.

The MPD project never learned about this bug fix, and so MPD would
always pass a "uin32_t *" dressed up as a "unsigned long *".  Nearly 6
years later, it's about time to fix this second ABI problem.  Let's
kill the workaround!
2014-11-02 11:50:56 +01:00
Steven OBrien bccd4ef2f7 decoder/ffmpeg: recognize MIME type audio/aacp 2014-11-02 11:50:56 +01:00
Max Kellermann 432ce9b1de configure.ac: prepare for 0.18.17 2014-11-02 11:41:40 +01:00
Max Kellermann 7d5442e103 Decoder, Playlist: ignore URI query string for plugin detection
Use the new uri_get_suffix() overload that removes the query string.
2014-11-01 13:41:18 +01:00
Max Kellermann 7350144ab3 PlaylistFile: don't allow empty playlist name 2014-10-31 14:59:27 +01:00
Max Kellermann 54c591bd9d decoder/mad: fix negative replay gain values
Negating an unsigned integer does not work.
2014-10-28 22:22:30 +01:00
Max Kellermann 217d88f21f TextInputStream: don't ignore unterminated last line 2014-10-28 22:10:47 +01:00
Max Kellermann 394e3be482 playlist/m3u: recognize the file suffix ".m3u8" 2014-10-26 08:14:16 +01:00
Max Kellermann d7f024c510 OutputThread: fall back to PCM if given DSD sample rate is not supported
Works around the "PCM conversion from f to dsd is not implemented"
error message that prevents DSD playback.
2014-10-25 22:06:08 +02:00
Max Kellermann bc5a53574c decoder/faad: remove workaround for ancient libfaad2 ABI bug
Many years ago, FAAD had a serious ABI bug: the NeAACDecInit()
prototype in its header declared the "samplerate" parameter to be
"unsigned long *", but internally, the function assumed it was
"uint32_t *" instead.  On 32 bit machines, that was no difference, but
on 64 bit, this left one portion of the return value uninitialized;
and worse, on big-endian, the wrong word was filled.  This bug had to
be worked around in MPD (commit 9c4e97a6).

A few months later, the bug was fixed in the FAAD CVS in commit 1.117
on file libfaad/decoder.c; the commit message was:

 "Use public headers internally to prevent duplicate declarations"

The commit message was too brief at best; the problem was not
duplicate declarations, but a prototype mismatch.  No mention of the
bug fix in the ChangeLog.

The MPD project never learned about this bug fix, and so MPD would
always pass a "uin32_t *" dressed up as a "unsigned long *".  Nearly 6
years later, it's about time to fix this second ABI problem.  Let's
kill the workaround!
2014-10-25 20:42:50 +02:00
Steven OBrien 8cd17ce045 decoder/ffmpeg: recognize MIME type audio/aacp 2014-10-25 00:26:58 +02:00
Max Kellermann f36db9bb04 configure.ac: auto-disable plugins that require GLib when --disable-glib is used 2014-10-24 23:46:20 +02:00
Max Kellermann a7b09d3d1c OutputThread: close the output plugin after filter failure
Fixes memory leak because ao_plugin_close() never gets called.
2014-10-24 00:35:16 +02:00
Max Kellermann 200cdb6b0a pcm/PcmConvert: assign {src,dest}_format at the end
Fixes assertion failure in destructor by not assigning
{src,dest}_format when an error occurs.
2014-10-23 22:39:51 +02:00
Max Kellermann 2d9e972195 configure.ac: prepare for 0.19.2 2014-10-23 21:57:04 +02:00
Max Kellermann 97a1a04116 release v0.19.1 2014-10-19 01:03:17 +02:00
Max Kellermann 493cd866f1 TextInputStream: manually shift the buffer before reading
Fixes truncated lines in m3u and cue files (regression by commit
67958f7).
2014-10-19 00:50:52 +02:00
Max Kellermann a0fae8dacc playlist/extm3u: strip first line for #EXTM3U detection 2014-10-17 20:45:18 +02:00
Max Kellermann bc840b69d5 Makefile.am: distribute systemd/mpd.socket
The file systemd/mpd.service.in is being distributed implicitly, but
systemd/mpd.socket is not and needs to be added to EXTRA_DIST.
2014-10-12 08:38:52 +02:00
Max Kellermann 85301853d6 ThreadInputStream: call ThreadRead() inside the thread instead of Read()
Fixes deadlock bug in the "mms" plugin.
2014-10-11 21:59:06 +02:00
Max Kellermann 538ddf7af2 NEWS: add missing line 2014-10-11 21:48:52 +02:00
Max Kellermann d5afa181f7 NEWS: fix typo in version number 2014-10-11 21:48:27 +02:00
Max Kellermann 160242a74f configure.ac: prepare for 0.19.1 2014-10-11 20:25:19 +02:00
Max Kellermann 81b83bc904 release v0.19 2014-10-10 23:49:31 +02:00
Max Kellermann 2a716b7a7a doc: document the mount/neighbor commands 2014-10-10 23:22:39 +02:00
Max Kellermann f445b0178a TagString: remove ISO-Latin-1 fallback
MPD handles all strings in UTF-8 internally.  Those decoders which
read Latin-1 tags are supposed to implement the conversion, instead of
passing Latin-1 to TagBuilder::AddItem().  FixTagString() is simply
the wrong place to do that, and hard-coding Latin-1 is kind of
arbitrary.
2014-10-10 20:53:08 +02:00
nanotech f0be48ff90 Main: run the OS X native event loop 2014-10-10 19:51:44 +02:00
Max Kellermann 3560dc4be6 Tag: support "AlbumSort"
The new tag is supported by all decoders that use the tag name table,
and the ID3v2 tag "TSOA" maps to it.
2014-09-29 18:55:59 +02:00
Wieland Hoffmann 5525ea45a4 Add MusicBrainz' Release Track Id tag
The Release Track Id uniquely identifies a recording on a release - that
is, even if a recording appears twice on a release (meaning that the
combination of recording and release id are not enough to figure out
which one it is), the release track id will allow differentiating the two.

The tag names are taken from
https://musicbrainz.org/doc/MusicBrainz_Picard/Tags/Mapping
2014-09-27 19:54:12 +02:00
Max Kellermann 8547611479 release v0.18.16
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJUJSq1AAoJECNuiljG20US8CAQAJo/4jAPKsba6RVWf4oWo1Tl
 1KUVHaqPonboZ+ArexI+eLObRzmzawTdzc1iVAI8KhISaZkfBWvY3PGFbn6GW3xZ
 o1GMRkjhps/ZWIXao2qzelITMzEWzKuAPEGdQE2Z3qXDP/bva0QnAJwjm6zfMsrz
 qKYDjQlCGkt7s6jw8gbLGrcoPgP+q7s522qb/0gBc620OivufuEeAQquaahY3X+L
 PnXGqsNr34Xqw8EeHCahVGvvQeetY0dGTG/EUiLuxgACqRnjnxwgZ1Xem3YSlGgP
 KZVmEqepcvLgz7BlLkQrHse4eEcdxmojRP4towUPUOeRKb1LIlDr9AF6LoulGJr4
 jCTeOhzRpmh7wo/rh2klMJXSkqqQlu84+jG7d+PW38oweVCO9HekhyfIDWYDJq/+
 jndDRMK7pcPl4sBBXPrJNLdGAQZoJDxRD84syEwOmGOL1FgV2KZl1pJ81fOacR5x
 BHeRZrtd0iZ97/qZL+wtNskKU21lMjKqv48saF224FhKCtR1iXkVw4fH6U+H3Q1w
 8mrghkkMUom6yQ1mL7U2zA3P6yUcpOJIp0OwMLkJc4H7iOY3a21IAsH0KXmn/Z5O
 RE+0zSZm4krUg5uoxhhJWbJnORjoexMv1iaR8+uh71qvBI+RwQXjYA94VJ3Rf88/
 R4tE+xb0ZY8OvTXGswdF
 =y5Hv
 -----END PGP SIGNATURE-----

Merge tag 'v0.18.16'
2014-09-26 11:06:11 +02:00
Max Kellermann fe45f28204 release v0.18.16 2014-09-26 10:57:04 +02:00
Max Kellermann 861067412f configure.ac: fix DSD breakage due to typo 2014-09-26 10:56:20 +02:00
Max Kellermann 7eca886608 configure.ac: prepare for 0.18.16 2014-09-26 10:55:43 +02:00
Max Kellermann 79b6f9e89e release v0.18.15 2014-09-26 09:41:40 +02:00
Max Kellermann 032e435490 decoder/mpg123: support ID3v2, ReplayGain and MixRamp 2014-09-24 22:53:50 +02:00
Max Kellermann 9270485723 Merge branch 'v0.18.x' 2014-09-24 21:49:20 +02:00
Max Kellermann d1a8a4481e decoder/sndfile: support float and 16 bit samples
Support these PCM formats natively, instead of letting libsndfile
convert everything to 32 bit.
2014-09-19 21:44:16 +02:00