view TOOLS/subsearch.sh @ 37159:d4fbf2eb4a04

Ensure up-to-dateness of global_sub information upon request. Some demuxers (like mpg) can detect subtitles only while playing, which is the reason why MPlayer always - indirectly - calls update_global_sub_size() prior to dealing with subtitles. Functions mpctx_get_global_sub_size() and mpctx_get_global_sub_pos(), however, merely return last determined values, thus missing information that may have been arisen after MPlayer has checked last for subtitles (when playback started). Merge the two mpctx_get_global_sub_*() functions into one for easier handling. Retrieve global_sub pos by a mp_property_do("sub") command which performs the necessary update of both global_sub variables, pos and size. Reported by Lode Leroy, lode.leroy gmail com.
author ib
date Sun, 17 Aug 2014 18:06:56 +0000
parents 4d8489f21983
children
line wrap: on
line source

#!/bin/sh
#
# Collects all the appropriate subtitle files in a given directory and
# its subdirectories, no matter what the filename is.
# Use this together as: mplayer -sub `subsearch.sh` movie
# Author: Alex
#

[ $1 ] && cd `dirname $1`

_sub_names=""

one_dir_search() {
    for i in $dir/*
    do
	case "`echo $i | tr [:upper:] [:lower:]`" in
		*.sub|*.srt|*.mps|*.txt) _sub_names="$i,$_sub_names" ;;
		*) ;;
	esac
    done
}

dir="."
one_dir_search

# add subdirectories too
for dir in *
do
    [ -d $dir ] && one_dir_search
done

_len="`echo $_sub_names | wc -c`"
_len=$((_len-2))
echo $_sub_names | cut -b -"$_len"