Age | Commit message (Collapse) | Author |
|
The current http output doesn't provide a header for cross-origin support. This prevents to use the mpd http stream directly from an other webapplication due the origin from the webpage differs from then the audio stream.
The fix is to add the following header to the http response:
Access-Control-Allow-Origin: *
|
|
This commit adds some tags that are (mostly) interesting for listeners
of classical music.
Ensemble
--------
This is an ensemble that is playing the music, such as Wiener
Philharmoniker. The tag can be used to distinguish the ensemble from the
conductor, composer, soloist, and ensemble, that are generally all in
the "ARTIST" tag.
Movement
-------
The movement number and movement (name) of this track, i.e. "II" and
"Allegro".
ComposerSort
------------
Allows us to look for Beethoven's 9th under B, for Beethoven, not L for
Ludwig.
Location
--------
This is the location of the recording, e.g. "Wiener Musikverein".
|
|
|
|
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1102
|
|
|
|
|
|
|
|
* Use PcmExport for 24bit packed output
|
|
Per the manual for strptime, %F is equivalent %Y-%m-%d, so use that
directly.
|
|
ParseTimePoint.
%Z is a glibc extension to strptime, and is a no-op there, due to the
mapping between timezone names and their definition (especially when the
name comes from a different machine) being ambiguous / impossible. Time
in HTTP headers is guaranteed to be UTC.
Passing an unknown format to strptime() implementations that don't
support it will generally cause them to return NULL, which will lead to
ParseTimePoint throwing an exception and ParseTimeStamp using an
unnecessary fallback.
Since the timezone name goes at the end of the string, we don't need to
use %Z to skip it (could be an issue in a different time stamp format),
so simply removing %Z works best.
|
|
Very rough draft. Barely works.
|
|
|
|
Regression by commit a22d1c88d7e11bfdc553f38a86d416783421c7e4
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1097
|
|
Enables the "Format" row in "playlistinfo" responses.
https://github.com/MusicPlayerDaemon/MPD/issues/1094
|
|
|
|
New experimental code, first draft - it works, but there's a lot left
to do. Just look at all the TODO comments.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/975
|
|
release v0.22.6
|
|
|
|
If the constructor moves from an ExportedSong instance which refers to
somebody else's "Tag" instance, the newly constructed instance will
instead refer to its own empty "tag_buffer" field. This broke
SimpleDatabase::GetSong(), i.e. all songs on the queue restored from
the state file or added using the "addid" command.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1089
|
|
|
|
release v0.22.5
|
|
|
|
The "move" command doesn't allow open-ended ranges because they don't
make a lot of sense; moving an open-ended range is only possible if
the destination index is before the range, and in that case, the
client should be well aware how many songs there are.
Closes https://github.com/MusicPlayerDaemon/MPD/pull/1057
|
|
Catch errors like that early, before invalid ranges get passed to
internal MPD subsystems.
|
|
This is a workaround for the new scoped storage design in Android 11:
https://developer.android.com/about/versions/11/privacy/storage
This needs a proper solution eventually, but this quick fix will do
until we change "targetSdkVersion" to 30.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1061
|
|
After commit 1afa33c3c766af2, an old bug was revealed:
SimpleDatabase::GetSong() constructs an ExportedSong instance by
moving the return value of Song::Export(), which causes the
LightSong::tag field to be dangling on the moved-from
ExportedSong::tag_buffer. This broke tags from CUE sheets.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1070
|
|
In this state, we can't make any progress.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1084
|
|
|
|
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1031
|
|
Commit 79b2366387dcd5f4ccae50eacf1ae06973f01d83 added the field `skip`
to support unaligned reads, but set the `offset` field to a wrong
value. This resulted in miscalculation of `remaining`, causing
an assertion failure.
The fix is to assign `offset` the correct value, but consider the
`skip` value in the assertion.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1067
|
|
Conductor was incorrectly saved to Performer tag in MPD database
|
|
|
|
Fixes Windows compatibility.
|
|
|
|
|
|
release v0.22.4
|
|
|
|
Increasing the protocol version to 0.22.4 to allow clients to detect
this feature.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1038
|
|
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1059
|
|
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1048
|
|
This properly prints the "Time"/"duration" values for songs in virtual
CUE folders.
This is loosely related to
https://github.com/MusicPlayerDaemon/MPD/issues/1048
|
|
`PRIoffset` was wrong, because it expects an `offset_type`
(i.e. `uint64_t`). This broke on 32 bit machines where `size_t` has
32 bits.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1058
|
|
|
|
v0.22.x
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1039
|
|
|
|
Some FFmpeg filters change the sample format, and since MPD assumes
this never happens, this results in loud noise instead of music. This
commit finally implements the TODO comment by sending one frame of
silence to the filter and checking the output frame's format.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1009
|
|
output to a partition is now done via MultipleOutputs::AddCopy(),using a new AudioOutputControl constructor. Tags and always_on settings willpersist when moving outputs between partitions.
|
|
|
|
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1001
|
|
release v0.22.3
|