tvtime

Help and FAQ

  1. Support resources
  2. Summary of new features by release
  3. Summary of known bugs by release
  4. Performance: run as root, use the real-time clock
  5. Window manager issues with fullscreen mode
  6. FAQ: How do I disable deinterlacing?
  7. FAQ: Does tvtime support recording?
  8. FAQ: Why is the tvtime window appear blue or black in screenshots?
  9. FAQ: Purple lines in video? How do I avoid macrovision?
  10. FAQ: Interference problems with soundcards
  11. FAQ: Optimal settings for tvtime on TV output
  12. FAQ: Does tvtime support FreeBSD or NetBSD?
  13. FAQ: How do I force the screenshots to be a specific filename?

1. Support resources

Interested in tvtime? Having trouble? Have suggestions? Why not hang out with us on IRC at irc.freenode.net, channel #livid. Hope to see you there!

There is also a tvtime mailing list which you can subscribe to, or read on the web.


2. Summary of new features by release

    tvtime 0.9.9
  1. Added a full menu system for configuring tvtime.
  2. Simplified deinterlacer names and provide online help for them.
  3. Unified OSD appearance across all television standards.
  4. Support for saving picture settings both globally and per-channel.
  5. Finetune settings saved per-channel.
  6. Support for the V4L2 DVB driver and bttv9 for PAL-60 support.
  7. Added a channel scanner application 'tvtime-scanner' that outputs to the 'Custom' frequency table.
  8. Native support for UYVY input from the rivatv driver.
  9. Removed lirc support in favour of using tvtime-command.
  10. Fixed remaining screensaver, Xinerama and fullscreen issues.
  11. Many other new features and bugfixes.
    tvtime 0.9.8.5
  1. Some root safety improvements.
  2. Added support for long-format command line arguments.
  3. Added config file options to set startup window position.
  4. Compile fixes for non-C99 compilers and older DirectFB versions.
    tvtime 0.9.8.4
  1. Support for norm switching between "compatible" norms for areas which receive both SECAM and PAL format stations.
  2. Added support for the mga_vid driver for the Matrox G200/G400 series cards from mplayer.
  3. Semi-experimental of the X code for better fullscreen support under many window managers. Testing appreciated.
  4. Support for changing the mixer device and channel (see 'man tvtime' and the config file documentation).
  5. Slightly less partial experimental UTF-8 support. Now works with any simple left-to-right scripts which are in FreeSansBold.ttf .
    tvtime 0.9.8.2
  1. Fixed all of the known crashes and many minor bugs from the 0.9.8 release.
  2. Updated the look-and-feel of the user interface.
  3. Partial EXPERIMENTAL UTF-8 support. Only works with UTF-8 characters that are also in ISO-8859-1 (Latin-1).
    tvtime 0.9.8
  1. New XML config file format for both the tvtime configuration, and the station list.
  2. 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.
  3. Added support for preset 'modes', which can set the deinterlacer, window size, fullscreen setting and framerate mode.
  4. 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.
  5. 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:
    1. DScaler: Greedy - High Motion
    2. DScaler: Greedy - 2-frame
    3. DScaler: TwoFrame
    4. DScaler: TomsMoComp
    5. DScaler: Video Bob
    6. 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.
  6. Added the ffmpeg vertical deinterlacer filter.
  7. Support for multiple audio channels (stereo, mono, lang1, lang2).
  8. Included a bunch of fixes for PAL-M support.
  9. Added a slave mode for freevo integration.
  10. Various speedups, quality improvements, and bugfixes.

3. Summary of known bugs by release

