Commit Graph

10606 Commits

Author SHA1 Message Date
Max Kellermann d3ae05506d SongUpdate: remove archive handling from LoadFile()
This code has been moved to LoadFromArchive().
2016-02-26 15:05:44 +01:00
Max Kellermann 96f4394dce db/update/Archive: pass ArchiveFile to Song constructor
Don't open the ZIP file again and again for each song file.
2016-02-26 15:05:40 +01:00
Max Kellermann 35567e6507 SongUpdate: add UpdateFileInArchive(ArchiveFile&) 2016-02-26 14:53:37 +01:00
Max Kellermann ae37e25452 TagArchive: add overload with ArchiveFile& 2016-02-26 14:46:01 +01:00
Max Kellermann c4537fe6f6 TagArchive: add TagBuilder overload with ScanGenericTags() fallback
Load APE/ID3 tags from archives.
2016-02-26 14:03:16 +01:00
Max Kellermann 677334f5a9 tag/TagId3: re-add missing tag_id3_load()==nullptr check 2016-02-26 14:00:30 +01:00
Max Kellermann 3d9652ae35 TagStream: add TagBuilder overload with ScanGenericTags() fallback
This commit adds support for APE/ID3 tags from NFS/SMB files.

See http://bugs.musicpd.org/view.php?id=4270
2016-02-26 13:48:38 +01:00
Max Kellermann a9130cb99c TagFile: add TagBuilder overload with ScanGenericTags() fallback 2016-02-26 13:48:38 +01:00
Max Kellermann b1d60b5c85 TagArchive: use InputStreamPtr 2016-02-26 13:48:38 +01:00
Max Kellermann 99a05c56ad tag/Generic: use InputStream::LockRewind() instead of Rewind()
Fixes deadlock.
2016-02-26 13:48:38 +01:00
Max Kellermann cfc65397b3 tag/Generic: clarify documentation on InputStream overload 2016-02-24 00:01:51 +01:00
Max Kellermann cd8fd1ef42 tag/Generic: remove redundant documentation 2016-02-24 00:01:30 +01:00
Max Kellermann 6350089e51 release v0.19.13
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJWzMnGAAoJECNuiljG20US5yYP/jL9A313aMgUO/R8eVGNc7uJ
 CwiKROtgd+M47si1qdduzdrPKrFK2tEGYT0El5uQsyDuIsmPB01c3ZqnlM8oO6ca
 5tXXJiEvyMkupCEzAajTHqvDCyPx0+o1ektYm9SouAULjOMztIpsVU3oKc8Z78Yc
 TkpaRwUjNaekGLf0kATesBYnWkKR7S/TLYKmaKUaPCcK/i2S8YhTC57a1yZjg3lE
 w57Kh+tFLZCSiZChk9A5D6w1kKzDgiyNGRYK4F2TRfiQ6hML4F45EFgzfCg+zHi8
 +OIE9C1ZQt/NQ6mib+OUWoGuHtfjR20F/OFnQEYvkyXQ32j1sbALe7IHCceX7IHl
 U88hcIh2yEr1x3TUaVyYPLze4FBq/Uxv/gFH8FVKTWmcb90MJgXCNFbO3sfO9kk0
 KYK0IDoHE9MSmWhblA1FFFHU8VmCMsTN0VhBan+XP2wgXnGX+UvjU7AWJm4Fkwx0
 H8uP0Si5wtI9DZ+2SRyGhMfW/+pHsqD+O6PoSSfUyU3ZnPy+cAVEC+67oKJ9pZkA
 najeYaMt0Kz88RvLEwNeLkiys62O8aTsBpfjeNfmUAISJzZZbIvC20tyroHrju30
 TgbXff2Hnx4q+NQ7nbQN5HMVZ2JLLPMYYw+N0dP41g/ULubHS6btGOVwgTWoFwBo
 i2L1uscoD1ONxIEOlIvl
 =X7s3
 -----END PGP SIGNATURE-----

Merge tag 'v0.19.13'

release v0.19.13
2016-02-23 22:13:43 +01:00
Max Kellermann 79f2f8cddc release v0.19.13 2016-02-23 22:06:13 +01:00
Max Kellermann 39fa949345 queue/Playlist: move only the tag items in TagModified()
Fixes disappearing duration of remote songs during playback.

See http://bugs.musicpd.org/view.php?id=4492
2016-02-23 21:01:55 +01:00
Max Kellermann e1d7a5cbf5 DetachedSong: add method MoveTagItemsFrom() 2016-02-23 20:59:44 +01:00
Max Kellermann f3cefaf043 tag/Tag: move code to MoveItemsFrom() 2016-02-23 20:57:56 +01:00
Max Kellermann b3460f3f54 configure.ac, unix/Daemon: check for initgroups() at configure time
The initgroups() manpage says we need to check for _BSD_SOURCE.  The
thing is that glibc deprecated this macro, and doesn't define it
anymore, effectively breaking all MPD supplementary groups.

