From e7ca4c28bfc6c8084dab195bea3bd408966859d8 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Wed, 5 Aug 2009 23:48:57 +0000
Subject: mkvtoolnix mythnuv2mkv: upgrade FS#476

---
 abs/core-testing/system-templates/PKGBUILD   |    2 +-
 abs/extra-testing/mkvtoolnix/PKGBUILD        |    4 +-
 abs/extra-testing/mythnuv2mkv/PKGBUILD       |    5 +-
 abs/extra-testing/mythnuv2mkv/mythnuv2mkv.sh | 2759 --------------------------
 4 files changed, 5 insertions(+), 2765 deletions(-)
 delete mode 100644 abs/extra-testing/mythnuv2mkv/mythnuv2mkv.sh

diff --git a/abs/core-testing/system-templates/PKGBUILD b/abs/core-testing/system-templates/PKGBUILD
index 829dcd3..8f25a66 100755
--- a/abs/core-testing/system-templates/PKGBUILD
+++ b/abs/core-testing/system-templates/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=system-templates
 pkgver=1.0
-pkgrel=34
+pkgrel=35
 conflicts=( )
 pkgdesc="Templates used for system configuration"
 depends=()
diff --git a/abs/extra-testing/mkvtoolnix/PKGBUILD b/abs/extra-testing/mkvtoolnix/PKGBUILD
index 2ce5343..b328a32 100644
--- a/abs/extra-testing/mkvtoolnix/PKGBUILD
+++ b/abs/extra-testing/mkvtoolnix/PKGBUILD
@@ -3,7 +3,7 @@
 # Contributor: 03/08/04 <lefungus@altern.org>
 
 pkgname=mkvtoolnix
-pkgver=2.9.5
+pkgver=2.9.7
 pkgrel=1
 pkgdesc="Set of tools to create, edit and inspect Matroska files"
 arch=('i686' 'x86_64')
@@ -11,7 +11,7 @@ license=('GPL2')
 url="http://www.bunkus.org/videotools/mkvtoolnix/index.html"
 depends=('libmatroska>=0.8.1' 'flac>=1.1.4' 'libvorbis' 'wxgtk>=2.8.0.1' 'file' 'boost' 'lzo2')
 source=("http://www.bunkus.org/videotools/${pkgname}/sources/${pkgname}-${pkgver}.tar.bz2")
