summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartijn van Beurden <mvanb1@gmail.com>2022-06-24 09:54:42 +0200
committerMartijn van Beurden <mvanb1@gmail.com>2022-06-27 07:31:42 +0200
commite6ff8b035a0f4e0e7b96adf10ae061dafa900229 (patch)
tree545d4478e20df1876dc2bb33301aebd33cb1e900 /src
parentc94b4f8fbd232af27b87c26cef146c52053909cc (diff)
downloadflac-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
Diffstat (limited to 'src')
-rw-r--r--src/flac/main.c13
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, ...)