diff options
author | Greg Frost <gregfrost1@bigpond.com> | 2009-08-04 01:22:18 (GMT) |
---|---|---|
committer | Greg Frost <gregfrost1@bigpond.com> | 2009-08-04 01:22:18 (GMT) |
commit | e85c92735d5ce5f790cf95a0ea02e08c264e170a (patch) | |
tree | 037a1921e8f6899fea9b5daaaf998ec746367298 /abs/core-testing/linhes-scripts/src/vdpau-detector | |
parent | 82af083e07eb189ac930678224a5748551cf69f8 (diff) | |
parent | 120212bdd438d98c52aaab5b43443258be81a7e4 (diff) | |
download | linhes_pkgbuild-e85c92735d5ce5f790cf95a0ea02e08c264e170a.zip linhes_pkgbuild-e85c92735d5ce5f790cf95a0ea02e08c264e170a.tar.gz linhes_pkgbuild-e85c92735d5ce5f790cf95a0ea02e08c264e170a.tar.bz2 |
Merge branch 'master' of ssh://gregfrost@knoppmyth.net/mount/repository/LinHES-PKGBUILD
Diffstat (limited to 'abs/core-testing/linhes-scripts/src/vdpau-detector')
-rwxr-xr-x | abs/core-testing/linhes-scripts/src/vdpau-detector | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/abs/core-testing/linhes-scripts/src/vdpau-detector b/abs/core-testing/linhes-scripts/src/vdpau-detector new file mode 100755 index 0000000..c8cd155 --- /dev/null +++ b/abs/core-testing/linhes-scripts/src/vdpau-detector @@ -0,0 +1,103 @@ +#!/bin/bash + +# This script written by an anonymous author +# Original page http://www.knoppmythwiki.org/index.php?page=HardwareAcceleratedVideo +# +# It's modded to allow vdpau switches commands to pass to a modded version of Bob Igo's +# mplayer-resumer.pl wrapper for mplayer +# +# User can customize commandline for mplayer by editing the appropriate sections below +# They include BASIC_OPTS, NOHD_OPTS, and LOW_OPTS + +IAM=$0 +FILE=$1 + +#if no input display usage +if [[ -z "$FILE" ]]; then + echo usage: $0 /path/to/file + exit +fi + +MPLAYER="/usr/bin/mplayer" + +# For a complete list of options, see the mplayer DOCS +# http://www.mplayerhq.hu/DOCS/man/en/mplayer.1.html +# + +# Options for all videos: fullscreen, zoom, and use software eq +BASIC_OPTS="-fs -zoom" + +# Options for non-HD videos: force aspect to 16x10 (to ensure video fills TV screen) +# You'll need to modify the ratio if your res differs +# Example: 1920x1080 = 1.778 = 16:9 +# Example: 1680x1050 = 1.600 = 16:10 +# Example: 1280x720 = 1.778 = 16:9 + +NOHD_OPTS="-aspect 16:10" + +# Options for normal and lowres videos: use XV forcing 16x10 +LOW_OPTS="-aspect 16:10 -vo xv" + +VWIDTH=$($MPLAYER -identify -vo vdpau -frames 0 "$FILE" | grep ID_VIDEO_WIDTH | cut -c 16-25) +VCODEC=$($MPLAYER -identify -vo vdpau -frames 0 "$FILE" | grep ID_VIDEO_CODEC | cut -c 16-25) + +# all following echo commands can be uncommented for debug info +#echo . +#echo " DEBUG info: video codec: $VCODEC" +#echo " DEBUG info: video width: $VWIDTH" +#echo " Debug info: + + +# Test for codec, if it's supported by VDPAU, set options to use it. Then, check if the video is in HD, +# and if it's not, set non-HD options. +case $VCODEC in +ffh264) + #echo -e "Playing h.264 file $FILE:\n" + MPLAYEROPTS="$BASIC_OPTS -vo vdpau -vc ffh264vdpau" + if [ $VWIDTH -lt 1280 ] && [ $VWIDTH != 0 ]; then + MPLAYEROPTS="$MPLAYEROPTS $NOHD_OPTS" + fi + if [ $VWIDTH -lt 700 ] && [ $VWIDTH != 0 ]; then + MPLAYEROPTS="$BASIC_OPTS $LOW_OPTS" + fi + ;; +ffmpeg2) + #echo -e "Playing MPEG2 file $FILE:\n" + MPLAYEROPTS="$BASIC_OPTS -vo vdpau -vc ffmpeg12vdpau" + if [ $VWIDTH -lt 1280 ] && [ $VWIDTH != 0 ]; then + MPLAYEROPTS="$MPLAYEROPTS $NOHD_OPTS" + fi + if [ $VWIDTH -lt 700 ] && [ $VWIDTH != 0 ]; then + MPLAYEROPTS="$BASIC_OPTS $LOW_OPTS" + fi + ;; +ffwmv3) + #echo -e "Playing WMV3 file $FILE:\n" + MPLAYEROPTS="$BASIC_OPTS -vo vdpau -vc ffwmv3vdpau" + if [ $VWIDTH -lt 1280 ] && [ $VWIDTH != 0 ]; then + MPLAYEROPTS="$MPLAYEROPTS $NOHD_OPTS" + fi + if [ $VWIDTH -lt 700 ] && [ $VWIDTH != 0 ]; then + MPLAYEROPTS="$BASIC_OPTS $LOW_OPTS" + fi + ;; +# VC-1 is largely unsupported by nvidia - uncomment this section if you're sure your card supports it. +ffvc1) + #echo -e "Playing VC-1 file $FILE:\n" + MPLAYEROPTS="$BASIC_OPTS -vo vdpau -vc ffvc1vdpau" + if [ $VWIDTH -lt 1280 ] && [ $VWIDTH != 0 ]; then + MPLAYEROPTS="$MPLAYEROPTS $NOHD_OPTS" + fi + if [ $VWIDTH -lt 700 ] && [ $VWIDTH != 0 ]; then + MPLAYEROPTS="$BASIC_OPTS $LOW_OPTS" + fi + ;; +*) + #echo -e "Playing normal file $FILE:\n" + # Use XV and yadif filter with 'normal' (DiVX, XViD, old WMV, etc.) files, and force 16:9 + # -vf filters only seem to work with XV, or at least they don't work w/VDPAU + MPLAYEROPTS="$BASIC_OPTS $LOW_OPTS" + ;; +esac + +echo $MPLAYEROPTS |