33# Minimal deps: POSIX sh + grep/sed/awk/find/sort
44# Uses in-tree run_with_timeout() from functestlib.sh when present.
55# SPDX-License-Identifier: BSD-3-Clause-Clear
6+ # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
7+ # SPDX-License-Identifier: BSD-3-Clause-Clear
68
79# ##############################################################################
810# Locate and source init_env + functestlib.sh
@@ -127,12 +129,24 @@ case "$LOGLEVEL" in ''|*[!0-9]* ) log_warn "Non-numeric --loglevel '$LOGLEVEL';
127129# ##############################################################################
128130# Helpers (jq-free JSON scraping; POSIX only)
129131# ##############################################################################
132+ # Decide decode/encode:
133+ # 1) filename contains "dec"/"enc"
134+ # 2) else JSON "Domain": "Decoder"/"Encoder"
135+ # 3) else default decode
130136is_decode_cfg () {
131- case " $( basename " $1 " | tr ' [:upper:]' ' [:lower:]' ) " in
137+ cfg=" $1 "
138+ b=" $( basename " $cfg " | tr ' [:upper:]' ' [:lower:]' ) "
139+ case " $b " in
132140 * dec* .json) return 0 ;; # decode
133141 * enc* .json) return 1 ;; # encode
134- * ) return 0 ;; # default decode
135142 esac
143+ dom=" $( sed -n ' s/.*"Domain"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' " $cfg " 2> /dev/null | head -n1) "
144+ dom_l=" $( printf ' %s' " $dom " | tr ' [:upper:]' ' [:lower:]' ) "
145+ case " $dom_l " in
146+ decoder|decode) return 0 ;;
147+ encoder|encode) return 1 ;;
148+ esac
149+ return 0
136150}
137151
138152extract_scalar_key_values () { # "Key": "value"
@@ -147,7 +161,8 @@ extract_array_key_values() { # "Key": ["a","b"]
147161extract_input_clips () {
148162 cfg=" $1 "
149163 {
150- extract_scalar_key_values " Inputpath" " $cfg "
164+ # common variants
165+ extract_scalar_key_values " InputPath" " $cfg "
151166 extract_scalar_key_values " input" " $cfg "
152167 extract_scalar_key_values " InputFile" " $cfg "
153168 extract_scalar_key_values " Source" " $cfg "
@@ -161,15 +176,15 @@ extract_input_clips() {
161176# Guess codec from config (by key → content → filename) and normalize name.
162177guess_codec_from_cfg () {
163178 cfg=" $1 "
164- for k in Codec codec VideoCodec videoCodec DecoderName EncoderName Name name; do
179+ for k in Codec codec CodecName codecName VideoCodec videoCodec DecoderName EncoderName Name name; do
165180 v=" $( extract_scalar_key_values " $k " " $cfg " | head -n 1) "
166181 if [ -n " $v " ]; then
167182 printf ' %s\n' " $v "
168183 return
169184 fi
170185 done
171186 for tok in hevc h265 h264 av1 vp9 vp8 mpeg4 mpeg2 h263 avc; do
172- if grep -qi " [ \" '_[:space:]] ${tok} [ \" '_[:space:]] " " $cfg " 2> /dev/null; then
187+ if grep -qiE " (^|[^A-Za-z0-9]) ${tok} ([^A-Za-z0-9]|$) " " $cfg " 2> /dev/null; then
173188 printf ' %s\n' " $tok "
174189 return
175190 fi
0 commit comments