diff options
-rw-r--r-- | abs/core-testing/linhes-scripts/PKGBUILD | 30 | ||||
-rwxr-xr-x | abs/core-testing/linhes-scripts/limit-mythcommflag.sh | 95 | ||||
-rwxr-xr-x | abs/core-testing/linhes-scripts/removecommercials.sh (renamed from abs/extra-testing/removecommercials/removecommercials) | 28 | ||||
-rw-r--r-- | abs/core-testing/tweaker/PKGBUILD | 4 | ||||
-rwxr-xr-x | abs/core-testing/tweaker/bin/twk_general.pl | 2 | ||||
-rwxr-xr-x | abs/extra-testing/removecommercials/PKGBUILD | 11 |
6 files changed, 122 insertions, 48 deletions
diff --git a/abs/core-testing/linhes-scripts/PKGBUILD b/abs/core-testing/linhes-scripts/PKGBUILD index f671142..02fba0e 100644 --- a/abs/core-testing/linhes-scripts/PKGBUILD +++ b/abs/core-testing/linhes-scripts/PKGBUILD @@ -3,7 +3,7 @@ pkgname=linhes-scripts pkgver=1 -pkgrel=57 +pkgrel=58 pkgdesc="Various scripts that help to make LinHES, LinHES." arch=('i686' 'x86_64') license=('GPL2') @@ -37,6 +37,7 @@ install_hulu.sh update_schema_021_to_022.sh upgrade_to_0.22.sh remove_php_mythvideo.sh +removecommercials.sh ) build() { @@ -102,3 +103,30 @@ md5sums=('f56985b2d602e11dc1e10d3e7848b2a5' '65629302a4d2c3adf88cdf0ebc10d493' 'ea5492d4dab8271db20cb84416c001dc' 'd7c7914225ec86bf3ea46104a364f977') +md5sums=('f56985b2d602e11dc1e10d3e7848b2a5' + '623b6e9ba6cc4a19771005e750f337a7' + '9ae2cd7a0c42d57ad8b5f515d7d60196' + '1274bad3fb7296f00acd2d44804bad14' + 'b4f858834ea92418208ab496ca39ad32' + '6b6e7d34a4bda6d608d150039adefd07' + '3fe554dbbf7d09e1f9925032ba888bf5' + '18263972b6326e140bbef0bb7dfa2da9' + '410795ef9039e4c6c0484e706ecfd567' + '0750d7c65109d12aa536f312a38410d1' + 'ac2a4a6b4100f4d7bfb9ecd9356c8c6e' + 'd2b475821f902c5e081e7da43a35e6ac' + '95c092f67036a361ef7a57436f44332e' + '3b776bbff68906ddc2f62b7e0dde3fe4' + '15f3143d2b1369da431e4268029aba40' + '3d0adf26280cde55a0c47188fff34826' + '93aaa2940e33ec9ebb305b839ac46a3e' + '972e42e02a11575da91f5e051d4de1d2' + 'b527b01d119d3bc33b8fa69bdf1082bb' + 'c537c44156d8404016cc4b405b092d45' + '4e66f302a77f1a857476e7f289d0c157' + 'be324dba44ae96676973a74421944853' + 'c9dc0dd07369622879a000247ac55074' + '65629302a4d2c3adf88cdf0ebc10d493' + 'ea5492d4dab8271db20cb84416c001dc' + 'd7c7914225ec86bf3ea46104a364f977' + '25c1baeb97a49656456ae33f7e7a9f06') diff --git a/abs/core-testing/linhes-scripts/limit-mythcommflag.sh b/abs/core-testing/linhes-scripts/limit-mythcommflag.sh index 8ca61c7..5cd81bb 100755 --- a/abs/core-testing/linhes-scripts/limit-mythcommflag.sh +++ b/abs/core-testing/linhes-scripts/limit-mythcommflag.sh @@ -1,6 +1,7 @@ #!/bin/bash -# limit-mythcommflag.sh v0.1 05/17/09 -# Utility to automatically limit mythcommflag if CPU usage is above a certain level. +# limit-mythcommflag.sh v0.2 03/2/10 +# Utility to automatically limit mythcommflag if CPU system load is above a certain level +# and if backend usage is above a certain level # Uses cpulimit from http://cpulimit.sourceforge.net/ # Free for any use. # Installation: @@ -8,47 +9,83 @@ # chmod +x /usr/LH/bin/limit-mythcommflag.sh # Usage: Executed from runit limit-mythcommflag at boot -# Threshold for when mythcommflag will be paused -CPUTHRESHOLD=43 - -# Limit mythcommflag to percentage -LIMITCPU=20 - -# Log file to write (use /dev/null for no log) -#LOG=/var/log/mythtv/limit-mythcommflag.log -LOG=/dev/null - +#-----OPTIONS______ # Number of seconds to wait between checking for mythcommflag process SLEEP=5 +# Backend and Frontend thresholds above which mythcommflag is stopped +BETHRESHOLD=30 +FETHRESHOLD=55 -#sleep $SLEEP +# FUNCTIONS +limit_cpu() +# Arg_1 = LimitedRangeNum; Arg_2 = CPULimitPercent; Arg_3 = Commflag PID +{ +if [ $ALREADYLIMITED -ne $1 ] ; then + if [ $cpulimit_pid -ne 0 ]; then + kill $cpulimit_pid + fi + cpulimit -p $3 -l $2 & + cpulimit_pid=$! + ALREADYLIMITED=$1 +fi +} -touch $LOG +stop_limit() +{ +if [ $ALREADYLIMITED -ne 0 ]; then + if [ $cpulimit_pid -ne 0 ]; then + kill $cpulimit_pid + cpulimit_pid=0 + fi + ALREADYLIMITED=0 +fi +} ALREADYLIMITED=0 +STOPPED=0 +cpulimit_pid=0 while true; do PROCCOMMFLAG=`pidof mythcommflag` - if [ -n "${PROCCOMMFLAG}" ] - then - FRONTENDCPU=`top -bn1u mythtv | grep mythfrontend | awk '{ print $9 }'` - if [ "$FRONTENDCPU" -ge "$CPUTHRESHOLD" ] - then - echo "$(date) FE CPU $FRONTENDCPU% is greater than $CPUTHRESHOLD%, LIMIT Commflagging" # >> $LOG - if [ $ALREADYLIMITED -eq 0 ]; then - cpulimit -e mythcommflag -l $LIMITCPU & - cpulimit_pid=$! - ALREADYLIMITED=1 + if [ -n "${PROCCOMMFLAG}" ]; then + BACKENDCPU=`top -bn1u mythtv | grep -m 1 mythbackend | awk '{ print $9 }'` + FRONTENDCPU=`top -bn1u mythtv | grep -m 1 mythfrontend | awk '{ print $9 }'` + if [ "$FRONTENDCPU" = "" ]; then + FRONTENDCPU=0 + fi + if [ "$BACKENDCPU" -ge "$BETHRESHOLD" ]; then + if [ "$FRONTENDCPU" -ge $FETHRESHOLD ]; then + if [ $STOPPED -eq 0 ]; then + kill -s STOP $PROCCOMMFLAG + STOPPED=1 + fi + else + if [ $STOPPED -eq 1 ]; then + kill -s CONT $PROCCOMMFLAG + STOPPED=0 + fi + stop_limit fi else - echo "$(date) FE CPU $FRONTENDCPU% is less than $CPUTHRESHOLD%, UNLIMIT Commflagging" #>> $LOG - if [ $ALREADYLIMITED -eq 1 ]; then - kill $cpulimit_pid - ALREADYLIMITED=0 + if [ $STOPPED -eq 1 ]; then + kill -s CONT $PROCCOMMFLAG + STOPPED=0 fi + case $FRONTENDCPU in + [0-9]|[0-3][0-9] ) + stop_limit;; + [4-5][0-9] ) + limit_cpu "1" "70" $PROCCOMMFLAG;; + [6-7][0-9] ) + limit_cpu "2" "50" $PROCCOMMFLAG;; + [8-9][0-9] ) + limit_cpu "3" "20" $PROCCOMMFLAG;; + [1][0-9][0-9] ) + limit_cpu "4" "10" $PROCCOMMFLAG;; + esac fi # else -# echo "No COMMFLAG Process Active" >> $LOG +# echo "No COMMFLAG Process Active" fi sleep $SLEEP done diff --git a/abs/extra-testing/removecommercials/removecommercials b/abs/core-testing/linhes-scripts/removecommercials.sh index d7b910f..70e2e52 100755 --- a/abs/extra-testing/removecommercials/removecommercials +++ b/abs/core-testing/linhes-scripts/removecommercials.sh @@ -1,6 +1,7 @@ #!/bin/sh -# remove commercials from recording -# version 0.1 +# remove commercials from recordings using the user generated cutlist or +# optionally using the mythcommflag generated cutlist. +# version 0.2 3/24/2010 # usage: # first parameter must be %DIR% of the recording @@ -10,7 +11,14 @@ # fifth parameter must be %JOBID% for the User Job status to be updated in MythTV # in the mythtv setup screen invoke this script like this: # MYTHTV User Job Command: -# /usr/LH/bin/removecommercials "%DIR%" "%FILE%" "%CHANID%" "%STARTTIME%" "%JOBID%" +# /usr/LH/bin/removecommercials.sh "%DIR%" "%FILE%" "%CHANID%" "%STARTTIME%" "%JOBID%" + +#-------OPTIONS---------------- +# If no cutlist is found USE_MYTHCOMMFLAG_CUTLIST=YES will use mythcommflag +# to generate a cutlist. +# WARNING: Using this option could result in part of the recording being cut if +# mythcommflag incorrectly flagged the commercial. +USE_MYTHCOMMFLAG_CUTLIST=NO # Auguments passed from command line VIDEODIR=$1 @@ -25,6 +33,8 @@ DBUSERNAME=${DBUSERNAME:-"mythtv"} DBPASSWORD=${DBPASSWORD:-"mythtv"} SQLCMD="mysql -u $DBUSERNAME --password=$DBPASSWORD -h $BACKEND_HOSTNAME mythconverg -e" +LOG="/var/log/mythtv/removecommercials.log" + #------FUNCTIONS--------------- update_comment() # Arg_1 = COMMENT @@ -141,8 +151,16 @@ check_myth_jobcmds # check for cutlist MYTHCOMMFRAMES=`mythcommflag --getcutlist -f $VIDEODIR/$FILENAME | grep 'Cutlist:' | cut -d \ -f 2` + +if [ $USE_MYTHCOMMFLAG_CUTLIST=YES ] && [ -z "$MYTHCOMMFRAMES" ]; then + echo "Generating cutlist..." + update_comment "Generating cutlist..." + /usr/bin/nice -n19 /usr/bin/mythcommflag --gencutlist -f $VIDEODIR/$FILENAME + MYTHCOMMFRAMES=`mythcommflag --getcutlist -f $VIDEODIR/$FILENAME | grep 'Cutlist:' | cut -d \ -f 2` +fi + if [ -n "$MYTHCOMMFRAMES" ]; then - echo "Extracting cutlist..." + echo "Removing Commercials..." update_comment "Removing Commercials..." ( /usr/bin/nice -n19 /usr/bin/mythtranscode -c $CHANID -s $STARTTIME -o $TMPFILE $MPEG --honorcutlist --showprogress > $STATUSFILE 2>&1 ; echo "Done" >> $STATUSFILE ) & TPID=$! @@ -159,7 +177,7 @@ if [ -n "$MYTHCOMMFRAMES" ]; then echo "Moving file..." update_comment "Moving file..." if [ `$SQLCMD "select data from settings where value='SaveTranscoding';" | sed '/[0-9]/!d'` = 1 ]; then - echo "DB is set to save transcodeing" + echo "DB is set to save transcoding" mv $VIDEODIR/$FILENAME $VIDEODIR/$FILENAME.old fi mv $TMPFILE $VIDEODIR/$FILENAME diff --git a/abs/core-testing/tweaker/PKGBUILD b/abs/core-testing/tweaker/PKGBUILD index 79fc20d..85df000 100644 --- a/abs/core-testing/tweaker/PKGBUILD +++ b/abs/core-testing/tweaker/PKGBUILD @@ -1,6 +1,6 @@ pkgname=tweaker pkgver=1 -pkgrel=55 +pkgrel=56 pkgdesc="applies tweaks to the baseline configuration and attempts to optimize settings for the hardware it finds" arch=('i686' 'x86_64') @@ -41,3 +41,5 @@ build() { # Copy our tweaker Perl modules for general use install -m0555 lib/Tweaker/* $startdir/pkg/usr/lib/perl5/vendor_perl/Tweaker/ } +md5sums=('77fab526e866b273091e6816135ef25f' + 'e897b87dd308f9562d0867de9fab2de0') diff --git a/abs/core-testing/tweaker/bin/twk_general.pl b/abs/core-testing/tweaker/bin/twk_general.pl index 23572bc..f89912c 100755 --- a/abs/core-testing/tweaker/bin/twk_general.pl +++ b/abs/core-testing/tweaker/bin/twk_general.pl @@ -410,7 +410,7 @@ sub implement_option { change_or_make_setting('UserJob1', 'myth2ipod \"%DIR%\" \"%FILE%\"'); change_or_make_setting('UserJob2', 'myt2xvid3 \"%DIR%\" \"%FILE%\"'); change_or_make_setting('UserJob3', 'myth2x264 \"%DIR%/%FILE%\" \"%TITLE% - %SUBTITLE%\" \"%CHANID%\" \"%STARTTIME%\" \"%JOBID%\"'); - change_or_make_setting('UserJob4', 'removecommercials \"%DIR%\" \"%FILE%\" \"%CHANID%\" \"%STARTTIME%\" \"%JOBID%\"'); + change_or_make_setting('UserJob4', 'removecommercials.sh \"%DIR%\" \"%FILE%\" \"%CHANID%\" \"%STARTTIME%\" \"%JOBID%\"'); change_or_make_setting('UserJobDesc1', 'Transcode for iPod'); change_or_make_setting('UserJobDesc2', 'Transcode to xvid'); change_or_make_setting('UserJobDesc3', 'Transcode to h264'); diff --git a/abs/extra-testing/removecommercials/PKGBUILD b/abs/extra-testing/removecommercials/PKGBUILD deleted file mode 100755 index 312f965..0000000 --- a/abs/extra-testing/removecommercials/PKGBUILD +++ /dev/null @@ -1,11 +0,0 @@ -pkgname=removecommercials -pkgver=0.1 -pkgrel=1 -arch=("i686") -pkgdesc="A multimedia framework based on the MPEG-4 Systems standard" -source=( removecommercials ) - -build() { - cd $startdir - install -D -m 755 removecommercials $startdir/pkg/usr/bin/removecommercials -} |