#!/bin/bash # Copyright © 2012-2026 ScriptFanix # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # A copy of the GNU General Public License v3 is includded in the LICENSE file # at the root of the project. checkCopy() { # Returns true only when the source file is compatible enough with the # destination profile that it can be copied instead of re-encoded. # All three conditions must hold simultaneously. ( # If the destination doesn't restrict sample rate, any rate is # acceptable. Otherwise the source rate must match exactly. [ -z "${destinationfrequency[$destination]}" ] \ || (( ${rate:-0} == ${destinationfrequency[$destination]} )) ) && ( # If the destination doesn't restrict channel count, any number # is acceptable. Otherwise the source channel count must match # exactly. [ -z "${destinationchannels[$destination]}" ] \ || (( ${channels:-0} == ${destinationchannels[$destination]} )) ) && ( # Bitrate check: accept if source exactly matches the target # quality setting, OR if a maximum bps ceiling is configured # and the source bitrate is at or below it. # Default of 1000 kbps when bitrate is unknown forces a # re-encode (( ${bitrate:-1000} == ${destinationquality[$destination]} )) \ || ( [ -n "${destinationmaxbps[$destination]}" ] \ && (( ${bitrate:-1000} <= ${destinationmaxbps[$destination]:-0} )) ) ) }