-md5sums=('13f639048bd829214b2472703c495e4c')
+md5sums=('eae428821c69e7a16b690f4eca6bf567')
 
 build() {
   cd ${srcdir}/${pkgname}-${pkgver}/
diff --git a/abs/extra-testing/mythnuv2mkv/PKGBUILD b/abs/extra-testing/mythnuv2mkv/PKGBUILD
index e0e97e6..1c52820 100644
--- a/abs/extra-testing/mythnuv2mkv/PKGBUILD
+++ b/abs/extra-testing/mythnuv2mkv/PKGBUILD
@@ -1,16 +1,15 @@
 pkgname=mythnuv2mkv
-pkgver=1.44
+pkgver=1.48
 pkgrel=1
 conflicts=()
 pkgdesc="Converts MythTV nuv or mpg files to mkv, mp4 or avi files. It can be run as a MythTV User Job or at command line to convert MythTV recordings or stand alone files."
 depends=(perl mplayer wget bc imagemagick lame x264 faac faad2 mkvtoolnix vorbis-tools gpac )
 arch=('i686')
 license=('GPL')
-source=(mythnuv2mkv.sh)
+source=(http://web.aanet.com.au/~auric/files2/V${pkgver}/mythnuv2mkv.sh)
 
 install=''
 build() {
     mkdir -p $startdir/pkg/usr/bin
     install -m 0755 mythnuv2mkv.sh $startdir/pkg/usr/bin/mythnuv2mkv.sh
 }
-
diff --git a/abs/extra-testing/mythnuv2mkv/mythnuv2mkv.sh b/abs/extra-testing/mythnuv2mkv/mythnuv2mkv.sh
deleted file mode 100644
index 4d3e95f..0000000
--- a/abs/extra-testing/mythnuv2mkv/mythnuv2mkv.sh
+++ /dev/null
@@ -1,2759 +0,0 @@
-#!/bin/bash
-# @(#)$Header: /home/mythtv/mythtvrep/scripts/mythnuv2mkv.sh,v 1.44 2009/03/18 20:11:57 mythtv Exp $
-# Auric 2007/07/10 http://web.aanet.com.au/auric/
-##########################################################################################################
-#
-# Convert MythRecording & MythVideo nuv or mpg files to mkv mp4 or avi.
-#
-######### Vars you may want to set for your environment ######################################################
-# Default aspect for Myth Recording mpg files. It will try to work it out but if it can't will use this.
-readonly DEFAULTMPEG2ASPECT="NA" # 4:3 or 16:9
-# What to separate Title SeasonEpisode SubTitle with
-readonly SEP=","
-# Crop input
-CROP="ON" # ON | OFF, can also change with --crop argument
-# Delete recording after successful transcode. Only for transcode out of MythRecording. (Actually just sets to high priority autoexpire.)
-DELETEREC="OFF" # ON | OFF, can also change with --deleterec argument
-# Include denoise filter
-DENOISE="OFF" # ON | OFF, can also change with --denoise argument
-# Include deblock filter
-DEBLOCK="OFF" # ON | OFF, can also change with --deblock argument
-# Include deinterlace filter.
-# SOURCENAME is ON for that source. Can have multiple. e.g. DEINTERLACE="Cabel,FTA1"
-DEINTERLACE="ON" # ON | OFF | SOURCENAME,SOURCENAME can also change with --deinterlace argument.
-# Include inverse Telecine filter (Experimental. Can someone from NTSC/ATSC land try this?).
-# invtelecine filter is never added if deinterlace has been added.
-INVTELECINE="OFF" # ON | OFF, can also change with --invtelecine argument.
-# number passes
-PASS="two" # one | two, can also change with --pass argument
-# number of threads. Only used by lavc and xvid (x.264 auto calculates threads)
-THREADS=1
-# avi encoder lavc or xvid
-AVIVID="lavc" # lavc | xvid, can also change with --contype=avi,xvid argument
-# container
-CONTYPE="mkv" # mkv | mp4 | avi, can also change with --contype argument or name of script.
-# mkv audio encoder aac or ogg
-MKVAUD="aac" # aac | ogg, can also change with --contype=mkv,ogg argument
-# add your own filters if you want
-POSTVIDFILTERS=""	#must include , at end
-ENDVIDFILTERS=""	#must include , at end
-##########################################################################################################
-USAGE='mythnuv2mkv.sh [--jobid=%JOBID%] [--contype=avi|mkv|mp4] [--quality=low|med|high|480|576|720|1080] [--pass=one|two] [--denoise=ON|OFF] [--deblock=ON|OFF] [--deleterec=ON|OFF] [--crop=ON|OFF] [--deinterlace=ON|OFF|SOURCENAME] [--invtelecine=ON|OFF] [--maxrunhours=int] [--findtitle=string] [--copydir=directory] "--chanid=chanid --starttime=starttime" | file ...
-Must have either --chanid=chanid and --starttime=starttime or a plain filename. These can be mixed. e.g. -
-mythnuv2mkv.sh --chanid=1232 --starttime=20071231235900 video1 video2 --chanid=1235 --starttime=20071231205900
---jobid=%JOBID%
-        Add this when run as a User Job. Enables update status in the System Status Job Queue screen and the Job Queue Comments field in MythWeb. Also enables stop/pause/resume of job.
---contype=avi|mkv|mp4 (default name of script. e.g. mythnuv2mkv.sh will default to mkv. mythnuv2avi.sh will default to avi)
-	(Note Videos staying in MythRecord will always default to avi)
-	avi - Video mpeg4 Audio mp3 (--contype=avi,xvid will use xvid instead of lavc)
-	mkv - Video h.264 Audio aac (--contype=mkv,ogg will use ogg Vorbis Audio)
-	mp4 - Video h.264 Audio aac
---quality=low|med|high|720|1080 (default med) Mostly affects resolution.
-	low  - 448x336(4:3) or 592x336(16:9)
-	med  - 512x384(4:3) or 624x352(16:9)
-	high - 528x400(4:3) or 656x368(16:9)
-	480  - 640x480(4:3) or 848x480(16:9)
-	576  - 768x576(4:3) or 1024x576(16:9)
-	720  - 1280x720(16:9) (You probably need VDAPU to play this)
-	1080 - 1920x1088(16:9) (You probably need VDAPU to play this)
---pass=one|two (default two)
-	--quality --pass and --contype can be passed as any argument and will only take effect on files after them.
-	e.g. mythnuv2mkv.sh videofile1 --chanid=2033 --starttime=20070704135700 --pass=one video3 --quality=low video4
-	videofile1 and chanid=2033/starttime=20070704135700 will be two pass med quality (defaults)
-	video3, one pass med quality
-	video4, one pass low quality
---maxrunhours=int (default process all files)
-	Stop processing files after int hours. (Will complete the current file it is processing.)
---findtitle="string"
-	Prints tile, chanid, starttime of programs matching string.
---copydir=directory
-	mkv/mp4/avi file will be created in directory. Source nuv will be retained. i.e you are copying the source rather than replacing it.
-	If the source was a CHANID/STARTIME it will be renamed to TITLE,S##E##,SUBTITLE. S##E## is the Season and Episode number. All punctuation characters are removed.
-	If directory is under MythVideoDir, imdb will be searched, a MythVideo db entry created and a coverfile file created if one was not available at imdb.
---denoise=[ON|OFF] (default OFF)
-	Include hqdn3d denoise filter.	
---deblock=[ON|OFF] (default OFF)
-	Include pp7 deblock filter.	
---deleterec=[ON|OFF] (default OFF)
-	Delete the recording after successful transcode. (Actually just sets high priority autoexpire and moves to Deleted group.)
---crop=[ON|OFF] (default ON)
-	Crop 8 pixels of each side.	
---deinterlace==[ON|OFF|SOURCENAME] (default ON)
-	Include pp=fd deinterlace filter.
-	SOURCENAME is ON for that source. Can have multiple. e.g. DEINTERLACE="Cabel,FTA1"
---invtelecine=[ON|OFF] (default OFF)
-	Include pullup inverse telecine filter.
-	Note/ This filter will not be added if a deinterlace filter has been added.
-
-Logs to /var/tmp/mythnuv2mkvPID.log and to database if "log MythTV events to database" is enabled in mythtv.
-Cutlists are always honored.
-Sending the mythnuv2mkv.sh process a USR1 signal will cause it to stop after completing the current file.
-e.g. kill -s USR1 PID
-If run as a Myth Job, you can find the PID in the System Status Job Queue or Log Entries screens as [PID]
-
-Typical usage.
-
-Myth User Job
-PATH/mythnuv2mkv.sh --jobid=%JOBID% --copydir /mythvideodirectory --chanid=%CHANID% --starttime=%STARTTIME%
-This will convert nuv to mkv and copy it to /mythvideodirectory.
-This is what I do. Record things in Myth Recording and anything I want to keep, use this to convert to mkv and store in Myth Video.
-NOTE. System Status Job Queue screen and the Job Queue Comments field in MythWeb always report job Completed Successfully even if it actually failed.
-
-Myth Video
-Record program
-mythrename.pl --link --format %T-%S --underscores --verbose (mythrename.pl is in the mythtv contrib directory
-cp from your mythstore/show_names/PROGRAM to your MythVideo directory
-use video manager to add imdb details 
-nuv files work fine in MythVideo, but if you need to convert them to mkv/mp4/avi, or need to reduce their size
-run mythnuv2mkv.sh MythVideo_file.nuv
-
-Myth Recording
-Record program
-run mythnuv2mkv.sh --findtitle="title name"
-get chanid and starttime
-run mythnuv2mkv.sh --chanid=chanid --starttime=starttime
-NOTE You cannot edit a avi/mp4/mkv file in Myth Recording. So do all your editing in the nuv file before you convert to avi.
-NOTE You cannot play a mkv/mp4 file in Myth Recording.
-I would in general recommend leaving everything in Myth Recording as nuv.
-
-Version: $Revision: 1.44 $ $Date: 2009/03/18 20:11:57 $
-'
-REQUIREDAPPS='
-Required Applications
-For all contypes
-mythtranscode.
-perl
-mplayer http://www.mplayerhq.hu/design7/news.html
-mencoder http://www.mplayerhq.hu/design7/news.html
-wget http://www.gnu.org/software/wget/
-ImageMagick http://www.imagemagick.org/script/index.php
-For avi
-mp3lame http://www.mp3dev.org
-xvid http://www.xvid.org/
-For mkv and mp4 contypes
-x264 http://www.videolan.org/developers/x264.html
-faac http://sourceforge.net/projects/faac/
-faad2 http://sourceforge.net/projects/faac/
-For mkv contype
-mkvtoolnix http://www.bunkus.org/videotools/mkvtoolnix/
-For mkv,ogg contype
-vorbis-tools http://www.vorbis.com/
-For mp4 contype
-MP4Box http://gpac.sourceforge.net/index.php
-'
-HELP=${USAGE}${REQUIREDAPPS}
-
-##### Mapping #############################################################################################
-# Maps tvguide categories to mythvideo ones. This will need to be managed individually.
-# Either use the defaults below or create a mythnuv2mkv-category-mappings file in the same
-# directory as this and enter data same format as below.
-readonly CMAPFILE="$(dirname ${0})/mythnuv2mkv-category-mappings"
-if [ -f "$CMAPFILE" ]
-then 
-	. "$CMAPFILE"
-else
-	# NOTE: Remove any spaces from XMLTV category. e.g. "Mystery and Suspense" is MysteryandSuspense
-	# XMLTV Category		 ; Myth videocategory
-	readonly Animated=1		 ; mythcat[1]="Animation"
-	readonly Biography=2		 ; mythcat[2]="Documentary"
-	readonly Historical=3		 ; mythcat[3]="Documentary"
-	readonly CrimeDrama=4		 ; mythcat[4]="CrimeDrama"
-	readonly MysteryandSuspense=5	 ; mythcat[5]="Mystery"
-	readonly Technology=6		 ; mythcat[6]="Documentary"
-	readonly ScienceFiction=7	 ; mythcat[7]="Sci-Fi"
-	readonly Science_Fiction=8	 ; mythcat[8]="Sci-Fi"
-	readonly art=9			 ; mythcat[9]="Musical"
-	readonly History=10		 ; mythcat[10]="Documentary"
-	readonly SciFi=11		 ; mythcat[11]="Sci-Fi"
-	readonly ScienceNature=12	 ; mythcat[12]="Science"
-fi
-
-###########################################################################################################
-PATH=~mythtv/bin:${HOME}/bin:$PATH:/usr/local/bin
-readonly AVIREQPROGS="mencoder mythtranscode mplayer perl wget convert"
-readonly AVIREQLIBS="libmp3lame.so libxvidcore.so"
-readonly MP4REQPROGS="mencoder mythtranscode mplayer perl wget convert faac MP4Box"
-readonly MP4REQLIBS="libx264.so libfaac.so"
-readonly MKVREQPROGS="mencoder mythtranscode mplayer perl wget convert faac oggenc mkvmerge"
-readonly MKVREQLIBS="libx264.so libfaac.so"
-###########################################################
-readonly DENOISEFILTER="hqdn3d"
-readonly DEBLOCKFILTER="pp7"
-readonly DEINTERLACEFILTER="pp=fd"
-readonly INVTELECINEFILTER="pullup"
-readonly FAACCHANCONFIG="-I 5,6"
-readonly CROPSIZE=8
-readonly TE_SCALE43="NA"		# NA
-readonly ST_SCALE43="NA"		# NA
-readonly FE_SCALE43="640:480"		# 1.32
-readonly FS_SCALE43="768:576"		# 1.32
-readonly HIGH_SCALE43=528:400		# 1.32
-readonly MED_SCALE43=512:384		# 1.333
-readonly LOW_SCALE43=448:336		# 1.333
-readonly TE_SCALE169="1920:1088" 	# 1.778
-readonly ST_SCALE169="1280:720"		# 1.778
-readonly FE_SCALE169="848:480" 		# 1.766
-readonly FS_SCALE169="1024:576" 	# 1.778
-readonly HIGH_SCALE169=656:368		# 1.783
-readonly MED_SCALE169=624:352		# 1.773
-readonly LOW_SCALE169=592:336		# 1.762
-# Default
-SCALE43=$MED_SCALE43
-SCALE169=$MED_SCALE169
-###########################################################
-## CQ ## Quote from mencoder documentation
-#The CQ depends on the bitrate, the video codec efficiency and the movie resolution. In order to raise the CQ, typically you would
-#downscale the movie given that the bitrate is computed in function of the target size and the length of the movie, which are constant.
-#With MPEG-4 ASP codecs such as Xvid and libavcodec, a CQ below 0.18 usually results in a pretty blocky picture, because there are
-#not enough bits to code the information of each macroblock. (MPEG4, like many other codecs, groups pixels by blocks of several pixels
-#to compress the image; if there are not enough bits, the edges of those blocks are visible.) It is therefore wise to take a CQ ranging
-# from 0.20 to 0.22 for a 1 CD rip, and 0.26-0.28 for 2 CDs rip with standard encoding options. More advanced encoding options such as
-#those listed here for libavcodec and Xvid should make it possible to get the same quality with CQ ranging from 0.18 to 0.20 for a 1 CD
-#rip, and 0.24 to 0.26 for a 2 CD rip. With MPEG-4 AVC codecs such as x264, you can use a CQ ranging from 0.14 to 0.16 with standard
-#encoding options, and should be able to go as low as 0.10 to 0.12 with x264's advanced encoding settings.
-########################
-# These map to --quality=low|med|high option.
-#### AVI lavc mpeg4 ####
-readonly HIGH_LAVC_CQ=0.22
-readonly MED_LAVC_CQ=0.21
-readonly LOW_LAVC_CQ=0.20
-readonly HIGH_LAVC_OPTS="vcodec=mpeg4:threads=${THREADS}:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6"
-# high, med & low will use same settings just CQ and resolution different
-# This make encoding slow. Swap following if you want lower quality to also mean faster encoding speed.
-#readonly MED_LAVC_OPTS="vcodec=mpeg4:mbd=2:trell:v4mv"
-#readonly LOW_LAVC_OPTS="vcodec=mpeg4:mbd=2"
-readonly MED_LAVC_OPTS="$HIGH_LAVC_OPTS"
-readonly LOW_LAVC_OPTS="$HIGH_LAVC_OPTS"
-#### AVI xvid mpeg4 ####
-readonly HIGH_XVID_CQ=0.22
-readonly MED_XVID_CQ=0.21
-readonly LOW_XVID_CQ=0.20
-readonly HIGH_XVID_OPTS="threads=${THREADS}:quant_type=mpeg:me_quality=6:chroma_me:chroma_opt:trellis:hq_ac:vhq=4:bvhq=1"
-readonly MED_XVID_OPTS="$HIGH_XVID_OPTS"
-readonly LOW_XVID_OPTS="$HIGH_XVID_OPTS"
-#### AVI lavc/xvid mp3 ####
-readonly HIGH_MP3_ABITRATE=256
-readonly MED_MP3_ABITRATE=192
-readonly LOW_MP3_ABITRATE=128
-#### MP4/MKV h.263/aac,ogg ####
-readonly HIGH_X264_CQ=0.15
-readonly MED_X264_CQ=0.14
-readonly LOW_X264_CQ=0.13
-# H.264 Extended profile (quicktime) level set in QLEVEL
-readonly HIGH_X264EXT_OPTS="nocabac:bframes=2:nob_pyramid:threads=auto:direct_pred=auto:subq=6:frameref=5"
-# high, med & low will use same settings just CQ and resolution different
-# This make encoding slow. Swap following if you want lower quality to also mean faster encoding speed.
-#readonly MED_X264EXT_OPTS="level_idc=31:nocabac:bframes=2:nob_pyramid:threads=auto:subq=5:frameref=4"
-#readonly LOW_X264EXT_OPTS="level_idc=31:nocabac:bframes=2:nob_pyramid:threads=auto:subq=4:frameref=3"
-readonly MED_X264EXT_OPTS="$HIGH_X264EXT_OPTS"
-readonly LOW_X264EXT_OPTS="$HIGH_X264EXT_OPTS"
-# H.264 High profile level set in QLEVEL
-readonly HIGH_X264HIGH_OPTS="bframes=3:b_pyramid:weight_b:threads=auto:direct_pred=auto:subq=6:frameref=5:partitions=all:8x8dct:mixed_refs:me=umh:trellis=1"
-# high, med & low will use same settings just CQ and resolution different
-# This make encoding slow. Swap following if you want lower quality to also mean faster encoding speed.
-#readonly MED_X264HIGH_OPTS="level_idc=31:bframes=3:b_pyramid:weight_b:threads=auto:subq=5:frameref=4:8x8dct"
-#readonly LOW_X264HIGH_OPTS="level_idc=31:bframes=3:b_pyramid:weight_b:threads=auto:subq=4:frameref=3"
-readonly MED_X264HIGH_OPTS="$HIGH_X264HIGH_OPTS"
-readonly LOW_X264HIGH_OPTS="$HIGH_X264HIGH_OPTS"
-# AAC
-readonly HIGH_AAC_AQUAL=100
-readonly MED_AAC_AQUAL=90
-readonly LOW_AAC_AQUAL=80
-# OGG
-readonly HIGH_OGG_AQUAL=6
-readonly MED_OGG_AQUAL=5
-readonly LOW_OGG_AQUAL=4
-# Defaults
-LAVC_OPTS=$MED_LAVC_OPTS
-LAVC_CQ=$MED_LAVC_CQ
-XVID_OPTS=$MED_XVID_OPTS
-XVID_CQ=$MED_XVID_CQ
-MP3_ABITRATE=$MED_MP3_ABITRATE
-AAC_AQUAL=$MED_AAC_AQUAL
-OGG_AQUAL=$MED_OGG_AQUAL
-X264EXT_OPTS="level_idc=31:$MED_X264EXT_OPTS"
-X264_OPTS="level_idc=31:$MED_X264HIGH_OPTS"
-X264_CQ=$MED_X264_CQ
-if echo "$(basename $0)" | grep -i 'mkv' >/dev/null 2>&1
-then
-	CONTYPE="mkv"
-	QUICKTIME_MP4="NO"
-elif echo "$(basename $0)" | grep -i 'mp4' >/dev/null 2>&1
-then
-	CONTYPE="mp4"
-	QUICKTIME_MP4="NO"
-elif echo "$(basename $0)" | grep -i 'mov' >/dev/null 2>&1
-then
-	#TODO. Not working yet don't use mov
-	CONTYPE="mp4"
-	QUICKTIME_MP4="YES"
-elif echo "$(basename $0)" | grep -i 'avi' >/dev/null 2>&1
-then
-	CONTYPE="avi"
-	QUICKTIME_MP4="NO"
-fi
-###########################################################
-# ON or OFF
-# debug mode
-DEBUG="OFF"
-DEBUGSQL="OFF"
-DEBUGSG="OFF"
-# Print INFO messages
-INFO="ON"
-# Save(via a rename) or delete nuv file. Only for transcode back into MythRecording.
-SAVENUV="OFF"
-
-[ "$DEBUGSQL" = "ON" ] && DEBUG="ON"
-
-##### Functions ###########################################
-scriptlog() {
-local LEVEL="$1"
-shift
-local PRIORITY
-local HIGHLIGHTON
-local HIGHLIGHTOFF
-	if [ "$LEVEL" = "BREAK" ]
-	then
-		echo "--------------------------------------------------------------------------------" | tee -a $LOGFILE
-		return 0
-	elif [ "$LEVEL" = "ERROR" ]
-	then
-		PRIORITY=4
-		HIGHLIGHTON="${REDFG}"
-		HIGHLIGHTOFF="${COLOURORIG}"
-		# Global
-		FINALEXIT=1
-	elif [ "$LEVEL" = "SUCCESS" ]
-	then
-		PRIORITY=5
-		HIGHLIGHTON="${GREENFG}"
-		HIGHLIGHTOFF="${COLOURORIG}"
-	elif [ "$LEVEL" = "START" -o "$LEVEL" = "STOP" ]
-	then
-		PRIORITY=5
-		HIGHLIGHTON="${BOLDON}"
-		HIGHLIGHTOFF="${ALLOFF}"
-	elif [ "$LEVEL" = "DEBUG" ]
-	then
-		[ "$DEBUG" = "ON" ] || return
-		PRIORITY=7
-		HIGHLIGHTON=""
-		HIGHLIGHTOFF=""
-	elif [ "$LEVEL" = "NOHEADER" ]
-	then
-		# Also no db logging
-		echo "$*" | tee -a $LOGFILE
-		return
-	else
-		[ "$INFO" = "ON" ] || return
-		LEVEL="INFO"
-		PRIORITY=6
-		HIGHLIGHTON=""
-		HIGHLIGHTOFF=""
-	fi
-	echo "${HIGHLIGHTON}$(date +%d/%m,%H:%M) [${$}] $LEVEL $*${HIGHLIGHTOFF}" | tee -a $LOGFILE
-
-	[ "$DBLOGGING" -eq 1 ] && insertmythlogentry "$PRIORITY" "$LEVEL" "${$}" "$*"
-}
-
-chkreqs() {
-local REQPROGS="$1"
-local REQLIBS="$2"
-local TMP
-local MENCODER
-	for TMP in $REQPROGS
-	do
-		if ! which "$TMP" >/dev/null 2>&1
-		then
-			scriptlog ERROR "Can't find program $TMP."
-			scriptlog ERROR "$REQUIREDAPPS"
-			return 1
-		fi
-	done
-	MENCODER=$(which mencoder)
-	for TMP in $REQLIBS
-	do
-		if ! ldd $MENCODER | grep -i  "${TMP}.*=>.*${TMP}" >/dev/null 2>&1
-		then
-			scriptlog ERROR "mencoder may not support $TMP."
-			scriptlog ERROR "$REQUIREDAPPS"
-			return 1
-		fi
-	done
-	return 0
-}
-
-versioncheck() {
-local PRODUCT="$1"
-	case $PRODUCT in
-		mkvmerge)
-			VER=$(mkvmerge -V | awk '/mkvmerge/ {print $2}')
-			OLDIFS="$IFS"; IFS="."; set - $VER; IFS="$OLDIFS"
-			MAJ=$(echo "$1" | tr -d [:alpha:]); MIN="$2"; PAT="$3"
-			MKVMERGE251BUG="NO"
-			if [ "$VER" = "v2.5.1" ]
-			then
-				scriptlog INFO "mkvmerge v2.5.1. There is a known bug with this version. Workaround applied."
-				MKVMERGE251BUG="YES"
-			elif [ "$MAJ" -lt 2 -o \( "$MAJ" -eq 2 -a "$MIN" -lt 2 \) ]
-			then
-				scriptlog INFO "mkvmerge $VER. This will not work with 29.97 fps video (NTSC). You need at least v2.2.0"
-			fi
-			scriptlog DEBUG "mkvmerge $VER"
-		;;
-	esac
-}
-
-calcbitrate() {
-local ASPECT=$1
-local SCALE=$2
-local CQ=$3
-local W
-local H
-local BITRATE
-	W=$(echo $SCALE | cut -d ':' -f1)
-	H=$(echo $SCALE | cut -d ':' -f2)
-	BITRATE=$(echo "((($H^2 * $ASPECT * 25 * $CQ) / 16 ) * 16) / 1000" | bc)
-	echo $BITRATE
-}
-
-getsetting() {
-local VALUE="$1"
-local HOST=$(hostname)
-local DATA
-	DATA=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select data from settings where value = "$VALUE" and hostname like "${HOST}%";
-	EOF)
-	if [ -z "$DATA" ]
-	then
-		DATA=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-		select data from settings where value = "$VALUE" and (hostname is NULL or hostname = "");
-	EOF)
-	fi
-	echo "$DATA"
-}
-
-getstoragegroupdirs() {
-	mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select distinct dirname from storagegroup;
-	EOF
-}
-
-hascutlist() {
-local CHANID="$1"
-local STARTTIME="$2"
-local DATA
-	[ -n "$CHANID" ] || return 1
-	DATA=$(mysql --batch --skip-column-name --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select cutlist from recorded where chanid = $CHANID and starttime = "$STARTTIME";
-	EOF)
-	[ "$DATA" -eq 1 ] && return 0 || return 1
-}
-
-getrecordfile() {
-local CHANID="$1"
-local STARTTIME="$2"
-local DEBUG="$3"
-local HOST=$(hostname)
-local DATA
-local RECFILE
-	[ -n "$CHANID" ] || return 1
-	# Storage groups
-	if [ "$DEBUG" = "ON" ] 
-	then
-		scriptlog INFO "CHANID $CHANID STARTTIME $STARTTIME HOST $HOST"
-		DATA=$(mysql --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-		select * from storagegroup;
-		select chanid,starttime,title,subtitle,basename,storagegroup from recorded where chanid = $CHANID and starttime = "$STARTTIME";
-		EOF)
-		scriptlog INFO "Tables"
-		scriptlog NOHEADER "$DATA"
-	fi
-	DATA=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select concat(a.dirname, "/", b.basename) from storagegroup a, recorded b where b.chanid = $CHANID and b.starttime = "$STARTTIME" and b.storagegroup = a.groupname and a.hostname like "${HOST}%";
-	EOF)
-	[ "$DEBUG" = "ON" ] && scriptlog INFO "Try 1 Data $DATA"
-	while read RECFILE
-	do
-		[ "$DEBUG" = "ON" ] && scriptlog INFO "Try 1 Check $RECFILE"
-		[ -f "${RECFILE}" ] && break
-	done < <(echo "$DATA")
-	if [ ! -f "$RECFILE" ]
-	then
-		# Pre Storage groups
-		local RFP=$(getsetting RecordFilePrefix)
-		DATA=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-		select concat("$RFP", "/", basename) from recorded where chanid = $CHANID and starttime = "$STARTTIME" limit 1;
-		EOF)
-		[ "$DEBUG" = "ON" ] && scriptlog INFO "Try 2 $RFP,$DATA"
-		RECFILE="$DATA"
-	fi
-	[ -f "$RECFILE" ] && echo "$RECFILE"
-}
-
-getsourcename() {
-local CHANID="$1"
-	[ -n "$CHANID" ] || return 1
-	mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select b.displayname from channel a, cardinput b where a.chanid = $CHANID and a.sourceid = b.sourceid;
-	EOF
-}
-
-gettitle() {
-local CHANID="$1"
-local STARTTIME="$2"
-	[ -n "$CHANID" ] || return 1
-	mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select title, subtitle from recorded where chanid = $CHANID and starttime = "$STARTTIME";
-	EOF
-}
-
-findchanidstarttime() {
-local SEARCHTITLE="$1"
-	mysql --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select title, subtitle, chanid, date_format(starttime, '%Y%m%d%H%i%s'), storagegroup from recorded where title like "%${SEARCHTITLE}%";
-	EOF
-}
-
-updatemetadata() {
-local NEW="$1"
-local CHANID="$2"
-local STARTTIME="$3"
-local NFSIZE
-	NFSIZE=$(stat -c %s "$NEW")
-	NEW=$(basename "$NEW")
-	mysql --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	update recorded set
-	basename = "$NEW",
-	filesize = $NFSIZE,
-	bookmark = 0,
-	editing = 0,
-	cutlist = 0,
-	commflagged = 0
-	where chanid = $CHANID and starttime = "$STARTTIME";
-	delete from recordedmarkup where chanid = $CHANID and starttime = "$STARTTIME";
-	delete from recordedseek where chanid = $CHANID and starttime = "$STARTTIME";
-	EOF
-}
-
-createvideocover() {
-local FILENAME="$1"
-local ASPECT="$2"
-local THDIR="${FIFODIR}/THDIR"
-local THUMB_NAME=$(basename "$FILENAME" | sed -e 's/\.[am][vkp][iv4]$/\.png/')
-local THUMB_PATH="${CFDIR}/${THUMB_NAME}"
-local CURWD
-local TH
-	{
-	CURWD=$(pwd)
-	mkdir $THDIR && cd $THDIR || return 1
-	nice -19 mplayer -really-quiet -nojoystick -nolirc -nomouseinput -ss 00:02:00 -aspect $ASPECT -ao null -frames 50 -vo png:z=5 "$FILENAME"
-	TH=$(ls -1rt | tail -1)
-	[ -f "$TH" ] || return
-	if [ $ASPECT = "16:9" ]
-	then
-		convert "$TH" -resize 720x404! THWS.png
-	else
-		cp "$TH" THWS.png
-	fi
-	mv THWS.png "$THUMB_PATH"
-	cd $CURWD
-	rm -rf "$THDIR"
-	} >/dev/null 2>&1
-	echo "$THUMB_PATH"
-}
-
-getsearchtitle() {
-local CHANID="$1"
-local STARTTIME="$2"
-local TI
-local ST
-local SEARCHTITLE
-	[ -n "$CHANID" ] || return 1
-	TI=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select title from recorded where chanid = $CHANID and starttime = "$STARTTIME";
-	EOF)
-	ST=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select subtitle from recorded where chanid = $CHANID and starttime = "$STARTTIME";
-	EOF)
-	if [ -n "$TI" -a -n "$ST" ]
-	then
-		SEARCHTITLE="${TI}:${ST}"
-	elif [ -n "$TI" ]
-	then
-		SEARCHTITLE="${TI}"
-	fi
-	echo $SEARCHTITLE
-}
-
-lookupinetref() {
-# : is used to separate Title and SubTitle in SEARCHTITLE
-local SEARCHTITLE="$1"
-local CHANID="$2"
-local STARTTIME="$3"
-local IMDBCMD
-local IMDBRES
-local IMDBSTR=""
-# INETREF will be 00000000 if not found
-local INETREF=00000000
-local SERIES
-local EPISODE
-local YEAR
-local TMP
-	{
-        IMDBCMD=$(getsetting MovieListCommandLine)
-	# This is dependent on imdb.pl and will not work with any MovieListCommandLine due to use of s=ep option.
-	set - $IMDBCMD
-	IMDBCMD="$1 $2"
-        IMDBRES=$($IMDBCMD "$SEARCHTITLE")
-        if [ -n "$IMDBRES" -a $(echo "$IMDBRES" | wc -l) -eq 1 ]
-        then
-		IMDBSTR="$IMDBRES"
-	elif [ -n "$CHANID" ]
-	then
-		YEAR=$(getyear $CHANID $STARTTIME)
-		if [ "$YEAR" -gt 1800 ]
-		then
-			for C in 0 1 -1
-			do
-				TMP=$(echo "$IMDBRES" | grep $(( $YEAR + $C )))
-				[ -n "$TMP" -a $(echo "$TMP" | wc -l) -eq 1 ] && IMDBSTR="$TMP" && break
-			done
-		fi
-        fi
-	if [ -n "$IMDBSTR" ]
-	then
-                INETREF=$(echo "$IMDBSTR" | awk -F'[^0-9]' '{print $1}')
-                echo $INETREF | grep '^[0-9][0-9][0-9][0-9][0-9][0-9][0-9]*$' >/dev/null 2>&1 || INETREF=00000000
-	fi
-        if [ "$INETREF" -eq 00000000 ]
-        then
-		# Try looking for episode
-                OLDIFS="$IFS"; IFS=":"; set - $SEARCHTITLE; IFS="$OLDIFS"
-		SERIES="$1" ; EPISODE="$2"
-		if [ -n "$SERIES" -a -n "$EPISODE" ]
-		then
-			# option s=ep is for episode lookup
-			IMDBSTR=$($IMDBCMD s=ep "$EPISODE")
-			if which agrep >/dev/null 2>&1
-			then
-				IMDBSTR=$(echo "$IMDBSTR" | agrep -i -s -2 "$SERIES" | sort -n | head -1 | cut -d':' -f2-)
-			else
-				IMDBSTR=$(echo "$IMDBSTR" | grep -i "$SERIES")
-			fi
-			if [ $(echo "$IMDBSTR" | wc -l) -eq 1 ]
-			then
-				INETREF=$(echo "$IMDBSTR" | awk -F'[^0-9]' '{print $1}')
-				echo $INETREF | grep '^[0-9][0-9][0-9][0-9][0-9][0-9][0-9]*$' >/dev/null 2>&1 || INETREF=00000000
-			fi
-		fi
-        fi
-	scriptlog DEBUG "inetref $INETREF"
-	} >/dev/null 2>&1
-        echo $INETREF
-}
-
-getseriesepisode() {
-local CHANID="$1"
-local STARTTIME="$2"
-local INETREF="$3"
-local DATA
-local SE
-	[ -n "$CHANID" ] || return 1
-	{
-	# STARTTIME is not always the same in both tables for matching programs. ???
-	DATA=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select syndicatedepisodenumber from recorded a,recordedprogram b
-	where a.chanid = $CHANID and a.starttime = "$STARTTIME" and a.chanid = b.chanid
-	and a.title = b.title and a.subtitle = b.subtitle;
-	EOF)
-	DATA=$(echo "$DATA" | awk -F '[SE]' '/S/ {printf("S%02dE%02d\n",$3,$2)}')
-	if echo "$DATA" | grep '^S[0-9][0-9]E[0-9][0-9]$' >/dev/null 2>&1
-	then
-		SE="$DATA"
-	elif [ $INETREF -gt 0 ]
-	then
-		# Lets try passing imdb page
-		wget -o /dev/null -O "${FIFODIR}/${INETREF}.html" "http://www.imdb.com/title/tt${INETREF}/"
-		SE=$(awk '/Season.*Episode/ {
-		a=match($0,/Season ([0-9]+)/,s);b=match($0,/Episode ([0-9]+)/,e);if(a>0 && b>0){printf("S%02dE%02d\n",s[1],e[1]);exit}
-		}' "${FIFODIR}/${INETREF}.html")
-	fi
-	scriptlog DEBUG "series episode $SE"
-	} >/dev/null 2>&1
-	echo "$SE" | grep '^S[0-9][0-9]E[0-9][0-9]$'
-}
-
-createfiletitleSEsubtitle() {
-local CHANID="$1"
-local STARTTIME="$2"
-local SE="$3"
-local DATA
-local T
-local S
-	[ -n "$CHANID" ] || return 1
-	DATA=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select title from recorded where chanid = $CHANID and starttime = "$STARTTIME";
-	EOF)
-	T=$(echo $DATA | tr -d '[:cntrl:]' | tr -d '[:punct:]' | tr '[:space:]' '_')
-
-	DATA=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select subtitle from recorded where chanid = $CHANID and starttime = "$STARTTIME";
-	EOF)
-	S=$(echo $DATA | tr -d '[:cntrl:]' | tr -d '[:punct:]' | tr '[:space:]' '_')
-
-	if [ -n "$T" -a -n "$SE" -a -n "$S" ]
-	then
-		echo "${T}${SEP}${SE}${SEP}${S}"
-	elif [ -n "$T" -a -n "$S" ]
-	then
-		echo "${T}${SEP}${S}"
-	else
-		echo "${T}"
-	fi
-}
-
-createvideometadata() {
-local FILENAME="$1"
-local TITLE="$2"
-local ASPECT="$3"
-local CHANID="$4"
-local STARTTIME="$5"
-local INETREF="$6"
-# SE may be null
-local SE="$7"
-local DIRECTOR="Unknown"
-#local PLOT="None"
-local PLOT="$(getplot $CHANID $STARTTIME)"
-local MOVIERATING="NR"
-#local YEAR=1895
-local YEAR="$(getyear $CHANID $STARTTIME)"
-local USERRATING=0
-local RUNTIME=0
-local COVERFILE="No Cover"
-local GENRES=""
-local COUNTRIES=""
-local CATEGORY=""
-local TI
-local ST
-local IMDBCMD
-local IMDBSTR
-local GTYPE
-local TH
-local SE
-local S
-local E
-local WHERE
-local INSERT
-local TMP
-local IDS
-local INTID
-local COUNT
-	# Title name generation is a mess. Should do something better
-	if hasvideometadata "$FILENAME"
-	then
-		scriptlog INFO "$FILENAME already has a videometdata entry"
-		return 0
-	else
-		# Since I strip special characters in TITLE, use chanid/starttime for metadata title.
-		if [ -n "$CHANID" ]
-		then
-			TI=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-			select title from recorded where chanid = $CHANID and starttime = "$STARTTIME";
-			EOF)
-			ST=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-			select subtitle from recorded where chanid = $CHANID and starttime = "$STARTTIME";
-			EOF)
-			if [ -n "$TI" -a -n "$SE" -a -n "$ST" ]
-			then
-				TITLE="\\\"${TI}\\\" ${SE} ${ST}"
-			elif [ -n "$TI" -a -n "$ST" ]
-			then
-				TITLE="\\\"${TI}\\\" ${ST}"
-			elif [ -n "$TI" ]
-			then
-				TITLE="${TI}"
-			fi
-		fi
-		if [ $INETREF -gt 0 ]
-		then
-			IMDBCMD=$(getsetting MovieDataCommandLine)
-			IMDBSTR=$($IMDBCMD $INETREF | sed -e 's/"/\\"/g')
-			TMP=$(echo "$IMDBSTR" | grep '^Title' | cut -d':' -f2- | sed -e 's/^ *//')
-			if [ -n "$TMP" ]
-			then
-				# Try and put series and episode number back in. Based on imdb placing quotes around series name. A bit dodgy
-				if [ -n "$SE" ]
-				then
-					TMP=$(echo "$TMP" | awk -v s=${SE} '{
-					r=match($0,/"(.*)" (.*)/,m)
-					if(r>0) { print("\\\""m[1]"\\\" "s" "m[2]) }
-					else { print($0) }
-					}' | sed -e 's/\\\\"/\\"/g')
-				fi
-				TITLE="$TMP"
-			fi
-			TMP=$(echo "$IMDBSTR" | grep '^Year' | cut -d':' -f2- | sed -e 's/^ *//')
-			[ -n "$TMP" ] && YEAR="$TMP"
-			TMP=$(echo "$IMDBSTR" | grep '^Director' | cut -d':' -f2- | sed -e 's/^ *//')
-			[ -n "$TMP" ] && DIRECTOR="$TMP"
-			TMP=$(echo "$IMDBSTR" | grep '^Plot' | cut -d':' -f2- | sed -e 's/^ *//')
-			[ -n "$TMP" ] && PLOT="$TMP"
-			TMP=$(echo "$IMDBSTR" | grep '^UserRating' | grep -v '[<>\"]' | cut -d':' -f2- | sed -e 's/^ *//')
-			[ -n "$TMP" ] && USERRATING="$TMP"
-			TMP=$(echo "$IMDBSTR" | grep '^MovieRating' | cut -d':' -f2- | sed -e 's/^ *//')
-			[ -n "$TMP" ] && MOVIERATING="$TMP"
-			TMP=$(echo "$IMDBSTR" | grep '^Runtime' | cut -d':' -f2- | sed -e 's/^ *//')
-			[ -n "$TMP" ] && RUNTIME="$TMP"
-			IMDBCMD=$(getsetting MoviePosterCommandLine)
-			IMDBCOVER=$($IMDBCMD $INETREF)
-			if [ -n "$IMDBCOVER" ]
-			then
-				GTYPE=$(echo $IMDBCOVER | sed -e 's/.*\(\....\)/\1/')
-				wget -o /dev/null -O ${CFDIR}/${INETREF}${GTYPE} $IMDBCOVER 
-				[ -f ${CFDIR}/${INETREF}${GTYPE} ] && COVERFILE="${CFDIR}/${INETREF}${GTYPE}"
-			fi
-			TMP=$(echo "$IMDBSTR" | grep '^Genres' | cut -d':' -f2- | sed -e 's/^ *//')
-			[ -n "$TMP" ] && GENRES="$TMP"
-			TMP=$(echo "$IMDBSTR" | grep '^Countries' | cut -d':' -f2- | sed -e 's/^ *//')
-			[ -n "$TMP" ] && COUNTRIES="$TMP"
-		fi
-		if ! [ -f "$COVERFILE" ]
-		then
-			scriptlog INFO "Creating cover file."
-			TH=$(createvideocover "$FILENAME" $ASPECT)
-			[ -f ${TH} ] && COVERFILE="${TH}"
-		fi
-		scriptlog INFO "Creating videometadata entry. Inetref:$INETREF. Title:$TITLE"
-		if [ "$DEBUGSQL" = "ON" ]
-		then
-			cat <<-EOF
-			insert into videometadata set
-			title = "$TITLE",
-			director = "$DIRECTOR",
-			plot = "$PLOT",
-			rating = "$MOVIERATING",
-			inetref = "$INETREF",
-			year = $YEAR,
-			userrating = $USERRATING,
-			length = $RUNTIME,
-			showlevel = 1,
-			filename = "$FILENAME",
-			coverfile = "$COVERFILE",
-			childid = -1,
-			browse = 1,
-			playcommand = NULL,
-			category = 0;
-			EOF
-		fi
-		mysql --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-		insert into videometadata set
-		title = "$TITLE",
-		director = "$DIRECTOR",
-		plot = "$PLOT",
-		rating = "$MOVIERATING",
-		inetref = "$INETREF",
-		year = $YEAR,
-		userrating = $USERRATING,
-		length = $RUNTIME,
-		showlevel = 1,
-		filename = "$FILENAME",
-		coverfile = "$COVERFILE",
-		childid = -1,
-		browse = 1,
-		playcommand = NULL,
-		category = 0;
-		EOF
-		CATEGORY=$(getcategory "$CHANID" "$STARTTIME")
-		if [ -n "$GENRES" -o -n "$COUNTRIES" -o -n "$CATEGORY" ]
-		then
-			INTID=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-			select intid from videometadata where filename = "$FILENAME";
-			EOF)
-		fi
-		if [ -n "$INTID" ]
-		then
-			# This will not create new genres, countries or categories.
-			if [ -n "$GENRES" ]
-			then
-				scriptlog DEBUG "Will check for genres $GENRES"
-				OLDIFS="$IFS"; IFS=','; set - $GENRES; IFS="$OLDIFS"
-				COUNT="$#"
-				WHERE=""
-				for TMP in "$@"
-				do
-					TMP=$(echo $TMP | tr [A-Z] [a-z])
-					[ -n "$WHERE" ] && WHERE="$WHERE or lcase(genre) = \"$TMP\"" || WHERE="where lcase(genre) = \"$TMP\""
-				done
-				[ "$DEBUGSQL" = "ON" ] && echo "select intid from videogenre $WHERE"
-				IDS=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-				select intid from videogenre $WHERE; 
-				EOF)
-				for TMP in $IDS
-				do
-					INSERT="$INSERT insert into videometadatagenre set idvideo = $INTID, idgenre = $TMP;"
-				done
-				[ "$COUNT" -gt $(echo "$IDS" | wc -l) ] && scriptlog INFO "Not all genres $GENRES found"
-			fi
-
-			if [ -n "$COUNTRIES" ]
-			then
-				scriptlog DEBUG "Will check for countries $COUNTRIES"
-				OLDIFS="$IFS"; IFS=','; set - $COUNTRIES; IFS="$OLDIFS"
-				COUNT="$#"
-				WHERE=""
-				for TMP in "$@"
-				do
-					TMP=$(echo $TMP | tr [A-Z] [a-z])
-					[ -n "$WHERE" ] && WHERE="$WHERE or lcase(country) = \"$TMP\"" || WHERE="where lcase(country) = \"$TMP\""
-				done
-				[ "$DEBUGSQL" = "ON" ] && echo "select intid from videocountry $WHERE"
-				IDS=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-				select intid from videocountry $WHERE; 
-				EOF)
-				for TMP in $IDS
-				do
-					INSERT="$INSERT insert into videometadatacountry set idvideo = $INTID, idcountry = $TMP;"
-				done
-				[ "$COUNT" -gt $(echo "$IDS" | wc -l) ] && scriptlog INFO "Not all countries $COUNTRIES found"
-			fi
-
-			if [ -n "$CATEGORY" ]
-			then
-				CATEGORY=$(echo "$CATEGORY" | tr -d ' ')
-				OLDIFS="$IFS"; IFS='/'; set - $CATEGORY; IFS="$OLDIFS"
-				for TMP in "$@"
-				do
-					# Use mappings
-					[ -n "${mythcat[$TMP]}" ] && TMP=${mythcat[$TMP]}
-					[ "$DEBUGSQL" = "ON" ] && echo "select intid from videocategory where lcase(category) = lcase("$TMP")"
-					IDS=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] mythconverg <<-EOF
-					select intid from videocategory where lcase(category) = lcase("$TMP"); 
-					EOF)
-					if [ -n "$IDS" ]
-					then
-						INSERT="$INSERT update videometadata set category = $IDS where intid = $INTID;"
-						scriptlog INFO "Added to category $TMP"
-						# only 1 category
-						break
-					else
-						scriptlog INFO "Category $TMP does not exist"
-					fi
-				done
-			fi
-
-			if [ -n "$INSERT" ]
-			then
-				[ "$DEBUGSQL" = "ON" ] && echo "$INSERT"
-				mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] mythconverg <<-EOF
-				$INSERT
-				EOF
-			fi
-		fi
-	fi
-	return 0
-}
-
-hasvideometadata() {
-local FILENAME="$1"
-local DATA
-	DATA=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select intid from videometadata where filename = "$FILENAME";
-	EOF)
-	echo $DATA | grep '^[0-9][0-9][0-9]*$' >/dev/null 2>&1 && return 0 || return 1
-}
-
-deleterecording() {
-local CHANID="$1"
-local STARTTIME="$2"
-	[ -n "$CHANID" ] || return 1
-	mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	update recorded set recgroup = "Deleted", autoexpire = 999 where chanid = $CHANID and starttime = "$STARTTIME";
-	EOF
-}
-
-insertmythlogentry() {
-local PRIORITY="$1"
-local LEVEL="$2"
-local PID="$3"
-local DETAILS="$(echo $4 | tr -d '[:cntrl:]' | tr -d '[\\\"]')"
-local DATETIME=$(date '+%Y%m%d%H%M%S')
-local HOST=$(hostname)
-	mysql --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	insert into mythlog set
-	module = "mythnuv2mkv.sh",
-	priority = $PRIORITY,
-	acknowledged = 0,
-	logdate = $DATETIME,
-	host = "$HOST",
-	message = "mythnuv2mkv.sh [$PID] $LEVEL",
-	details = "$DETAILS";
-	EOF
-}
-
-getjobqueuecmds() {
-local JOBID="$1"
-local DATA
-local JQCMDSTR[0]="RUN"
-local JQCMDSTR[1]="PAUSE"
-local JQCMDSTR[2]="RESUME"
-local JQCMDSTR[4]="STOP"
-local JQCMDSTR[8]="RESTART"
-	DATA=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select cmds from jobqueue where id = $JOBID;
-	EOF)
-	echo ${JQCMDSTR[$DATA]}
-}
-
-setjobqueuecmds() {
-local JOBID="$1"
-local CMDSSTR="$2"
-local CMDS
-	if echo "$CMDSSTR" | egrep '^[0-9]+$' >/dev/null 2>&1
-	then
-		CMDS=$CMDSSTR
-	elif [ "$CMDSSTR" = "RUN" ]
-	then
-		CMDS=0
-	fi
-	if [ -n "$CMDS" ]
-	then
-		mysql --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-		update jobqueue set cmds = $CMDS where id = $JOBID;
-		EOF
-	else
-		scriptlog ERROR "Invalid Job Queue Command."
-	fi
-}
-
-getjobqueuestatus() {
-local JOBID="$1"
-local DATA
-local JQSTATUSSTR[0]="UNKNOWN"
-local JQSTATUSSTR[1]="QUEUED"
-local JQSTATUSSTR[2]="PENDING"
-local JQSTATUSSTR[3]="STARTING"
-local JQSTATUSSTR[4]="RUNNING"
-local JQSTATUSSTR[5]="STOPPING"
-local JQSTATUSSTR[6]="PAUSED"
-local JQSTATUSSTR[7]="RETRY"
-local JQSTATUSSTR[8]="ERRORING"
-local JQSTATUSSTR[9]="ABORTING"
-local JQSTATUSSTR[256]="DONE"
-local JQSTATUSSTR[272]="FINISHED"
-local JQSTATUSSTR[288]="ABORTED"
-local JQSTATUSSTR[304]="ERRORED"
-local JQSTATUSSTR[320]="CANCELLED"
-	DATA=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select status from jobqueue where id = $JOBID;
-	EOF)
-	echo ${JQSTATUSSTR[$DATA]}
-}
-
-setjobqueuestatus() {
-local JOBID="$1"
-local STATUSSTR="$2"
-local STATUS
-	if echo "$STATUSSTR" | egrep '^[0-9]+$' >/dev/null 2>&1
-	then
-		STATUS=$STATUSSTR
-	elif [ "$STATUSSTR" = "RUNNING" ]
-	then
-		STATUS=4
-	elif [ "$STATUSSTR" = "PAUSED" ]
-	then
-		STATUS=6
-	elif [ "$STATUSSTR" = "ABORTING" ]
-	then
-		STATUS=9
-	elif [ "$STATUSSTR" = "FINISHED" ]
-	then
-		STATUS=272
-	elif [ "$STATUSSTR" = "ERRORED" ]
-	then
-		STATUS=304
-	fi
-	if [ -n "$STATUS" ]
-	then
-		mysql --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-		update jobqueue set status = $STATUS where id = $JOBID;
-		EOF
-	else
-		scriptlog ERROR "Invalid Job Queue Status."
-	fi
-}
-
-getjobqueuecomment() {
-local JOBID="$1"
-local COMMENT="$2"
-	mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select comment from jobqueue where id = $JOBID;
-	EOF
-}
-
-setjobqueuecomment() {
-local JOBID="$1"
-local COMMENT="$2"
-	mysql --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	update jobqueue set comment = "$COMMENT" where id = $JOBID;
-	EOF
-}
-
-# My channelprofiles table for setting aspect at channel level.
-# See http://web.aanet.com.au/auric/?q=node/1
-# You probably don't have it.
-getchannelaspect() {
-local CHANID=$1
-local DATA
-	{
-	DATA=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] ${DBName} <<-EOF
-	select aspectratio from channelprofiles
-		where channum = (select channum from channel where chanid = $CHANID)
-		and sourceid = (select sourceid from channel where chanid = $CHANID);
-	EOF)
-	case $DATA in
-		16:9|4:3) true ;;
-		'') DATA=$DEFAULTMPEG2ASPECT ;;
-		*) DATA=NA ;;
-	esac
-	} >/dev/null 2>&1
-	echo $DATA
-}
-
-# aspect ratio of the V4L or MPEG capture card associated with CHANID
-# No good for any other type of card. e.g. DVB.
-querycardaspect() {
-local CHANID=$1
-local DATA
-	DATA=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] ${DBName} <<-EOF
-	select value from codecparams where name = 'mpeg2aspectratio'
-	and profile = (select id from recordingprofiles where name = 'default'
-		and profilegroup = (select id from profilegroups
-			where cardtype = (select cardtype from capturecard
-				where cardid = (select cardid from cardinput
-					where sourceid = (select sourceid from channel
-						where chanid = $CHANID)
-					)
-				)
-			)
-		);
-	EOF)
-	[ "$DATA" != "4:3" -a "$DATA" != "16:9" ] && DATA="NA"
-	echo $DATA
-}
-
-getaviinfo() {
-local FILE="$1"
-shift
-local PROPS="$@"
-local MPOP
-local TMP
-local p
-local RES
-local ASPECTFOUNDIN
-readonly width=1		; infokey[1]="ID_VIDEO_WIDTH"
-readonly height=2		; infokey[2]="ID_VIDEO_HEIGHT"
-readonly fps=3			; infokey[3]="ID_VIDEO_FPS"
-readonly audio_sample_rate=4	; infokey[4]="ID_AUDIO_RATE"
-readonly audio_channels=5	; infokey[5]="ID_AUDIO_NCH"
-readonly aspect=6		; infokey[6]="ID_VIDEO_ASPECT"
-	MPOP=$(mplayer -really-quiet -nojoystick -nolirc -nomouseinput -vo null -ao null -frames 0 -identify "$FILE" 2>/dev/null)
-	for p in $PROPS
-	do
-		[ -n "${infokey[$p]}" ] && p=${infokey[$p]}
-		case $p in
-			"finfo")
-				TMP="NA"
-			;;
-			"ID_VIDEO_ASPECT")
-				TMP="$(echo "$MPOP" | awk -F'=' '/ID_VIDEO_ASPECT/ {if($2>1.1 && $2<1.5)print "4:3";if($2>1.6 && $2<2)print "16:9"}')"
-				[ "$TMP" != "4:3" -a "$TMP" != "16:9" ] && TMP="NA"
-				ASPECTFOUNDIN="File"
-				if [ "$TMP" = "NA" ] && echo "$FILE" | grep '\.mpg$' >/dev/null 2>&1 && [ -n "$CHANID" ]
-				then
-					TMP=$(getchannelaspect $CHANID)
-					ASPECTFOUNDIN="Channel"
-				fi
-				if [ "$TMP" = "NA" ] && echo "$FILE" | grep '\.mpg$' >/dev/null 2>&1 && [ -n "$CHANID" ]
-				then
-					TMP=$(querycardaspect $CHANID)
-					ASPECTFOUNDIN="Card"
-				fi
-				if [ "$TMP" = "NA" ] && echo "$FILE" | grep '\.mpg$' >/dev/null 2>&1
-				then
-					TMP=$DEFAULTMPEG2ASPECT
-					ASPECTFOUNDIN="Default"
-				fi
-				TMP="$TMP,$ASPECTFOUNDIN"
-			;;
-			"ID_VIDEO_HEIGHT")
-				TMP="$(echo "$MPOP" | grep $p | tail -1 | cut -d'=' -f2)"
-				[ "$TMP" = "1080" ] && TMP="1088" # HD FIX
-			;;
-			*)
-				TMP="$(echo "$MPOP" | grep $p | tail -1 | cut -d'=' -f2)"
-			;;
-		esac
-		[ -z "$RES" ] && RES="$TMP" || RES="${RES}:${TMP}"
-	done
-	echo "$RES"
-}
-
-getnuvinfo() {
-export NUVINFOFILE="$1"
-shift
-export NUVINFOPROPS="$@"
-	PROPS=$(sed -n '/^#STARTNUVINFO$/,/#ENDNUVINFO/p' $CMD | perl)
-	echo "$PROPS"
-}
-
-getvidinfo() {
-local FILE="$1"
-shift
-local PROPS="$@"
-local RES
-	if echo "$FILE" | grep '\.nuv' >/dev/null 2>&1
-	then	
-		RES=$(getnuvinfo "$FILE" $PROPS)
-	else
-		RES=$(getaviinfo "$FILE" $PROPS)
-	fi
-	echo "$RES"
-}
-
-getaspect() {
-local FILE="$1"
-local ASPECT="NA"
-	ASPECT=$(getvidinfo "$FILE" aspect)
-	echo "$ASPECT" | grep ',' >/dev/null 2>&1 || ASPECT="$ASPECT,File"
-	echo "$ASPECT"
-}
-
-stoptime() {
-local STARTSECS=$1
-local MAXRUNHOURS=$2
-local CURSECS
-local ENDSECS
-	[ "$MAXRUNHOURS" = "NA" ] && return 1
-	CURSECS=$(date +%s)
-	ENDSECS=$(( $STARTSECS + ( $MAXRUNHOURS * 60 * 60 ) ))
-	[ "$ENDSECS" -gt "$CURSECS" ] && return 1 || return 0
-}
-
-checkoutput() {
-local INPUT="$1"
-local OUTPUT="$2"
-local MENCODERRES=$3
-local VIDFOR
-local OUTSIZE
-local INSIZE
-local RAT
-local SCANOUTFILE
-local LCOUNT
-local ECOUNT
-local INFRAMES
-local OUTFRAMES
-local DIFF
-	VIDFOR=$(getvidinfo "$OUTPUT" ID_VIDEO_FORMAT)
-	if [ "$VIDFOR" != "FMP4" -a "$VIDFOR" != "h264" -a "$VIDFOR" != "avc1" -a "$VIDFOR" != "avc1" -a "$VIDFOR" != "XVID" ]
-	then
-		scriptlog ERROR "$OUTPUT does not look like correct avi/mp4/mkv file."
-		return 1
-	fi
-
-	OUTSIZE=$(stat -c %s "$OUTPUT" 2>/dev/null || echo 0)
-	if [ "$OUTSIZE" -eq 0 ]
-	then
-		scriptlog ERROR "$OUTPUT zero length."
-		return 1
-	fi
-
-	INSIZE=$(stat -c %s "$INPUT" 2>/dev/null || echo 0)
-	RAT=$(( $INSIZE / $OUTSIZE ))
-	if ! hascutlist $CHANID $STARTTIME && [ "$RAT" -gt 16 ]
-	then
-		scriptlog ERROR "ratio between $INPUT and $OUTPUT sizes greater than 16."
-		return 1
-	fi
-
-	SCANOUTFILE="${FIFODIR}/mplayerscan-out"
-	nice mplayer -benchmark -nojoystick -nolirc -nomouseinput -vo null -ao null -speed 10 "$OUTPUT" 2>&1 | tr '\r' '\n' >$SCANOUTFILE 2>&1
-	LCOUNT=$(wc -l $SCANOUTFILE 2>/dev/null | awk '{T=$1} END {if(T>0){print T}else{print 0}}')
-	if [ "$LCOUNT" -lt 1000 ]
-	then
-		scriptlog ERROR "mplayer line count ($LCOUNT) to low on $OUTPUT."
-		return 1
-	fi
-	ECOUNT=$(egrep -ic 'sync|error|skip|damaged|overflow' $SCANOUTFILE)
-	if [ "$ECOUNT" -gt 5 ]
-	then
-		scriptlog ERROR "mplayer error count ($ECOUNT) to great on $OUTPUT."
-		return 1
-	fi
-
-	# Latest mplayer does not output frame count
-	#if [ -f "$MENCODERRES" ]
-	#then
-	#	OUTFRAMES=$(tail -40 $SCANOUTFILE | awk '/A-V:/ {if(match($5,"/"))F=$5;if(match($6,"/"))F=$6;if(match($7,"/"))F=$7;if(match($8,"/"))F=$8;if(match($9,"/"))F=$9} END {print substr(F,index(F,"/")+1)}')
-	#	INFRAMES=$(tail -40 $MENCODERRES | awk '/Video stream:/ {F=$12} END {print F}')
-	#	scriptlog INFO "Frames $INFRAMES $INPUT."
-	#	scriptlog INFO "Frames $OUTFRAMES $OUTPUT."
-	#	if echo ${INFRAMES} : ${OUTFRAMES} | grep '[0-9] : [0-9]' >/dev/null 2>&1
-	#	then
-	#		DIFF=$([ $INFRAMES -gt $OUTFRAMES ] && echo $(( $INFRAMES - $OUTFRAMES )) || echo $(( $OUTFRAMES - $INFRAMES )))
-	#	else
-	#		DIFF=100000
-	#	fi
-	#	if [ "$DIFF" -gt 10 ]
-	#	then
-	#		scriptlog ERROR "Frame count difference of $DIFF to big on $OUTPUT."
-	#		return 1
-	#	fi
-	#fi
-
-	return 0
-}
-
-getcategory() {
-local CHANID="$1"
-local STARTTIME="$2"
-local DATA
-	[ -n "$CHANID" ] || return 1
-	DATA=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select category from recorded where chanid = $CHANID and starttime = "$STARTTIME";
-	EOF)
-	echo $DATA | tr -d '[:cntrl:]' | tr -d '[:punct:]'
-}
-
-getplot() {
-local CHANID="$1"
-local STARTTIME="$2"
-local DATA
-	[ -n "$CHANID" ] || return 1
-	DATA=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select description from recorded where chanid = $CHANID and starttime = "$STARTTIME";
-	EOF)
-	echo $DATA | tr -d '[:cntrl:]' | tr -d '[:punct:]'
-}
-
-getyear() {
-local CHANID="$1"
-local STARTTIME="$2"
-local DATA
-	[ -n "$CHANID" ] || return 1
-	# STARTTIME is not always the same in both tables for matching programs. ???
-	DATA=$(mysql --batch --skip-column-names --user=${DBUserName} [REDACTED] -h ${DBHostName} ${DBName} <<-EOF
-	select airdate from recorded a,recordedprogram b
-	where a.chanid = $CHANID and a.starttime = "$STARTTIME" and a.chanid = b.chanid
-	and a.title = b.title and a.subtitle = b.subtitle;
-	EOF)
-	[ -n "$DATA" -a $DATA -gt 1800 ] && echo $DATA || echo $(date +%Y)
-}
-
-encloseincontainer() {
-local OUTBASE="$1"
-local FPS="$2"
-local AUDEXT="$3"
-local CONTYPE="$4"
-local ASPECT="$5"
-local TITLE="$6"
-	if [ -f "${OUTBASE}_video.h264" -o "${OUTBASE}_audio.${AUDEXT}" ]
-	then
-		if [ "$CONTYPE" = "mkv" ]
-		then
-			if [ "$MKVMERGE251BUG" = "YES" ]
-			then
-				LANG=C mkvmerge --default-duration 0:${FPS}fps --aspect-ratio 0:${ASPECT} --title "$TITLE" \
-				"${OUTBASE}_video.h264" "${OUTBASE}_audio.${AUDEXT}" -o "${OUTBASE}.mkv"
-				RET=$? ; [ $RET -eq 1 ] && RET=0 # mkvmerge return code of 1 is only a warning
-			else
-				mkvmerge --default-duration 0:${FPS}fps --aspect-ratio 0:${ASPECT} --title "$TITLE" \
-				"${OUTBASE}_video.h264" "${OUTBASE}_audio.${AUDEXT}" -o "${OUTBASE}.mkv"
-				RET=$? ; [ $RET -eq 1 ] && RET=0 # mkvmerge return code of 1 is only a warning
-			fi
-		elif [ "$CONTYPE" = "mp4" ]
-		then
-			MP4Box -add "${OUTBASE}_video.h264:par=1:1" -add "${OUTBASE}_audio.${AUDEXT}" -fps $FPS "${OUTBASE}.mp4"
-			RET=$?
-		fi
-		if [ $RET -eq 0 ]
-		then
-			[ "$DEBUG" != "ON" ] && rm -f "${OUTBASE}_video.h264" "${OUTBASE}_audio.${AUDEXT}"
-		else
-			[ "$DEBUG" != "ON" ] && rm -f "${OUTBASE}_video.h264" "${OUTBASE}_audio.${AUDEXT}" "${OUTBASE}.mkv" >/dev/null 2>&1
-			return 1
-		fi
-	else
-		scriptlog ERROR "${OUTBASE}_video.h264 or ${OUTBASE}_audio.${AUDEXT} does not exist."
-		return 1
-	fi
-	return 0
-}
-
-logtranstime () {
-local START=$1
-local END=$2
-local ORIGINALFILESIZE=$3
-local NEWFILESIZE=$4
-	TMP=$(( $(date -u -d"${END}" +%s) - $(date -u -d"${START}" +%s) ))
-	DAYS=$(( $TMP / 60 / 60 / 24 ))
-	HOURS=$(( $TMP / 60 / 60 - ($DAYS * 24) ))
-	MINUTES=$(( $TMP / 60 - ( ($HOURS * 60)+($DAYS * 24 * 60) ) ))
-	SECONDS=$(( $TMP - ( ($MINUTES * 60)+($HOURS * 60 * 60)+($DAYS * 24 * 60 * 60) ) ))
-	scriptlog INFO "RUNTIME: $DAYS days $HOURS hours $MINUTES minutes and $SECONDS seconds. Original filesize: $ORIGINALFILESIZE New filesize: $NEWFILESIZE"
-}
-
-cleanup() {
-local SIG="$1"
-local JOBID="$2"
-local OUTPUT="$3"
-local OUTBASE
-local TRANPID
-	scriptlog DEBUG "$SIG Clean up."
-	if [ "$SIG" = "ABRT" ]
-	then
-		scriptlog ERROR "Job Aborted. Removing incomplete $OUTPUT."
-		OUTBASE=$(echo "$OUTPUT" | sed -e 's/\.[ma][pv][4i]$//')
-		[ "$DEBUG" != "ON" ] && rm -f "${OUTBASE}.avi" "${OUTBASE}_video.h264" "${OUTBASE}_audio.aac" "${OUTBASE}_audio.ogg" "${OUTBASE}.mp4" "${OUTBASE}.mkv" >/dev/null 2>&1
-	fi
-
-	TRANPID=$(jobs -l | awk '/mythtranscode/ {P=$2" "P} END {print P}')
-	if [ -n "$TRANPID" ]
-	then
-		scriptlog DEBUG "Killing mythtranscode [$TRANPID]"
-		ps -p $TRANPID >/dev/null 2>&1 && kill $TRANPID >/dev/null 2>&1
-	fi
-
-	if [ "$FINALEXIT" -eq 0 ]
-	then
-		[ "$DEBUG" != "ON" ] && rm -rf "$FIFODIR" >/dev/null 2>&1
-		scriptlog INFO "Exiting. Successful."
-		if [ "$JOBID" -ne 99999999 ]
-		then
-			setjobqueuestatus "$JOBID" "FINISHED"
-			setjobqueuecomment "$JOBID" "[${$}] Successfully Completed"
-		fi
-		exit 0
-	else
-		scriptlog INFO "Exiting. Errored."
-		if [ "$JOBID" -ne 99999999 ]
-		then
-			setjobqueuestatus "$JOBID" "ERRORED"
-			setjobqueuecomment "$JOBID" "[${$}] Errored"
-		fi
-		#exit 1
-		#exit 304
-		# Only error code jobqueue.cpp interprets is 246. This is translated to "unable to find executable".
-		scriptlog ERROR "This error could be for many reasons. Mythtv will report unable to find executable, this is incorrect."
-		exit 246
-	fi
-}
-
-MYSQLLIST="~mythtv/.mythtv/mysql.txt ~/.mythtv/mysql.txt /.mythtv/mysql.txt /usr/local/share/mythtv/mysql.txt /usr/share/mythtv/mysql.txt /etc/mythtv/mysql.txt /usr/local/etc/mythtv/mysql.txt mysql.txt"
-for m in $MYSQLLIST
-do
-	[ -f $m ] && . $m && break
-done
-if [ -z "$DBName" ]
-then
-	echo "Can't find mysql.txt"
-	exit 1
-fi
-
-##### BG Monitor #####################################
-# This will be fired off in background to update the jobqueue comment and process stop/pause/resume requests.
-if echo "$1" | egrep -i '\-\-monitor=' >/dev/null 2>&1
-then
-	readonly MONJOBID=$(echo "$1" | cut -d'=' -f2)
-	readonly MONPID="$2"
-	readonly MONTRANSOP="$3"
-	readonly LOGFILE="$4"
-	readonly DBLOGGING=$(getsetting "LogEnabled")
-
-	[ "$MONJOBID" -ne 99999999 -a -n "$MONPID" ] || exit 1
-
-	PAUSEALREADYPRINTED="" ; RESUMEALREADYPRINTED=""
-	
-	scriptlog INFO "Starting monitoring process."
-	sleep 5
-	while ps -p $MONPID >/dev/null 2>&1
-	do
-		JQCMD=$(getjobqueuecmds "$MONJOBID")
-		if [ "$JQCMD" = "PAUSE" ]
-		then
-			JQSTATUS=$(getjobqueuestatus "$MONJOBID")
-			if [ "$JQSTATUS" != "PAUSED" ]
-			then
-				MENCODERPID=$(ps --ppid $MONPID | awk '/mencoder/ {print $1}')
-				if [ -n "$MENCODERPID" ]
-				then
-					PAUSEALREADYPRINTED=""
-					STARTPAUSESECS=$(date +%s)
-					kill -s STOP $MENCODERPID
-					setjobqueuestatus "$MONJOBID" "PAUSED"
-					SAVEDCC=$(getjobqueuecomment "$MONJOBID")
-					setjobqueuecomment "$MONJOBID" "[$MONPID] Paused for 0 Seconds"
-					scriptlog STOP "Job Paused due to job queue pause request."
-				else
-					[ -z "$PAUSEALREADYPRINTED" ] && scriptlog ERROR "Sorry, could not pause. Will keep trying"
-					PAUSEALREADYPRINTED=TRUE
-				fi
-			else
-				NOW=$(date +%s)
-				PAUSESECS=$(( $NOW - $STARTPAUSESECS ))
-				PAUSEMINS=$(( $PAUSESECS / 60 ))
-				PAUSEHOURS=$(( $PAUSEMINS / 60 ))
-				PAUSEMINS=$(( $PAUSEMINS - ( $PAUSEHOURS * 60 ) ))
-				PAUSESECS=$(( $PAUSESECS - ( ( $PAUSEHOURS * 60 * 60 ) + ( $PAUSEMINS * 60 ) ) ))
-				setjobqueuecomment "$MONJOBID" "[$MONPID] Paused for $PAUSEHOURS Hrs $PAUSEMINS Mins $PAUSESECS Secs"
-			fi
-		elif [ "$JQCMD" = "RESUME" ]
-		then
-			JQSTATUS=$(getjobqueuestatus "$MONJOBID")
-			if [ "$JQSTATUS" != "RUNNING" ]
-			then
-				MENCODERPID=$(ps --ppid $MONPID | awk '/mencoder/ {print $1}')
-				if [ -n "$MENCODERPID" ]
-				then
-					RESUMEALREADYPRINTED=""
-					kill -s CONT $MENCODERPID
-					setjobqueuestatus "$MONJOBID" "RUNNING"
-					setjobqueuecomment "$MONJOBID" "$SAVEDCC"
-					scriptlog START "Job resumed due to job queue resume request."
-					setjobqueuecmds "$MONJOBID" "RUN"
-				else
-					[ -z "$RESUMEALREADYPRINTED" ] && scriptlog ERROR "Sorry, could not resume. Will keep trying"
-					RESUMEALREADYPRINTED=TRUE
-				fi
-			fi
-		elif [ "$JQCMD" = "STOP" ]
-		then
-			setjobqueuestatus "$MONJOBID" "ABORTING"
-			setjobqueuecomment "$MONJOBID" "[$MONPID] Stopping"
-			scriptlog STOP "Stopping due to job queue stop request."
-			setjobqueuecmds "$MONJOBID" "RUN"
-			kill -s ABRT $MONPID
-			sleep 2
-			kill $MONPID
-		elif [ "$JQCMD" = "RESTART" ]
-		then
-			scriptlog ERROR "Sorry, can't restart job."
-			setjobqueuecmds "$MONJOBID" "RUN"
-		else
-			CC=$(getjobqueuecomment "$MONJOBID")
-			if echo "$CC" | grep 'audio pass' >/dev/null 2>&1
-			then
-				PASSNU="audio pass"
-			elif echo "$CC" | grep 'Single video pass' >/dev/null 2>&1
-			then
-				PASSNU="Single video pass"
-			elif echo "$CC" | grep '1st video pass' >/dev/null 2>&1
-			then
-				PASSNU="1st video pass"
-			elif echo "$CC" | grep '2nd video pass' >/dev/null 2>&1
-			then
-				PASSNU="2nd video pass"
-			else
-				sleep 15
-				continue
-			fi
-			PCTLINE=$(tail -10 $MONTRANSOP | grep 'mythtranscode:' | cut -c39- | tail -1)
-			[ -n "$PASSNU" -a -n "$PCTLINE" ] && setjobqueuecomment "$MONJOBID" "[$MONPID] $PASSNU $PCTLINE"
-		fi
-		sleep 15
-	done
-	exit
-fi
-
-##### Globals ########################################
-readonly CMD="$0"
-readonly LOGFILE="/var/tmp/mythnuv2mkv${$}.log"
-readonly FIFODIR="/var/tmp/mythnuv2mkv${$}"
-readonly MENCODEROP="${FIFODIR}/mencoder.op"
-readonly TRANSOP="${FIFODIR}/transcode.op"
-readonly STOPREQUEST="${FIFODIR}/STOPREQUEST"
-readonly CFDIR=$(getsetting "VideoArtworkDir")
-if ! tty >/dev/null 2>&1
-then
-	readonly BOLDON=""
-	readonly ALLOFF=""
-	readonly REDFG=""
-	readonly GREENFG=""
-	readonly COLOURORIG=""
-	[ "$DEBUG" = "ON" ] && exec 3>/var/tmp/DEBUG || exec 3>/dev/null
-	exec 1>&3
-	exec 2>&3
-else
-	readonly BOLDON=`tput bold`
-	readonly ALLOFF=`tput sgr0`
-	readonly REDFG=`tput setaf 1`
-	readonly GREENFG=`tput setaf 2`
-	readonly COLOURORIG=`tput op`
-fi
-# DBLOGGING is reverse to shell true/false
-DBLOGGING=0
-OUTPUT=""
-JOBID=99999999
-FINALEXIT=0
-STARTSECS="NA"
-MAXRUNHOURS="NA"
-
-##### Main ###########################################
-if echo "$1" | egrep -i '\-help|\-usage|\-\?' >/dev/null 2>&1
-then
-	echo "$HELP"
-	exit 1
-fi
-
-if [ "$CONTYPE" = "mkv" ]
-then
-	chkreqs "$MKVREQPROGS" "$MKVREQLIBS" || exit 1
-	versioncheck "mkvmerge"
-elif [ "$CONTYPE" = "mp4" ]
-then
-	chkreqs "$MP4REQPROGS" "$MP4REQLIBS" || exit 1
-elif [ "$CONTYPE" = "avi" ]
-then
-	chkreqs "$AVIREQPROGS" "$AVIREQLIBS" || exit 1
-fi
-
-trap 'cleanup ABRT "$JOBID" "$OUTPUT"' INT ABRT
-trap 'touch $STOPREQUEST ; scriptlog INFO "USR1 received. Will stop after current file completes."' USR1
-trap 'cleanup EXIT "$JOBID"' EXIT
-mkdir ${FIFODIR} >/dev/null 2>&1
-
-for INPUT in "$@"
-do
-	if stoptime $STARTSECS $MAXRUNHOURS
-	then
-		scriptlog STOP "Stopping due to max runtime $MAXRUNHOURS."
-		scriptlog BREAK 
-		break
-	fi
-	if [ -f "$STOPREQUEST" ]
-	then
-		scriptlog STOP "Stopping due to USR1 request."
-		scriptlog BREAK 
-		break
-	fi
-
-	# Jobid from myth user job %JOBID%
-	if echo "$INPUT" | grep -i '\-\-jobid=' >/dev/null 2>&1
-	then
-		JOBID=$(echo "$INPUT" | cut -d'=' -f2)
-		DBLOGGING=$(getsetting "LogEnabled")
-		continue
-	fi
-
-	if echo "$INPUT" | grep -i '\-\-findtitle=' >/dev/null 2>&1
-	then
-		SEARCHTITLE=$(echo "$INPUT" | cut -d'=' -f2)
-		MATCHTITLE=$(findchanidstarttime "$SEARCHTITLE")	
-		echo "$MATCHTITLE"
-		exit 0
-	fi
-
-	if echo "$INPUT" | grep -i '\-\-maxrunhours=' >/dev/null 2>&1
-	then
-		STARTSECS=$(date +%s)
-		MAXRUNHOURS=$(echo "$INPUT" | cut -d'=' -f2)
-		scriptlog INFO "Max Run Hours set to $MAXRUNHOURS."
-		continue
-	fi
-
-	if echo "$INPUT" | grep -i '\-\-debugsg' >/dev/null 2>&1
-	then
-		DEBUGSG="ON"
-		scriptlog INFO "DEBUGSG set ON."
-		continue
-	fi
-	if echo "$INPUT" | grep -i '\-\-debug=' >/dev/null 2>&1
-	then
-		DEBUG=$(echo "$INPUT" | cut -d'=' -f2 | tr [a-z] [A-Z])
-		scriptlog INFO "Debug set to $DEBUG."
-		continue
-	fi
-	if echo "$INPUT" | grep -i '\-\-info=' >/dev/null 2>&1
-	then
-		INFO=$(echo "$INPUT" | cut -d'=' -f2 | tr [a-z] [A-Z])
-		scriptlog INFO "Info set to $INFO."
-		continue
-	fi
-	if echo "$INPUT" | grep -i '\-\-savenuv=' >/dev/null 2>&1
-	then
-		SAVENUV=$(echo "$INPUT" | cut -d'=' -f2 | tr [a-z] [A-Z])
-		scriptlog INFO "SaveNUV set to $SAVENUV."
-		continue
-	fi
-
-	if echo "$INPUT" | grep -i '\-\-denoise=' >/dev/null 2>&1
-	then
-		DENOISE=$(echo "$INPUT" | cut -d'=' -f2 | tr [a-z] [A-Z])
-		if echo "$DENOISE" | egrep -i 'ON|YES' >/dev/null 2>&1
-		then
-			POSTVIDFILTERS="${POSTVIDFILTERS}${DENOISEFILTER},"
-			scriptlog INFO "Denoise filter added."
-		else
-			POSTVIDFILTERS=$(echo ${POSTVIDFILTERS} | sed -e 's/'${DENOISEFILTER}',//')
-			scriptlog INFO "Denoise filter removed."
-		fi
-		continue
-	fi
-
-	if echo "$INPUT" | grep -i '\-\-deblock=' >/dev/null 2>&1
-	then
-		DEBLOCK=$(echo "$INPUT" | cut -d'=' -f2 | tr [a-z] [A-Z])
-		if echo "$DEBLOCK" | egrep -i 'ON|YES' >/dev/null 2>&1
-		then
-			POSTVIDFILTERS="${POSTVIDFILTERS}${DEBLOCKFILTER},"
-			scriptlog INFO "Deblock filter added."
-		else
-			POSTVIDFILTERS=$(echo ${POSTVIDFILTERS} | sed -e 's/'${DEBLOCKFILTER}',//')
-			scriptlog INFO "Deblock filter removed."
-		fi
-		continue
-	fi
-
-	if echo "$INPUT" | grep -i '\-\-deinterlace=' >/dev/null 2>&1
-	then
-		DEINTERLACE=$(echo "$INPUT" | cut -d'=' -f2 | tr [a-z] [A-Z])
-		if echo "$DEINTERLACE" | egrep -i 'ON|YES' >/dev/null 2>&1
-		then
-			scriptlog INFO "Deinterlace filter made available."
-		else
-			scriptlog INFO "Deinterlace filter made unavailable."
-		fi
-		continue
-	fi
-
-	if echo "$INPUT" | grep -i '\-\-invtelecine=' >/dev/null 2>&1
-	then
-		INVTELECINE=$(echo "$INPUT" | cut -d'=' -f2 | tr [a-z] [A-Z])
-		if echo "$INVTELECINE" | egrep -i 'ON|YES' >/dev/null 2>&1
-		then
-			scriptlog INFO "Invtelecine filter made available."
-		else
-			scriptlog INFO "Invtelecine filter made unavailable."
-		fi
-		continue
-	fi
-
-	if echo "$INPUT" | grep -i '\-\-crop=' >/dev/null 2>&1
-	then
-		CROP=$(echo "$INPUT" | cut -d'=' -f2 | tr [a-z] [A-Z])
-		scriptlog INFO "Crop set to $CROP."
-		continue
-	fi
-
-	if echo "$INPUT" | grep -i '\-\-deleterec=' >/dev/null 2>&1
-	then
-		DELETEREC=$(echo "$INPUT" | cut -d'=' -f2 | tr [a-z] [A-Z])
-		scriptlog INFO "Delete Recording set to $DELETEREC."
-		continue
-	fi
-
-	if echo "$INPUT" | grep -i '\-\-copydir=' >/dev/null 2>&1
-	then
-		COPYDIR=$(echo "$INPUT" | cut -d'=' -f2)
-		if [ -d "$COPYDIR" -a -w "$COPYDIR" ]
-		then
-			scriptlog INFO "Video will be located in $COPYDIR."
-		else
-			scriptlog ERROR "$COPYDIR does not exist or is not writable. Continuing but result will be left in source directory unless $COPYDIR is created before job completes."
-		fi	
-		continue
-	fi
-
-	if echo "$INPUT" | grep -i '\-\-contype=' >/dev/null 2>&1
-	then
-		TMP=$(echo "$INPUT" | cut -d'=' -f2 | tr [A-Z] [a-z])
-		OLDIFS="$IFS"; IFS=","; set - $TMP; IFS="$OLDIFS"
-		TMP1="$1" ; TMP2="$2"
-		if [ "$TMP1" = "mp4" ]
-		then
-			if [ -n "$CHANID" -a -z "$COPYDIR" ]
-			then
-				scriptlog ERROR "Changed to $TMP1 failed. mp4 not supported in MythRecord."
-			elif ! chkreqs "$MP4REQPROGS" "$MP4REQLIBS"
-			then
-				scriptlog ERROR "Changed to $TMP1 failed. Missing Requirements."
-			else
-				CONTYPE="mp4"
-				QUICKTIME_MP4="NO"
-				scriptlog INFO "Changed to $CONTYPE."
-			fi
-		elif [ "$TMP1" = "mov" ]
-		then
-			if [ -n "$CHANID" -a -z "$COPYDIR" ]
-			then
-				scriptlog ERROR "Changed to $TMP1 failed. mov not supported in MythRecord."
-			elif ! chkreqs "$MP4REQPROGS" "$MP4REQLIBS"
-			then
-				scriptlog ERROR "Changed to $TMP1 failed. Missing Requirements."
-			else
-				CONTYPE="mp4"
-				QUICKTIME_MP4="YES"
-				scriptlog INFO "Changed to $CONTYPE (mov)."
-			fi
-		elif [ "$TMP1" = "mkv" ]
-		then
-			if [ -n "$CHANID" -a -z "$COPYDIR" ]
-			then
-				scriptlog ERROR "Changed to $TMP1 failed. mkv not supported in MythRecord."
-			elif ! chkreqs "$MKVREQPROGS" "$MKVREQLIBS"
-			then
-				scriptlog ERROR "Changed to $TMP1 failed. Missing Requirements."
-			else
-				CONTYPE="mkv"
-				QUICKTIME_MP4="NO"
-				[ "$TMP2" = "ogg" ] && MKVAUD="ogg"
-				[ "$TMP2" = "acc" ] && MKVAUD="acc"
-				scriptlog INFO "Changed to ${CONTYPE},${MKVAUD}."
-			fi
-		elif [ "$TMP1" = "avi" ]
-		then
-			if ! chkreqs "$AVIREQPROGS" "$AVIREQLIBS"
-			then
-				scriptlog ERROR "Changed to $TMP1 failed. Missing Requirements."
-			else
-				CONTYPE="avi"
-				QUICKTIME_MP4="NO"
-				[ "$TMP2" = "xvid" ] && AVIVID="xvid"
-				[ "$TMP2" = "lavc" ] && AVIVID="lavc"
-				[ "$TMP2" = "divx" ] && AVIVID="lavc"
-				scriptlog INFO "Changed to ${CONTYPE},${AVIVID}."
-			fi
-		else
-			scriptlog ERROR "Changed to $TMP1 failed. Invalid contype."
-		fi
-		continue
-	fi
-
-	if echo "$INPUT" | grep -i '\-\-pass=' >/dev/null 2>&1
-	then
-		TMP=$(echo "$INPUT" | cut -d'=' -f2 | tr [A-Z] [a-z])
-		if [ "$TMP" = "one" -o "$TMP" = "1" ]
-		then
-			scriptlog INFO "Changed to $TMP pass."
-			PASS="one"
-		elif [ "$TMP" = "two" -o "$TMP" = "2" ]
-		then
-			scriptlog INFO "Changed to $TMP pass."
-			PASS="two"
-		else
-			scriptlog ERROR "Changed to $TMP failed. Invalid contype."
-		fi
-		continue
-	fi
-
-	if echo "$INPUT" | grep -i '\-\-quality=' >/dev/null 2>&1
-	then
-		QLEVEL=$(echo "$INPUT" | cut -d'=' -f2)
-		if echo "$QLEVEL" | grep -i "high" >/dev/null 2>&1
-		then
-			SCALE43=$HIGH_SCALE43
-			SCALE169=$HIGH_SCALE169
-			LAVC_CQ=$HIGH_LAVC_CQ
-			LAVC_OPTS=$HIGH_LAVC_OPTS
-			XVID_CQ=$HIGH_XVID_CQ
-			XVID_OPTS=$HIGH_XVID_OPTS
-			MP3_ABITRATE=$HIGH_MP3_ABITRATE
-			X264_CQ=$HIGH_X264_CQ
-			X264EXT_OPTS="level_idc=31:$HIGH_X264EXT_OPTS"
-			X264_OPTS="level_idc=31:$HIGH_X264HIGH_OPTS"
-			AAC_AQUAL=$HIGH_AAC_AQUAL
-			OGG_AQUAL=$HIGH_OGG_AQUAL
-		elif echo "$QLEVEL" | grep -i "med" >/dev/null 2>&1
-		then
-			SCALE43=$MED_SCALE43
-			SCALE169=$MED_SCALE169
-			LAVC_CQ=$MED_LAVC_CQ
-			LAVC_OPTS=$MED_LAVC_OPTS
-			XVID_CQ=$MED_XVID_CQ
-			XVID_OPTS=$MED_XVID_OPTS
-			MP3_ABITRATE=$MED_MP3_ABITRATE
-			X264_CQ=$MED_X264_CQ
-			X264EXT_OPTS="level_idc=31:$MED_X264EXT_OPTS"
-			X264_OPTS="level_idc=31:$MED_X264HIGH_OPTS"
-			AAC_AQUAL=$MED_AAC_AQUAL
-			OGG_AQUAL=$MED_OGG_AQUAL
-		elif echo "$QLEVEL" | grep -i "low" >/dev/null 2>&1
-		then
-			SCALE43=$LOW_SCALE43
-			SCALE169=$LOW_SCALE169
-			LAVC_CQ=$LOW_LAVC_CQ
-			LAVC_OPTS=$LOW_LAVC_OPTS
-			XVID_CQ=$LOW_XVID_CQ
-			XVID_OPTS=$LOW_XVID_OPTS
-			MP3_ABITRATE=$LOW_MP3_ABITRATE
-			X264_CQ=$LOW_X264_CQ
-			X264EXT_OPTS="level_idc=31:$LOW_X264EXT_OPTS"
-			X264_OPTS="level_idc=31:$LOW_X264HIGH_OPTS"
-			AAC_AQUAL=$LOW_AAC_AQUAL
-			OGG_AQUAL=$LOW_OGG_AQUAL
-		elif echo "$QLEVEL" | egrep -i "480" >/dev/null 2>&1
-		then
-			# 720 scale, high everything else
-			SCALE43=$FE_SCALE43
-			SCALE169=$FE_SCALE169
-			LAVC_CQ=$HIGH_LAVC_CQ
-			LAVC_OPTS=$HIGH_LAVC_OPTS
-			XVID_CQ=$HIGH_XVID_CQ
-			XVID_OPTS=$HIGH_XVID_OPTS
-			MP3_ABITRATE=$HIGH_MP3_ABITRATE
-			X264_CQ=$HIGH_X264_CQ
-			X264EXT_OPTS="level_idc=31:$HIGH_X264EXT_OPTS"
-			X264_OPTS="level_idc=31:$HIGH_X264HIGH_OPTS"
-			AAC_AQUAL=$HIGH_AAC_AQUAL
-			OGG_AQUAL=$HIGH_OGG_AQUAL
-		elif echo "$QLEVEL" | egrep -i "576" >/dev/null 2>&1
-		then
-			# 720 scale, high everything else
-			SCALE43=$FS_SCALE43
-			SCALE169=$FS_SCALE169
-			LAVC_CQ=$HIGH_LAVC_CQ
-			LAVC_OPTS=$HIGH_LAVC_OPTS
-			XVID_CQ=$HIGH_XVID_CQ
-			XVID_OPTS=$HIGH_XVID_OPTS
-			MP3_ABITRATE=$HIGH_MP3_ABITRATE
-			X264_CQ=$HIGH_X264_CQ
-			X264EXT_OPTS="level_idc=31:$HIGH_X264EXT_OPTS"
-			X264_OPTS="level_idc=31:$HIGH_X264HIGH_OPTS"
-			AAC_AQUAL=$HIGH_AAC_AQUAL
-			OGG_AQUAL=$HIGH_OGG_AQUAL
-		elif echo "$QLEVEL" | egrep -i "720" >/dev/null 2>&1
-		then
-			# 720 scale, high everything else
-			SCALE43=$ST_SCALE43
-			SCALE169=$ST_SCALE169
-			LAVC_CQ=$HIGH_LAVC_CQ
-			LAVC_OPTS=$HIGH_LAVC_OPTS
-			XVID_CQ=$HIGH_XVID_CQ
-			XVID_OPTS=$HIGH_XVID_OPTS
-			MP3_ABITRATE=$HIGH_MP3_ABITRATE
-			X264_CQ=$HIGH_X264_CQ
-			X264EXT_OPTS="level_idc=31:$HIGH_X264EXT_OPTS"
-			X264_OPTS="level_idc=31:$HIGH_X264HIGH_OPTS"
-			AAC_AQUAL=$HIGH_AAC_AQUAL
-			OGG_AQUAL=$HIGH_OGG_AQUAL
-		elif echo "$QLEVEL" | grep -i "1080" >/dev/null 2>&1
-		then
-			# 1080 scale, high everything else
-			SCALE43=$TE_SCALE43
-			SCALE169=$TE_SCALE169
-			LAVC_CQ=$HIGH_LAVC_CQ
-			LAVC_OPTS=$HIGH_LAVC_OPTS
-			XVID_CQ=$HIGH_XVID_CQ
-			XVID_OPTS=$HIGH_XVID_OPTS
-			MP3_ABITRATE=$HIGH_MP3_ABITRATE
-			X264_CQ=$HIGH_X264_CQ
-			X264EXT_OPTS="level_idc=41:$HIGH_X264EXT_OPTS"
-			X264_OPTS="level_idc=41:$HIGH_X264HIGH_OPTS"
-			AAC_AQUAL=$HIGH_AAC_AQUAL
-			OGG_AQUAL=$HIGH_OGG_AQUAL
-		fi
-		scriptlog INFO "Changed to $QLEVEL quality."
-		continue
-	fi
-
-	if echo "$INPUT" | grep -i '\-\-chanid=' >/dev/null 2>&1
-	then
-		CHANID=$(echo "$INPUT" | cut -d'=' -f2)
-		continue
-	fi
-	if echo "$INPUT" | grep -i '\-\-starttime=' >/dev/null 2>&1
-	then
-		STARTTIME=$(echo "$INPUT" | cut -d'=' -f2)
-		if [ -z "$CHANID" ]
-		then
-			scriptlog ERROR "Skipping $STARTTIME. chanid not specified."
-			scriptlog ERROR "--chanid must be specified before --starttime."
-			scriptlog BREAK 
-			unset STARTTIME
-			continue
-		fi
-		if [ "$DEBUGSG" = "ON" ]
-		then
-			INPUT=$(getrecordfile "$CHANID" "$STARTTIME" "$DEBUGSG")
-			scriptlog INFO "$INPUT" 
-			scriptlog BREAK 
-			exit $FINALEXIT
-		fi
-		INPUT=$(getrecordfile "$CHANID" "$STARTTIME")
-		if [ -z "$INPUT" ]
-		then
-			scriptlog ERROR "Skipping $CHANID $STARTTIME. Did not match a recording."
-			scriptlog BREAK 
-			unset CHANID STARTTIME
-			continue
-		fi
-		if [ ! -f "$INPUT" ]
-		then
-			scriptlog ERROR "Could not find Recording. ($INPUT)"
-			scriptlog BREAK 
-			unset CHANID STARTTIME
-			continue
-		fi
-		TITLE=$(gettitle $CHANID $STARTTIME)
-		MTINFILE=""
-		MTSOURCE="--chanid $CHANID --starttime $STARTTIME"
-		hascutlist $CHANID $STARTTIME && MTSOURCE="--honorcutlist $MTSOURCE"
-		scriptlog INFO "$CHANID $STARTTIME matches $TITLE ($INPUT)"
-	else
-		echo "$INPUT" | grep '^\/' >/dev/null 2>&1 || INPUT="`pwd`/${INPUT}"
-		MTINFILE="--infile"
-		MTSOURCE="$INPUT"
-	fi
-
-	if [ ! -f "$INPUT" ]
-	then
-		scriptlog ERROR "Skipping $INPUT does not exist."
-		scriptlog BREAK 
-		unset CHANID STARTTIME
-		continue
-	fi
-
-	if echo "$INPUT" | grep -v '\.[nm][up][vg]$' >/dev/null 2>&1
-	then
-		scriptlog ERROR "Skipping $INPUT not a nuv or mpg file."
-		scriptlog BREAK 
-		unset CHANID STARTTIME
-		continue
-	fi
-
-	OUTBASE=$(echo "$INPUT" | sed -e 's/\.[nm][up][vg]$//')
-	OUTPUT="${OUTBASE}.${CONTYPE}"
-	if [ -f "$OUTPUT" ]
-	then
-		scriptlog ERROR "Skipping $INPUT. $OUTPUT already exists."
-		scriptlog BREAK 
-		unset CHANID STARTTIME
-		continue
-	fi
-
-	INSIZE=$(( `stat -c %s "${INPUT}"` / 1024 ))
-	FREESPACE=$(df -k "$INPUT" | awk 'END {print $3}')
-	if [ $(( $FREESPACE - $INSIZE )) -lt 10000 ]
-	then
-		scriptlog ERROR "Stopping due to disk space shortage."
-		scriptlog BREAK 
-		break
-	fi
-
-	[ "$QUICKTIME_MP4" = "YES" ] && X264_OPTS="$X264EXT_OPTS"
-
-	FILEINFO=$(getvidinfo "$INPUT" width height fps audio_sample_rate audio_channels)
-	OLDIFS="$IFS"; IFS=":"; set - $FILEINFO; IFS="$OLDIFS"
-	INWIDTH="$1"; INHEIGHT="$2"; INFPS="$3"; INARATE="$4"; CHANNELS="$5"
-	if [ "$#" -ne 5 ]
-	then
-		scriptlog ERROR "Skipping $INPUT. Could not obtain vid format details"
-		scriptlog BREAK 
-		unset CHANID STARTTIME
-		continue
-	fi
-	if [ "$INWIDTH" = 720 -a "$INHEIGHT" = 576 ]
-	then
-		FORMAT="576i or 576p"
-	elif [ "$INWIDTH" = 720 -a "$INHEIGHT" = 480 ]
-	then
-		FORMAT="480i or 480p"
-	elif [ "$INWIDTH" = 1280 -a "$INHEIGHT" = 720 ]
-	then
-		FORMAT="720p"
-	elif [ "$INWIDTH" = 1920 -a "$INHEIGHT" = 1088 ]
-	then
-		FORMAT="1080i or 1080p"
-	else
-		FORMAT="Unknown"
-	fi
-
-	ASPECTSTR="NA";ASPECTFOUNDIN="NA"
-	TMP=$(getaspect "$INPUT")
-	ASPECTSTR=$(echo "$TMP" | cut -d',' -f1)
-	ASPECTFOUNDIN=$(echo "$TMP" | cut -d',' -f2)
-	if [ "$ASPECTSTR" != "4:3" -a "$ASPECTSTR" != "16:9" ]
-	then
-		scriptlog ERROR "Skipping $INPUT. Aspect is $ASPECTSTR must be 16:9 or 4:3."
-		scriptlog ERROR "If this is a mpg file make sure to set DEFAULTMPEG2ASPECT at top of this script."
-		scriptlog BREAK 
-		unset CHANID STARTTIME
-		continue
-	fi
-	scriptlog INFO "$FORMAT ${INWIDTH}x${INHEIGHT} $ASPECTSTR (Found in $ASPECTFOUNDIN) $INFPS FPS Audio Rate $INARATE Channels $CHANNELS"
-
-	# Channel mapping
-	FAACCCOPT=""
-	case "$CHANNELS" in
-		1*|2*|3*|4*) true ;;
-		5*|6*) FAACCCOPT="$FAACCHANCONFIG" ;;
-		*) scriptlog ERROR "Audio channels $CHANNELS invalid."
-		   scriptlog BREAK 
-		   unset CHANID STARTTIME
-		   continue
-		;;
-	esac
-
-	# Aspect/Scale/Crop opts
-	if [ "$ASPECTSTR" = "4:3" ]
-	then
-		ASPECT=1.333333333
-		SCALE=$SCALE43
-		if [ "$SCALE" = "NA" ]
-		then
-			scriptlog ERROR "Skipping $INPUT Aspect 4:3 which is not supported for quality $QLEVEL"
-			scriptlog BREAK 
-			unset CHANID STARTTIME
-			continue
-		fi
-	elif [ "$ASPECTSTR" = "16:9" ]
-	then
-		ASPECT=1.77777777778
-		SCALE=$SCALE169
-	fi
-	SCALESTR=$( echo $SCALE | tr ':' 'x' )
-	SCALEMEN="scale=${SCALE},"
-
-	OLDIFS="$IFS"; IFS=":"; set - $SCALE; IFS="$OLDIFS"
-	OUTWIDTH="$1"; OUTHEIGHT="$2"
-	if [ "$OUTWIDTH" = "$INWIDTH" -a "$OUTHEIGHT" = "$INHEIGHT" ]
-	then
-		CROPSCALE=""
-		scriptlog INFO "Input and Output same resolution. crop,scale disabled."
-	elif echo "$CROP" | egrep -i 'ON|YES' >/dev/null 2>&1
-	then
-		if [ "$OUTWIDTH" -gt "$INWIDTH" -o "$OUTHEIGHT" -gt "$INHEIGHT" ]
-		then
-			scriptlog INFO "Output is a greater scale than input. This is not sensible."
-		fi
-		CROPX=$CROPSIZE
-		CROPY=$CROPSIZE
-		CROPW=$(( $INWIDTH - ( 2 * $CROPX ) ))
-		CROPH=$(( $INHEIGHT - ( 2 * $CROPY ) ))
-		CROPVAL="${CROPW}:${CROPH}:${CROPX}:${CROPY}"
-		CROPMEN="crop=${CROPVAL},"
-		CROPSCALE="${CROPMEN}${SCALEMEN}"
-		scriptlog INFO "Crop to $CROPVAL. Scale to $SCALESTR."
-	else
-		CROPSCALE="${SCALEMEN}"
-		scriptlog INFO "Scale to $SCALESTR."
-	fi
-
-	# Filter opts
-	OUTFPS="$INFPS" ; MENOUTFPS=""
-	POSTVIDFILTERS=$(echo ${POSTVIDFILTERS} | sed -e 's/'"${INVTELECINEFILTER}"',//')
-	POSTVIDFILTERS=$(echo ${POSTVIDFILTERS} | sed -e 's/'"${DEINTERLACEFILTER}"',//')
-	[ -n "$CHANID" ] && SOURCENAME=$(getsourcename $CHANID)
-	# Progressive then skip Deinterlace/Invtelecine
-	if echo $INFPS | egrep '^23|^24' >/dev/null 2>&1
-	then
-		# Keep 23.976 FPS otherwise mencoder will convert to 29.97
-		OUTFPS="23.976"
-		scriptlog INFO "Input $INFPS FPS. OUTFPS set to $OUTFPS."
-	elif [ "$FORMAT" = "720p" -o "$FORMAT" = "1080p" ]
-	then
-		scriptlog INFO "$FORMAT. Deinterlace/Invtelecine filter not needed."
-	# Deinterlace options
-	elif echo "$DEINTERLACE" | egrep -i 'ON|YES' >/dev/null 2>&1
-	then
-		POSTVIDFILTERS="${POSTVIDFILTERS}${DEINTERLACEFILTER},"
-		scriptlog INFO "Deinterlace filter added."
-		echo "$INFPS" | grep  '^29' >/dev/null 2>&1 &&
-			scriptlog INFO "You may need Invtelecine rather than Deinterlace. (--deinterlace=NO --invtelecine=YES)."
-		echo "$FORMAT" | egrep -i '576p|480p|720p|1080p' >/dev/null 2>&1 &&
-			scriptlog INFO "If progressive this is wrong use --deinterlace=NO."
-	elif [ -n "$SOURCENAME" ] && echo "$DEINTERLACE" | grep -i "$SOURCENAME" >/dev/null 2>&1
-	then
-		POSTVIDFILTERS="${POSTVIDFILTERS}${DEINTERLACEFILTER},"
-		scriptlog INFO "Source $SOURCENAME. Deinterlace filter added."
-		echo "$INFPS" | grep  '^29' >/dev/null 2>&1 &&
-			scriptlog INFO "You may need Invtelecine rather than Deinterlace. (--deinterlace=NO --invtelecine=YES)."
-		echo "$FORMAT" | egrep -i '576p|480p|720p|1080p' >/dev/null 2>&1 &&
-			scriptlog INFO "If progressive this is wrong use --deinterlace=NO."
-	# Invtelecine options
-	elif echo "$INVTELECINE" | egrep -i 'ON|YES' >/dev/null 2>&1 && echo $INFPS | egrep '^24|^25' >/dev/null 2>&1
-	then
-		# Very unusual to have PAL/DVB telecine video
-		scriptlog INFO "Input $INFPS FPS. Invtelecine filter not supported."
-	elif echo "$INVTELECINE" | egrep -i 'ON|YES' >/dev/null 2>&1
-	then
-		POSTVIDFILTERS="${POSTVIDFILTERS}${INVTELECINEFILTER},"
-		OUTFPS="23.976"
-		scriptlog INFO "Invtelecine filter added."
-	fi
-	[ "$OUTFPS" = "23.976" ] && MENOUTFPS="-ofps 24000/1001"
-	[ -n "$POSTVIDFILTERS" ] && POSTVIDFILTERS="${POSTVIDFILTERS}softskip,"
-
-	# Encoder opts
-	# Force avi for videos staying in MythRecord
-	if [ "$CONTYPE" = "avi" ] || [ -n "$CHANID" -a -z "$COPYDIR" ]
-	then
-		if [ "$AVIVID" = "xvid" ]
-		then
-			VBITRATE=$(calcbitrate $ASPECT $SCALE $XVID_CQ)
-			PASSCMD="pass"
-			VIDEOCODEC="-ovc xvid -xvidencopts ${XVID_OPTS}:bitrate=${VBITRATE}"
-			VIDEXT="xvid"
-		elif [ "$AVIVID" = "lavc" ]
-		then
-			VBITRATE=$(calcbitrate $ASPECT $SCALE $LAVC_CQ)
-			PASSCMD="vpass"
-			VIDEOCODEC="-ovc lavc -lavcopts ${LAVC_OPTS}:vbitrate=${VBITRATE}"
-			VIDEXT="lavc"
-		else
-			scriptlog ERROR "Skipping $INPUT. Unsupported avi encoder"
-			scriptlog BREAK 
-			unset CHANID STARTTIME
-			continue
-		fi
-		ABITRATE=$MP3_ABITRATE
-		AUDIOCODEC="-oac mp3lame -lameopts vbr=2:br=${ABITRATE}"
-		AUDEXT="mp3"
-		MENOUT1STPASS="-aspect $ASPECT -force-avi-aspect $ASPECTSTR -o /dev/null"
-		MENOUTOPT="-aspect $ASPECT -force-avi-aspect $ASPECTSTR -o"
-		MENOUTFILE="$OUTPUT"
-	elif [ "$CONTYPE" = "mp4" ]
-	then
-		VBITRATE=$(calcbitrate $ASPECT $SCALE $X264_CQ)
-		AQUAL=$AAC_AQUAL
-		PASSCMD="pass"
-		VIDEOCODEC="-ovc x264 -x264encopts ${X264_OPTS}:bitrate=${VBITRATE}"
-		VIDEXT="h264"
-		AUDIOCODEC="-oac copy"
-		AUDEXT="aac"
-		MENOUT1STPASS="-of rawvideo -o /dev/null"
-		MENOUTOPT="-of rawvideo -o"
-		MENOUTFILE="${OUTBASE}_video.h264"
-	elif [ "$CONTYPE" = "mkv" ]
-	then
-		VBITRATE=$(calcbitrate $ASPECT $SCALE $X264_CQ)
-		if [ "$MKVAUD" = "ogg" ]
-		then
-			AQUAL=$OGG_AQUAL
-			AUDEXT="ogg"
-		elif [ "$MKVAUD" = "aac" ]
-		then
-			AQUAL=$AAC_AQUAL
-			AUDEXT="aac"
-		else
-			scriptlog ERROR "Skipping $INPUT. Unsupported mkv encoder"
-			scriptlog BREAK 
-			unset CHANID STARTTIME
-			continue
-		fi
-		PASSCMD="pass"
-		VIDEOCODEC="-ovc x264 -x264encopts ${X264_OPTS}:bitrate=${VBITRATE}"
-		VIDEXT="h264"
-		AUDIOCODEC="-oac copy"
-		MENOUT1STPASS="-of rawvideo -o /dev/null"
-		MENOUTOPT="-of rawvideo -o"
-		MENOUTFILE="${OUTBASE}_video.h264"
-	else
-		scriptlog ERROR "Skipping $INPUT. Incorrect video contype selected. $CONTYPE"
-		scriptlog BREAK 
-		unset CHANID STARTTIME
-		continue
-	fi
-
-	MENOPTS="${VIDEOCODEC} \
-	${AUDIOCODEC} \
-	-vf ${POSTVIDFILTERS}${CROPSCALE}${ENDVIDFILTERS}harddup -sws 7 $MENOUTFPS"
-	scriptlog INFO "MENCODEROPTS: $MENOPTS."
-
-	RETCODE=0
-	# Fireoff a background monitoring job to update the job queue details
-	[ "$JOBID" -ne 99999999 ] && $CMD --monitor=$JOBID ${$} $TRANSOP $LOGFILE &
-
-	#Start time
-	ENCSTARTTIME=$(date +%Y-%m-%d\ %H:%M:%S)
-	ORIGINALFILESIZE=$(du -h "$INPUT" | cut -f1)
-
-	# mp4/mkv have seperate Audio/Video transcodes.
-	if [ "$AUDEXT" = "aac" ]
-	then
-		scriptlog START "Starting $AUDEXT audio trans of $INPUT. quality $AQUAL."
-		[ "$JOBID" -ne 99999999 ] && setjobqueuecomment "$JOBID" "[${$}] audio pass started"
-
-		if [ ! -f "${OUTBASE}_audio.${AUDEXT}" ]
-		then
-			rm -f ${FIFODIR}/*out $TRANSOP $MENCODEROP
-			if [ -n "$MTINFILE" ]
-			then
-				nice -n 19 mythtranscode --profile autodetect $MTINFILE "$MTSOURCE" --fifodir $FIFODIR | tee -a $TRANSOP &
-			else
-				nice -n 19 mythtranscode --profile autodetect $MTSOURCE --fifodir $FIFODIR | tee -a $TRANSOP &
-			fi
-			sleep 10
-			# Throw away video
-			nice -n 19 dd bs=512k if=${FIFODIR}/vidout of=/dev/null &
-			nice -n 19 faac ${FIFODIR}/audout -P -R $INARATE -C $CHANNELS $FAACCCOPT -X -q $AQUAL --mpeg-vers 4 -o "${OUTBASE}_audio.${AUDEXT}"
-			RETCODE=$?
-			sleep 10
-			if [ $RETCODE -ne 0 ]
-			then
-				scriptlog ERROR "Skipping $INPUT. Problem with audio pass."
-				scriptlog BREAK 
-				unset CHANID STARTTIME
-				continue
-			fi
-		fi
-	elif [ "$AUDEXT" = "ogg" ]
-	then
-		scriptlog START "Starting $AUDEXT audio trans of $INPUT. quality $AQUAL."
-		[ "$JOBID" -ne 99999999 ] && setjobqueuecomment "$JOBID" "[${$}] audio pass started"
-
-		if [ ! -f "${OUTBASE}_audio.${AUDEXT}" ]
-		then
-			rm -f ${FIFODIR}/*out $TRANSOP $MENCODEROP
-			if [ -n "$MTINFILE" ]
-			then
-				nice -n 19 mythtranscode --profile autodetect $MTINFILE "$MTSOURCE" --fifodir $FIFODIR | tee -a $TRANSOP &
-			else
-				nice -n 19 mythtranscode --profile autodetect $MTSOURCE --fifodir $FIFODIR | tee -a $TRANSOP &
-			fi
-			sleep 10
-			# Throw away video
-			nice -n 19 dd bs=512k if=${FIFODIR}/vidout of=/dev/null &
-			nice -n 19 oggenc --raw-chan=${CHANNELS} --raw-rate=${INARATE} --quality=${AQUAL} -o "${OUTBASE}_audio.${AUDEXT}" ${FIFODIR}/audout
-			RETCODE=$?
-			sleep 10
-			if [ $RETCODE -ne 0 ]
-			then
-				scriptlog ERROR "Skipping $INPUT. Problem with audio pass."
-				scriptlog BREAK 
-				unset CHANID STARTTIME
-				continue
-			fi
-		fi
-	fi
-
-	if [ "$PASS" = "one" ]
-	then
-		[ "$JOBID" -ne 99999999 ] && setjobqueuecomment "$JOBID" "[${$}] Single video pass started."
-		scriptlog START "Starting $VIDEXT Single video pass trans of $INPUT. vbr $VBITRATE abr $ABITRATE."
-		if [ ! -f "$MENOUTFILE" ]
-		then
-			rm -f ${FIFODIR}/*out $TRANSOP $MENCODEROP
-			if [ -n "$MTINFILE" ]
-			then
-				nice -n 19 mythtranscode --profile autodetect $MTINFILE "$MTSOURCE" --fifodir $FIFODIR | tee -a $TRANSOP &
-			else
-				nice -n 19 mythtranscode --profile autodetect $MTSOURCE --fifodir $FIFODIR | tee -a $TRANSOP &
-			fi
-			sleep 10
-			nice -n 19 mencoder -idx -noskip \
-			${FIFODIR}/vidout -demuxer rawvideo -rawvideo w=${INWIDTH}:h=${INHEIGHT}:fps=${INFPS} \
-			-audiofile ${FIFODIR}/audout -audio-demuxer rawaudio -rawaudio rate=${INARATE}:channels=${CHANNELS} \
-			${VIDEOCODEC} \
-			${AUDIOCODEC} \
-			-vf ${POSTVIDFILTERS}${CROPSCALE}${ENDVIDFILTERS}harddup -sws 7 $MENOUTFPS \
-			$MENOUTOPT "$MENOUTFILE" | tee -a $MENCODEROP
-			RETCODE=$?
-			sleep 10
-		fi
-	else
-		scriptlog START "Starting $VIDEXT 1st video pass trans of $INPUT. vbr $VBITRATE abr $ABITRATE."
-		[ "$JOBID" -ne 99999999 ] && setjobqueuecomment "$JOBID" "[${$}] 1st video pass started."
-		if [ ! -f "$MENOUTFILE" ]
-		then
-			rm -f ${FIFODIR}/*out $TRANSOP $MENCODEROP
-			if [ -n "$MTINFILE" ]
-			then
-				nice -n 19 mythtranscode --profile autodetect $MTINFILE "$MTSOURCE" --fifodir $FIFODIR | tee -a $TRANSOP &
-			else
-				nice -n 19 mythtranscode --profile autodetect $MTSOURCE --fifodir $FIFODIR | tee -a $TRANSOP &
-			fi
-			sleep 10
-			nice -n 19 mencoder -idx \
-			${FIFODIR}/vidout -demuxer rawvideo -rawvideo w=${INWIDTH}:h=${INHEIGHT}:fps=${INFPS} \
-			-audiofile ${FIFODIR}/audout -audio-demuxer rawaudio -rawaudio rate=${INARATE}:channels=${CHANNELS} \
-			${VIDEOCODEC}:${PASSCMD}=1:turbo -passlogfile ${FIFODIR}/2pass.log \
-			${AUDIOCODEC} \
-			-vf ${POSTVIDFILTERS}${CROPSCALE}${ENDVIDFILTERS}harddup -sws 7 $MENOUTFPS \
-			$MENOUT1STPASS
-			RETCODE=$?
-			sleep 10
-			if [ $RETCODE -ne 0 ]
-			then
-				scriptlog ERROR "Skipping $INPUT. Problem with 1st video pass of 2."
-				scriptlog BREAK 
-				unset CHANID STARTTIME
-				continue
-			fi
-		fi
-
-		scriptlog START "Starting $VIDEXT 2nd video pass trans of $INPUT. vbr $VBITRATE abr $ABITRATE."
-		[ "$JOBID" -ne 99999999 ] && setjobqueuecomment "$JOBID" "[${$}] 2nd video pass started."
-		if [ ! -f "$MENOUTFILE" ]
-		then
-			rm -f ${FIFODIR}/*out $TRANSOP $MENCODEROP
-			if [ -n "$MTINFILE" ]
-			then
-				nice -n 19 mythtranscode --profile autodetect $MTINFILE "$MTSOURCE" --fifodir $FIFODIR | tee -a $TRANSOP &
-			else
-				nice -n 19 mythtranscode --profile autodetect $MTSOURCE --fifodir $FIFODIR | tee -a $TRANSOP &
-			fi
-			sleep 10
-			nice -n 19 mencoder -idx -noskip \
-			${FIFODIR}/vidout -demuxer rawvideo -rawvideo w=${INWIDTH}:h=${INHEIGHT}:fps=${INFPS} \
-			-audiofile ${FIFODIR}/audout -audio-demuxer rawaudio -rawaudio rate=${INARATE}:channels=${CHANNELS} \
-			${VIDEOCODEC}:${PASSCMD}=2 -passlogfile ${FIFODIR}/2pass.log \
-			${AUDIOCODEC} \
-			-vf ${POSTVIDFILTERS}${CROPSCALE}${ENDVIDFILTERS}harddup -sws 7 $MENOUTFPS \
-			$MENOUTOPT "$MENOUTFILE" | tee -a $MENCODEROP
-			RETCODE=$?
-			sleep 10
-		fi
-	fi
-
-	if [ $RETCODE -ne 0 ]
-	then
-		scriptlog ERROR "Skipping $INPUT. Problem with final video pass. $OUTPUT may exist."
-		scriptlog BREAK 
-		unset CHANID STARTTIME
-		continue
-	fi
-
-	if [ -n "$CHANID" ]
-	then
-		SEARCHTITLE=$(getsearchtitle "$CHANID" "$STARTTIME")
-		INETREF=$(lookupinetref "$SEARCHTITLE" "$CHANID" "$STARTTIME")
-		SERIESEPISODE=$(getseriesepisode "$CHANID" "$STARTTIME" "$INETREF")
-		TITLE=$(createfiletitleSEsubtitle "$CHANID" "$STARTTIME" "$SERIESEPISODE")
-	else
-		TITLE=$(basename "$OUTPUT" | sed -e 's/\.[am][vkp][iv4]$//')
-	fi
-
-	if [ "$CONTYPE" = "mp4" -o "$CONTYPE" = "mkv" ]
-	then
-		scriptlog START "Joining ${OUTBASE}_video.h264 ${OUTBASE}_audio.${AUDEXT} in $CONTYPE container."
-		[ "$JOBID" -ne 99999999 ] && setjobqueuecomment "$JOBID" "[${$}] Joining in $CONTYPE container."
-		if ! encloseincontainer "$OUTBASE" $OUTFPS $AUDEXT $CONTYPE $ASPECTSTR $TITLE
-		then
-			scriptlog ERROR "$CONTYPE container Failed for $OUTPUT."
-			scriptlog BREAK 
-			unset CHANID STARTTIME
-			continue
-		fi
-	fi
-
-	scriptlog START "Checking $OUTPUT."
-	[ "$JOBID" -ne 99999999 ] && setjobqueuecomment "$JOBID" "[${$}] Checking result."
-	if ! checkoutput "$INPUT" "$OUTPUT" "$MENCODEROP"
-	then
-		mv "$OUTPUT" "${OUTPUT}-SUSPECT"
-		scriptlog ERROR "$OUTPUT may be faulty. Saved as ${OUTPUT}-SUSPECT. $INPUT kept."
-		scriptlog BREAK 
-		unset CHANID STARTTIME
-		continue
-	fi
-
-	if [ -n "$COPYDIR" ]
-	then
-		# Is this a good idea?
-		#CATEGORY=$(getcategory "$CHANID" "$STARTTIME")
-		#[ -n "$CATEGORY" ]
-		#then
-		#	COPYDIR="${COPYDIR}/${CATEGORY}"
-		#fi
-		[ -d "$COPYDIR" ] || mkdir -p "$COPYDIR"
-		COPYFILE="${TITLE}.${CONTYPE}"
-		while [ -f "${COPYDIR}/${COPYFILE}" ]
-		do
-			COUNT=$(( ${COUNT:=0} + 1 ))
-			COPYFILE="${TITLE}_${COUNT}.${CONTYPE}"
-		done
-		if cp "$OUTPUT" "${COPYDIR}/${COPYFILE}"
-		then
-			rm -f "$OUTPUT"
-			scriptlog SUCCESS "Successful trans. $INPUT trans to ${COPYDIR}/${COPYFILE}. $INPUT kept"
-			MYTHVIDDIR=$(getsetting VideoStartupDir)
-			if [ "$QUICKTIME_MP4" = "YES" ]
-			then
-				OLDFILE="${COPYDIR}/${COPYFILE}"
-				COPYFILE=$(echo "$COPYFILE" | sed -e 's/mp4$/mov/')
-				mv "$OLDFILE" "${COPYDIR}/${COPYFILE}"
-			fi
-			if echo "$COPYDIR" | grep "$MYTHVIDDIR" >/dev/null 2>&1
-			then
-				createvideometadata "${COPYDIR}/${COPYFILE}" "$TITLE" "$ASPECTSTR" "$CHANID" "$STARTTIME" "$INETREF" "$SERIESEPISODE"
-			fi
-			if echo "$DELETEREC" | egrep -i 'ON|YES' >/dev/null 2>&1
-			then
-				scriptlog INFO "Deleting recording."
-				deleterecording "$CHANID" "$STARTTIME"
-			fi
-			NEWFILESIZE=$(du -h "${COPYDIR}/${COPYFILE}" | cut -f1)
-		else
-			scriptlog ERROR "Successful trans but copy to ${COPYDIR}/${COPYFILE} bad. $INPUT trans to $OUTPUT. $INPUT kept"
-		fi
-	else
-		if [ -n "$CHANID" ]
-		then
-			scriptlog INFO "Updating MythRecord db to $OUTPUT."
-			updatemetadata "$OUTPUT" "$CHANID" "$STARTTIME"
-			# mythcommflag --rebuild does not work correctly for avi files.
-			# Without this you can't edit files, but with it seeks don't work correctly.
-			#scriptlog INFO "Rebuilding seektable for $OUTPUT."
-			#mythcommflag --chanid "$CHANID" --starttime "$STARTTIME" --rebuild >/dev/null
-			rm -f "${INPUT}.png"
-		fi
-		[ "$DEBUG" = "ON" -o "$SAVENUV" = "ON" ] && mv "$INPUT" "${INPUT}OK-DONE"
-		[ "$DEBUG" != "ON" -a "$SAVENUV" != "ON" ] && rm -f "$INPUT"
-		scriptlog SUCCESS "Successful trans to $OUTPUT. $INPUT removed."
-		NEWFILESIZE=$(du -h "$OUTPUT" | cut -f1)
-	fi
-	# End time
-	ENCENDTIME=$(date +%Y-%m-%d\ %H:%M:%S)
-	logtranstime "$ENCSTARTTIME" "$ENCENDTIME" "$ORIGINALFILESIZE" "$NEWFILESIZE"
-	scriptlog BREAK 
-	unset CHANID STARTTIME
-done
-exit $FINALEXIT
-
-
-#STARTNUVINFO
-#!/usr/bin/perl
-# $Date: 2009/03/18 20:11:57 $
-# $Revision: 1.44 $
-# $Author: mythtv $
-#
-#  mythtv::nuvinfo.pm
-#
-#   exports one routine:  nuv_info($path_to_nuv)
-#   This routine inspects a specified nuv file, and returns information about
-#   it, gathered either from its nuv file structure
-#
-# Auric grabbed from nuvexport and Modified. Thanks to the nuvexport guys, I never would have been able to work this out
-#
-# finfo version width height desiredheight desiredwidth pimode aspect fps videoblocks audioblocks textsblocks keyframedist video_type audio_type audio_sample_rate audio_bits_per_sample audio_channels audio_compression_ratio audio_quality rtjpeg_quality rtjpeg_luma_filter rtjpeg_chroma_filter lavc_bitrate lavc_qmin lavc_qmax lavc_maxqdiff seektable_offset keyframeadjust_offset
-
-# Byte swap a 32-bit number from little-endian to big-endian
-    sub byteswap32 {
-       # Read in a 4-character string
-       my $in = shift;
-       my $out = $in;
-
-       if ($Config{'byteorder'} == 4321) {
-           substr($out, 0, 1) = substr($in, 3, 1);
-           substr($out, 3, 1) = substr($in, 0, 1);
-           substr($out, 1, 1) = substr($in, 2, 1);
-           substr($out, 2, 1) = substr($in, 1, 1);
-       }
-
-       return $out;
-    }
-
-# Byte swap a 64-bit number from little-endian to big-endian
-    sub byteswap64 {
-       # Read in a 8-character string
-       my $in = shift;
-       my $out = $in;
-
-       if ($Config{'byteorder'} == 4321) {
-           substr($out, 4, 4) = byteswap32(substr($in, 0, 4));
-           substr($out, 0, 4) = byteswap32(substr($in, 4, 4));
-       }
-
-       return $out;
-    }
-
-# Opens a .nuv file and returns information about it
-    sub nuv_info {
-        my $file = shift;
-        my(%info, $buffer);
-    # open the file
-        open(DATA, $file) or die "Can't open $file:  $!\n\n";
-    # Read the file info header
-        read(DATA, $buffer, 72);
-    # Byte swap the buffer
-        if ($Config{'byteorder'} == 4321) {
-            substr($buffer, 20, 4) = byteswap32(substr($buffer, 20, 4));
-            substr($buffer, 24, 4) = byteswap32(substr($buffer, 24, 4));
-            substr($buffer, 28, 4) = byteswap32(substr($buffer, 28, 4));
-            substr($buffer, 32, 4) = byteswap32(substr($buffer, 32, 4));
-            substr($buffer, 40, 8) = byteswap64(substr($buffer, 40, 8));
-            substr($buffer, 48, 8) = byteswap64(substr($buffer, 48, 8));
-            substr($buffer, 56, 4) = byteswap32(substr($buffer, 56, 4));
-            substr($buffer, 60, 4) = byteswap32(substr($buffer, 60, 4));
-            substr($buffer, 64, 4) = byteswap32(substr($buffer, 64, 4));
-            substr($buffer, 68, 4) = byteswap32(substr($buffer, 68, 4));
-        }
-    # Unpack the data structure
-        ($info{'finfo'},          # "NuppelVideo" + \0
-         $info{'version'},        # "0.05" + \0
-         $info{'width'},
-         $info{'height'},
-         $info{'desiredheight'},  # 0 .. as it is
-         $info{'desiredwidth'},   # 0 .. as it is
-         $info{'pimode'},         # P .. progressive, I .. interlaced  (2 half pics) [NI]
-         $info{'aspect'},         # 1.0 .. square pixel (1.5 .. e.g. width=480: width*1.5=720 for capturing for svcd material
-         $info{'fps'},
-         $info{'videoblocks'},    # count of video-blocks -1 .. unknown   0 .. no video
-         $info{'audioblocks'},    # count of audio-blocks -1 .. unknown   0 .. no audio
-         $info{'textsblocks'},    # count of text-blocks  -1 .. unknown   0 .. no text
-         $info{'keyframedist'}
-            ) = unpack('Z12 Z5 xxx i i i i a xxx d d i i i i', $buffer);
-    # Perl occasionally over-reads on the previous read()
-        seek(DATA, 72, 0);
-    # Read and parse the first frame header
-        read(DATA, $buffer, 12);
-    # Byte swap the buffer
-        if ($Config{'byteorder'} == 4321) {
-            substr($buffer, 4, 4) = byteswap32(substr($buffer, 4, 4));
-            substr($buffer, 8, 4) = byteswap32(substr($buffer, 8, 4));
-        }
-        my ($frametype,
-            $comptype,
-            $keyframe,
-            $filters,
-            $timecode,
-            $packetlength) = unpack('a a a a i i', $buffer);
-    # Parse the frame
-        die "Illegal nuv file format:  $file\n\n" unless ($frametype eq 'D');
-    # Read some more stuff if we have to
-        read(DATA, $buffer, $packetlength) if ($packetlength);
-    # Read the remaining frame headers
-        while (12 == read(DATA, $buffer, 12)) {
-        # Byte swap the buffer
-            if ($Config{'byteorder'} == 4321) {
-                substr($buffer, 4, 4) = byteswap32(substr($buffer, 4, 4));
-                substr($buffer, 8, 4) = byteswap32(substr($buffer, 8, 4));
-            }
-        # Parse the frame header
-            ($frametype,
-             $comptype,
-             $keyframe,
-             $filters,
-             $timecode,
-             $packetlength) = unpack('a a a a i i', $buffer);
-        # Read some more stuff if we have to
-            read(DATA, $buffer, $packetlength) if ($packetlength);
-        # Look for the audio frame
-            if ($frametype eq 'X') {
-            # Byte swap the buffer
-                if ($Config{'byteorder'} == 4321) {
-                    substr($buffer, 0, 4)  = byteswap32(substr($buffer, 0, 4));
-                    substr($buffer, 12, 4) = byteswap32(substr($buffer, 12, 4));
-                    substr($buffer, 16, 4) = byteswap32(substr($buffer, 16, 4));
-                    substr($buffer, 20, 4) = byteswap32(substr($buffer, 20, 4));
-                    substr($buffer, 24, 4) = byteswap32(substr($buffer, 24, 4));
-                    substr($buffer, 28, 4) = byteswap32(substr($buffer, 28, 4));
-                    substr($buffer, 32, 4) = byteswap32(substr($buffer, 32, 4));
-                    substr($buffer, 36, 4) = byteswap32(substr($buffer, 36, 4));
-                    substr($buffer, 40, 4) = byteswap32(substr($buffer, 40, 4));
-                    substr($buffer, 44, 4) = byteswap32(substr($buffer, 44, 4));
-                    substr($buffer, 48, 4) = byteswap32(substr($buffer, 48, 4));
-                    substr($buffer, 52, 4) = byteswap32(substr($buffer, 52, 4));
-                    substr($buffer, 56, 4) = byteswap32(substr($buffer, 56, 4));
-                    substr($buffer, 60, 8) = byteswap64(substr($buffer, 60, 8));
-                    substr($buffer, 68, 8) = byteswap64(substr($buffer, 68, 8));
-                }
-                my $frame_version;
-                ($frame_version,
-                 $info{'video_type'},
-                 $info{'audio_type'},
-                 $info{'audio_sample_rate'},
-                 $info{'audio_bits_per_sample'},
-                 $info{'audio_channels'},
-                 $info{'audio_compression_ratio'},
-                 $info{'audio_quality'},
-                 $info{'rtjpeg_quality'},
-                 $info{'rtjpeg_luma_filter'},
-                 $info{'rtjpeg_chroma_filter'},
-                 $info{'lavc_bitrate'},
-                 $info{'lavc_qmin'},
-                 $info{'lavc_qmax'},
-                 $info{'lavc_maxqdiff'},
-                 $info{'seektable_offset'},
-                 $info{'keyframeadjust_offset'}
-                 ) = unpack('ia4a4iiiiiiiiiiiill', $buffer);
-            # Found the audio data we want - time to leave
-                 last;
-            }
-        # Done reading frames - let's leave
-            else {
-                last;
-            }
-        }
-    # Close the file
-        close DATA;
-    # Make sure some things are actually numbers
-        $info{'width'}  += 0;
-        $info{'height'} += 0;
-    # HD fix
-        if ($info{'height'} == 1080) {
-            $info{'height'} = 1088;
-        }
-    # Make some corrections for myth bugs
-        $info{'audio_sample_rate'} = 44100 if ($info{'audio_sample_rate'} == 42501 || $info{'audio_sample_rate'} =~ /^44\d\d\d$/);
-    # NEIL Don't know why he hard set it?
-    #    $info{'aspect'} = '4:3';
-    # Cleanup
-        $info{'aspect'}   = aspect_str($info{'aspect'});
-        $info{'aspect_f'} = aspect_float($info{'aspect'});
-    # Return
-        return %info;
-    }
-
-    sub aspect_str {
-        my $aspect = shift;
-    # Already in ratio format
-        return $aspect if ($aspect =~ /^\d+:\d+$/);
-    # European decimals...
-        $aspect =~ s/\,/\./;
-    # Parse out decimal formats
-        if ($aspect == 1)          { return '1:1';    }
-        elsif ($aspect =~ m/^1.3/) { return '4:3';    }
-        elsif ($aspect =~ m/^1.7/) { return '16:9';   }
-        elsif ($aspect == 2.21)    { return '2.21:1'; }
-    # Unknown aspect
-        print STDERR "Unknown aspect ratio:  $aspect\n";
-        return $aspect.':1';
-    }
-
-    sub aspect_float {
-        my $aspect = shift;
-    # European decimals...
-        $aspect =~ s/\,/\./;
-    # In ratio format -- do the math
-        if ($aspect =~ /^\d+:\d+$/) {
-            my ($w, $h) = split /:/, $aspect;
-            return $w / $h;
-        }
-    # Parse out decimal formats
-        if ($aspect eq '1')        { return  1;     }
-        elsif ($aspect =~ m/^1.3/) { return  4 / 3; }
-        elsif ($aspect =~ m/^1.7/) { return 16 / 9; }
-    # Unknown aspect
-        return $aspect;
-    }
-
-my %info = nuv_info($ENV{'NUVINFOFILE'});
-my $c = 0;
-foreach my $key (split(' ', $ENV{'NUVINFOPROPS'})) {
-	($c++ < 1) and print "$info{$key}" or print ":$info{$key}";
-}
-print "\n";
-#ENDNUVINFO
-
-###########################################################################################################
-License Notes:
---------------
-
-This software product is licensed under the GNU General Public License
-(GPL). This license gives you the freedom to use this product and have
-access to the source code. You can modify this product as you see fit
-and even use parts in your own software. If you choose to do so, you
-also choose to accept that a modified product or software that use any
-code from mythnuv2mkv.sh MUST also be licensed under the GNU General Public
-License.
-
-In plain words, you can NOT sell or distribute mythnuv2mkv.sh, a modified
-version or any software product based on any parts of mythnuv2mkv.sh as a
-closed source product. Likewise you cannot re-license this product and
-derivates under another license other than GNU GPL.
-
-See also the article, "Free Software Matters: Enforcing the GPL" by
-Eben Moglen. http://emoglen.law.columbia.edu/publications/lu-13.html
-###########################################################################################################
-- 
cgit v0.12

