Subversion Repositories pub

Compare Revisions

No changes between revisions

Ignore whitespace Rev 420 → Rev 432

/video-contact-sheet/trunk/Makefile
7,6 → 7,9
all:
@echo "Use $(MAKE) dist"
 
pkg/vcs.1: manpage.xml
xmlto -o pkg man $<
 
tgz: vcs-$(VER).tar.gz
 
vcs-$(VER).tar.gz:
23,6 → 26,7
echo 'RELEASE is set to 0!' ; false ; fi
 
dist: check-rel check-no-svn \
pkg/vcs.1 \
vcs-$(VER).tar.gz \
PKGBUILD-$(VER) \
vcs-$(VER).gz vcs-$(VER).bz2 vcs-$(VER).bash \
/video-contact-sheet/trunk/pkg/vcs
31,7 → 31,7
# The full changelog can be found at <http://p.outlyer.net/vcs/files/CHANGELOG>
 
 
declare -r VERSION="1.12.1"
declare -r VERSION="1.12.2"
declare -r RELEASE=1
 
set -e
83,7 → 83,8
# - INTERNAL_*: Used internally to adapt messages and the like to the input
# - UNDFLAG_*: Undocumented flags. Used internally to keep track of undocumented modes (-Z)
# - USR_*: Holds values of variables as set by the user, either from overrides or from the
# command-line
# command-line.
# implementation
# * Optimisations:
# - Reduce the number of forks
# }}} # TO-DO
124,8 → 125,6
declare -ri DEFAULT_EXT_FACTOR=4
# see $verbosity
declare -ri V_ALL=5 V_NONE=-1 V_ERROR=1 V_WARN=2 V_INFO=3
# see $font_filename
declare -ri FF_DEFAULT=5 FF_NONLATIN=7
# Indexes in $VID
declare -ri W=0 H=1 FPS=2 LEN=3 VCODEC=4 ACODEC=5 VDEC=6 CHANS=7 ASPECT=8 VCNAME=9 ACNAME=10
# Exit codes, same numbers as /usr/include/sysexits.h
182,15 → 181,6
declare font_tstamps=DejaVu-Sans-Book # Used for timestamps over the thumbnails
declare font_heading=DejaVu-Sans-Book # Used for the meta info heading
declare font_sign=$font_heading # Used for the signature box
# Unlike other font_ variables this doesn't take a font name directly
# but is restricted to the $FF_ values. This is to allow overrides
# from the command line to be placed anywhere, i.e. in
# $ vcs -I file.avi -O 'FONT_MINCHO=whatever'
# as the font is overridden is after requesting its use, it wouldn't be
# affected
# The other font_ variables are only affected by overrides and not command
# line options that's why this one is special.
declare font_filename=$FF_DEFAULT # Used to print only the filename in the heading
declare font_title=$font_heading # Used for the title (see -T)
# Font sizes, in points
declare -i pts_tstamps=14 # Used for the timestamps
237,6 → 227,11
# The automatic picks a semi-random one from the fonts believed to support CJK/Cyrillic
#+characters.
declare FONT_MINCHO= # Filename or font name as known to ImageMagick (identify -list font)
# Introduced in 1.12.2:
# When true (1) uses $FONT_MINCHO to print the filename, otherwise the same
#+font as the heading is used.
# See -I and --nonlatin
declare -i NONLATIN_FILENAMES=0
# Output of capturing programs is redirected here
declare stdout=/dev/null stderr=/dev/null
 
413,6 → 408,8
#+ believed to be no longer needed
#+ "gone": Variable removed in the current version
#+ "alias": Marks an alias, duplicate name intended to stay
#+ "meta": Special variable that will modify other variables (e.g. font_all
#+ modifies all font_ variables.
#+ "=": ignore
#+ type constraints: a character indicating accepted values:
# n -> Number (Natural, positive Integer)
458,6 → 455,9
"font_sign::"
"font_tstamps::"
"font_title::"
"font_all:=:meta" # see parse_override
"bg_all:=:meta"
"fg_all:=:meta"
"pts_tstamps::"
"pts_meta::"
"pts_sign::"
506,6 → 506,7
 
"nonlatin_font:FONT_MINCHO:"
"FONT_MINCHO::deprecated=nonlatin_font"
"NONLATIN_FILENAMES:=:=:b"
 
