summaryrefslogtreecommitdiff
path: root/recording-hooks/extrametadata/R10.extrametadata
blob: cfa83ded25ddc50493d2a5c80a973bc08ab0d538 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/bin/sh

set -u
set -e

LENGTH_FILE="length.vdr"
CRC_FILE="checksum.md5"

GUID="1858C0C5-1910-419E-9347-F1D5CA1A019F"

do_length() {

  if ([ ! -f "${1}/${LENGTH_FILE}" ] || [ ! -s "${1}/${LENGTH_FILE}" ]); then
    if [ -e "${1}/index.vdr" ]; then
      echo $(( $(stat -L -c %s "${1}/index.vdr")/(8*25*60) )) > "${1}/${LENGTH_FILE}"
    fi
    if [ -e "${1}/index" ]; then
      FRAMERATE=$(cat "${1}/info" 2> /dev/null | grep '^F [0123456789]*$' | cut -d ' ' -f 2)
      echo $(( $(stat -L -c %s "${1}/index")/(8*${FRAMERATE:=25}*60) )) > "${1}/${LENGTH_FILE}"
    fi
  fi

}

do_crc() {

  if ([ ! -f "${1}/${CRC_FILE}" ] || [ ! -s "${1}/${CRC_FILE}" ]); then
    [ -e "${1}/001.vdr" ] && \
      echo "cd \"${1}\"; tmp=\"\$(tempfile -p md5 -s .${GUID})\"; nice -n 19 md5sum -b [0-9][0-9][0-9].vdr 2> /dev/null 1> \"\${tmp}\" && ([ -d \"${1}\" ] && cp \"\${tmp}\" \"${1}/${CRC_FILE}\"); rm \"\${tmp}\"" | at now 2> /dev/null
    [ -e "${1}/00001.ts" ] && \
      echo "cd \"${1}\"; tmp=\"\$(tempfile -p md5 -s .${GUID})\"; nice -n 19 md5sum -b [0-9][0-9][0-9][0-9][0-9].ts 2> /dev/null 1> \"\${tmp}\" && ([ -d \"${1}\" ] && cp \"\${tmp}\" \"${1}/${CRC_FILE}\"); rm \"\${tmp}\"" | at now 2> /dev/null
  fi

}

case "${1}" in

  after|edited)
    TARGET_RECORD_DIR="${2}"
    do_length "${TARGET_RECORD_DIR}"
    do_crc "${TARGET_RECORD_DIR}"
  ;;
  move)
    SOURCE_RECORD_DIR="${2}"
    TARGET_RECORD_DIR="${3}"
    cp "${SOURCE_RECORD_DIR}/${LENGTH_FILE}" "${TARGET_RECORD_DIR}/${LENGTH_FILE}" 2> /dev/null || true
    do_length "${TARGET_RECORD_DIR}"
    cp "${SOURCE_RECORD_DIR}/${CRC_FILE}" "${TARGET_RECORD_DIR}/${CRC_FILE}" 2> /dev/null || true
    do_crc "${TARGET_RECORD_DIR}"
  ;;
  rename)
    TARGET_RECORD_DIR="${3}"
    do_length "${TARGET_RECORD_DIR}"
    do_crc "${TARGET_RECORD_DIR}"
  ;;
  check)
    TEMPDIR=$(tempfile)
    rm "${TEMPDIR}"
    while [ -n "$(find "$(dirname ${TEMPDIR})" \( -type f -and -cmin -600 -and -name md5*.${GUID} \) )" ]
    do
      sleep 10
    done
    TARGET_RECORD_DIR="${2}"
    do_length "${TARGET_RECORD_DIR}"
    do_crc "${TARGET_RECORD_DIR}"
  ;;

esac

exit 0