summaryrefslogtreecommitdiffstats
path: root/TOOLS/vf_dlopen/ildetect.sh
diff options
context:
space:
mode:
Diffstat (limited to 'TOOLS/vf_dlopen/ildetect.sh')
-rwxr-xr-xTOOLS/vf_dlopen/ildetect.sh68
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