style(unitproc/):Shorten names of template prefix (bktemp -> bkt)
[BK-2020-03.git] / unitproc / bkt-check_parsable_audio_ffprobe
diff --git a/unitproc/bkt-check_parsable_audio_ffprobe b/unitproc/bkt-check_parsable_audio_ffprobe
new file mode 100644 (file)
index 0000000..9230a3f
--- /dev/null
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+
+check_parsable_audio_ffprobe() {
+    # Desc: Checks if ffprobe returns valid audio codec name for file
+    # Usage: check_parsable_audio_ffprobe [path FILE]
+    # Version: 0.0.1
+    # Input: arg1: file path
+    # Output: exit code 0 if returns valid codec name; 1 otherwise
+    # Depends: ffprobe, die()
+    local file_in ffprobe_out
+
+    if [[ $# -ne 1 ]]; then die "ERROR:Invalid number of args:$#"; fi;
+    
+    file_in="$1";
+    
+    # Check if ffprobe detects an audio stream
+    if ffprobe -v error -select_streams a -show_entries stream=codec_name -of default=nokey=1:noprint_wrappers=1 "$file_in" 1>/dev/null 2>&1; then
+       return_state="true";
+    else
+       return_state="false";
+    fi;
+
+    # Fail if ffprobe returns no result
+    ffprobe_out="$(ffprobe -v error -select_streams a -show_entries stream=codec_name -of default=nokey=1:noprint_wrappers=1 "$file_in")";
+    if [[ -z $ffprobe_out ]]; then
+       return_state="false";
+    fi;
+    
+    # Report exit code
+    if [[ $return_state = "true" ]]; then
+       return 0;
+    else
+       return 1;
+    fi;
+} # Checks if file has valid codec name using ffprobe
+
+# Author: Steven Baltakatei Sandoval
+# License: GPLv3+