aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xtranscode.sh37
1 files changed, 17 insertions, 20 deletions
diff --git a/transcode.sh b/transcode.sh
index fe18b0d..bc62cb3 100755
--- a/transcode.sh
+++ b/transcode.sh
@@ -703,32 +703,29 @@ function load_config() {
# CODEC SKIP-LIST HANDLING
###############################################################################
-# Add a codec name to the SKIP_CODECS associative array.
-# - Normalizes to lowercase
+# Parse a user-provided codec list and add each token to SKIP_CODECS.
+# Separators: comma, space, or colon.
+# - Normalizes tokens to lowercase
# - Ignores empty tokens
+# - Avoids duplicate entries
# - Used both for CLI --skip-codec and for codecs defined in the config file
-function add_skip_codec_token() {
- local token="${1,,}" # lowercase
-
- if [[ -z "$token" ]]; then
- return 0
- fi
-
- if [[ ! -v SKIP_CODECS["$token"] ]]; then
- debug "Add to skip codec:" "$token"
- SKIP_CODECS["$token"]=
- else
- debug "Codec already skipped:" "$token"
- fi
-}
-
-# Parse a user-provided codec list (comma/space/colon separated)
-# and add each token to SKIP_CODECS
function parse_skip_codec_parameter() {
local arg="$1"
local IFS=',: ' token
+
for token in $arg; do
- add_skip_codec_token "$token"
+ token=${token,,} # lowercase
+
+ if [[ -z "$token" ]]; then
+ continue
+ fi
+
+ if [[ -v SKIP_CODECS["$token"] ]]; then
+ debug "Codec already skipped:" "$token"
+ else
+ debug "Add to skip codec:" "$token"
+ SKIP_CODECS["$token"]=
+ fi
done
}