Commit fb464f99 authored by Tobias Frost's avatar Tobias Frost

Import Upstream version 0.9.15

This diff is collapsed.
Authors and contributors
Billy Biggs <>
- Deinterlacing cowboy and video nerd.
- Original tvtime author.
Doug Bell <>
- Tuner, audio mixer, OSD and menu haxor.
- Configuration and input management.
- Closed Captioning support.
Achim Schneider <>
- Station list management code.
- Frequency table conversion script from xawtv's file format.
Dirk Ziegelmeier <>
- Ported the TomsMoComp and GreedyH deinterlacers from
DScaler to gcc.
Joachim Koenig <>
- Wrote the original dscaler plugin loader using the wine code.
David I. Lehn <>
- autoconf setup, taken from his autoconf'ing of movietime.
Paul Jara <>
- man pages and the RPM spec file.
Robert Hgberg <>
- Added lirc support.
Craig Dooley <>
- Added a previous channel command.
Alexander S. Belov <>
- Config file work and XMLification, check for signal present
config parameter.
Simon Law <>
- Various cleanups and bugfixes
Bart Dorsey <>
Nicolas Boos <>
- Fixes from their work on the debian packages.
Mark Trolley <>
- Added the numeric channel commands for better lirc support.
Stewart Allen <>
- Cleanup of the command names, various bugfixes.
Justin A <>
- Previous channel saved to config file.
Brian Goines <>
- Work on XML config files.
Krister Lagerstrom <>
- Support for reading commands on stdin.
Scott Van Wart <>
- Awesome menu icon font work, bugfixes.
Adrian Minta <>
Jindrich Makovicka <>
- Bugfixes.
Per von Zweigbergk <>
- Work on making tvtime fully UTF-8 aware.
- Much work on the gettext() code.
Richard Jones <>
- Work on the DirectFB output driver for the Matrox G400-style
TV output drivers.
Ville Syrjala <>
- Wrote our DirectFB output layer.
David Atkinson <>
- Updates for Australian frequencies.
Mike Bourgeous <>
- Compile fixes and some autoconf work for DirectFB.
Merlin Ma <>
- Updates for China broadcast frequencies.
Robbie Viera
- Donated the domain name! Thanks a ton Robbie!
Martin Fiedler <>
- Added the sleep feature.
Michael Lawrence <>
- Extended XMLTV info to list the upcoming show.
Kevin Ko <>
- Improved CC decoding by adding better VBI clock-signal locking.
Corey Quilliam <>
- Fixed the mixer commands to allow changing by percentages.
Than Ngo <>
- Fixed for compiling with gcc-3.4 and -fPIC.
Ingo van Lil <>
- Added support for reading the localized program descriptions
from the XMLTV file.
Andrei Badea <>
- Added support for _NET_WM_ICON.
Per von Zweigbergk <>
- Swedish translation.
Vincent van Adrighem <>
- Dutch translation.
Alexander S. Belov <>
- Russian translation.
Lukas Slansky <>
- Czech translation.
Tapio Leipl <>
- Finnish translation.
Ingo van Lil <>
- German translation.
Michael Kim <>
- Korean translation.
Bart Dorsey <>
Nicolas Boos <>
Matt Zimmerman <>
Simon Law <>
- Work on the debian packages.
Code we stole (well, used under the GPL)
Lots of stuff from DScaler
We currently use their code for the twoframe and greedy2frame
deinterlacing algorithms, more to follow.
DScaler is a constant reference for optimization ideas, features
we could add, and program structure.
Being a reasonable 'port' of much of the DScaler code is definitely
one of our goals.
Original Freetype2 code, compositing ideas, and XMLTV code from MythTV
We since rewrote our font renderer, but originally we borrowed from
this great project. It would be nice to re-sync some of our rendering
code. We also took ideas on how to parse some of the XMLTV stuff from
the MythTV codebase.
Some great colourbar generation and Y'CbCr<->R'G'B' code
Copyright (C) 2001 Matthew J. Marjanovic <>
Taken from lavtools under the mjpegtools project:
mmx.h and friends, and some X-related configure macros, from libmpeg2
walken rewrote mmx.h based on the originals (c) 1999-2002 R. Fisher.
The style is awesome and they're really great to use.
I also got some help with my Xv code from walken's xv module in
Some Xv output code help, XTest code, and fastmemcpy stolen from xine
They apparently got the fastmemcpy from mplayer. I took their version
because I happened to have it around. I have not done my own performance
tests yet.
Mixer routines stolen from mplayer
I took these a while back while doing movietime.
Contains fonts which are hosted under the freefont project:
Lots of help with the V4L API, bttv-specific features, and tuner dealings
from the source of video4linux information, xawtv, by Gerd Knorr:
Univeral tuner frequency tables from Nathan Laredo's tvset
Postscript credit renderer by Nathan Laredo <>
Xv code, and other X code in general, taken from tvset and playdvd,
both by Nathan Laredo.
X fullscreen code and some other X/Xinerama/XF86VidMode code from ogle,
a video player:
Bjorn is the X master, lots of help from him, and thanks to hh for
being so cool.
The code is Copyright (C) 2001, 2002 Bjrn Englund, Hkan Hjort.
Code and ideas on 2-3 pulldown detection by
D Richard Felker III <>, from his work on
deinterlacer filters for mplayer
MMX code for the MPEG2-style vertical [-1 4 2 4 -1]/8 deinterlacer
filter from ffmpeg by Fabrice Bellard:
wine direcory for win32 DLL loading support from libw32 in xine.
win32 codec support in xine is based on work from:
Taglines courtesy of
James Dewar, Adam Letts, Andrew Lewycky, Hkan Hjort, Billy Biggs,
Jason Rouse, Alison Biggs, David Lehn, Tero Auvinen, Henry Stern,
Per von Zweigbergk, Simon Law, Corey Wells
This diff is collapsed.
This diff is collapsed.
Copyright (C) 2003, 2004 Billy Biggs.
This file is free documentation; Billy Biggs gives unlimited permission to
copy, distribute and modify it.
Installing tvtime
This is the source code distribution of tvtime. tvtime has been
packaged for many popular Linux distributions. Please check our
download page on the tvtime website at to see if
there is a pre-packaged version of tvtime that you can use. Our
packaged versions have all been approved for quality by the tvtime
Compiling tvtime
tvtime includes a configure script to enable you to customize your
installation. By default, running configure without options will have
tvtime install itself and all required files under /usr/local. To
instead use paths according to the Filesystem Hierarchy Standard, we
recommend you run configure with these options:
~/tvtime-0.9.15$ ./configure --prefix=/usr --sysconfdir=/etc
This will have tvtime use /usr/bin for its executables,
/usr/share/tvtime for its data files, /etc/tvtime for its global
configuration files, and /usr/share/... for icons and menu entries.
Next, compile tvtime using make.
~/tvtime-0.9.15$ make
And then, install it as root.
~/tvtime-0.9.15$ su
<enter password>
/home/user/tvtime-0.9.15# make install
Compiling with optimized CFLAGS
tvtime includes many hand-optimized assembly functions for different CPU
extensions, such as MMX and SSE. We have also written a timingtest
application, and tested with different CPU flags. The CPU flags we use
in tvtime have been tested to perform best in our timing tests using
gcc3 and on the P3 and P4 chips, as well as some AMD chips.
Because of this, we strongly discourage users from using their own
"optimized" CFLAGS. Using -march=pentium4 and options for using SSE and
MMX by the compiler has been shown to perform no faster and often slower
with tvtime. If you feel that there are some compiler flags which could
improve, we would rather you show a test and example and post to our bug
tracker than silently use your own CFLAGS, so that we can test
Please comment further on this on this bug report:
Packaging tvtime
We are always interested in hearing about new tvtime packages to put on
our download page, and are more than willing to look over packagings to
make sure that nothing is missing our possibly misconfigured. If you
have made a package of tvtime, please contact me by sending an email to to let me know.
# is the root Automakefile which calls all the sub-Automakefiles.
# Copyright (C) 2002, 2003 Billy Biggs
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or (at
# your option) any later version.
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
SUBDIRS = intl m4 docs data plugins src po
EXTRA_DIST = config.rpath
This diff is collapsed.
For news and updates on tvtime, please visit our website at:
News for 0.9.15
* Compile fixes.
News for 0.9.14
* Improved the usability of the menu system when using a mouse.
* Fixed some problems with Xinerama and fullscreen.
* Streamlined the default set of key bindings.
* Show an icon in modern window list applications.
* Fixed colour problems for DVB driver users.
* Changed the default process priority to -10 instead of -19.
* Fixed compile problems with new gcc versions.
News for 0.9.13
* Added support for changing the default language read from XMLTV.
* Added support for PAL-BG/DK audio mode switching.
* Added an audio boost setting for controlling capture card volume.
* Fixed a bunch of critical bugs.
* Removed the SDL, MGA, and DirectFB output drivers.
* Removed the unfinished MPEG2 support and the unreleased recording
application 'rvr'.
News for 0.9.12
* Minor bugfixes from 0.9.11.
News for 0.9.11
* Fixed gettext to initialize properly.
* Improved our XMLTV on-screen-display.
* Display the upcoming show name from XMLTV.
* Changed fifodir back to /tmp.
* Lots of documentation improvements.
* Fixed lots of bugs.
News for 0.9.10
* Added program listings using XMLTV. Use with --xmltv=filename.
* Added commands for chroma kill, sleep timer, and enabling or
disabling signal detection.
* Added the matte mode setting to the menu.
* Added a DirectFB output layer by Ville Syrjala.
* Significantly lowered the size of the tvtime helper executables.
* Various menu system cleanups.
* Fixed a ton of bugs.
News for 0.9.9
* Added a full menu system for configuring tvtime.
* Simplified deinterlacer names and provide online help for them.
* Unified OSD appearance across all television standards.
* Support for saving picture settings both globally and per-channel.
* Finetune settings saved per-channel.
* Support for the V4L2 DVB driver and bttv9 for PAL-60 support.
* Added a channel scanner application 'tvtime-scanner' that outputs
to the 'Custom' frequency table.
* Native support for UYVY input from the rivatv driver.
* Removed lirc support in favour of using tvtime-command.
* Fixed remaining screensaver, Xinerama and fullscreen issues.
* Many other new features and bugfixes.
News for
* Some root safety improvements.
* Added support for long-format command line arguments.
* Added config file options to set startup window position.
* Compile fixes for non-C99 compilers and older DirectFB versions.
News for
* Fixed to work with metacity in RH 8.0.
News for
* Support for norm switching between "compatible" norms for areas
which receive both SECAM and PAL format stations.
* Added support for the mga_vid driver for the Matrox G200/G400
series cards from mplayer.
* Semi-experimental of the X code for better fullscreen support under
many window managers. Testing appreciated.
* Support for changing the mixer device and channel (see 'man tvtime'
and the config file documentation).
* Slightly less partial experimental UTF-8 support. Now works with
any simple left-to-right scripts which are in FreeSansBold.ttf .
News for
* Fixed to compile on older gcc versions (blame pv2b).
News for
* Alot of minor bugfixes.
* Partial EXPERIMENTAL UTF-8 support. Only works with UTF-8
characters that are also in ISO-8859-1 (Latin-1).
News for 0.9.8
Users of tvtime 0.9.7:
The default key bindings and configuration file format have
significantly changed in this release of tvtime. Please see the
documentation for details on using tvtime 0.9.8.
Also, some command line options have changed or become unavailable
(no more -w, use -H instead). Please consult the tvtime man page.
* New XML config file format for both the tvtime configuration,
and the station list.
* tvtime now has two distinct half-framerate modes: top-field-first
frames, and bottom-field-first frames. This helps with manually
deinterlacing 2-2 pulldown or progressive content.
* Added support for preset 'modes', which can set the deinterlacer,
window size, fullscreen setting and framerate mode.
* Added support for custom frequencies in the stationlist.xml file,
and a runtime command to add a new station from the current
fine-tuning settings.
* Added some DScaler DLLs and a wine layer to load these deinterlacer
plugins directly without porting to Linux. This gives us the
following new deinterlacers:
GreedyH DScaler: Greedy - High Motion
Greedy2Frame DScaler: Greedy - 2-frame
TwoFrame DScaler: TwoFrame
TomsMoComp DScaler: TomsMoComp
VideoBob DScaler: Video Bob
VideoWeave DScaler: Video Weave
We had our own ports of videobob, twoframe, and greedy2frame,
but they were found to be buggy. Our ports are currently disabled.
* Added the ffmpeg vertical deinterlacer filter.
* Support for multiple audio channels (stereo, mono, lang1, lang2).
* Included a bunch of fixes for PAL-M support.
* Added a slave mode for freevo integration.
* Various speedups, quality improvements, and bugfixes.
News for 0.9.7
* Moved config files into a new config file directory ~/.tvtime
* Reworked the frequency tables, merging europe-cable, europe-west,
europe-east all into 'europe'. Added the 'russia' frequency table.
* Added a channel scanner. F10 walks through the channel list and
disables inactive channels.
* Added the 'XVideo Bob' deinterlacer filter.
* Added lirc support.
* Added the overscan feature.
* Added hardware support webpage.
* Added a half-framerate mode ('=' to activate it).
* Fixed alot of bug reports.
News for 0.9.6
* We updated the tuner frequencies, please make sure you're up to
date with our naming.
* We added alot of keymaps, so we also changed some of the default
* tvtime now shows a blue screen if the tuner reports no signal.
Please let me know if this exposes any problems.
* * * * tvtime * * * *
tvtime is a high quality television application for use with video
capture cards. tvtime processes the input from a capture card and
displays it on a computer monitor or projector. Unlike other television
applications, tvtime focuses on high visual quality making it ideal for
tvtime supports:
o Deinterlaced output at full interlaced rate of 59.94 frames per
second for NTSC source, or 50 frames per second for PAL sources.
This gives smoothness of motion and high visual quality.
o Multiple deinterlacing algorithms for finding the optimal mode for
your video content and available processor speed.
o 16:9 aspect ratio mode for the highest available resolution when
processing input from an external DVD player or digital satellite
o A super-slick on-screen-display for the complete television
experience, with a featureful menu system.
o 2-3 Pulldown detection for optimal quality viewing of film content
from NTSC sources.
1. Where to find help with tvtime
2. How to configure your tvtime
3. An introduction to using tvtime
4. Setting up your channel list in tvtime
5. Using tvtime in areas that receive both PAL and SECAM stations
1 Where to find help with tvtime
Detailed help, documentation, known bugs, and known hardware issues
can be found on the tvtime website:
2 How to configure your tvtime
Most everything in tvtime can be configured via the OSD menu system, hit <tab>
or <F1> to get to the menu in tvtime. However, some settings must be
configured on the command line. Run 'tvtime --help' to get a list of command
line arguments. You can also save command line arguments to the config file
using --saveoptions.
tvtime --saveoptions --norm=pal --frequencies=europe
This will save to your config file the norm PAL and frequency table
Europe as your defaults. See docs/default.tvtime.xml for a default
configuration file and the default runtime keybindings.
3 An introduction to using tvtime
Here are the core set of key bindings you want to learn for using tvtime:
Escape or q Quit
F1 or tab Show menu
up/down Change channels
0-9 and Enter Change channels
Backspace Jump to previous channel
i Change input
m Mute
+/- and left/right Volume control
f Fullscreen
s Take a screenshot
d Display debug statistics
Here are some advanced keys. These features are all configurable via
the menu, but some of these may be useful if you use the features often:
e Toggle audio mode (stereo/mono/SAP)
v Toggle always-on-top with supporting window managers
F5/F6/F7 Picture settings
c Toggle closed caption decoding (NTSC only)
Commands can be sent to a running tvtime using the 'tvtime-command'
application. For example, 'tvtime-command channel_inc' to change
channel, or 'tvtime-command channel_1 channel_5 enter' to change to
channel 15. Run 'tvtime-command' without arguments to get a list of
available commands.
4 Setting up your channel list in tvtime
tvtime supports a channel scanner, channel renumbering, channel names,
and a list of active channels for browsing. All of these features are
available within the OSD menu system itself. Here we present some of
the details for users that wish to configure their stations directly.
European users of cable providers that do not use standard frequencies
can use our channel scanner: tvtime-scanner. This outputs to the
'Custom' frequency table, selectable in the OSD menu.
4.1 stationlist.xml
The station listing is read in from the ~/.tvtime/stationlist.xml.
Channel settings are saved specific to norm and frequency table.
For more information on the specific format used, see
'man stationlist.xml'.
4.2 Future enhancements
tvtime still needs a method of editing channel names at runtime
(should not be hard).
5 Using tvtime in areas that receive both PAL and SECAM stations
If you live in an area which receives stations in both PAL and SECAM
formats, no worries, tvtime can switch between norms on a per-channel
basis. This feature is available in the OSD menu.
tvtime cannot currently remember norms per input, that is, you cannot
yet tell tvtime that your composite in is SECAM but your tuner input is
PAL. This feature will be added in a future version of tvtime.
dnl acinclude.m4 are M4 macros used to generate aclocal.m4
dnl Copyright (C) 2002, 2003 Billy Biggs
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 2 of the License, or (at
dnl your option) any later version.
dnl This program is distributed in the hope that it will be useful, but
dnl WITHOUT ANY WARRANTY; without even the implied warranty of
dnl General Public License for more details.
dnl You should have received a copy of the GNU General Public License
dnl along with this program; if not, write to the Free Software
dnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
dnl define ATTRIBUTE_ALIGNED_MAX to the maximum alignment if this is supported
[AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
[static char c __attribute__ ((aligned($ac_cv_c_attr_align_try))) = 0; return c;],
if test x"$ac_cv_c_attribute_aligned" != x"0"; then
[$ac_cv_c_attribute_aligned],[maximum supported data alignment])
dnl check if $CC supports a given set of cflags
[AC_MSG_CHECKING([if $CC supports $1 flags])
if test x"$ac_cv_try_cflags_ok" = x"yes"; then