Always take compression level as first compression setting

Without this patch, the order of the arguments matter, with it
it does not: specific compression settings now always override
the more generic compression levels. This fixes issue
https://github.com/xiph/flac/issues/20
This commit is contained in:
Martijn van Beurden 2022-06-24 09:54:42 +02:00
parent c94b4f8fbd
commit e6ff8b035a

View File

@ -1140,9 +1140,16 @@ void add_compression_setting_uint32_t(compression_setting_type_t type, uint32_t
{
if(option_values.num_compression_settings >= sizeof(option_values.compression_settings)/sizeof(option_values.compression_settings[0]))
die("too many compression settings");
option_values.compression_settings[option_values.num_compression_settings].type = type;
option_values.compression_settings[option_values.num_compression_settings].value.t_unsigned = value;
option_values.num_compression_settings++;
if(type == CST_COMPRESSION_LEVEL) {
/* Compression level always goes first */
option_values.compression_settings[0].type = type;
option_values.compression_settings[0].value.t_unsigned = value;
}
else {
option_values.compression_settings[option_values.num_compression_settings].type = type;
option_values.compression_settings[option_values.num_compression_settings].value.t_unsigned = value;
option_values.num_compression_settings++;
}
}
int usage_error(const char *message, ...)