antlersoft home page contact antlersoft
free software news
DVArchive Input Plug-In for xine and VideoLAN Media Players

Note: DVArchive 3.0 is now out, so the patched version available below is obsolete. Among many new features, version 3.0 fixes the bugs that my patched version corrects. It also provides an HTML standard way of controlling streaming, so streaming with random access control should work correctly out-of-the-box with compliant media players; VideoLAN is known to be compliant in this respect. Therefore, my VideoLAN plugin is also obsolete. I don't know yet if Xine works with 3.0 with or without the plugin; when I have had a chance to test these, I'll update this page accordingly.



Among it's many uses, the DVArchive utility for ReplayTV DVR's allows you to stream video from the ReplayTV to your computer.  The video can play on any video player that can handle an MPEG-2 video stream.

When you play a video recorded on the ReplayTV, sometime it's nice to be able to skip ahead or back in the show.  The ReplayTV remote control allows you to do this when you watch video on your television, and video player software on your computer also allows you to do this when you watch a video file on your computer.  Video player software normally does not allow you to do this with streaming video, however, since there is no standard method of controlling the video stream from the player.

DVArchive does provide a way for the video player to control the stream from the ReplayTV, but until now there was no video player that could use this interface.  I have developed add-ons to the Open Source xine (for Linux) and VideoLAN (for Windows and Linux, only tested with Windows) video players that allows them to control streaming playback from ReplayTV through DVArchive.  With these add-ons you can play a stream from your ReplayTV with all the same controls with which you play a video file downloaded to your computer.

Using the Software

xine

There are several media players out there based on the xine library.  This add-on should work with any of them, although I have only tested it with xine-ui.  xine players use any number of dynamically loaded libraries called plug-ins.  This add-on provides a new input plug-in.  Adding it to the directory containing the other xine plug-ins will make this functionality available to all xine-based players.  When you stream a video from your ReplayTV with DVArchive, you will be able to have the same player functionality you have when playing a video from a file on your system.  In xine-ui, thise means you can use the slider to skip to any point in the stream, and you can use the arrow keys to skip forward and backward by 60 seconds or 15 seconds.

VideoLAN

The VideoLAN player should work the same way.  As far as I can tell, VideoLAN has skip ahead and skip back keys like xine. However, the VideoLAN player gets confused about the timing of the ReplayTV MPEG stream, so these controls do not always work exactly as they should.  Adjusting the position in the stream with the slider does seem to work reliably.

DVArchive Patch

In the course of developing the add-ons, I found two bugs in DVArchive that needed to be fixed before the plug-ins worked properly.  The fixes will be available in the upcoming 3.0 release of DVArchive; since this is not yet available, I am providing here a patched DVArchive.jar so people can use the plug-ins right away.  The plug-ins will only work properly with this patched version of DVArchive.jar.

Downloads

Binaries

xine

I have built one binary version of the xine plug-in which I include here.  This was built with Slackware 8.1 against xine-lib-1-beta12. Because of the modular nature of xine, this ought to work for most Linux users of xine.  Installation instructions are included in readme.txt.

VideoLAN

There are now two versions of the VideoLAN software supported.  Make sure you have the correct plugin for the version of VideoLAN you have downloaded.  You can check the version of VideoLAN you have by selecting About from the Help menu.

DVArchive Patch

This zip file contains the patched version of DVArchive.jar.  You simply use it in place of your existing DVArchive.jar.  Since this is not the "official" version, please don't expect to get tech support for it from the usual places.  Keep a copy of your existing version of DVArchive.jar, and if the patched version gives you trouble with normal operations, go back to that version first before you ask for help.  The patches deal specifically with issues related to controlling streams, and are unlikely to affect any other area of DVArchive operation.  You can direct questions about controlling video streaming to me.

Please note: the patched DVArchive.jar posted here on 7/7 contained a bug that prevented the plug-ins from working properly for files larger than 2 GB. The current version corrects this problem. If you downloaded the patched DVArchive.jar before 7/10/2003, you should download again so the plug-ins work properly on large files. You only need to download the amended patched DVArchive.jar; the plug-ins themselves are fine.

Source

xine

If you unpack this source archive in the base directory of your xine-lib-1-beta12 source installation and run the configure script again, it will let you build the DVArchive input plug-in with the rest of xine.

VideoLAN


DVArchive Patch

I don't have the source of DVArchive, so I am unable to patch the source.  I made my fixes by changing the class files directly.  If you are interested in how I did this, consult these Java source files.  To build them, you will also need my ClassWriter library.