diff options
author | Martijn van Beurden <mvanb1@gmail.com> | 2022-06-24 09:54:42 +0200 |
---|---|---|
committer | Martijn van Beurden <mvanb1@gmail.com> | 2022-06-27 07:31:42 +0200 |
commit | e6ff8b035a0f4e0e7b96adf10ae061dafa900229 (patch) | |
tree | 545d4478e20df1876dc2bb33301aebd33cb1e900 | |
parent | c94b4f8fbd232af27b87c26cef146c52053909cc (diff) | |
download | flac-e6ff8b035a0f4e0e7b96adf10ae061dafa900229.tar.gz |
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
-rw-r--r-- | src/flac/main.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/flac/main.c b/src/flac/main.c index c47c7ce1..9a972021 100644 --- a/src/flac/main.c +++ b/src/flac/main.c @@ -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, ...) |