rendered paste body#!/bin/bash
cleanup()
{
echo >&2
echo "Cleaning up..." >&2
for PID in $impids; do
if kill -0 $PID 2> /dev/null; then
kill $PID 2> /dev/null
fi
# get mean if it still exists
if kill -0 $PID 2> /dev/null; then
kill -9 $PID 2> /dev/null
fi
done
# other cleanup stuff snipped
}
max_procs=$(grep -cs ^processor /proc/cpuinfo)
mkfifo "$WORK_DIR/enc.fifo" 2>/dev/null
"${TOYUV_CMD[@]}" < "$WORK_DIR/enc.fifo" | "${IMGENC_CMD[@]}" 2>/dev/null &
# make intermediary fifos for images. They will get catted to enc.fifo
for ((n=1; n<=max_procs; n++)); do
[[ ! -e "$WORK_DIR/temp-${n}.ppm" ]] && mkfifo "$WORK_DIR/temp-${n}.ppm"
done
if $MENU_FADE ; then
unset num_procs
for ((frame=0; frame<ANIMENU_ENDFRAME; frame++)); do
((num_procs++)) # how many processes are running
out_ppm="$WORK_DIR/temp-${num_procs}.ppm" # current frame
# simplified command list
MONTAGE_CMD01=(convert -size $VIDSIZE xc:none -background none \
${sc_cmd[@]} $SC_VIDEO_CMD $MOSAIC)
MONTAGE_CMD02=(convert -size $VIDSIZE -background none \
- ${sc_thumb_title_cmd[@]} -mosaic)
MONTAGE_CMD4=(composite -dissolve $C -gravity $TITLE_GRAVITY \
-geometry ${title_xoffset}${title_yoffset} $WORK_DIR/title_txt.png - \
-background none -depth 8 ppm:- )
if $PLAYALL ; then
MONTAGE_CMD5=(composite -dissolve $S -gravity SouthEast -geometry \
$PLAYALL_BTN_OFFSETS "$WORK_DIR/Playall.png" - \
-background none miff:-)
else
MONTAGE_CMD5=(cat)
fi
if $TITLESET_MODE && ! $VMGM_ONLY && $VMGM_MENU; then
MONTAGE_CMD6=(composite -dissolve $S -gravity $RTN_BTN_GRAVITY \
-geometry $RTN_BTN_OFFSETS "$WORK_DIR/Main.png" - \
-background none miff:-)
else
MONTAGE_CMD6=(cat)
fi
MONTAGE_CMD7=(convert - -depth 8 "$out_ppm")
# removed if else block to simplify
{ "${MONTAGE_CMD1[@]}" miff:- | "${MONTAGE_CMD2[@]}" miff:- |
"${MONTAGE_CMD5[@]}" | "${MONTAGE_CMD6[@]}" |
"${MONTAGE_CMD4[@]}" | "${MONTAGE_CMD7[@]}" ; } &
impids="$impids $!"
unset ANI_PICS sc_cmd
if ((num_procs==max_procs || frame >= ANIMENU_ENDFRAME-1)); then
spin "\rProcessing frame $(($frame + 1)) " >&2
cat "${ppm_fifos[@]}"
wait $impids
unset num_procs ppm_fifos impids
fi
done > "$WORK_DIR/enc.fifo"
fi