The following is a list of known bugs in the tvtime code itself. For detailed information on known capture driver, X driver, and hardware bugs, please see the tvtime hardware and driver support page.

    tvtime 0.9.8.5
  1. tvtime does not modify V4L input volume, so if it is set incorrectly before running tvtime you may not get sound (bug 729964).
  2. tvtime does not support the standard -geometry command line option (bug 727947).
  3. tvtime does not support the standard -display command line option (bug 727946).
  4. tvtime does not support the linux-dvb driver (bug 694544).
  5. dalias' pulldown detection algorithm is currently disabled (bug 751093).
  6. No support for PAL-60 (bug 729660).
  7. No runtime norm switching for non-compatible norms (PAL/NTSC switching) (bug 743918).
    tvtime 0.9.8.2
  1. Toggling fullscreen nukes AlwaysOnTop setting in kwin (bug 720300).
  2. Luma correction broken if using Dalias' pulldown detection (bug 726822).
  3. if using less than 4 gbuffers, tvtime shows a blue frame as you change channels (bug 690473).
  4. font aspect ratio is not updated if you toggle the aspect ratio at runtime (bug 628943).
  5. We have not written MMX versions of many functions that we do have MMXEXT versions of, as such, performance is much worse than it should be on older CPUs (bug 630236).
  6. tvtime does not notify the user when frames are being dropped (bug 633235).
    tvtime 0.9.8.1
  1. Compile is broken for pre-gcc3 (bug 731932).
    tvtime 0.9.8
  1. README incorrectly lists 'b' as channel_renumber key when it is really 'r' (bug 729675).
  2. xscreensaver shutdown code does not work (bug 729718).
  3. kscreensaver code is disabled as it is too slow (bug 727990).
  4. Fullscreen the wrong size if using Xinerama (bug 726820).
  5. Toggling fullscreen nukes AlwaysOnTop setting in kwin (bug 720300).
  6. Luma correction broken if using Dalias' pulldown detection (bug 726822).
  7. Network name and call letters from XDS not displayed (bug 729588).
  8. if using less than 4 gbuffers, tvtime shows a blue frame as you change channels (bug 690473).
  9. font aspect ratio is not updated if you toggle the aspect ratio at runtime (bug 628943).
  10. We have not written MMX versions of many functions that we do have MMXEXT versions of, as such, performance is much worse than it should be on older CPUs (bug 630236).
  11. tvtime does not notify the user when frames are being dropped (bug 633235).

4. Performance: run as root, use the real-time clock

For optimal performance, tvtime should run as root, either by logging in or using su to become root, or setting the executable setuid root. As root, tvtime can:

  1. Reset the process priority to one which gives highest priority to the tvtime process, the specific value can be set in the tvtime.xml file. Many high priorities are only available to processes with root access.
  2. Aquire realtime priority by entering into the SCHED_FIFO scheduling queue, where tvtime will be allowed to processes video uninterrupted by other processes. This is most important when using deinterlacers that eat up alot of CPU to make sure that tvtime does not drop frames.
  3. Running as root automatically gives you access to 1024hz resolution from the real-time clock device.

Note that if tvtime is setuid root, we will drop root priviledges after aquiring all of the performance enhancements we need, making it slightly more polite.

Support for the real-time clock device is needed for smooth video. We STRONGLY recommend that you load the rtc kernel module before starting tvtime. The following command will tell you if rtc support is available:

    cat /proc/driver/rtc

If this file exists, then the real time clock driver is loaded. Otherwise, please load it by typing:

    modprobe rtc

Or add it to your /etc/modules file to have it loaded on every reboot. For smooth video, make sure you run as root, but if you are uncomfortable with this, you can let tvtime access high resolutions from the rtc device by executing the following command:

    sysctl -w dev.rtc.max-user-freq=1024

Note that this setting is lost on reboot, so this should be added into your system startup scripts. Consult your Linux distribution documentation for how to do this correctly on your system.


6. FAQ: How do I disable deinterlacing?

I think there is a misconception about what the deinterlacing plugins do and what it means to disable them. The signal output from almost any video source, be it a Gamecube or cable TV, is an interlaced video signal. Implicitly when you display this on a computer screen, you are deinterlacing: you're taking interlaced content and sending it out to a non-interlaced display.

