mirror of
https://github.com/vgmstream/vgmstream.git
synced 2024-11-13 18:20:50 +01:00
Add CLI -D for downmixing testing
This commit is contained in:
parent
6bd4be4a56
commit
1946823200
@ -55,18 +55,20 @@ static void usage(const char* name, int is_full) {
|
|||||||
" -x: decode and print adxencd command line to encode as ADX\n"
|
" -x: decode and print adxencd command line to encode as ADX\n"
|
||||||
" -g: decode and print oggenc command line to encode as OGG\n"
|
" -g: decode and print oggenc command line to encode as OGG\n"
|
||||||
" -b: decode and print batch variable commands\n"
|
" -b: decode and print batch variable commands\n"
|
||||||
" -h: print extra commands\n"
|
" -h: print extra commands (for testing)\n"
|
||||||
, name);
|
, name);
|
||||||
if (is_full) {
|
if (!is_full)
|
||||||
|
return;
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
" -v: validate extensions (for extension testing)\n"
|
" -v: validate extensions (for extension testing)\n"
|
||||||
" -r: output a second file after resetting (for reset testing)\n"
|
" -r: output a second file after resetting (for reset testing)\n"
|
||||||
" -k N: seeks to N samples before decoding (for seek testing)\n"
|
" -k N: seeks to N samples before decoding (for seek testing)\n"
|
||||||
" -K N: seeks to N samples before decoding again (for seek testing)\n"
|
" -K N: seeks again to N samples before decoding (for seek testing)\n"
|
||||||
" -t file: print tags found in file (for tag testing)\n"
|
" -t file: print tags found in file (for tag testing)\n"
|
||||||
|
" -D <max channels>: downmix to <max channels> (for plugin downmix testing)\n"
|
||||||
" -O: decode but don't write to file (for performance testing)\n"
|
" -O: decode but don't write to file (for performance testing)\n"
|
||||||
);
|
);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -98,6 +100,7 @@ typedef struct {
|
|||||||
int seek_samples1;
|
int seek_samples1;
|
||||||
int seek_samples2;
|
int seek_samples2;
|
||||||
int decode_only;
|
int decode_only;
|
||||||
|
int downmix_channels;
|
||||||
|
|
||||||
/* not quite config but eh */
|
/* not quite config but eh */
|
||||||
int lwav_loop_start;
|
int lwav_loop_start;
|
||||||
@ -119,7 +122,7 @@ static int parse_config(cli_config* cfg, int argc, char** argv) {
|
|||||||
opterr = 0;
|
opterr = 0;
|
||||||
|
|
||||||
/* read config */
|
/* read config */
|
||||||
while ((opt = getopt(argc, argv, "o:l:f:d:ipPcmxeLEFrgb2:s:t:k:K:hOv")) != -1) {
|
while ((opt = getopt(argc, argv, "o:l:f:d:ipPcmxeLEFrgb2:s:t:k:K:hOvD:")) != -1) {
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
case 'o':
|
case 'o':
|
||||||
cfg->outfilename = optarg;
|
cfg->outfilename = optarg;
|
||||||
@ -194,6 +197,9 @@ static int parse_config(cli_config* cfg, int argc, char** argv) {
|
|||||||
case 'v':
|
case 'v':
|
||||||
cfg->validate_extensions = 1;
|
cfg->validate_extensions = 1;
|
||||||
break;
|
break;
|
||||||
|
case 'D':
|
||||||
|
cfg->downmix_channels = atoi(optarg);
|
||||||
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
usage(argv[0], 1);
|
usage(argv[0], 1);
|
||||||
goto fail;
|
goto fail;
|
||||||
@ -507,6 +513,8 @@ int main(int argc, char** argv) {
|
|||||||
input_channels = vgmstream->channels;
|
input_channels = vgmstream->channels;
|
||||||
|
|
||||||
/* enable after config but before outbuf */
|
/* enable after config but before outbuf */
|
||||||
|
if (cfg.downmix_channels)
|
||||||
|
vgmstream_mixing_autodownmix(vgmstream, cfg.downmix_channels);
|
||||||
vgmstream_mixing_enable(vgmstream, SAMPLE_BUFFER_SIZE, &input_channels, &channels);
|
vgmstream_mixing_enable(vgmstream, SAMPLE_BUFFER_SIZE, &input_channels, &channels);
|
||||||
|
|
||||||
/* get final play config */
|
/* get final play config */
|
||||||
|
Loading…
Reference in New Issue
Block a user