From e6e78175fdd57efa29a8694cf28955cf966d760f Mon Sep 17 00:00:00 2001 From: Dave Rice Date: Tue, 10 Dec 2024 15:42:56 -0500 Subject: [PATCH 1/4] reuse a variable --- vrecord | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vrecord b/vrecord index 593af491..b0de9e50 100755 --- a/vrecord +++ b/vrecord @@ -2525,7 +2525,7 @@ fi if [[ "${DEVICE_INPUT_CHOICE}" = "0" ]] ; then _review_option "QCTOOLSXML_CHOICE" "${QCTOOLSXML_OPTIONS[@]}" - if [[ "${QCTOOLSXML_CHOICE}" != "No" && ! "$(command -v qcli)" ]] ; then + if [[ "${QCTOOLSXML_CHOICE}" != "No" && "${QCLI_INSTALLED}" != "true" ]]; then _report -w "Please install qcli to use the qctools reporting option." _report -w "Such as \`brew install qcli\`." exit 1 From db9b71903294dce9f63e833fe10095a7f42cddd6 Mon Sep 17 00:00:00 2001 From: Dave Rice Date: Tue, 10 Dec 2024 15:43:43 -0500 Subject: [PATCH 2/4] force qcli to check all tracks it's a good idea since we'll unlikely have a massive number of audio tracks, but it works around https://github.com/bavc/qctools/issues/842#issuecomment-2532759347 --- vrecord | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vrecord b/vrecord index b0de9e50..aa463099 100755 --- a/vrecord +++ b/vrecord @@ -2587,8 +2587,8 @@ read INGESTLOG="${LOGDIR}/${FULL_OUTPUT_ID}_capture_options.log" QCTOOLS_REPORT="${LOGDIR}/${FULL_OUTPUT_ID}.${EXTENSION}.qctools.mkv" QCXML="$(_maketemp)" -QCLI_COMMAND_PIPE=(qcli -f signalstats+aphasemeter+astats+ssim -i - -o "${QCTOOLS_REPORT}") -QCLI_COMMAND_FILE=(qcli -f signalstats+aphasemeter+astats+ssim -i "${VRECORD_OUTPUT}" -o "${QCTOOLS_REPORT}") +QCLI_COMMAND_PIPE=(qcli -audio all -f signalstats+aphasemeter+astats+ssim -i - -o "${QCTOOLS_REPORT}") +QCLI_COMMAND_FILE=(qcli -audio all -f signalstats+aphasemeter+astats+ssim -i "${VRECORD_OUTPUT}" -o "${QCTOOLS_REPORT}") touch "${INGESTLOG}" _writeingestlog "computer_name" "$(uname -n)" _writeingestlog "computer_model_name" "${COMPUTER_MODEL_NAME}" From 2b86b89c37d544affd3a6a1f7ece26eeae6ae915 Mon Sep 17 00:00:00 2001 From: Dave Rice Date: Tue, 10 Dec 2024 16:44:18 -0500 Subject: [PATCH 3/4] bracket a var --- vrecord | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vrecord b/vrecord index aa463099..60090072 100755 --- a/vrecord +++ b/vrecord @@ -2805,7 +2805,7 @@ if [[ "${DEVICE_INPUT_CHOICE}" = 0 ]] ; then STATUS=$(mediaconch -fx -p "${RESOURCE_PATH}/vrecord_policy_ffv1.xml" "${VRECORD_OUTPUT}" | xmlstarlet sel -N mc="https://mediaarea.net/mediaconch" -t -v mc:MediaConch/mc:media/mc:policy/@outcome -n) if [[ "${STATUS}" = "pass" ]] ; then _report -dt "File passed policy check for FFV1 video." - elif [[ "$STATUS" = "fail" ]] ; then + elif [[ "${STATUS}" = "fail" ]] ; then _report -wt "File did not pass vrecord policy check for FFV1 video and may not conform to digital preservation standards. Try another file?" mediaconch -fx -p "${RESOURCE_PATH}/vrecord_policy_ffv1.xml" "${VRECORD_OUTPUT}" | xmlstarlet fo > "${DIR}/${FULL_OUTPUT_ID}_mediaconchreport.xml" _report -wt "See ${DIR}/${FULL_OUTPUT_ID}_mediaconchreport.xml for a full MediaConch policy report." From 12c99b9214c4f7224d3c8523ef33370687d7d1db Mon Sep 17 00:00:00 2001 From: Dave Rice Date: Tue, 10 Dec 2024 16:48:26 -0500 Subject: [PATCH 4/4] some better summarization of mediaconch policy fails --- vrecord | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vrecord b/vrecord index 60090072..e4786d9d 100755 --- a/vrecord +++ b/vrecord @@ -2797,6 +2797,8 @@ if [[ "${DEVICE_INPUT_CHOICE}" = 0 ]] ; then _report -wt "File did not pass vrecord policy check for uncompressed video and may not conform to digital preservation standards. Try another file?" mediaconch -fx -p "${RESOURCE_PATH}/vrecord_policy_uncompressed.xml" "${VRECORD_OUTPUT}" | xmlstarlet fo > "${DIR}/${FULL_OUTPUT_ID}_mediaconchreport.xml" _report -wt "See ${DIR}/${FULL_OUTPUT_ID}_mediaconchreport.xml for a full MediaConch policy report." + _report -wt "Or review this attempt to summarize the issue:" + xmlstarlet edit -N "mc=https://mediaarea.net/mediaconch" -d "//*[@outcome='pass']" "${DIR}/${FULL_OUTPUT_ID}_mediaconchreport.xml" else mediaconch -p "${RESOURCE_PATH}/vrecord_policy_uncompressed.xml" "${VRECORD_OUTPUT}" fi @@ -2809,7 +2811,10 @@ if [[ "${DEVICE_INPUT_CHOICE}" = 0 ]] ; then _report -wt "File did not pass vrecord policy check for FFV1 video and may not conform to digital preservation standards. Try another file?" mediaconch -fx -p "${RESOURCE_PATH}/vrecord_policy_ffv1.xml" "${VRECORD_OUTPUT}" | xmlstarlet fo > "${DIR}/${FULL_OUTPUT_ID}_mediaconchreport.xml" _report -wt "See ${DIR}/${FULL_OUTPUT_ID}_mediaconchreport.xml for a full MediaConch policy report." + _report -wt "Or review this attempt to summarize the issue:" + xmlstarlet edit -N "mc=https://mediaarea.net/mediaconch" -d "//*[@outcome='pass']" "${DIR}/${FULL_OUTPUT_ID}_mediaconchreport.xml" else + _report -wt "Mediaconch ended in an unexpected way (${STATUS}). Here is its output." mediaconch -p "${RESOURCE_PATH}/vrecord_policy_ffv1.xml" "${VRECORD_OUTPUT}" fi fi