The simplest way to do this, and the default if you use xawtv in overlay mode, is to buffer every two consecutive fields together and show them as a single frame. You can do this in tvtime by using the Weave plugin, and hitting the 'half framerate' button. That's about as close to "not deinterlacing" as you can get, but it's still deinterlacing.

However it's worthy to mention that detecting progressive content sent over an interlaced channel, as will happen with some video games, or DV cameras in progressive modes, is still deinterlacing and is something we don't really do right now, except by manually using Weave and half framerate mode (which won't work for pulldown sources). This feature is being improved.


7. FAQ: Does tvtime support recording?

tvtime does not yet support recording or playback of recorded streams. If you are interested in helping with coding this feature, please contact the authors.


8. FAQ: Why does tvtime appear blue in screenshots?

tvtime outputs video into a video overlay surface, an area of memory outside of the framebuffer, using the XVIDEO X extension. As such, applications which take screenshots such as ksnapshot, gimp or xwd only see the colourkeyed window, and not output of tvtime.

We believe it is a design flaw or driver limitation on the X or video card hardware that one or the other cannot provide the image to screenshot applications. For this reason, the only known workaround for taking screenshots of tvtime along with the desktop is to use the screenshot feature inside tvtime, and cut-and-paste the output into a full desktop screen capture.


9. FAQ: Purple lines in video? How do I avoid macrovision?

If you are seeing purple lines or having problems with video signal quality from an external DVD player, VCR, or Laserdisc player, try disabling Macrovision in your bttv driver (if you have a bttv card). See http://www.colby.edu/personal/k/kjseptor/bttv.html for information on how to do that.


10. FAQ: Interference problems with soundcards

If you are experiencing a generally fuzzy picture, try moving your tv card one or two slots away from your soundcard (inside your pc). Interference from the soundcard can mess up some channels.


11. FAQ: Optimal settings for tvtime on TV output

Some people are interested in using tvtime even when their output itself a television. Usually this is in the context of setting up a home theatre PC system as in a PVR. Ideally for television output, no deinterlacing is required; the interlaced signal is sent to the output such that every top field in the input is mapped to a top field in the output.

Unfortunately, there is no standard TV output API under linux. The vesa framebuffer setup for TV output cannot tell us which field is currently being output. Similarily, some TV output setups under linux have it as a second head in X, but again, with no field information we cannot know how to supply it with interlaced content to ensure that fields are shown in the right order.

There are two possible solutions. I have been told that with the NVIDIA TV output drivers, when using XVIDEO, if you supply them with top-field-first frames, they will display the fields correctly. To experiment, try tvtime using the Progressive: Top Field First deinterlacer. This may give good results. The second option would be using a card with a TV output driver that gives field information. An example is the Matrox G400/G450/G550 driver in DirectFB. We are working on native support for TV output in this setting.


12. FAQ: Does tvtime support FreeBSD or NetBSD?

Every now and then someone asks about BSD'ish systems and tvtime. Currently, tvtime will not work on BSD-based systems, but the code to get it to work should not be too difficult.

There is a driver for bt848 and bt878-based cards under BSD called bsdbt848. The API for this driver is different from Linux's video4linux that tvtime was written for, so the first job would be to do the input code in tvtime to handle this driver. See mplayer for one example of some code that uses this driver.

The only other Linux-specific features that we use would be the /dev/rtc code to do high performance timing (I assume there is a BSD equivalent of this), and potentially the wine loader for the DScaler DLLs may need updating.

If you make any progress on any of these, please let me know. Thanks.


FAQ: How do I force the screenshots to be a specific filename?

tvtime's screenshots can be given a filename when requested using tvtime-command. Simply do:

  tvtime-command SCREENSHOT "current.png"

And the screenshot will output as current.png. This is useful for scripts which upload the latest image from the TV to a webpage, for example.