view TOOLS/mplmult.sh @ 32204:0a81c931ecb5

Mark functs not used outside of the file as static, remove from header; fixes: libvo/vesa_lvo.c:187: warning: no previous prototype for 'vlvo_draw_slice' libvo/vesa_lvo.c:205: warning: no previous prototype for 'vlvo_draw_frame' libvo/vesa_lvo.c:214: warning: no previous prototype for 'vlvo_flip_page' libvo/vesa_lvo.c:275: warning: no previous prototype for 'vlvo_draw_osd' libvo/vesa_lvo.c:312: warning: no previous prototype for 'vlvo_query_info'
author diego
date Fri, 17 Sep 2010 10:31:24 +0000
parents 998475fffe0c
children 7bdb1c022122
line wrap: on
line source

#!/bin/sh
# example how to output video on multiple windows in sync.
# might be even more useful in combination with vo ggi
# to distribute the video arbitrarily

dir=/tmp/$$
count=$1
shift

if test 0"$count" -lt 1; then
  echo "At least 1 slave instance must be used."
  echo ""
  echo "Usage:"
  echo "./mplmult.sh n mplayer-opts"
  echo "n              number of MPlayer instances that display the video"
  echo "mplayer-opts   anything you would specify to mplayer,"
  echo "               more than one file will usually not work"
  exit 1
fi

mkdir -m 700 $dir
if test $? -ne 0; then
  echo "Could not create temp dir!"
  exit 1
fi

mkfifo $dir/stream.yuv
i=1
fifo_list=""
while test $i -le $count; do
  fifo_list="$dir/mp$i $fifo_list"
  i=$(($i+1))
done

mkfifo $fifo_list
(cat $dir/stream.yuv | tee $fifo_list > /dev/null ) &
for fifo in $fifo_list; do
  # -benchmark is neccessary so that it will not do any timing.
  # the master instance already takes care of it and not specifying
  # it will break A-V sync.
  mplayer -nocache -quiet -benchmark "$fifo" > /dev/null 2>&1 &
done
mplayer -nocache -fixed-vo -vo yuv4mpeg:file=$dir/stream.yuv "$@"

rm -rf $dir