Max Kellermann
ab967462e6
tag/{ApeLoader,Id3Load}: catch InputStream exceptions
2016-09-16 17:37:22 +02:00
Max Kellermann
fc7d3f64c0
input/Plugin: migrate open() from class Error to C++ exceptions
2016-09-09 18:15:01 +02:00
Max Kellermann
a571c4ba33
tag/Item: remove "packed" attribute, add static_assert on alignment instead
...
The "packed" attribute triggers a clang 4.0 warning, and it's not
necessary. All we want is correct allocation of this
dynamically-sized struct.
2016-09-04 12:57:41 +02:00
Max Kellermann
07228ff56a
tag/Id3Load: use offset_type instead of off_t
2016-07-02 14:00:52 +02:00
Max Kellermann
e8519fecb4
Merge tag 'v0.19.14'
...
release v0.19.14
2016-03-18 18:41:14 +01:00
Max Kellermann
a3afd5178c
tag/TagPool: optimize _dup_item()
...
When a reference counter is at its limit, don't allocate a new
TagPoolSlot - that would result in many TagPoolSlot instances with
ref==1. This in turn would make the linked list very very large,
which means quadratic runtime for many operations.
2016-03-14 13:08:04 +01:00
Max Kellermann
f1285a6dfd
tag/TagPool: add constexpr MAX_REF
2016-03-14 08:07:22 +01:00
Max Kellermann
cf7c1afb93
tag/TagPool: use prime number for NUM_SLOTS
2016-03-14 08:04:51 +01:00
Max Kellermann
1aee89f5ea
*: include cleanup (using iwyu)
2016-03-01 22:08:13 +01:00
Max Kellermann
1d67aa7bf2
update copyright year to 2016
2016-02-26 17:54:05 +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
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
Merge tag 'v0.19.13'
...
release v0.19.13
2016-02-23 22:13:43 +01:00
Max Kellermann
f3cefaf043
tag/Tag: move code to MoveItemsFrom()
2016-02-23 20:57:56 +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
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
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
10f086854b
tag/Id3Load: remove unnecessary seek
2016-02-21 13:34:16 +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
Max Kellermann
1d3b2baee7
tag/Id3Load: manage id3_tag* with std::unique_ptr
2016-02-19 19:16:40 +01:00
Max Kellermann
86de876b24
tag/TagId3: move tag_id3_load() to Id3Load.cxx
2016-02-19 19:06:06 +01:00
Max Kellermann
8a9f04f7fe
tag/Id3: catch exceptions
2016-02-19 18:23:54 +01:00
Max Kellermann
a5e8269c72
tag/{Aiff,Riff}: allow fstat() to fail
...
Omit the file size check if we don't know the size.
2016-02-19 18:16:14 +01:00
Max Kellermann
0acc88cde5
Merge branch 'v0.19.x'
2016-02-19 18:16:04 +01:00
Max Kellermann
4abcb08cc9
tag/{aiff,riff}: fix ID3 chunk padding
...
Apply padding only to the fseek(), not to the chunk size. This fixes
bogus "failed to read riff chunk" messages when the last chunk has an
odd size.
See http://bugs.musicpd.org/view.php?id=4486
2016-02-19 17:31:20 +01:00
Max Kellermann
9bc0fada5c
Merge tag 'v0.19.12'
...
release v0.19.12
2015-12-15 22:05:21 +01:00
Benno Fünfstück
cae2811762
fix mpd crash on invalid utf8 stream title
2015-12-15 21:49:53 +01:00
Max Kellermann
493f74d94d
tag/id3: convert path from "wchar_t*" to "char*" for error message
2015-11-06 09:20:18 +01:00
Max Kellermann
94f850a588
Merge tag 'v0.19.11'
2015-10-27 11:05:47 +01:00
Andreas Mair
bea5973e0c
Filter out this extra data and leading zeroes in "track" and "disc" tags.
2015-10-21 08:30:33 +02:00
Max Kellermann
205fba74cf
tag/ApeLoader: fix buffer overflow after unterminated key
2015-10-16 14:55:40 +02:00
Max Kellermann
356c829b76
util/StringView: new utility class
2015-09-30 22:21:46 +02:00