"end_offset:=:=:I" # New, used to have a two-variables assignment before USR_*
"DEFAULT_END_OFFSET:end_offset:deprecated=end_offset:I"
544,13 → 545,11
varname=${por/% *} # Everything up to the first space...
tmp=${por#* } # Rest of string
flag=${tmp/% *}
bashcode=${tmp#* }
if [ "$flag" == '=' ]; then
# No need to override...
feedback="$varname(=)"
else
feedback=$varname
eval "$bashcode"
fi
ov="$ov, $feedback"
fi
670,15 → 669,13
return 0
}
 
# Parse an override
# Input should be a var=value assignment, result, stored in the global variable $RESULT,
# will be in the format:
# <variable name> <flag> <evaluable code> where
# Parse an override and set its value.
# Input should be a var=value assignment. Also sets USR_<variable>.
# The global variable $RESULT is set with the format:
# <variable name> <flag> where
# * variable name: is the name of the variable to be overridden
# * flag: is a character indicating the status: "+" for a possible override,
# "=" for an override that already has the same value
# * evaluable code: is a piece of bash code to be feed to eval to change
# the variable, it also sets the related USR_* variable
# Warnings and errors are buffered
# This function always returns true
# parse_override($1 = override assignment)
685,7 → 682,7
parse_override() {
local o="$1"
RESULT=''
 
if ! egrep -q '^[[:space:]]*[a-zA-Z_][a-zA-Z0-9_]*[[:space:]]*=.*' <<<"$o" ; then
return
fi
737,6 → 734,11
buffered error "Variable '$varname' is scheduled to be removed in the next release."
buffered error " Please contact the author if you absolutely need it."
;;
meta)
apply_meta_override "$varname" "$varval"
RESULT="$varname +"
return 0;
;;
*) return 0 ;;
esac
fi
757,12 → 759,43
# Escape single quotes, since it will be single-quoted:
varval=${varval//\'/\'\\\'\'} # <<'>> => <<'\''>>
evcode="$ivar='$varval'; USR_$ivar='$varval'"
eval "$evcode"
fi
 
# varname, as found in the config file
RESULT="$varname $retflag $evcode"
RESULT="$varname $retflag"
}
 
# Handle meta configuration variables, variables that, when set, modify the
# value of (various) others
# apply_meta_override($1 = actual variable name, $2 = value)
apply_meta_override() {
case "$1" in
font_all)
buffered inf "font_all => font_heading, font_sign, font_title, font_tstamps"
parse_override "font_heading=$2"
parse_override "font_sign=$2"
parse_override "font_title=$2"
parse_override "font_tstamps=$2"
;;
fg_all)
buffered inf "fg_all => fg_heading, fg_sign, fg_title, fg_tstamps"
parse_override "fg_heading=$2"
parse_override "fg_sign=$2"
parse_override "fg_tstamps=$2"
parse_override "fg_title=$2"
;;
bg_all)
buffered inf "bg_all => bg_heading, bg_contact, bg_sign, bg_title, bg_tstamps"
parse_override "bg_heading=$2"
parse_override "bg_contact=$2"
parse_override "bg_sign=$2"
parse_override "bg_title=$2"
parse_override "bg_tstamps=$2"
;;
esac
}
 
# Do an override from the command line
# cmdline_override($1 = override assignment)
#+e.g. cmdline_override 'decoder=$DEC_FFMPEG'
774,12 → 807,9
local varname=${r/% *} # See load_config()
local tmp=${r#* }
local flag=${tmp/% *}
local bashcode=${tmp#* }
 
if [ "$flag" == '=' ]; then
varname="$varname(=)"
else
eval "$bashcode"
fi
 
CMDLINE_OVERRIDES="$CMDLINE_OVERRIDES, $varname"
1447,7 → 1477,7
cleanup() {
if [ -z $TEMPSTUFF ]; then return 0 ; fi
inf "Cleaning up..."
rm -rf "${TEMPSTUFF[*]}"
rm -rf "${TEMPSTUFF[@]}"
unset VCSTEMPDIR
unset TEMPSTUFF ; declare -a TEMPSTUFF
}
2341,6 → 2371,7
theo) vcodec="Ogg Theora" ;;
tscc) vcodec="TechSmith SCC" ;;
VP6[012F]) vcodec="On2 Truemotion VP6" ;;
VP80) vcodec="VP8" ;;
WMV1) vcodec="WMV7" ;;
WMV2) vcodec="WMV8" ;;
WMV3) vcodec="WMV9" ;;
2394,6 → 2425,7
theora) mpid="theo" ;;
camtasia) mpid="tscc" ;;
vp6|vp6a|vp6f) mpid="VP60" ;;
vp8) mpid="VP80" ;;
# FIXME List of codec id's I translate but haven't test:
# svq3, rv40, theora, camtasia, vp6*
# MPlayer uses uppercase while FFmpeg uses lowercase
2901,7 → 2933,8
}
 
