decoder/gme: add option "accuracy"
This commit is contained in:
parent
6269abbcc8
commit
08f77c2b60
1
NEWS
1
NEWS
|
@ -14,6 +14,7 @@ ver 0.20 (not yet released)
|
||||||
* decoder
|
* decoder
|
||||||
- ffmpeg: support ReplayGain and MixRamp
|
- ffmpeg: support ReplayGain and MixRamp
|
||||||
- ffmpeg: support stream tags
|
- ffmpeg: support stream tags
|
||||||
|
- gme: add option "accuracy"
|
||||||
- mad: reduce memory usage while scanning tags
|
- mad: reduce memory usage while scanning tags
|
||||||
- mpcdec: read the bit rate
|
- mpcdec: read the bit rate
|
||||||
* playlist
|
* playlist
|
||||||
|
|
22
doc/user.xml
22
doc/user.xml
|
@ -1749,6 +1749,28 @@ buffer_size: 16384</programlisting>
|
||||||
Video game music file emulator based on <ulink
|
Video game music file emulator based on <ulink
|
||||||
url="https://bitbucket.org/mpyne/game-music-emu/wiki/Home"><application>game-music-emu</application></ulink>.
|
url="https://bitbucket.org/mpyne/game-music-emu/wiki/Home"><application>game-music-emu</application></ulink>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<informaltable>
|
||||||
|
<tgroup cols="2">
|
||||||
|
<thead>
|
||||||
|
<row>
|
||||||
|
<entry>Setting</entry>
|
||||||
|
<entry>Description</entry>
|
||||||
|
</row>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<row>
|
||||||
|
<entry>
|
||||||
|
<varname>accuracy</varname>
|
||||||
|
<parameter>yes|no</parameter>
|
||||||
|
</entry>
|
||||||
|
<entry>
|
||||||
|
Enable more accurate sound emulation.
|
||||||
|
</entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</informaltable>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "GmeDecoderPlugin.hxx"
|
#include "GmeDecoderPlugin.hxx"
|
||||||
#include "../DecoderAPI.hxx"
|
#include "../DecoderAPI.hxx"
|
||||||
|
#include "config/Block.cxx"
|
||||||
#include "CheckAudioFormat.hxx"
|
#include "CheckAudioFormat.hxx"
|
||||||
#include "tag/TagHandler.hxx"
|
#include "tag/TagHandler.hxx"
|
||||||
#include "fs/Path.hxx"
|
#include "fs/Path.hxx"
|
||||||
|
@ -52,6 +53,23 @@ struct GmeContainerPath {
|
||||||
unsigned track;
|
unsigned track;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if GME_VERSION >= 0x000600
|
||||||
|
static int gme_accuracy;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static bool
|
||||||
|
gme_plugin_init(gcc_unused const ConfigBlock &block)
|
||||||
|
{
|
||||||
|
#if GME_VERSION >= 0x000600
|
||||||
|
auto accuracy = block.GetBlockParam("accuracy");
|
||||||
|
gme_accuracy = accuracy != nullptr
|
||||||
|
? (int)accuracy->GetBoolValue()
|
||||||
|
: -1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
gcc_pure
|
gcc_pure
|
||||||
static unsigned
|
static unsigned
|
||||||
ParseSubtuneName(const char *base)
|
ParseSubtuneName(const char *base)
|
||||||
|
@ -123,6 +141,11 @@ gme_file_decode(Decoder &decoder, Path path_fs)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if GME_VERSION >= 0x000600
|
||||||
|
if (gme_accuracy >= 0)
|
||||||
|
gme_enable_accuracy(emu, gme_accuracy);
|
||||||
|
#endif
|
||||||
|
|
||||||
gme_info_t *ti;
|
gme_info_t *ti;
|
||||||
gme_err = gme_track_info(emu, &ti, container.track);
|
gme_err = gme_track_info(emu, &ti, container.track);
|
||||||
if (gme_err != nullptr) {
|
if (gme_err != nullptr) {
|
||||||
|
@ -274,7 +297,7 @@ static const char *const gme_suffixes[] = {
|
||||||
extern const struct DecoderPlugin gme_decoder_plugin;
|
extern const struct DecoderPlugin gme_decoder_plugin;
|
||||||
const struct DecoderPlugin gme_decoder_plugin = {
|
const struct DecoderPlugin gme_decoder_plugin = {
|
||||||
"gme",
|
"gme",
|
||||||
nullptr,
|
gme_plugin_init,
|
||||||
nullptr,
|
nullptr,
|
||||||
nullptr,
|
nullptr,
|
||||||
gme_file_decode,
|
gme_file_decode,
|
||||||
|
|
Loading…
Reference in New Issue