#!/usr/bin/awk -f BEGIN { if ((ARGC < 3) || (ARGC > 4)) { printf "Usage: MicroDVDSync.awk [output]\n" \ >> "/dev/stderr"; printf " sync: delay in frames\n" >> "/dev/stderr"; exit(-1); } output = (ARGC == 4) ? ARGV[3] : ""; if (output != "") printf "" > output; sync = ARGV[1]; ARGV[3] = ARGV[1] = ""; } # For dos and mac { sub(/\r/, "", $0); sub(/\f/, "", $0); } { gsub(/[\{\}]/, " ", $0); beg = $1; end = $2; $1 = $2 = ""; sub(/^ +/, "", $0); if (end + sync > 0) { beg += sync; end += sync; if (beg < 0) beg = 0; if (output == "") { printf "{%d}{%d}%s\n", beg, end, $0; } else { printf "{%d}{%d}%s\n", beg, end, $0 >> output; } } else { printf "You throw out message {%d}{%d}\n", beg, end >> "/dev/stderr"; } }