# Checks if the provided arguments make sense and are allowed to be used
# together
#+together. When an incoherence is found, sets some sane values if reasonable
#+or fails otherwise.
coherence_check() {
trace $FUNCNAME $@
# If -m is used then -S must be used
2987,6 → 3020,17
# Interval=0 == default interval
fptest "$interval" -eq 0 && interval=$DEFAULT_INTERVAL
 
# If in non-latin mode and no nonlatin font has been picked try to pick one.
# Should it fail, fallback to latin font.
if [ $NONLATIN_FILENAMES -eq 1 ] && [ -z "$FONT_MINCHO" ]; then
set_extended_font || {
# set_extended_font already warns about lack of fonts
warn " Falling back to latin font"
NONLATIN_FILENAMES=0
FONT_MINCHO="$font_heading"
}
fi
 
sanitise_rename_pattern
sanitise_fonts
}
2995,6 → 3039,7
#+*only* for fonts not overridden
sanitise_fonts() {
trace $FUNCNAME $@
 
# Any default font in use? If all of them are overridden, return
if [ "$USR_font_heading" -a "$USR_font_title" -a "$USR_font_tstamps" -a "$USR_font_sign" ]; then
return
3385,15 → 3430,12
"$output" -append "$output"
unset tlheight
fi
local fn_font= # see $font_filename
case $font_filename in
$FF_DEFAULT) fn_font="$font_heading" ;;
$FF_NONLATIN) fn_font="$FONT_MINCHO" ;;
*)
warn "\$font_filename was overridden with an incorrect value, using default."
fn_font="$font_heading"
;;
esac
local fn_font= # see $NONLATIN_FILENAMES
if [ $NONLATIN_FILENAMES -ne 1 ]; then
fn_font="$font_heading"
else
fn_font="$FONT_MINCHO"
fi
# Create a small image to see how tall are characters. In my tests, no matter
#+which character is used it's always the same height.
local lineheight=$(line_height "$font_heading" "$pts_meta")
3902,7 → 3944,8
esac # verbosity
;;
esac
echo "$f=$v"
# Print all names in lowercase
echo "$(tolower "$f")=$v"
}
done
echo "# vcs:conf:$NL# Generated on $(date)$NL# --- $n ENDS HERE --- "
4106,7 → 4149,8
# Unlike -I, --nonlatin does not accept a font name
--nonlatin)
if [ -z "$USR_FONT_MINCHO" ]; then
font_filename=$FF_NONLATIN
NONLATIN_FILENAMES=1
USR_NONLATIN_FILENAMES=1
set_extended_font
inf "Filename font set to '$FONT_MINCHO'"
fi
4126,7 → 4170,8
fi
# It isn't tested for existence because it could also be a font
# which convert would understand without giving the full path
font_filename=$FF_NONLATIN
NONLATIN_FILENAMES=1
USR_NONLATIN_FILENAMES=1
if [ ${#2} -gt 1 ]; then
# j=, k= syntax
FONT_MINCHO="${2:2}"
4428,7 → 4473,7
t=${ovname#*:}
if [ "$t" -a "$t" != "=" ]; then f="$t" ; fi
eval v=\$USR_$f
[ -z "$v" ] || echo "$f=$v"
[ -z "$v" ] || echo "$(tolower $f)=$v"
done
exit 0
;;
/video-contact-sheet/trunk/pkg/common.mk
15,6 → 15,8
DESTDIR:=/
TGZ=vcs-$(VERSION).tar.gz
 
MANDIR:=$(prefix)/share/man/man1/
 
all:
# Nothing to be done
 
28,14 → 30,18
install -m755 vcs $(DESTDIR)$(prefix)/bin/vcs
install -d $(DESTDIR)$(prefix)/share/vcs/profiles
install -m644 profiles/*.conf $(DESTDIR)$(prefix)/share/vcs/profiles/
install -d $(DESTDIR)$(MANDIR)
install -m644 vcs.1 $(DESTDIR)$(MANDIR)/
 
uninstall:
$(RM) $(DESTDIR)$(prefix)/bin/vcs
$(RM) $(DESTDIR)$(MANDIR)/vcs.1
for file in profiles/*.conf ; do \
$(RM) $(DESTDIR)$(prefix)/share/vcs/profiles/`basename $$file` ; \
done
-rmdir -p $(DESTDIR)$(prefix)/bin
-rmdir -p $(DESTDIR)$(prefix)/share/vcs/profiles
-rmdir -p $(DESTDIR)$(MANDIR)
 
examples/vcs.conf.example: examples/vcs.conf
sed -e 's/^/#/;s/^#$$//;s/^##/#/' < $< > $@
/video-contact-sheet/trunk/pkg/rpm/vcs.spec.in
95,12 → 95,15
%{prefix}/share/vcs/profiles/mosaic.conf
%{prefix}/share/vcs/profiles/white.conf
# Manpage
#%{_mandir}/man1/%{name}.1.gz
%{_mandir}/man1/%{name}.1.gz
%doc CHANGELOG
# Config example
%doc examples/vcs.conf.example
 
%changelog
* Tue Aug 24 2010 - outlyer (at) gmail (dot) com
- Install manpage
 
* Sat Apr 10 2010 - outlyer (at) gmail (dot) com
- Added profiles and example configuration
- Use %{prefix}
/video-contact-sheet/trunk/pkg/debian/changelog
1,3 → 1,9
vcs (1.12.2-upstream.1) experimental; urgency=medium
 
* New version. Medium priority due to temporary files cleanup bug.
 
-- Toni Corvera <outlyer@gmail.com> Tue, 24 Aug 2010 20:48:41 +0200
 
vcs (1.12.1-upstream.1) experimental; urgency=medium
 
* New version.
/video-contact-sheet/trunk/pkg/debian/rules
81,7 → 81,7
# dh_installinit
# dh_installcron
# dh_installinfo
dh_installman
dh_installman vcs.1
dh_link
dh_strip
dh_compress
/video-contact-sheet/trunk/pkg/profiles/mosaic.conf
1,6 → 1,7
# vcs:conf:
# vcs:desc: Tight, small, thumbnails
# <http://p.outlyer.net/dox/vcs:example_configs>
# $Id$
disable_timestamps=1
disable_shadows=1
height=160
/video-contact-sheet/trunk/pkg/profiles/black.conf
1,5 → 1,6
# vcs:conf:
# vcs:desc: White-on-Black
# $Id$
bg_contact=Black
bg_heading=$bg_contact
bg_sign=$bg_contact
/video-contact-sheet/trunk/pkg/profiles/white.conf
1,5 → 1,6
# vcs:conf:
# vcs:desc: Black-on-White profile
# $Id$
bg_contact=White
bg_heading=$bg_contact
bg_sign=$bg_contact
/video-contact-sheet/trunk/pkg/CHANGELOG
1,7 → 1,18
1.12.1:
1.12.2 (2010-08-24):
* BUGFIX: Fix cleanup of temporary files (regression since 1.11.2). [#167]
Submitted by Jason Tackaberry.
* FEATURES:
- Added 'fg_all', 'bg_all' and 'font_all' config variables. [#156]
- Added 'nonlatin_filenames' config variable. [#159]
- Added identification for VP8 (WebM). [#166]
* OTHER:
- Print variable names in lowercase when using --generate.
 
1.12.1 (2010-04-23):
* BUGFIXES:
- Workaround for cases in which GAWK uses comma as decimal separator.
Any OS with GAWK 3.1.3 to 3.1.5 was affected (e.g. Debian Lenny)
Any OS with GAWK 3.1.3 to 3.1.5 was affected (where the environment
language uses commas, e.g. Debian Lenny with many European languages)
- Don't try to go on in DVD mode with unreadable ISOs
 
1.12: (2010-04-10)
/video-contact-sheet/trunk/manpage.xml
0,0 → 1,382
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
 
<!--
 
$Id$
This file based on the default template for debian packages.
 
Generation of man page:
 
$ xmlto man manpage.xml
 
Will generate vcs.1.
 
View with:
 
$ nroff -man vcs.1 | less
or
$ man vcs.1
 
To disable the automatic creation of the AUTHOR(S) and COPYRIGHT sections
read /usr/share/doc/docbook-xsl/doc/manpages/authors.html. This file can be
found in the docbook-xsl-doc-html package.
 
Validation can be done using: `xmllint -''-noout -''-valid manpage.xml`
 
General documentation about man-pages and man-page-formatting:
man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
 
-->
 
<!-- Fill in your name for FIRSTNAME and SURNAME. -->
<!ENTITY dhfirstname "Toni">
<!ENTITY dhsurname "Corvera">
<!-- dhusername could also be set to "&dhfirstname; &dhsurname;". -->
<!ENTITY dhusername "Toni Corvera">
<!ENTITY dhemail "outlyer@gmail.com">
<!ENTITY dhsection "1">
<!-- TITLE should be something like "User commands" or similar (see
http://www.tldp.org/HOWTO/Man-Page/q2.html). -->
<!ENTITY dhtitle "vcs User Manual">
<!ENTITY dhucpackage "VCS">
<!ENTITY dhpackage "vcs">
]>
 
<refentry>
<refentryinfo>
<title>&dhtitle;</title>
<productname>&dhpackage;</productname>
<authorgroup>
<author>
<firstname>&dhfirstname;</firstname>
<surname>&dhsurname;</surname>
<contrib>VCS author.</contrib>
<address>
<email>&dhemail;</email>
</address>
</author>
</authorgroup>
<copyright>
<year>2007-2010</year>
<holder>&dhusername;</holder>
</copyright>
<legalnotice>
<para>Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Lesser General Public License,
Version 2 or (at your option) any later version published by
the Free Software Foundation.</para>
</legalnotice>
<edition>$Rev$</edition>
</refentryinfo>
<refmeta>
<refentrytitle>&dhucpackage;</refentrytitle>
<manvolnum>&dhsection;</manvolnum>
</refmeta>
<refnamediv>
<refname>&dhpackage;</refname>
<refpurpose>create contact sheets from videos</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>&dhpackage;</command>
<arg choice="opt"><option>options</option></arg>
<arg choice="plain"><replaceable>FILE</replaceable></arg>
<arg choice="opt"><replaceable>FILE</replaceable>
<arg choice="opt"><replaceable>...</replaceable></arg>
</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>&dhpackage;</command>
<arg choice="opt">
<option>-n<parameter>20</parameter></option>
<option>-c<parameter>4</parameter></option>
</arg>
<arg choice="plain"><replaceable>FILE</replaceable></arg>
</cmdsynopsis>
 
<cmdsynopsis>
<command>&dhpackage;</command>
<arg choice="opt"><option>--output=<parameter>OUTPUT1</parameter></option></arg>
<arg choice="opt"><option>--output=<parameter>OUTPUT2</parameter></option></arg>
<arg choice="opt"><option>...</option></arg>
<arg choice="plain"><replaceable>INPUT1</replaceable></arg>
<arg choice="opt"><replaceable>INPUT2</replaceable>
<arg choice="opt"><replaceable>...</replaceable></arg>
</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>&dhpackage;</command>
<!-- Normally the help and version options make the programs stop
right after outputting the requested information. -->
<group choice="opt">
<arg choice="plain">
<group choice="req">
<arg choice="plain"><option>-h</option></arg>
<arg choice="plain"><option>--help</option></arg>
</group>
</arg>
<arg choice="plain">
<arg choice="plain"><option>--fullhelp</option></arg>
</arg>
</group>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id="description">
<title>DESCRIPTION</title>
<!-- FIXME -->
<para>This is a work in progress manual page for <command>&dhpackage;</command>,
use <parameter>--help</parameter>, <parameter>--fullhelp</parameter>
and the online documentation (located at <ulink url="http://p.outlyer.net/dox/vcs" />)
for further usage instructions.</para>
 
<para><command>&dhpackage;</command> is a program that creates a preview
image from videos in a contact sheet-like format (i.e. captures from
different frames in the video are placed in a mosaic).</para>
<para>By default the output file will be named like the input file plus the
png extension. Example: &quot;<filename>file.avi</filename>&quot; will produce
a contact sheet in the file &quot;<filename>file.avi.png</filename>&quot;.</para>
<para>The default mode of operation is to obtain captures every five minutes in the
video, so the amount of captures will vary with each file. The command-line
argument <parameter>--numcaps</parameter> (<parameter>-n</parameter>) can be used
to change this behaviour or alternatively a configuration file might
be used to change the mode of operation (see <citerefentry>
<refentrytitle>vcs.conf</refentrytitle>
<manvolnum>5</manvolnum>
</citerefentry>).
</para>
</refsect1>
<refsect1 id="options">
<title>OPTIONS</title>
<para>The program follows the usual GNU command line syntax,
with long options starting with two dashes (`-'). A summary of
options is included below.</para>
<variablelist>
<varlistentry>
<term><option>-n <replaceable>number</replaceable></option></term>
<term><option>--numcaps=<replaceable>number</replaceable></option></term>
<listitem>
<para>Fixes the number of captures to obtain. Changes the mode of operation
to capture a fixed number of frames.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-i <replaceable>interval</replaceable></option></term>
<term><option>--interval=<replaceable>interval</replaceable></option></term>
<listitem>
<para>Sets the interval between captures. Changes the mode of operation
to capture at fixed intervals. The number of captures will depend
on the video length.</para>
<para>See <xref linkend="interval_format" /> for the allowed syntax.</para>
</listitem>
</varlistentry>
 
<varlistentry>
<term><option>-c <replaceable>number</replaceable></option></term>
<term><option>--columns=<replaceable>number</replaceable></option></term>
<listitem>
<para>Number of columns in the contact sheet. The number of rows
will depend on this and the number of captures (there's no
way to set the number of rows).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-H <replaceable>height</replaceable></option></term>
<term><option>--height=<replaceable>height</replaceable></option></term>
<listitem>
<para>Height of captures. Can be a number (of pixels) or a percentage
(of the video height). By default the same size as the video is used.</para>
<para>The width is derived from height and aspect ratio.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-o <replaceable>filename</replaceable></option></term>
<term><option>--output=<replaceable>filename</replaceable></option></term>
<listitem>
<para>Name of output file. By default the video file name plus the output
format is used (e.g. &quot;<filename>video.avi.png</filename>&quot;
for &quot;<filename>video.avi</filename>&quot;).</para>
<para>If an extension is provided, it will define the output format, otherwise
PNG will be used. I.e. <filename>sheet.jpg</filename> will produce
a JPEG file while <filename>sheet</filename> and
<filename>sheet.png</filename> will produce a PNG file.</para>
</listitem>
</varlistentry>
<!--
<varlistentry>
<term><option>-x <replaceable>t</replaceable></option></term>
<term><option>- -xy=<replaceable>t</replaceable></option></term>
<listitem>
<para>DESC.</para>
</listitem>
</varlistentry>
-->
 
<varlistentry>
<term><option>-h</option></term>
<term><option>--help</option></term>
<listitem>
<para>Show summary of most common options.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--fullhelp</option></term>
<listitem>
<para>Show summary of all options.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="files">
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/vcs.conf</filename></term>
<listitem>
<para>The system-wide configuration file to control the
behaviour of <application>&dhpackage;</application>. See
<citerefentry>
<refentrytitle>vcs.conf</refentrytitle>
<manvolnum>5</manvolnum>
</citerefentry> for further details.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>${HOME}/.vcs.conf</filename></term>
<term><filename>${HOME}/.vcs/vcs.conf</filename></term>
<listitem>
<para>The per-user configuration file to control the
behaviour of <application>&dhpackage;</application>. See
<citerefentry>
<refentrytitle>vcs.conf</refentrytitle>
<manvolnum>5</manvolnum>
</citerefentry> for further details.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>${PWD}/vcs.conf</filename></term>
<listitem>
<para>The per-directory configuration file to control the
behaviour of <application>&dhpackage;</application>. See
<citerefentry>
<refentrytitle>vcs.conf</refentrytitle>
<manvolnum>5</manvolnum>
</citerefentry> for further details.</para>
</listitem>
</varlistentry>
 
</variablelist>
</refsect1>
<refsect1 id="interval_format">
<title>INTERVALS</title>
<para>
Intervals and timestamps can be specified in seconds or in a human-readable format
that follows the syntax
 
<replaceable>HOURS</replaceable>h<replaceable>MINUTES</replaceable>m
<replaceable>SECONDS</replaceable>s.<replaceable>MILLISECONDS</replaceable>
 
where each element is optional.
See <ulink url="http://p.outlyer.net/dox/vcs:time_syntax" /> for more details.
</para>
 
<para>
<segmentedlist>
<segtitle>Example</segtitle><segtitle>Equivalence</segtitle>
<segtitle>Standard time format</segtitle>
<seglistitem>
<seg>1h30m30</seg><seg>1h30m30s.00</seg><seg>1:30:30.00</seg>
</seglistitem>
<seglistitem>
<seg>30</seg><seg>0h0m30s.00</seg><seg>0:00:30.00</seg>
</seglistitem>
<seglistitem>
<seg>3600</seg><seg>1h0m0s.00</seg><seg>1:00:00.00</seg>
</seglistitem>
</segmentedlist>
</para>
</refsect1>
<refsect1 id="environment">
<title>ENVIRONMENT</title>
<variablelist>
<varlistentry>
<term><envar>TEMPDIR</envar></term>
<listitem>
<para>Fallback temporary directory when <filename>/dev/shm</filename> is not avaiable.
Due to the big size of temporary files, it is recommended to use
a temporary directory on a fast filesystem.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="diagnostics">
<title>DIAGNOSTICS</title>
<para>The default verbosity level will print <package>vcs</package>' progress
and any errors or warnings on <filename class="devicefile">stderr</filename>.</para>
<para><option>--quiet</option> can be used to reduce verbosity.</para>
<para>The verbosity level and <filename class="devicefile">stderr</filename> can be
controlled through configuration files, see <citerefentry>
<refentrytitle>vcs.conf</refentrytitle>
<manvolnum>5</manvolnum>
</citerefentry>.
</para>
<para><command>&dhpackage;</command> provides some return codes, they follow
the semi-standardised values defined in <filename>sysexits.h</filename>:</para>
<segmentedlist>
<segtitle>Code</segtitle>
<segtitle>Diagnostic</segtitle>
<seglistitem>
<seg><errorcode>0</errorcode> (<errorcode>EX_OK</errorcode>)</seg>
<seg>Program exited successfully.</seg>
</seglistitem>
<seglistitem>
<seg><errorcode>64</errorcode> (<errorcode>EX_USAGE</errorcode>)</seg>
<seg>Error in the arguments.</seg>
</seglistitem>
<seglistitem>
<seg><errorcode>66</errorcode> (<errorcode>EX_NOINPUT</errorcode>)</seg>
<seg>Can't access some input file or it has an incorrect format.</seg>
</seglistitem>
<seglistitem>
<seg><errorcode>69</errorcode> (<errorcode>EX_UNAVAILABLE</errorcode>)</seg>
<seg>Unsatisfied dependency.</seg>
</seglistitem>
<seglistitem>
<seg><errorcode>70</errorcode> (<errorcode>EX_SOFTWARE</errorcode>)</seg>
<seg>Internal inconsistency (bug).</seg>
</seglistitem>
<seglistitem>
<seg><errorcode>73</errorcode> (<errorcode>EX_CANTCREAT</errorcode>)</seg>
<seg>Error creating temporary or output files.</seg>
</seglistitem>
</segmentedlist>
</refsect1>
<refsect1 id="bugs">
<!-- Or use this section to tell about upstream BTS. -->
<title>BUGS</title>
<para>Recent versions of <package>ImageMagick</package>, <command>mplayer</command> and
<command>ffmpeg</command> should be used
for maximum compatibility.</para>
<para>The upstream's <acronym>BTS</acronym> can be found
at <ulink url="http://b.outlyer.net"/>.</para>
</refsect1>
<refsect1 id="see_also">
<title>SEE ALSO</title>
<!-- In alpabetical order. -->
<para><citerefentry>
<refentrytitle>vcs.conf</refentrytitle>
<manvolnum>5</manvolnum>
</citerefentry>, <citerefentry>
<refentrytitle>convert</refentrytitle>
<manvolnum>1</manvolnum>
</citerefentry>, <citerefentry>
<refentrytitle>ffmpeg</refentrytitle>
<manvolnum>1</manvolnum>
</citerefentry>, <citerefentry>
<refentrytitle>mplayer</refentrytitle>
<manvolnum>1</manvolnum>
</citerefentry></para>
</refsect1>
</refentry>
 
Property changes:
Added: svn:keywords
+Rev Id Date
\ No newline at end of property
/video-contact-sheet/trunk/.
Property changes:
Modified: svn:mergeinfo
Merged /video-contact-sheet/branches/1.12.2:r422-431