From 51adaf2c47761e3f2095a52a7037cd8458b77990 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Fri, 24 Jan 2014 00:02:24 +0100
Subject: [PATCH] decoder/*: move to decoder/plugins/

---
 Makefile.am                                   | 150 +++++++++---------
 src/CommandLine.cxx                           |   4 +-
 src/Main.cxx                                  |   2 +-
 src/PlayerThread.cxx                          |   4 +-
 src/SongUpdate.cxx                            |   2 +-
 src/TagFile.cxx                               |   4 +-
 src/TagStream.cxx                             |   4 +-
 src/UpdateContainer.cxx                       |   4 +-
 src/UpdateSong.cxx                            |   2 +-
 src/command/OtherCommands.cxx                 |   2 +-
 src/{ => decoder}/DecoderAPI.cxx              |   0
 src/{ => decoder}/DecoderAPI.hxx              |   0
 src/{ => decoder}/DecoderBuffer.cxx           |   0
 src/{ => decoder}/DecoderBuffer.hxx           |   0
 src/{ => decoder}/DecoderCommand.hxx          |   0
 src/{ => decoder}/DecoderControl.cxx          |   0
 src/{ => decoder}/DecoderControl.hxx          |   0
 src/{ => decoder}/DecoderError.cxx            |   0
 src/{ => decoder}/DecoderError.hxx            |   0
 src/{ => decoder}/DecoderInternal.cxx         |   0
 src/{ => decoder}/DecoderInternal.hxx         |   0
 src/{ => decoder}/DecoderList.cxx             |  42 ++---
 src/{ => decoder}/DecoderList.hxx             |   0
 src/{ => decoder}/DecoderPlugin.cxx           |   0
 src/{ => decoder}/DecoderPlugin.hxx           |   0
 src/{ => decoder}/DecoderPrint.cxx            |   0
 src/{ => decoder}/DecoderPrint.hxx            |   0
 src/{ => decoder}/DecoderThread.cxx           |   0
 src/{ => decoder}/DecoderThread.hxx           |   0
 .../{ => plugins}/AdPlugDecoderPlugin.cxx     |   2 +-
 .../{ => plugins}/AdPlugDecoderPlugin.h       |   0
 .../{ => plugins}/AudiofileDecoderPlugin.cxx  |   2 +-
 .../{ => plugins}/AudiofileDecoderPlugin.hxx  |   0
 src/decoder/{ => plugins}/DsdLib.cxx          |   2 +-
 src/decoder/{ => plugins}/DsdLib.hxx          |   0
 .../{ => plugins}/DsdiffDecoderPlugin.cxx     |   2 +-
 .../{ => plugins}/DsdiffDecoderPlugin.hxx     |   0
 .../{ => plugins}/DsfDecoderPlugin.cxx        |   2 +-
 .../{ => plugins}/DsfDecoderPlugin.hxx        |   0
 .../{ => plugins}/FaadDecoderPlugin.cxx       |   4 +-
 .../{ => plugins}/FaadDecoderPlugin.hxx       |   0
 .../{ => plugins}/FfmpegDecoderPlugin.cxx     |   2 +-
 .../{ => plugins}/FfmpegDecoderPlugin.hxx     |   0
 src/decoder/{ => plugins}/FfmpegMetaData.cxx  |   0
 src/decoder/{ => plugins}/FfmpegMetaData.hxx  |   0
 src/decoder/{ => plugins}/FlacCommon.cxx      |   0
 src/decoder/{ => plugins}/FlacCommon.hxx      |   2 +-
 .../{ => plugins}/FlacDecoderPlugin.cxx       |   0
 src/decoder/{ => plugins}/FlacDecoderPlugin.h |   0
 src/decoder/{ => plugins}/FlacDomain.cxx      |   0
 src/decoder/{ => plugins}/FlacDomain.hxx      |   0
 src/decoder/{ => plugins}/FlacIOHandle.cxx    |   0
 src/decoder/{ => plugins}/FlacIOHandle.hxx    |   0
 src/decoder/{ => plugins}/FlacInput.cxx       |   2 +-
 src/decoder/{ => plugins}/FlacInput.hxx       |   0
 src/decoder/{ => plugins}/FlacMetadata.cxx    |   0
 src/decoder/{ => plugins}/FlacMetadata.hxx    |   0
 src/decoder/{ => plugins}/FlacPcm.cxx         |   0
 src/decoder/{ => plugins}/FlacPcm.hxx         |   0
 .../{ => plugins}/FluidsynthDecoderPlugin.cxx |   2 +-
 .../{ => plugins}/FluidsynthDecoderPlugin.hxx |   0
 .../{ => plugins}/GmeDecoderPlugin.cxx        |   2 +-
 .../{ => plugins}/GmeDecoderPlugin.hxx        |   0
 .../{ => plugins}/MadDecoderPlugin.cxx        |   2 +-
 .../{ => plugins}/MadDecoderPlugin.hxx        |   0
 .../{ => plugins}/MikmodDecoderPlugin.cxx     |   2 +-
 .../{ => plugins}/MikmodDecoderPlugin.hxx     |   0
 .../{ => plugins}/ModplugDecoderPlugin.cxx    |   2 +-
 .../{ => plugins}/ModplugDecoderPlugin.hxx    |   0
 .../{ => plugins}/MpcdecDecoderPlugin.cxx     |   2 +-
 .../{ => plugins}/MpcdecDecoderPlugin.hxx     |   0
 .../{ => plugins}/Mpg123DecoderPlugin.cxx     |   2 +-
 .../{ => plugins}/Mpg123DecoderPlugin.hxx     |   0
 src/decoder/{ => plugins}/OggCodec.cxx        |   2 +-
 src/decoder/{ => plugins}/OggCodec.hxx        |   0
 src/decoder/{ => plugins}/OggFind.cxx         |   0
 src/decoder/{ => plugins}/OggFind.hxx         |   0
 src/decoder/{ => plugins}/OggSyncState.hxx    |   0
 src/decoder/{ => plugins}/OggUtil.cxx         |   2 +-
 src/decoder/{ => plugins}/OggUtil.hxx         |   0
 .../{ => plugins}/OpusDecoderPlugin.cxx       |   2 +-
 src/decoder/{ => plugins}/OpusDecoderPlugin.h |   0
 src/decoder/{ => plugins}/OpusDomain.cxx      |   0
 src/decoder/{ => plugins}/OpusDomain.hxx      |   0
 src/decoder/{ => plugins}/OpusHead.cxx        |   0
 src/decoder/{ => plugins}/OpusHead.hxx        |   0
 src/decoder/{ => plugins}/OpusReader.hxx      |   0
 src/decoder/{ => plugins}/OpusTags.cxx        |   0
 src/decoder/{ => plugins}/OpusTags.hxx        |   0
 .../{ => plugins}/PcmDecoderPlugin.cxx        |   4 +-
 .../{ => plugins}/PcmDecoderPlugin.hxx        |   0
 .../{ => plugins}/SidplayDecoderPlugin.cxx    |   0
 .../{ => plugins}/SidplayDecoderPlugin.hxx    |   0
 .../{ => plugins}/SndfileDecoderPlugin.cxx    |   2 +-
 .../{ => plugins}/SndfileDecoderPlugin.hxx    |   0
 src/decoder/{ => plugins}/VorbisComments.cxx  |   0
 src/decoder/{ => plugins}/VorbisComments.hxx  |   0
 .../{ => plugins}/VorbisDecoderPlugin.cxx     |   2 +-
 .../{ => plugins}/VorbisDecoderPlugin.h       |   0
 src/decoder/{ => plugins}/VorbisDomain.cxx    |   0
 src/decoder/{ => plugins}/VorbisDomain.hxx    |   0
 .../{ => plugins}/WavpackDecoderPlugin.cxx    |   2 +-
 .../{ => plugins}/WavpackDecoderPlugin.hxx    |   0
 .../{ => plugins}/WildmidiDecoderPlugin.cxx   |   2 +-
 .../{ => plugins}/WildmidiDecoderPlugin.hxx   |   0
 src/decoder/{ => plugins}/XiphTags.cxx        |   0
 src/decoder/{ => plugins}/XiphTags.hxx        |   0
 test/FakeDecoderAPI.cxx                       |   2 +-
 test/dump_playlist.cxx                        |   2 +-
 test/read_tags.cxx                            |   4 +-
 test/run_decoder.cxx                          |   4 +-
 111 files changed, 142 insertions(+), 142 deletions(-)
 rename src/{ => decoder}/DecoderAPI.cxx (100%)
 rename src/{ => decoder}/DecoderAPI.hxx (100%)
 rename src/{ => decoder}/DecoderBuffer.cxx (100%)
 rename src/{ => decoder}/DecoderBuffer.hxx (100%)
 rename src/{ => decoder}/DecoderCommand.hxx (100%)
 rename src/{ => decoder}/DecoderControl.cxx (100%)
 rename src/{ => decoder}/DecoderControl.hxx (100%)
 rename src/{ => decoder}/DecoderError.cxx (100%)
 rename src/{ => decoder}/DecoderError.hxx (100%)
 rename src/{ => decoder}/DecoderInternal.cxx (100%)
 rename src/{ => decoder}/DecoderInternal.hxx (100%)
 rename src/{ => decoder}/DecoderList.cxx (81%)
 rename src/{ => decoder}/DecoderList.hxx (100%)
 rename src/{ => decoder}/DecoderPlugin.cxx (100%)
 rename src/{ => decoder}/DecoderPlugin.hxx (100%)
 rename src/{ => decoder}/DecoderPrint.cxx (100%)
 rename src/{ => decoder}/DecoderPrint.hxx (100%)
 rename src/{ => decoder}/DecoderThread.cxx (100%)
 rename src/{ => decoder}/DecoderThread.hxx (100%)
 rename src/decoder/{ => plugins}/AdPlugDecoderPlugin.cxx (99%)
 rename src/decoder/{ => plugins}/AdPlugDecoderPlugin.h (100%)
 rename src/decoder/{ => plugins}/AudiofileDecoderPlugin.cxx (99%)
 rename src/decoder/{ => plugins}/AudiofileDecoderPlugin.hxx (100%)
 rename src/decoder/{ => plugins}/DsdLib.cxx (99%)
 rename src/decoder/{ => plugins}/DsdLib.hxx (100%)
 rename src/decoder/{ => plugins}/DsdiffDecoderPlugin.cxx (99%)
 rename src/decoder/{ => plugins}/DsdiffDecoderPlugin.hxx (100%)
 rename src/decoder/{ => plugins}/DsfDecoderPlugin.cxx (99%)
 rename src/decoder/{ => plugins}/DsfDecoderPlugin.hxx (100%)
 rename src/decoder/{ => plugins}/FaadDecoderPlugin.cxx (99%)
 rename src/decoder/{ => plugins}/FaadDecoderPlugin.hxx (100%)
 rename src/decoder/{ => plugins}/FfmpegDecoderPlugin.cxx (99%)
 rename src/decoder/{ => plugins}/FfmpegDecoderPlugin.hxx (100%)
 rename src/decoder/{ => plugins}/FfmpegMetaData.cxx (100%)
 rename src/decoder/{ => plugins}/FfmpegMetaData.hxx (100%)
 rename src/decoder/{ => plugins}/FlacCommon.cxx (100%)
 rename src/decoder/{ => plugins}/FlacCommon.hxx (98%)
 rename src/decoder/{ => plugins}/FlacDecoderPlugin.cxx (100%)
 rename src/decoder/{ => plugins}/FlacDecoderPlugin.h (100%)
 rename src/decoder/{ => plugins}/FlacDomain.cxx (100%)
 rename src/decoder/{ => plugins}/FlacDomain.hxx (100%)
 rename src/decoder/{ => plugins}/FlacIOHandle.cxx (100%)
 rename src/decoder/{ => plugins}/FlacIOHandle.hxx (100%)
 rename src/decoder/{ => plugins}/FlacInput.cxx (99%)
 rename src/decoder/{ => plugins}/FlacInput.hxx (100%)
 rename src/decoder/{ => plugins}/FlacMetadata.cxx (100%)
 rename src/decoder/{ => plugins}/FlacMetadata.hxx (100%)
 rename src/decoder/{ => plugins}/FlacPcm.cxx (100%)
 rename src/decoder/{ => plugins}/FlacPcm.hxx (100%)
 rename src/decoder/{ => plugins}/FluidsynthDecoderPlugin.cxx (99%)
 rename src/decoder/{ => plugins}/FluidsynthDecoderPlugin.hxx (100%)
 rename src/decoder/{ => plugins}/GmeDecoderPlugin.cxx (99%)
 rename src/decoder/{ => plugins}/GmeDecoderPlugin.hxx (100%)
 rename src/decoder/{ => plugins}/MadDecoderPlugin.cxx (99%)
 rename src/decoder/{ => plugins}/MadDecoderPlugin.hxx (100%)
 rename src/decoder/{ => plugins}/MikmodDecoderPlugin.cxx (99%)
 rename src/decoder/{ => plugins}/MikmodDecoderPlugin.hxx (100%)
 rename src/decoder/{ => plugins}/ModplugDecoderPlugin.cxx (99%)
 rename src/decoder/{ => plugins}/ModplugDecoderPlugin.hxx (100%)
 rename src/decoder/{ => plugins}/MpcdecDecoderPlugin.cxx (99%)
 rename src/decoder/{ => plugins}/MpcdecDecoderPlugin.hxx (100%)
 rename src/decoder/{ => plugins}/Mpg123DecoderPlugin.cxx (99%)
 rename src/decoder/{ => plugins}/Mpg123DecoderPlugin.hxx (100%)
 rename src/decoder/{ => plugins}/OggCodec.cxx (98%)
 rename src/decoder/{ => plugins}/OggCodec.hxx (100%)
 rename src/decoder/{ => plugins}/OggFind.cxx (100%)
 rename src/decoder/{ => plugins}/OggFind.hxx (100%)
 rename src/decoder/{ => plugins}/OggSyncState.hxx (100%)
 rename src/decoder/{ => plugins}/OggUtil.cxx (98%)
 rename src/decoder/{ => plugins}/OggUtil.hxx (100%)
 rename src/decoder/{ => plugins}/OpusDecoderPlugin.cxx (99%)
 rename src/decoder/{ => plugins}/OpusDecoderPlugin.h (100%)
 rename src/decoder/{ => plugins}/OpusDomain.cxx (100%)
 rename src/decoder/{ => plugins}/OpusDomain.hxx (100%)
 rename src/decoder/{ => plugins}/OpusHead.cxx (100%)
 rename src/decoder/{ => plugins}/OpusHead.hxx (100%)
 rename src/decoder/{ => plugins}/OpusReader.hxx (100%)
 rename src/decoder/{ => plugins}/OpusTags.cxx (100%)
 rename src/decoder/{ => plugins}/OpusTags.hxx (100%)
 rename src/decoder/{ => plugins}/PcmDecoderPlugin.cxx (97%)
 rename src/decoder/{ => plugins}/PcmDecoderPlugin.hxx (100%)
 rename src/decoder/{ => plugins}/SidplayDecoderPlugin.cxx (100%)
 rename src/decoder/{ => plugins}/SidplayDecoderPlugin.hxx (100%)
 rename src/decoder/{ => plugins}/SndfileDecoderPlugin.cxx (99%)
 rename src/decoder/{ => plugins}/SndfileDecoderPlugin.hxx (100%)
 rename src/decoder/{ => plugins}/VorbisComments.cxx (100%)
 rename src/decoder/{ => plugins}/VorbisComments.hxx (100%)
 rename src/decoder/{ => plugins}/VorbisDecoderPlugin.cxx (99%)
 rename src/decoder/{ => plugins}/VorbisDecoderPlugin.h (100%)
 rename src/decoder/{ => plugins}/VorbisDomain.cxx (100%)
 rename src/decoder/{ => plugins}/VorbisDomain.hxx (100%)
 rename src/decoder/{ => plugins}/WavpackDecoderPlugin.cxx (99%)
 rename src/decoder/{ => plugins}/WavpackDecoderPlugin.hxx (100%)
 rename src/decoder/{ => plugins}/WildmidiDecoderPlugin.cxx (99%)
 rename src/decoder/{ => plugins}/WildmidiDecoderPlugin.hxx (100%)
 rename src/decoder/{ => plugins}/XiphTags.cxx (100%)
 rename src/decoder/{ => plugins}/XiphTags.hxx (100%)

diff --git a/Makefile.am b/Makefile.am
index 541494c21..049975534 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -95,14 +95,14 @@ src_mpd_SOURCES = \
 	src/CommandLine.cxx src/CommandLine.hxx \
 	src/CrossFade.cxx src/CrossFade.hxx \
 	src/cue/CueParser.cxx src/cue/CueParser.hxx \
-	src/DecoderError.cxx src/DecoderError.hxx \
-	src/DecoderThread.cxx src/DecoderThread.hxx \
-	src/DecoderCommand.hxx \
-	src/DecoderControl.cxx src/DecoderControl.hxx \
-	src/DecoderAPI.cxx src/DecoderAPI.hxx \
-	src/DecoderPlugin.hxx \
-	src/DecoderInternal.cxx src/DecoderInternal.hxx \
-	src/DecoderPrint.cxx src/DecoderPrint.hxx \
+	src/decoder/DecoderError.cxx src/decoder/DecoderError.hxx \
+	src/decoder/DecoderThread.cxx src/decoder/DecoderThread.hxx \
+	src/decoder/DecoderCommand.hxx \
+	src/decoder/DecoderControl.cxx src/decoder/DecoderControl.hxx \
+	src/decoder/DecoderAPI.cxx src/decoder/DecoderAPI.hxx \
+	src/decoder/DecoderPlugin.hxx \
+	src/decoder/DecoderInternal.cxx src/decoder/DecoderInternal.hxx \
+	src/decoder/DecoderPrint.cxx src/decoder/DecoderPrint.hxx \
 	src/Directory.cxx src/Directory.hxx \
 	src/DirectorySave.cxx src/DirectorySave.hxx \
 	src/DatabaseSimple.hxx \
@@ -534,17 +534,17 @@ endif
 # decoder plugins
 
 libdecoder_plugins_a_SOURCES = \
-	src/decoder/PcmDecoderPlugin.cxx \
-	src/decoder/PcmDecoderPlugin.hxx \
-	src/decoder/DsdiffDecoderPlugin.cxx \
-	src/decoder/DsdiffDecoderPlugin.hxx \
-	src/decoder/DsfDecoderPlugin.cxx \
-	src/decoder/DsfDecoderPlugin.hxx \
-	src/decoder/DsdLib.cxx \
-	src/decoder/DsdLib.hxx \
-	src/DecoderBuffer.cxx src/DecoderBuffer.hxx \
-	src/DecoderPlugin.cxx \
-	src/DecoderList.cxx src/DecoderList.hxx
+	src/decoder/plugins/PcmDecoderPlugin.cxx \
+	src/decoder/plugins/PcmDecoderPlugin.hxx \
+	src/decoder/plugins/DsdiffDecoderPlugin.cxx \
+	src/decoder/plugins/DsdiffDecoderPlugin.hxx \
+	src/decoder/plugins/DsfDecoderPlugin.cxx \
+	src/decoder/plugins/DsfDecoderPlugin.hxx \
+	src/decoder/plugins/DsdLib.cxx \
+	src/decoder/plugins/DsdLib.hxx \
+	src/decoder/DecoderBuffer.cxx src/decoder/DecoderBuffer.hxx \
+	src/decoder/DecoderPlugin.cxx \
+	src/decoder/DecoderList.cxx src/decoder/DecoderList.hxx
 libdecoder_plugins_a_CPPFLAGS = $(AM_CPPFLAGS) \
 	$(VORBIS_CFLAGS) $(TREMOR_CFLAGS) \
 	$(patsubst -I%/FLAC,-I%,$(FLAC_CFLAGS)) \
@@ -587,96 +587,96 @@ DECODER_SRC =
 
 if HAVE_MAD
 libdecoder_plugins_a_SOURCES += \
-	src/decoder/MadDecoderPlugin.cxx \
-	src/decoder/MadDecoderPlugin.hxx
+	src/decoder/plugins/MadDecoderPlugin.cxx \
+	src/decoder/plugins/MadDecoderPlugin.hxx
 endif
 
 if HAVE_MPG123
 libdecoder_plugins_a_SOURCES += \
-	src/decoder/Mpg123DecoderPlugin.cxx \
-	src/decoder/Mpg123DecoderPlugin.hxx
+	src/decoder/plugins/Mpg123DecoderPlugin.cxx \
+	src/decoder/plugins/Mpg123DecoderPlugin.hxx
 endif
 
 if HAVE_MPCDEC
 libdecoder_plugins_a_SOURCES += \
-	src/decoder/MpcdecDecoderPlugin.cxx \
-	src/decoder/MpcdecDecoderPlugin.hxx
+	src/decoder/plugins/MpcdecDecoderPlugin.cxx \
+	src/decoder/plugins/MpcdecDecoderPlugin.hxx
 endif
 
 if HAVE_OPUS
 libdecoder_plugins_a_SOURCES += \
-	src/decoder/OggUtil.cxx \
-	src/decoder/OggUtil.hxx \
-	src/decoder/OggSyncState.hxx \
-	src/decoder/OggFind.cxx src/decoder/OggFind.hxx \
-	src/decoder/OpusDomain.cxx src/decoder/OpusDomain.hxx \
-	src/decoder/OpusReader.hxx \
-	src/decoder/OpusHead.hxx \
-	src/decoder/OpusHead.cxx \
-	src/decoder/OpusTags.cxx \
-	src/decoder/OpusTags.hxx \
-	src/decoder/OpusDecoderPlugin.cxx \
-	src/decoder/OpusDecoderPlugin.h
+	src/decoder/plugins/OggUtil.cxx \
+	src/decoder/plugins/OggUtil.hxx \
+	src/decoder/plugins/OggSyncState.hxx \
+	src/decoder/plugins/OggFind.cxx src/decoder/plugins/OggFind.hxx \
+	src/decoder/plugins/OpusDomain.cxx src/decoder/plugins/OpusDomain.hxx \
+	src/decoder/plugins/OpusReader.hxx \
+	src/decoder/plugins/OpusHead.hxx \
+	src/decoder/plugins/OpusHead.cxx \
+	src/decoder/plugins/OpusTags.cxx \
+	src/decoder/plugins/OpusTags.hxx \
+	src/decoder/plugins/OpusDecoderPlugin.cxx \
+	src/decoder/plugins/OpusDecoderPlugin.h
 endif
 
 if HAVE_WAVPACK
 libdecoder_plugins_a_SOURCES += \
-	src/decoder/WavpackDecoderPlugin.cxx \
-	src/decoder/WavpackDecoderPlugin.hxx
+	src/decoder/plugins/WavpackDecoderPlugin.cxx \
+	src/decoder/plugins/WavpackDecoderPlugin.hxx
 endif
 
 if HAVE_ADPLUG
 libdecoder_plugins_a_SOURCES += \
-	src/decoder/AdPlugDecoderPlugin.cxx \
-	src/decoder/AdPlugDecoderPlugin.h
+	src/decoder/plugins/AdPlugDecoderPlugin.cxx \
+	src/decoder/plugins/AdPlugDecoderPlugin.h
 endif
 
 if HAVE_FAAD
 libdecoder_plugins_a_SOURCES += \
-	src/decoder/FaadDecoderPlugin.cxx src/decoder/FaadDecoderPlugin.hxx
+	src/decoder/plugins/FaadDecoderPlugin.cxx src/decoder/plugins/FaadDecoderPlugin.hxx
 endif
 
 if HAVE_XIPH
 libdecoder_plugins_a_SOURCES += \
-	src/decoder/XiphTags.cxx src/decoder/XiphTags.hxx \
-	src/decoder/OggCodec.cxx src/decoder/OggCodec.hxx
+	src/decoder/plugins/XiphTags.cxx src/decoder/plugins/XiphTags.hxx \
+	src/decoder/plugins/OggCodec.cxx src/decoder/plugins/OggCodec.hxx
 endif
 
 if ENABLE_VORBIS_DECODER
 libdecoder_plugins_a_SOURCES += \
-	src/decoder/VorbisDomain.cxx src/decoder/VorbisDomain.hxx \
-	src/decoder/VorbisComments.cxx src/decoder/VorbisComments.hxx \
-	src/decoder/VorbisDecoderPlugin.cxx src/decoder/VorbisDecoderPlugin.h
+	src/decoder/plugins/VorbisDomain.cxx src/decoder/plugins/VorbisDomain.hxx \
+	src/decoder/plugins/VorbisComments.cxx src/decoder/plugins/VorbisComments.hxx \
+	src/decoder/plugins/VorbisDecoderPlugin.cxx src/decoder/plugins/VorbisDecoderPlugin.h
 endif
 
 if HAVE_FLAC
 libdecoder_plugins_a_SOURCES += \
-	src/decoder/FlacInput.cxx src/decoder/FlacInput.hxx \
-	src/decoder/FlacIOHandle.cxx src/decoder/FlacIOHandle.hxx \
-	src/decoder/FlacMetadata.cxx src/decoder/FlacMetadata.hxx \
-	src/decoder/FlacPcm.cxx src/decoder/FlacPcm.hxx \
-	src/decoder/FlacDomain.cxx src/decoder/FlacDomain.hxx \
-	src/decoder/FlacCommon.cxx src/decoder/FlacCommon.hxx \
-	src/decoder/FlacDecoderPlugin.cxx \
-	src/decoder/FlacDecoderPlugin.h
+	src/decoder/plugins/FlacInput.cxx src/decoder/plugins/FlacInput.hxx \
+	src/decoder/plugins/FlacIOHandle.cxx src/decoder/plugins/FlacIOHandle.hxx \
+	src/decoder/plugins/FlacMetadata.cxx src/decoder/plugins/FlacMetadata.hxx \
+	src/decoder/plugins/FlacPcm.cxx src/decoder/plugins/FlacPcm.hxx \
+	src/decoder/plugins/FlacDomain.cxx src/decoder/plugins/FlacDomain.hxx \
+	src/decoder/plugins/FlacCommon.cxx src/decoder/plugins/FlacCommon.hxx \
+	src/decoder/plugins/FlacDecoderPlugin.cxx \
+	src/decoder/plugins/FlacDecoderPlugin.h
 endif
 
 if HAVE_AUDIOFILE
 libdecoder_plugins_a_SOURCES += \
-	src/decoder/AudiofileDecoderPlugin.cxx \
-	src/decoder/AudiofileDecoderPlugin.hxx
+	src/decoder/plugins/AudiofileDecoderPlugin.cxx \
+	src/decoder/plugins/AudiofileDecoderPlugin.hxx
 endif
 
 if ENABLE_MIKMOD_DECODER
 libdecoder_plugins_a_SOURCES += \
-	src/decoder/MikmodDecoderPlugin.cxx \
-	src/decoder/MikmodDecoderPlugin.hxx
+	src/decoder/plugins/MikmodDecoderPlugin.cxx \
+	src/decoder/plugins/MikmodDecoderPlugin.hxx
 endif
 
 if HAVE_MODPLUG
 libmodplug_decoder_plugin_a_SOURCES = \
-	src/decoder/ModplugDecoderPlugin.cxx \
-	src/decoder/ModplugDecoderPlugin.hxx
+	src/decoder/plugins/ModplugDecoderPlugin.cxx \
+	src/decoder/plugins/ModplugDecoderPlugin.hxx
 libmodplug_decoder_plugin_a_CXXFLAGS = $(AM_CXXFLAGS) $(MODPLUG_CFLAGS)
 libmodplug_decoder_plugin_a_CPPFLAGS = $(src_mpd_CPPFLAGS)
 noinst_LIBRARIES += libmodplug_decoder_plugin.a
@@ -685,39 +685,39 @@ endif
 
 if ENABLE_SIDPLAY
 libdecoder_plugins_a_SOURCES += \
-	src/decoder/SidplayDecoderPlugin.cxx \
-	src/decoder/SidplayDecoderPlugin.hxx
+	src/decoder/plugins/SidplayDecoderPlugin.cxx \
+	src/decoder/plugins/SidplayDecoderPlugin.hxx
 endif
 
 if ENABLE_FLUIDSYNTH
 libdecoder_plugins_a_SOURCES += \
-	src/decoder/FluidsynthDecoderPlugin.cxx \
-	src/decoder/FluidsynthDecoderPlugin.hxx
+	src/decoder/plugins/FluidsynthDecoderPlugin.cxx \
+	src/decoder/plugins/FluidsynthDecoderPlugin.hxx
 endif
 
 if ENABLE_WILDMIDI
 libdecoder_plugins_a_SOURCES += \
-	src/decoder/WildmidiDecoderPlugin.cxx \
-	src/decoder/WildmidiDecoderPlugin.hxx
+	src/decoder/plugins/WildmidiDecoderPlugin.cxx \
+	src/decoder/plugins/WildmidiDecoderPlugin.hxx
 endif
 
 if HAVE_FFMPEG
 libdecoder_plugins_a_SOURCES += \
-	src/decoder/FfmpegMetaData.cxx \
-	src/decoder/FfmpegMetaData.hxx \
-	src/decoder/FfmpegDecoderPlugin.cxx \
-	src/decoder/FfmpegDecoderPlugin.hxx
+	src/decoder/plugins/FfmpegMetaData.cxx \
+	src/decoder/plugins/FfmpegMetaData.hxx \
+	src/decoder/plugins/FfmpegDecoderPlugin.cxx \
+	src/decoder/plugins/FfmpegDecoderPlugin.hxx
 endif
 
 if ENABLE_SNDFILE
 libdecoder_plugins_a_SOURCES += \
-	src/decoder/SndfileDecoderPlugin.cxx \
-	src/decoder/SndfileDecoderPlugin.hxx
+	src/decoder/plugins/SndfileDecoderPlugin.cxx \
+	src/decoder/plugins/SndfileDecoderPlugin.hxx
 endif
 
 if HAVE_GME
 libdecoder_plugins_a_SOURCES += \
-	src/decoder/GmeDecoderPlugin.cxx src/decoder/GmeDecoderPlugin.hxx
+	src/decoder/plugins/GmeDecoderPlugin.cxx src/decoder/plugins/GmeDecoderPlugin.hxx
 endif
 
 # encoder plugins
@@ -1348,7 +1348,7 @@ test_dump_playlist_SOURCES = test/dump_playlist.cxx \
 if HAVE_FLAC
 test_dump_playlist_SOURCES += \
 	src/ReplayGainInfo.cxx \
-	src/decoder/FlacMetadata.cxx
+	src/decoder/plugins/FlacMetadata.cxx
 endif
 
 test_run_decoder_LDADD = \
diff --git a/src/CommandLine.cxx b/src/CommandLine.cxx
index 97cc2b18e..2b8f18a2c 100644
--- a/src/CommandLine.cxx
+++ b/src/CommandLine.cxx
@@ -25,8 +25,8 @@
 #include "ConfigGlobal.hxx"
 #include "DatabaseRegistry.hxx"
 #include "DatabasePlugin.hxx"
-#include "DecoderList.hxx"
-#include "DecoderPlugin.hxx"
+#include "decoder/DecoderList.hxx"
+#include "decoder/DecoderPlugin.hxx"
 #include "output/OutputList.hxx"
 #include "output/OutputPlugin.hxx"
 #include "InputRegistry.hxx"
diff --git a/src/Main.cxx b/src/Main.cxx
index 9eb39a7e2..b4fc948f1 100644
--- a/src/Main.cxx
+++ b/src/Main.cxx
@@ -53,7 +53,7 @@
 #include "fs/StandardDirectory.hxx"
 #include "playlist/PlaylistRegistry.hxx"
 #include "ZeroconfGlue.hxx"
-#include "DecoderList.hxx"
+#include "decoder/DecoderList.hxx"
 #include "AudioConfig.hxx"
 #include "pcm/PcmConvert.hxx"
 #include "Daemon.hxx"
diff --git a/src/PlayerThread.cxx b/src/PlayerThread.cxx
index bde3c1372..4fb045bda 100644
--- a/src/PlayerThread.cxx
+++ b/src/PlayerThread.cxx
@@ -19,8 +19,8 @@
 
 #include "config.h"
 #include "PlayerThread.hxx"
-#include "DecoderThread.hxx"
-#include "DecoderControl.hxx"
+#include "decoder/DecoderThread.hxx"
+#include "decoder/DecoderControl.hxx"
 #include "MusicPipe.hxx"
 #include "MusicBuffer.hxx"
 #include "MusicChunk.hxx"
diff --git a/src/SongUpdate.cxx b/src/SongUpdate.cxx
index 2eb0a0966..571415ff1 100644
--- a/src/SongUpdate.cxx
+++ b/src/SongUpdate.cxx
@@ -26,7 +26,7 @@
 #include "fs/AllocatedPath.hxx"
 #include "fs/Traits.hxx"
 #include "fs/FileSystem.hxx"
-#include "DecoderList.hxx"
+#include "decoder/DecoderList.hxx"
 #include "tag/Tag.hxx"
 #include "tag/TagBuilder.hxx"
 #include "tag/TagHandler.hxx"
diff --git a/src/TagFile.cxx b/src/TagFile.cxx
index 1059219ca..86a2443c6 100644
--- a/src/TagFile.cxx
+++ b/src/TagFile.cxx
@@ -22,8 +22,8 @@
 #include "fs/Path.hxx"
 #include "util/UriUtil.hxx"
 #include "util/Error.hxx"
-#include "DecoderList.hxx"
-#include "DecoderPlugin.hxx"
+#include "decoder/DecoderList.hxx"
+#include "decoder/DecoderPlugin.hxx"
 #include "InputStream.hxx"
 #include "thread/Cond.hxx"
 
diff --git a/src/TagStream.cxx b/src/TagStream.cxx
index 8153d49e2..fc115c659 100644
--- a/src/TagStream.cxx
+++ b/src/TagStream.cxx
@@ -21,8 +21,8 @@
 #include "TagStream.hxx"
 #include "util/UriUtil.hxx"
 #include "util/Error.hxx"
-#include "DecoderList.hxx"
-#include "DecoderPlugin.hxx"
+#include "decoder/DecoderList.hxx"
+#include "decoder/DecoderPlugin.hxx"
 #include "InputStream.hxx"
 #include "thread/Mutex.hxx"
 #include "thread/Cond.hxx"
diff --git a/src/UpdateContainer.cxx b/src/UpdateContainer.cxx
index 2323f69f6..0417aa999 100644
--- a/src/UpdateContainer.cxx
+++ b/src/UpdateContainer.cxx
@@ -25,8 +25,8 @@
 #include "DatabaseLock.hxx"
 #include "Directory.hxx"
 #include "Song.hxx"
-#include "DecoderPlugin.hxx"
-#include "DecoderList.hxx"
+#include "decoder/DecoderPlugin.hxx"
+#include "decoder/DecoderList.hxx"
 #include "Mapper.hxx"
 #include "fs/AllocatedPath.hxx"
 #include "tag/TagHandler.hxx"
diff --git a/src/UpdateSong.cxx b/src/UpdateSong.cxx
index 592298f49..2db85a674 100644
--- a/src/UpdateSong.cxx
+++ b/src/UpdateSong.cxx
@@ -27,7 +27,7 @@
 #include "DatabaseLock.hxx"
 #include "Directory.hxx"
 #include "Song.hxx"
-#include "DecoderList.hxx"
+#include "decoder/DecoderList.hxx"
 #include "Log.hxx"
 
 #include <unistd.h>
diff --git a/src/command/OtherCommands.cxx b/src/command/OtherCommands.cxx
index 397e40b00..fc6903d37 100644
--- a/src/command/OtherCommands.cxx
+++ b/src/command/OtherCommands.cxx
@@ -30,7 +30,7 @@
 #include "tag/TagHandler.hxx"
 #include "TimePrint.hxx"
 #include "Mapper.hxx"
-#include "DecoderPrint.hxx"
+#include "decoder/DecoderPrint.hxx"
 #include "protocol/ArgParser.hxx"
 #include "protocol/Result.hxx"
 #include "ls.hxx"
diff --git a/src/DecoderAPI.cxx b/src/decoder/DecoderAPI.cxx
similarity index 100%
rename from src/DecoderAPI.cxx
rename to src/decoder/DecoderAPI.cxx
diff --git a/src/DecoderAPI.hxx b/src/decoder/DecoderAPI.hxx
similarity index 100%
rename from src/DecoderAPI.hxx
rename to src/decoder/DecoderAPI.hxx
diff --git a/src/DecoderBuffer.cxx b/src/decoder/DecoderBuffer.cxx
similarity index 100%
rename from src/DecoderBuffer.cxx
rename to src/decoder/DecoderBuffer.cxx
diff --git a/src/DecoderBuffer.hxx b/src/decoder/DecoderBuffer.hxx
similarity index 100%
rename from src/DecoderBuffer.hxx
rename to src/decoder/DecoderBuffer.hxx
diff --git a/src/DecoderCommand.hxx b/src/decoder/DecoderCommand.hxx
similarity index 100%
rename from src/DecoderCommand.hxx
rename to src/decoder/DecoderCommand.hxx
diff --git a/src/DecoderControl.cxx b/src/decoder/DecoderControl.cxx
similarity index 100%
rename from src/DecoderControl.cxx
rename to src/decoder/DecoderControl.cxx
diff --git a/src/DecoderControl.hxx b/src/decoder/DecoderControl.hxx
similarity index 100%
rename from src/DecoderControl.hxx
rename to src/decoder/DecoderControl.hxx
diff --git a/src/DecoderError.cxx b/src/decoder/DecoderError.cxx
similarity index 100%
rename from src/DecoderError.cxx
rename to src/decoder/DecoderError.cxx
diff --git a/src/DecoderError.hxx b/src/decoder/DecoderError.hxx
similarity index 100%
rename from src/DecoderError.hxx
rename to src/decoder/DecoderError.hxx
diff --git a/src/DecoderInternal.cxx b/src/decoder/DecoderInternal.cxx
similarity index 100%
rename from src/DecoderInternal.cxx
rename to src/decoder/DecoderInternal.cxx
diff --git a/src/DecoderInternal.hxx b/src/decoder/DecoderInternal.hxx
similarity index 100%
rename from src/DecoderInternal.hxx
rename to src/decoder/DecoderInternal.hxx
diff --git a/src/DecoderList.cxx b/src/decoder/DecoderList.cxx
similarity index 81%
rename from src/DecoderList.cxx
rename to src/decoder/DecoderList.cxx
index 8c688fa9b..a644d2eae 100644
--- a/src/DecoderList.cxx
+++ b/src/decoder/DecoderList.cxx
@@ -22,27 +22,27 @@
 #include "DecoderPlugin.hxx"
 #include "ConfigGlobal.hxx"
 #include "ConfigData.hxx"
-#include "decoder/AudiofileDecoderPlugin.hxx"
-#include "decoder/PcmDecoderPlugin.hxx"
-#include "decoder/DsdiffDecoderPlugin.hxx"
-#include "decoder/DsfDecoderPlugin.hxx"
-#include "decoder/FlacDecoderPlugin.h"
-#include "decoder/OpusDecoderPlugin.h"
-#include "decoder/VorbisDecoderPlugin.h"
-#include "decoder/AdPlugDecoderPlugin.h"
-#include "decoder/WavpackDecoderPlugin.hxx"
-#include "decoder/FfmpegDecoderPlugin.hxx"
-#include "decoder/GmeDecoderPlugin.hxx"
-#include "decoder/FaadDecoderPlugin.hxx"
-#include "decoder/MadDecoderPlugin.hxx"
-#include "decoder/SndfileDecoderPlugin.hxx"
-#include "decoder/Mpg123DecoderPlugin.hxx"
-#include "decoder/WildmidiDecoderPlugin.hxx"
-#include "decoder/MikmodDecoderPlugin.hxx"
-#include "decoder/ModplugDecoderPlugin.hxx"
-#include "decoder/MpcdecDecoderPlugin.hxx"
-#include "decoder/FluidsynthDecoderPlugin.hxx"
-#include "decoder/SidplayDecoderPlugin.hxx"
+#include "plugins/AudiofileDecoderPlugin.hxx"
+#include "plugins/PcmDecoderPlugin.hxx"
+#include "plugins/DsdiffDecoderPlugin.hxx"
+#include "plugins/DsfDecoderPlugin.hxx"
+#include "plugins/FlacDecoderPlugin.h"
+#include "plugins/OpusDecoderPlugin.h"
+#include "plugins/VorbisDecoderPlugin.h"
+#include "plugins/AdPlugDecoderPlugin.h"
+#include "plugins/WavpackDecoderPlugin.hxx"
+#include "plugins/FfmpegDecoderPlugin.hxx"
+#include "plugins/GmeDecoderPlugin.hxx"
+#include "plugins/FaadDecoderPlugin.hxx"
+#include "plugins/MadDecoderPlugin.hxx"
+#include "plugins/SndfileDecoderPlugin.hxx"
+#include "plugins/Mpg123DecoderPlugin.hxx"
+#include "plugins/WildmidiDecoderPlugin.hxx"
+#include "plugins/MikmodDecoderPlugin.hxx"
+#include "plugins/ModplugDecoderPlugin.hxx"
+#include "plugins/MpcdecDecoderPlugin.hxx"
+#include "plugins/FluidsynthDecoderPlugin.hxx"
+#include "plugins/SidplayDecoderPlugin.hxx"
 #include "system/FatalError.hxx"
 #include "util/Macros.hxx"
 
diff --git a/src/DecoderList.hxx b/src/decoder/DecoderList.hxx
similarity index 100%
rename from src/DecoderList.hxx
rename to src/decoder/DecoderList.hxx
diff --git a/src/DecoderPlugin.cxx b/src/decoder/DecoderPlugin.cxx
similarity index 100%
rename from src/DecoderPlugin.cxx
rename to src/decoder/DecoderPlugin.cxx
diff --git a/src/DecoderPlugin.hxx b/src/decoder/DecoderPlugin.hxx
similarity index 100%
rename from src/DecoderPlugin.hxx
rename to src/decoder/DecoderPlugin.hxx
diff --git a/src/DecoderPrint.cxx b/src/decoder/DecoderPrint.cxx
similarity index 100%
rename from src/DecoderPrint.cxx
rename to src/decoder/DecoderPrint.cxx
diff --git a/src/DecoderPrint.hxx b/src/decoder/DecoderPrint.hxx
similarity index 100%
rename from src/DecoderPrint.hxx
rename to src/decoder/DecoderPrint.hxx
diff --git a/src/DecoderThread.cxx b/src/decoder/DecoderThread.cxx
similarity index 100%
rename from src/DecoderThread.cxx
rename to src/decoder/DecoderThread.cxx
diff --git a/src/DecoderThread.hxx b/src/decoder/DecoderThread.hxx
similarity index 100%
rename from src/DecoderThread.hxx
rename to src/decoder/DecoderThread.hxx
diff --git a/src/decoder/AdPlugDecoderPlugin.cxx b/src/decoder/plugins/AdPlugDecoderPlugin.cxx
similarity index 99%
rename from src/decoder/AdPlugDecoderPlugin.cxx
rename to src/decoder/plugins/AdPlugDecoderPlugin.cxx
index 89dcea06b..c288d8cf4 100644
--- a/src/decoder/AdPlugDecoderPlugin.cxx
+++ b/src/decoder/plugins/AdPlugDecoderPlugin.cxx
@@ -20,7 +20,7 @@
 #include "config.h"
 #include "AdPlugDecoderPlugin.h"
 #include "tag/TagHandler.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "CheckAudioFormat.hxx"
 #include "util/Error.hxx"
 #include "util/Macros.hxx"
diff --git a/src/decoder/AdPlugDecoderPlugin.h b/src/decoder/plugins/AdPlugDecoderPlugin.h
similarity index 100%
rename from src/decoder/AdPlugDecoderPlugin.h
rename to src/decoder/plugins/AdPlugDecoderPlugin.h
diff --git a/src/decoder/AudiofileDecoderPlugin.cxx b/src/decoder/plugins/AudiofileDecoderPlugin.cxx
similarity index 99%
rename from src/decoder/AudiofileDecoderPlugin.cxx
rename to src/decoder/plugins/AudiofileDecoderPlugin.cxx
index 9ef9ef263..cad908cfd 100644
--- a/src/decoder/AudiofileDecoderPlugin.cxx
+++ b/src/decoder/plugins/AudiofileDecoderPlugin.cxx
@@ -19,7 +19,7 @@
 
 #include "config.h"
 #include "AudiofileDecoderPlugin.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "InputStream.hxx"
 #include "CheckAudioFormat.hxx"
 #include "tag/TagHandler.hxx"
diff --git a/src/decoder/AudiofileDecoderPlugin.hxx b/src/decoder/plugins/AudiofileDecoderPlugin.hxx
similarity index 100%
rename from src/decoder/AudiofileDecoderPlugin.hxx
rename to src/decoder/plugins/AudiofileDecoderPlugin.hxx
diff --git a/src/decoder/DsdLib.cxx b/src/decoder/plugins/DsdLib.cxx
similarity index 99%
rename from src/decoder/DsdLib.cxx
rename to src/decoder/plugins/DsdLib.cxx
index eb3dd5e06..43af7dee1 100644
--- a/src/decoder/DsdLib.cxx
+++ b/src/decoder/plugins/DsdLib.cxx
@@ -25,7 +25,7 @@
 
 #include "config.h"
 #include "DsdLib.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "InputStream.hxx"
 #include "tag/TagId3.hxx"
 #include "util/Error.hxx"
diff --git a/src/decoder/DsdLib.hxx b/src/decoder/plugins/DsdLib.hxx
similarity index 100%
rename from src/decoder/DsdLib.hxx
rename to src/decoder/plugins/DsdLib.hxx
diff --git a/src/decoder/DsdiffDecoderPlugin.cxx b/src/decoder/plugins/DsdiffDecoderPlugin.cxx
similarity index 99%
rename from src/decoder/DsdiffDecoderPlugin.cxx
rename to src/decoder/plugins/DsdiffDecoderPlugin.cxx
index 643ee23bd..89ad2ecd0 100644
--- a/src/decoder/DsdiffDecoderPlugin.cxx
+++ b/src/decoder/plugins/DsdiffDecoderPlugin.cxx
@@ -28,7 +28,7 @@
 
 #include "config.h"
 #include "DsdiffDecoderPlugin.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "InputStream.hxx"
 #include "CheckAudioFormat.hxx"
 #include "util/bit_reverse.h"
diff --git a/src/decoder/DsdiffDecoderPlugin.hxx b/src/decoder/plugins/DsdiffDecoderPlugin.hxx
similarity index 100%
rename from src/decoder/DsdiffDecoderPlugin.hxx
rename to src/decoder/plugins/DsdiffDecoderPlugin.hxx
diff --git a/src/decoder/DsfDecoderPlugin.cxx b/src/decoder/plugins/DsfDecoderPlugin.cxx
similarity index 99%
rename from src/decoder/DsfDecoderPlugin.cxx
rename to src/decoder/plugins/DsfDecoderPlugin.cxx
index fbc49ab62..bb056bbec 100644
--- a/src/decoder/DsfDecoderPlugin.cxx
+++ b/src/decoder/plugins/DsfDecoderPlugin.cxx
@@ -29,7 +29,7 @@
 
 #include "config.h"
 #include "DsfDecoderPlugin.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "InputStream.hxx"
 #include "CheckAudioFormat.hxx"
 #include "util/bit_reverse.h"
diff --git a/src/decoder/DsfDecoderPlugin.hxx b/src/decoder/plugins/DsfDecoderPlugin.hxx
similarity index 100%
rename from src/decoder/DsfDecoderPlugin.hxx
rename to src/decoder/plugins/DsfDecoderPlugin.hxx
diff --git a/src/decoder/FaadDecoderPlugin.cxx b/src/decoder/plugins/FaadDecoderPlugin.cxx
similarity index 99%
rename from src/decoder/FaadDecoderPlugin.cxx
rename to src/decoder/plugins/FaadDecoderPlugin.cxx
index 5e7ccda52..79d6db9f7 100644
--- a/src/decoder/FaadDecoderPlugin.cxx
+++ b/src/decoder/plugins/FaadDecoderPlugin.cxx
@@ -19,8 +19,8 @@
 
 #include "config.h"
 #include "FaadDecoderPlugin.hxx"
-#include "DecoderAPI.hxx"
-#include "DecoderBuffer.hxx"
+#include "../DecoderAPI.hxx"
+#include "../DecoderBuffer.hxx"
 #include "InputStream.hxx"
 #include "CheckAudioFormat.hxx"
 #include "tag/TagHandler.hxx"
diff --git a/src/decoder/FaadDecoderPlugin.hxx b/src/decoder/plugins/FaadDecoderPlugin.hxx
similarity index 100%
rename from src/decoder/FaadDecoderPlugin.hxx
rename to src/decoder/plugins/FaadDecoderPlugin.hxx
diff --git a/src/decoder/FfmpegDecoderPlugin.cxx b/src/decoder/plugins/FfmpegDecoderPlugin.cxx
similarity index 99%
rename from src/decoder/FfmpegDecoderPlugin.cxx
rename to src/decoder/plugins/FfmpegDecoderPlugin.cxx
index 0d4256bd9..461ecb5e4 100644
--- a/src/decoder/FfmpegDecoderPlugin.cxx
+++ b/src/decoder/plugins/FfmpegDecoderPlugin.cxx
@@ -22,7 +22,7 @@
 
 #include "config.h"
 #include "FfmpegDecoderPlugin.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "FfmpegMetaData.hxx"
 #include "tag/TagHandler.hxx"
 #include "InputStream.hxx"
diff --git a/src/decoder/FfmpegDecoderPlugin.hxx b/src/decoder/plugins/FfmpegDecoderPlugin.hxx
similarity index 100%
rename from src/decoder/FfmpegDecoderPlugin.hxx
rename to src/decoder/plugins/FfmpegDecoderPlugin.hxx
diff --git a/src/decoder/FfmpegMetaData.cxx b/src/decoder/plugins/FfmpegMetaData.cxx
similarity index 100%
rename from src/decoder/FfmpegMetaData.cxx
rename to src/decoder/plugins/FfmpegMetaData.cxx
diff --git a/src/decoder/FfmpegMetaData.hxx b/src/decoder/plugins/FfmpegMetaData.hxx
similarity index 100%
rename from src/decoder/FfmpegMetaData.hxx
rename to src/decoder/plugins/FfmpegMetaData.hxx
diff --git a/src/decoder/FlacCommon.cxx b/src/decoder/plugins/FlacCommon.cxx
similarity index 100%
rename from src/decoder/FlacCommon.cxx
rename to src/decoder/plugins/FlacCommon.cxx
diff --git a/src/decoder/FlacCommon.hxx b/src/decoder/plugins/FlacCommon.hxx
similarity index 98%
rename from src/decoder/FlacCommon.hxx
rename to src/decoder/plugins/FlacCommon.hxx
index cb9bfef75..34ce0a3fc 100644
--- a/src/decoder/FlacCommon.hxx
+++ b/src/decoder/plugins/FlacCommon.hxx
@@ -25,7 +25,7 @@
 #define MPD_FLAC_COMMON_HXX
 
 #include "FlacInput.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "pcm/PcmBuffer.hxx"
 
 #include <FLAC/stream_decoder.h>
diff --git a/src/decoder/FlacDecoderPlugin.cxx b/src/decoder/plugins/FlacDecoderPlugin.cxx
similarity index 100%
rename from src/decoder/FlacDecoderPlugin.cxx
rename to src/decoder/plugins/FlacDecoderPlugin.cxx
diff --git a/src/decoder/FlacDecoderPlugin.h b/src/decoder/plugins/FlacDecoderPlugin.h
similarity index 100%
rename from src/decoder/FlacDecoderPlugin.h
rename to src/decoder/plugins/FlacDecoderPlugin.h
diff --git a/src/decoder/FlacDomain.cxx b/src/decoder/plugins/FlacDomain.cxx
similarity index 100%
rename from src/decoder/FlacDomain.cxx
rename to src/decoder/plugins/FlacDomain.cxx
diff --git a/src/decoder/FlacDomain.hxx b/src/decoder/plugins/FlacDomain.hxx
similarity index 100%
rename from src/decoder/FlacDomain.hxx
rename to src/decoder/plugins/FlacDomain.hxx
diff --git a/src/decoder/FlacIOHandle.cxx b/src/decoder/plugins/FlacIOHandle.cxx
similarity index 100%
rename from src/decoder/FlacIOHandle.cxx
rename to src/decoder/plugins/FlacIOHandle.cxx
diff --git a/src/decoder/FlacIOHandle.hxx b/src/decoder/plugins/FlacIOHandle.hxx
similarity index 100%
rename from src/decoder/FlacIOHandle.hxx
rename to src/decoder/plugins/FlacIOHandle.hxx
diff --git a/src/decoder/FlacInput.cxx b/src/decoder/plugins/FlacInput.cxx
similarity index 99%
rename from src/decoder/FlacInput.cxx
rename to src/decoder/plugins/FlacInput.cxx
index 51b1b0baf..43350c3cf 100644
--- a/src/decoder/FlacInput.cxx
+++ b/src/decoder/plugins/FlacInput.cxx
@@ -20,7 +20,7 @@
 #include "config.h"
 #include "FlacInput.hxx"
 #include "FlacDomain.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "InputStream.hxx"
 #include "util/Error.hxx"
 #include "Log.hxx"
diff --git a/src/decoder/FlacInput.hxx b/src/decoder/plugins/FlacInput.hxx
similarity index 100%
rename from src/decoder/FlacInput.hxx
rename to src/decoder/plugins/FlacInput.hxx
diff --git a/src/decoder/FlacMetadata.cxx b/src/decoder/plugins/FlacMetadata.cxx
similarity index 100%
rename from src/decoder/FlacMetadata.cxx
rename to src/decoder/plugins/FlacMetadata.cxx
diff --git a/src/decoder/FlacMetadata.hxx b/src/decoder/plugins/FlacMetadata.hxx
similarity index 100%
rename from src/decoder/FlacMetadata.hxx
rename to src/decoder/plugins/FlacMetadata.hxx
diff --git a/src/decoder/FlacPcm.cxx b/src/decoder/plugins/FlacPcm.cxx
similarity index 100%
rename from src/decoder/FlacPcm.cxx
rename to src/decoder/plugins/FlacPcm.cxx
diff --git a/src/decoder/FlacPcm.hxx b/src/decoder/plugins/FlacPcm.hxx
similarity index 100%
rename from src/decoder/FlacPcm.hxx
rename to src/decoder/plugins/FlacPcm.hxx
diff --git a/src/decoder/FluidsynthDecoderPlugin.cxx b/src/decoder/plugins/FluidsynthDecoderPlugin.cxx
similarity index 99%
rename from src/decoder/FluidsynthDecoderPlugin.cxx
rename to src/decoder/plugins/FluidsynthDecoderPlugin.cxx
index 596aba1fd..3b4703e97 100644
--- a/src/decoder/FluidsynthDecoderPlugin.cxx
+++ b/src/decoder/plugins/FluidsynthDecoderPlugin.cxx
@@ -19,7 +19,7 @@
 
 #include "config.h"
 #include "FluidsynthDecoderPlugin.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "CheckAudioFormat.hxx"
 #include "util/Error.hxx"
 #include "util/Domain.hxx"
diff --git a/src/decoder/FluidsynthDecoderPlugin.hxx b/src/decoder/plugins/FluidsynthDecoderPlugin.hxx
similarity index 100%
rename from src/decoder/FluidsynthDecoderPlugin.hxx
rename to src/decoder/plugins/FluidsynthDecoderPlugin.hxx
diff --git a/src/decoder/GmeDecoderPlugin.cxx b/src/decoder/plugins/GmeDecoderPlugin.cxx
similarity index 99%
rename from src/decoder/GmeDecoderPlugin.cxx
rename to src/decoder/plugins/GmeDecoderPlugin.cxx
index 506c647bf..53015facf 100644
--- a/src/decoder/GmeDecoderPlugin.cxx
+++ b/src/decoder/plugins/GmeDecoderPlugin.cxx
@@ -19,7 +19,7 @@
 
 #include "config.h"
 #include "GmeDecoderPlugin.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "CheckAudioFormat.hxx"
 #include "tag/TagHandler.hxx"
 #include "util/Alloc.hxx"
diff --git a/src/decoder/GmeDecoderPlugin.hxx b/src/decoder/plugins/GmeDecoderPlugin.hxx
similarity index 100%
rename from src/decoder/GmeDecoderPlugin.hxx
rename to src/decoder/plugins/GmeDecoderPlugin.hxx
diff --git a/src/decoder/MadDecoderPlugin.cxx b/src/decoder/plugins/MadDecoderPlugin.cxx
similarity index 99%
rename from src/decoder/MadDecoderPlugin.cxx
rename to src/decoder/plugins/MadDecoderPlugin.cxx
index 5a61d7d96..07fd05f1b 100644
--- a/src/decoder/MadDecoderPlugin.cxx
+++ b/src/decoder/plugins/MadDecoderPlugin.cxx
@@ -19,7 +19,7 @@
 
 #include "config.h"
 #include "MadDecoderPlugin.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "InputStream.hxx"
 #include "ConfigGlobal.hxx"
 #include "tag/TagId3.hxx"
diff --git a/src/decoder/MadDecoderPlugin.hxx b/src/decoder/plugins/MadDecoderPlugin.hxx
similarity index 100%
rename from src/decoder/MadDecoderPlugin.hxx
rename to src/decoder/plugins/MadDecoderPlugin.hxx
diff --git a/src/decoder/MikmodDecoderPlugin.cxx b/src/decoder/plugins/MikmodDecoderPlugin.cxx
similarity index 99%
rename from src/decoder/MikmodDecoderPlugin.cxx
rename to src/decoder/plugins/MikmodDecoderPlugin.cxx
index 313b368ca..aacb5922d 100644
--- a/src/decoder/MikmodDecoderPlugin.cxx
+++ b/src/decoder/plugins/MikmodDecoderPlugin.cxx
@@ -19,7 +19,7 @@
 
 #include "config.h"
 #include "MikmodDecoderPlugin.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "tag/TagHandler.hxx"
 #include "system/FatalError.hxx"
 #include "util/Domain.hxx"
diff --git a/src/decoder/MikmodDecoderPlugin.hxx b/src/decoder/plugins/MikmodDecoderPlugin.hxx
similarity index 100%
rename from src/decoder/MikmodDecoderPlugin.hxx
rename to src/decoder/plugins/MikmodDecoderPlugin.hxx
diff --git a/src/decoder/ModplugDecoderPlugin.cxx b/src/decoder/plugins/ModplugDecoderPlugin.cxx
similarity index 99%
rename from src/decoder/ModplugDecoderPlugin.cxx
rename to src/decoder/plugins/ModplugDecoderPlugin.cxx
index eabcd9d02..29c452f73 100644
--- a/src/decoder/ModplugDecoderPlugin.cxx
+++ b/src/decoder/plugins/ModplugDecoderPlugin.cxx
@@ -19,7 +19,7 @@
 
 #include "config.h"
 #include "ModplugDecoderPlugin.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "InputStream.hxx"
 #include "tag/TagHandler.hxx"
 #include "system/FatalError.hxx"
diff --git a/src/decoder/ModplugDecoderPlugin.hxx b/src/decoder/plugins/ModplugDecoderPlugin.hxx
similarity index 100%
rename from src/decoder/ModplugDecoderPlugin.hxx
rename to src/decoder/plugins/ModplugDecoderPlugin.hxx
diff --git a/src/decoder/MpcdecDecoderPlugin.cxx b/src/decoder/plugins/MpcdecDecoderPlugin.cxx
similarity index 99%
rename from src/decoder/MpcdecDecoderPlugin.cxx
rename to src/decoder/plugins/MpcdecDecoderPlugin.cxx
index b27ea6ac2..21596ddf7 100644
--- a/src/decoder/MpcdecDecoderPlugin.cxx
+++ b/src/decoder/plugins/MpcdecDecoderPlugin.cxx
@@ -19,7 +19,7 @@
 
 #include "config.h"
 #include "MpcdecDecoderPlugin.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "InputStream.hxx"
 #include "CheckAudioFormat.hxx"
 #include "tag/TagHandler.hxx"
diff --git a/src/decoder/MpcdecDecoderPlugin.hxx b/src/decoder/plugins/MpcdecDecoderPlugin.hxx
similarity index 100%
rename from src/decoder/MpcdecDecoderPlugin.hxx
rename to src/decoder/plugins/MpcdecDecoderPlugin.hxx
diff --git a/src/decoder/Mpg123DecoderPlugin.cxx b/src/decoder/plugins/Mpg123DecoderPlugin.cxx
similarity index 99%
rename from src/decoder/Mpg123DecoderPlugin.cxx
rename to src/decoder/plugins/Mpg123DecoderPlugin.cxx
index 670e44e69..cf8573c85 100644
--- a/src/decoder/Mpg123DecoderPlugin.cxx
+++ b/src/decoder/plugins/Mpg123DecoderPlugin.cxx
@@ -19,7 +19,7 @@
 
 #include "config.h" /* must be first for large file support */
 #include "Mpg123DecoderPlugin.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "CheckAudioFormat.hxx"
 #include "tag/TagHandler.hxx"
 #include "util/Error.hxx"