The real fix is to check for initgroups() availability at configure
time, instead of relying on the deprecated _BSD_SOURCE macro.
2016-02-23 20:13:34 +01:00
Max Kellermann 8e5a67ed9f tag/TagId3: eliminate dummy function when libid3tag is disabled 2016-02-23 11:16:19 +01:00
Max Kellermann cccbcf510a tag/{Id3,Ape}: remove Path overloads 2016-02-23 11:14:27 +01:00
Max Kellermann a1e680fec7 decoder/thread: open InputStream in decoder_run_file() in any case
decoder_load_replay_gain() will create the InputStream anyway, so
we're not saving any overhead by opening the InputStream on demand
only.
2016-02-23 11:14:12 +01:00
Max Kellermann 1b58bd64ff decoder/thread: use typedef InputStreamPtr 2016-02-23 11:14:11 +01:00
Max Kellermann 196de8c758 decoder/thread: load APE replay gain from remote files 2016-02-23 10:57:03 +01:00
Max Kellermann 222b777552 tag/ApeReplayGain: add overload with InputStream& parameter 2016-02-23 10:42:41 +01:00
Max Kellermann b5c206d3ae tag/Generic: use common InputStream for APE and ID3 2016-02-23 10:27:31 +01:00
Max Kellermann 17ace95268 tag/Generic: add overload with InputStream& parameter 2016-02-23 10:18:07 +01:00
Max Kellermann 779d73f94b tag/TagId3: add overload with InputStream& parameter 2016-02-23 10:15:38 +01:00
Max Kellermann 73307bf2e7 tag/TagHandler: pass by reference 2016-02-23 10:10:13 +01:00
Max Kellermann 7623c1c5cb SongUpdate: move tag_scan_fallback() to tag/Generic.cxx 2016-02-22 18:00:49 +01:00
Max Kellermann de568c84c2 tag/ApeLoader: use CamelCase 2016-02-22 17:53:06 +01:00
Max Kellermann 1f5b9c6185 tag/ApeLoader: use std::unique_ptr 2016-02-22 17:50:15 +01:00
Max Kellermann a5f8fd774d tag/handler: use CamelCase 2016-02-22 17:38:06 +01:00
Max Kellermann cc5443c38e tag/ApeLoader: use class InputStream instead of FILE*
Prepare for APE tag support on userspace NFS/SMB/CIFS mounts.
2016-02-22 17:30:36 +01:00
Max Kellermann 8a86460b8f tag/Id3Load: use class InputStream instead of FILE*
Prepare for ID3 support on userspace NFS/SMB/CIFS mounts.
2016-02-22 17:30:36 +01:00
Max Kellermann 7ae9e49f51 playlist/Stream, db/upnp: add missing includes 2016-02-22 17:30:36 +01:00
Max Kellermann c682d087d9 tag/Id3Load: optimized ID3v1 loader
Use a 128 byte buffer instead of reading 10 bytes first and then 118.
2016-02-22 13:14:38 +01:00
Max Kellermann 57da5c0841 tag/Id3Load: simplify end offset calculation 2016-02-22 13:14:37 +01:00
Max Kellermann a224722ae2 tag/Id3Load: add constant ID3V1_SIZE 2016-02-22 13:14:36 +01:00
Max Kellermann 283ef5b163 tag/Id3Load: use ID3_TAG_QUERYSIZE instead of integer literal 2016-02-22 13:14:35 +01:00
Max Kellermann 09a188bfd9 input/InputStream: add method Skip() 2016-02-22 13:14:19 +01:00
Max Kellermann 10f086854b tag/Id3Load: remove unnecessary seek 2016-02-21 13:34:16 +01:00
Max Kellermann d67c6c37e3 archive/bzip2: remove HAVE_OLDER_BZIP2 check
The check was added in commit 98fd9b7d, but there was never a
definition.
2016-02-21 13:19:00 +01:00
Max Kellermann 136725dfb1 archive/bzip2: convert struct to class 2016-02-21 13:18:25 +01:00
Max Kellermann 438895842c archive/bzip2: move bz2_fillbuffer into struct Bzip2InputStream 2016-02-21 13:17:22 +01:00
Max Kellermann 82b8f4f1ce archive/bzip2: use C++11 initializer 2016-02-21 13:16:27 +01:00
Max Kellermann 0705f42cf8 playlist/Plugin: pass InputStreamPtr&& to open_stream()
Obsolete class CloseSongEnumerator, which was a kludge.
2016-02-21 12:53:47 +01:00
Max Kellermann cadc67ea40 input: wrap InputStream in std::unique_ptr 2016-02-21 08:03:32 +01:00
Max Kellermann 054e9ecaae tag/Id3Load: split tag_id3_read() 2016-02-21 07:14:04 +01:00
Max Kellermann 84fe3bfa87 tag/Id3Load: don't seek twice in tag_id3_read()
Copy the query buffer to the allocated buffer, and read only the
remaining data.
2016-02-19 19:43:05 +01:00
Max Kellermann 2ef8403bfa tag/Id3Load: don't read again if we already have enough data 2016-02-19 19:40:23 +01:00