#! /bin/bash # Authored by Evuraan_AT_gmail_DOT_com # ABSOLUTELY NO WARRANTY, to the extent permitted by # applicable law. # YMMV. # Use at your own risk. pvr="/dev/video0" t="$RANDOM-$RANDOM" out="/tmp/$t.mpg" #mark="3040" mark="1727" blank="0" say="/usr/bin/logger -p info -t mythstb-check" POWEROFF="0" POWERON="0" wakeup="irsend SEND_ONCE blaster1 POWER" info="irsend SEND_ONCE blaster1 DISPLAY" send_power_on() { $say "`date` STB seems to be turned off, last count was $blank, attempting to Power it on" & $wakeup 1>/dev/null 2>/dev/null || : sleep 2 } scan_images(){ for i in `echo /tmp/$t*.jpeg` do if [ -s "$i" ] then blank="`jp2a $i --invert --size=72x24 | sed -e 's/W/M/g' -e 's/./& \n/g'|grep -c "M"`" rm -f "$i" 1>/dev/null 2>/dev/null || : else : fi [ "$blank" -gt "$mark" ] && export POWERON="100" [ "$blank" -le "$mark" ] && export POWEROFF="100" done if [ "$POWERON" -eq "100" -a "$POWEROFF" -ne "100" ] then # its off send_power_on else # power is on, non blank frames $say "`date` STB seems to be turned on, last count was $blank" : fi } purge_stuff(){ [ -f "$out" ] && rm -f "$out" 1>/dev/null >/dev/null || : } /usr/local/bin/ivtv-tune -c 3 -d "$pvr" 1>/dev/null 2>/dev/null || : #ivtv-tune -c 3 -d "$pvr" 1>/dev/null 2>/dev/null & cd /tmp $info & dd if="$pvr" of="$out" bs=64K count=2 1>/dev/null 2>/dev/null if [ -s "$out" ] then ffmpeg -i $out -f image2 -vcodec mjpeg /tmp/$t%d.jpeg 1>/dev/null 2>/dev/null [ -s "/tmp/${t}1.jpeg" ] && scan_images else $say "`date` Unable to query $pvr, as it seems to be in use." sleep 2 : fi purge_stuff &