diff --git a/src/decoder/Mpg123DecoderPlugin.hxx b/src/decoder/plugins/Mpg123DecoderPlugin.hxx
similarity index 100%
rename from src/decoder/Mpg123DecoderPlugin.hxx
rename to src/decoder/plugins/Mpg123DecoderPlugin.hxx
diff --git a/src/decoder/OggCodec.cxx b/src/decoder/plugins/OggCodec.cxx
similarity index 98%
rename from src/decoder/OggCodec.cxx
rename to src/decoder/plugins/OggCodec.cxx
index f9b3c3527..c7f39586e 100644
--- a/src/decoder/OggCodec.cxx
+++ b/src/decoder/plugins/OggCodec.cxx
@@ -23,7 +23,7 @@
 
 #include "config.h"
 #include "OggCodec.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 
 #include <string.h>
 
diff --git a/src/decoder/OggCodec.hxx b/src/decoder/plugins/OggCodec.hxx
similarity index 100%
rename from src/decoder/OggCodec.hxx
rename to src/decoder/plugins/OggCodec.hxx
diff --git a/src/decoder/OggFind.cxx b/src/decoder/plugins/OggFind.cxx
similarity index 100%
rename from src/decoder/OggFind.cxx
rename to src/decoder/plugins/OggFind.cxx
diff --git a/src/decoder/OggFind.hxx b/src/decoder/plugins/OggFind.hxx
similarity index 100%
rename from src/decoder/OggFind.hxx
rename to src/decoder/plugins/OggFind.hxx
diff --git a/src/decoder/OggSyncState.hxx b/src/decoder/plugins/OggSyncState.hxx
similarity index 100%
rename from src/decoder/OggSyncState.hxx
rename to src/decoder/plugins/OggSyncState.hxx
diff --git a/src/decoder/OggUtil.cxx b/src/decoder/plugins/OggUtil.cxx
similarity index 98%
rename from src/decoder/OggUtil.cxx
rename to src/decoder/plugins/OggUtil.cxx
index ceacd2962..3d8a26f0b 100644
--- a/src/decoder/OggUtil.cxx
+++ b/src/decoder/plugins/OggUtil.cxx
@@ -19,7 +19,7 @@
 
 #include "config.h"
 #include "OggUtil.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 
 bool
 OggFeed(ogg_sync_state &oy, Decoder *decoder,
diff --git a/src/decoder/OggUtil.hxx b/src/decoder/plugins/OggUtil.hxx
similarity index 100%
rename from src/decoder/OggUtil.hxx
rename to src/decoder/plugins/OggUtil.hxx
diff --git a/src/decoder/OpusDecoderPlugin.cxx b/src/decoder/plugins/OpusDecoderPlugin.cxx
similarity index 99%
rename from src/decoder/OpusDecoderPlugin.cxx
rename to src/decoder/plugins/OpusDecoderPlugin.cxx
index 93b043065..15a17eb01 100644
--- a/src/decoder/OpusDecoderPlugin.cxx
+++ b/src/decoder/plugins/OpusDecoderPlugin.cxx
@@ -24,7 +24,7 @@
 #include "OpusTags.hxx"
 #include "OggFind.hxx"
 #include "OggSyncState.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "OggCodec.hxx"
 #include "tag/TagHandler.hxx"
 #include "tag/TagBuilder.hxx"
diff --git a/src/decoder/OpusDecoderPlugin.h b/src/decoder/plugins/OpusDecoderPlugin.h
similarity index 100%
rename from src/decoder/OpusDecoderPlugin.h
rename to src/decoder/plugins/OpusDecoderPlugin.h
diff --git a/src/decoder/OpusDomain.cxx b/src/decoder/plugins/OpusDomain.cxx
similarity index 100%
rename from src/decoder/OpusDomain.cxx
rename to src/decoder/plugins/OpusDomain.cxx
diff --git a/src/decoder/OpusDomain.hxx b/src/decoder/plugins/OpusDomain.hxx
similarity index 100%
rename from src/decoder/OpusDomain.hxx
rename to src/decoder/plugins/OpusDomain.hxx
diff --git a/src/decoder/OpusHead.cxx b/src/decoder/plugins/OpusHead.cxx
similarity index 100%
rename from src/decoder/OpusHead.cxx
rename to src/decoder/plugins/OpusHead.cxx
diff --git a/src/decoder/OpusHead.hxx b/src/decoder/plugins/OpusHead.hxx
similarity index 100%
rename from src/decoder/OpusHead.hxx
rename to src/decoder/plugins/OpusHead.hxx
diff --git a/src/decoder/OpusReader.hxx b/src/decoder/plugins/OpusReader.hxx
similarity index 100%
rename from src/decoder/OpusReader.hxx
rename to src/decoder/plugins/OpusReader.hxx
diff --git a/src/decoder/OpusTags.cxx b/src/decoder/plugins/OpusTags.cxx
similarity index 100%
rename from src/decoder/OpusTags.cxx
rename to src/decoder/plugins/OpusTags.cxx
diff --git a/src/decoder/OpusTags.hxx b/src/decoder/plugins/OpusTags.hxx
similarity index 100%
rename from src/decoder/OpusTags.hxx
rename to src/decoder/plugins/OpusTags.hxx
diff --git a/src/decoder/PcmDecoderPlugin.cxx b/src/decoder/plugins/PcmDecoderPlugin.cxx
similarity index 97%
rename from src/decoder/PcmDecoderPlugin.cxx
rename to src/decoder/plugins/PcmDecoderPlugin.cxx
index 35ccc5d12..d92aecd51 100644
--- a/src/decoder/PcmDecoderPlugin.cxx
+++ b/src/decoder/plugins/PcmDecoderPlugin.cxx
@@ -18,8 +18,8 @@
  */
 
 #include "config.h"
-#include "decoder/PcmDecoderPlugin.hxx"
-#include "DecoderAPI.hxx"
+#include "PcmDecoderPlugin.hxx"
+#include "../DecoderAPI.hxx"
 #include "InputStream.hxx"
 #include "util/Error.hxx"
 #include "util/ByteReverse.hxx"
diff --git a/src/decoder/PcmDecoderPlugin.hxx b/src/decoder/plugins/PcmDecoderPlugin.hxx
similarity index 100%
rename from src/decoder/PcmDecoderPlugin.hxx
rename to src/decoder/plugins/PcmDecoderPlugin.hxx
diff --git a/src/decoder/SidplayDecoderPlugin.cxx b/src/decoder/plugins/SidplayDecoderPlugin.cxx
similarity index 100%
rename from src/decoder/SidplayDecoderPlugin.cxx
rename to src/decoder/plugins/SidplayDecoderPlugin.cxx
diff --git a/src/decoder/SidplayDecoderPlugin.hxx b/src/decoder/plugins/SidplayDecoderPlugin.hxx
similarity index 100%
rename from src/decoder/SidplayDecoderPlugin.hxx
rename to src/decoder/plugins/SidplayDecoderPlugin.hxx
diff --git a/src/decoder/SndfileDecoderPlugin.cxx b/src/decoder/plugins/SndfileDecoderPlugin.cxx
similarity index 99%
rename from src/decoder/SndfileDecoderPlugin.cxx
rename to src/decoder/plugins/SndfileDecoderPlugin.cxx
index 941df33ab..8db078504 100644
--- a/src/decoder/SndfileDecoderPlugin.cxx
+++ b/src/decoder/plugins/SndfileDecoderPlugin.cxx
@@ -19,7 +19,7 @@
 
 #include "config.h"
 #include "SndfileDecoderPlugin.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "InputStream.hxx"
 #include "CheckAudioFormat.hxx"
 #include "tag/TagHandler.hxx"
diff --git a/src/decoder/SndfileDecoderPlugin.hxx b/src/decoder/plugins/SndfileDecoderPlugin.hxx
similarity index 100%
rename from src/decoder/SndfileDecoderPlugin.hxx
rename to src/decoder/plugins/SndfileDecoderPlugin.hxx
diff --git a/src/decoder/VorbisComments.cxx b/src/decoder/plugins/VorbisComments.cxx
similarity index 100%
rename from src/decoder/VorbisComments.cxx
rename to src/decoder/plugins/VorbisComments.cxx
diff --git a/src/decoder/VorbisComments.hxx b/src/decoder/plugins/VorbisComments.hxx
similarity index 100%
rename from src/decoder/VorbisComments.hxx
rename to src/decoder/plugins/VorbisComments.hxx
diff --git a/src/decoder/VorbisDecoderPlugin.cxx b/src/decoder/plugins/VorbisDecoderPlugin.cxx
similarity index 99%
rename from src/decoder/VorbisDecoderPlugin.cxx
rename to src/decoder/plugins/VorbisDecoderPlugin.cxx
index c69ad4386..35551604e 100644
--- a/src/decoder/VorbisDecoderPlugin.cxx
+++ b/src/decoder/plugins/VorbisDecoderPlugin.cxx
@@ -21,7 +21,7 @@
 #include "VorbisDecoderPlugin.h"
 #include "VorbisComments.hxx"
 #include "VorbisDomain.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "InputStream.hxx"
 #include "OggCodec.hxx"
 #include "util/Error.hxx"
diff --git a/src/decoder/VorbisDecoderPlugin.h b/src/decoder/plugins/VorbisDecoderPlugin.h
similarity index 100%
rename from src/decoder/VorbisDecoderPlugin.h
rename to src/decoder/plugins/VorbisDecoderPlugin.h
diff --git a/src/decoder/VorbisDomain.cxx b/src/decoder/plugins/VorbisDomain.cxx
similarity index 100%
rename from src/decoder/VorbisDomain.cxx
rename to src/decoder/plugins/VorbisDomain.cxx
diff --git a/src/decoder/VorbisDomain.hxx b/src/decoder/plugins/VorbisDomain.hxx
similarity index 100%
rename from src/decoder/VorbisDomain.hxx
rename to src/decoder/plugins/VorbisDomain.hxx
diff --git a/src/decoder/WavpackDecoderPlugin.cxx b/src/decoder/plugins/WavpackDecoderPlugin.cxx
similarity index 99%
rename from src/decoder/WavpackDecoderPlugin.cxx
rename to src/decoder/plugins/WavpackDecoderPlugin.cxx
index 3aceb3ae7..c217e513e 100644
--- a/src/decoder/WavpackDecoderPlugin.cxx
+++ b/src/decoder/plugins/WavpackDecoderPlugin.cxx
@@ -19,7 +19,7 @@
 
 #include "config.h"
 #include "WavpackDecoderPlugin.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "InputStream.hxx"
 #include "CheckAudioFormat.hxx"
 #include "tag/TagHandler.hxx"
diff --git a/src/decoder/WavpackDecoderPlugin.hxx b/src/decoder/plugins/WavpackDecoderPlugin.hxx
similarity index 100%
rename from src/decoder/WavpackDecoderPlugin.hxx
rename to src/decoder/plugins/WavpackDecoderPlugin.hxx
diff --git a/src/decoder/WildmidiDecoderPlugin.cxx b/src/decoder/plugins/WildmidiDecoderPlugin.cxx
similarity index 99%
rename from src/decoder/WildmidiDecoderPlugin.cxx
rename to src/decoder/plugins/WildmidiDecoderPlugin.cxx
index 3bc433b4b..9a6018022 100644
--- a/src/decoder/WildmidiDecoderPlugin.cxx
+++ b/src/decoder/plugins/WildmidiDecoderPlugin.cxx
@@ -19,7 +19,7 @@
 
 #include "config.h"
 #include "WildmidiDecoderPlugin.hxx"
-#include "DecoderAPI.hxx"
+#include "../DecoderAPI.hxx"
 #include "tag/TagHandler.hxx"
 #include "util/Error.hxx"
 #include "util/Domain.hxx"
diff --git a/src/decoder/WildmidiDecoderPlugin.hxx b/src/decoder/plugins/WildmidiDecoderPlugin.hxx
similarity index 100%
rename from src/decoder/WildmidiDecoderPlugin.hxx
rename to src/decoder/plugins/WildmidiDecoderPlugin.hxx
diff --git a/src/decoder/XiphTags.cxx b/src/decoder/plugins/XiphTags.cxx
similarity index 100%
rename from src/decoder/XiphTags.cxx
rename to src/decoder/plugins/XiphTags.cxx
diff --git a/src/decoder/XiphTags.hxx b/src/decoder/plugins/XiphTags.hxx
similarity index 100%
rename from src/decoder/XiphTags.hxx
rename to src/decoder/plugins/XiphTags.hxx
diff --git a/test/FakeDecoderAPI.cxx b/test/FakeDecoderAPI.cxx
index 7ff7904b2..dc66c5717 100644
--- a/test/FakeDecoderAPI.cxx
+++ b/test/FakeDecoderAPI.cxx
@@ -18,7 +18,7 @@
  */
 
 #include "config.h"
-#include "DecoderAPI.hxx"
+#include "decoder/DecoderAPI.hxx"
 #include "InputStream.hxx"
 #include "util/Error.hxx"
 #include "Compiler.h"
diff --git a/test/dump_playlist.cxx b/test/dump_playlist.cxx
index a5a54e22c..37fcfd391 100644
--- a/test/dump_playlist.cxx
+++ b/test/dump_playlist.cxx
@@ -23,7 +23,7 @@
 #include "playlist/SongEnumerator.hxx"
 #include "InputStream.hxx"
 #include "ConfigGlobal.hxx"
-#include "DecoderList.hxx"
+#include "decoder/DecoderList.hxx"
 #include "InputInit.hxx"
 #include "IOThread.hxx"
 #include "playlist/PlaylistRegistry.hxx"
diff --git a/test/read_tags.cxx b/test/read_tags.cxx
index ce4db6f24..68bf88fe3 100644
--- a/test/read_tags.cxx
+++ b/test/read_tags.cxx
@@ -19,8 +19,8 @@
 
 #include "config.h"
 #include "IOThread.hxx"
-#include "DecoderList.hxx"
-#include "DecoderPlugin.hxx"
+#include "decoder/DecoderList.hxx"
+#include "decoder/DecoderPlugin.hxx"
 #include "InputInit.hxx"
 #include "InputStream.hxx"
 #include "AudioFormat.hxx"
diff --git a/test/run_decoder.cxx b/test/run_decoder.cxx
index db9fc6413..e2373f708 100644
--- a/test/run_decoder.cxx
+++ b/test/run_decoder.cxx
@@ -19,8 +19,8 @@
 
 #include "config.h"
 #include "IOThread.hxx"
-#include "DecoderList.hxx"
-#include "DecoderAPI.hxx"
+#include "decoder/DecoderList.hxx"
+#include "decoder/DecoderAPI.hxx"
 #include "InputInit.hxx"
 #include "InputStream.hxx"
 #include "AudioFormat.hxx"