diff options
Diffstat (limited to 'TOOLS/vf_dlopen/ildetect.sh')
-rwxr-xr-x | TOOLS/vf_dlopen/ildetect.sh | 68 |
1 files changed, 57 insertions, 11 deletions
diff --git a/TOOLS/vf_dlopen/ildetect.sh b/TOOLS/vf_dlopen/ildetect.sh index d5c7549e10..6fd924e224 100755 --- a/TOOLS/vf_dlopen/ildetect.sh +++ b/TOOLS/vf_dlopen/ildetect.sh @@ -9,30 +9,76 @@ case "$0" in ;; esac -set -e +: ${MPV:=mpv} +: ${ILDETECT_MPV:=$MPV} +: ${ILDETECT_MPV:=$MPV} +: ${ILDETECT_MPVFLAGS:=--start=35% --length=35} +: ${ILDETECT_DRY_RUN:=} +: ${ILDETECT_QUIET:=} +: ${ILDETECT_RUN_INTERLACED_ONLY:=} +: ${MAKE:=make} -make -C "$MYDIR" +# exit status: +# 0 progressive +# 1 telecine +# 2 interlaced +# 8 unknown +# 15 compile fail +# 16 detect fail +# 17+ mpv's status | 16 + +$MAKE -C "$MYDIR" ildetect.so || exit 15 testfun() { - ${MPV:-mpv} "$@" \ - -vf dlopen="$MYDIR/ildetect.so" \ - -o /dev/null -of rawvideo -ofopts-clr -ovc rawvideo -ovcopts-clr -no-audio \ - | tee /dev/stderr | grep "^ildetect:" + $ILDETECT_MPV "$@" \ + --vf=dlopen="$MYDIR/ildetect.so" \ + --o= --vo=null --no-audio --untimed \ + $ILDETECT_MPVFLAGS \ + | { if [ -n "$ILDETECT_QUIET" ]; then cat; else tee /dev/stderr; fi } \ + | grep "^ildetect:" } out=`testfun "$@"` case "$out" in *"probably: PROGRESSIVE"*) - ${MPV:-mpv} "$@" + [ -n "$ILDETECT_DRY_RUN" ] || \ + [ -n "$ILDETECT_RUN_INTERLACED_ONLY" ] || \ + $ILDETECT_MPV "$@" + r=$? + [ $r -eq 0 ] || exit $(($r | 16)) + exit 0 + ;; + *"probably: TELECINED"*) + out2=`ILDETECT_MPVFLAGS="$ILDETECT_MPVFLAGS --vf-pre=pullup,scale" testfun "$@"` + case "$out2" in + *"probably: TELECINED"*|*"probably: INTERLACED"*) + [ -n "$ILDETECT_DRY_RUN" ] || \ + $ILDETECT_MPV "$@" -vf-pre yadif + r=$? + [ $r -eq 0 ] || exit $(($r | 16)) + exit 2 + ;; + *) + [ -n "$ILDETECT_DRY_RUN" ] || \ + $ILDETECT_MPV "$@" -vf-pre pullup + r=$? + [ $r -eq 0 ] || exit $(($r | 16)) + exit 1 + ;; + esac ;; *"probably: INTERLACED"*) - ${MPV:-mpv} "$@" -vf-pre yadif + [ -n "$ILDETECT_DRY_RUN" ] || \ + $ILDETECT_MPV "$@" -vf-pre yadif + r=$? + [ $r -eq 0 ] || exit $(($r | 16)) + exit 2 ;; - *"probably: TELECINED"*) - ${MPV:-mpv} "$@" -vf-pre pullup + *"probably: "*) + exit 8 ;; *) - false + exit 16 ;; esac |