2004-01-02, 23:52
members of the xbmc team,
i have added a feature to xbmc requested by some that allows it to do streaming playback of shows recorded on a networked replaytv 4000/5000/5500 series. i thought i would post here to get input on the best way to get this included in future versions of xbmc. i assume that i should just add the necessary files and patches to the patch section on sf, but i wanted to go ahead and give a heads up here of what integrating this feature entails. below is the readme file i am planning to include with the patches and source. i appreciate any comments and assistance in getting this included and thanks for all your hard work on xbmc!
i have added a feature to xbmc requested by some that allows it to do streaming playback of shows recorded on a networked replaytv 4000/5000/5500 series. i thought i would post here to get input on the best way to get this included in future versions of xbmc. i assume that i should just add the necessary files and patches to the patch section on sf, but i wanted to go ahead and give a heads up here of what integrating this feature entails. below is the readme file i am planning to include with the patches and source. i appreciate any comments and assistance in getting this included and thanks for all your hard work on xbmc!
Quote:***************************************************************************
xbmc support for streaming shows from a replaytv by rtvguy
***************************************************************************
this patch adds support for streaming shows recorded on a networked
replaytv 4000, 4500, 5000, or 5500 series pvr directly to xbmc for
playback. this is accomplished by adding a new streaming protocol to xbmc
that i call the rtv protocol. this protocol is implemented in a manner
similar to xbms in that most of the code rests in a dynamically-loaded
library called librtv. the source code to this library is included in the
patch .zip file.
integrating this patch into the xbmc cvs should be fairly straightforward,
as described below.
***************************************************************************
changed xbmc files:
***************************************************************************
1) xbmc/application.cpp
the included application.cpp.patch file modifies this file to provide
support for loading the librtv library.
2) xbmc/filesystem/factorydirectory.cpp
the included factorydirectory.cpp.patch file modifies this file to add
support for the crtvdirectory class.
3) xbmc/filesystem/filefactory.cpp
the included filefactory.cpp.patch file modifies this file to add support
for the cfilertv class.
4) mplayer/mplayer.dll
the file libmpdemux/open.c in docs/mplayer_sourcecodepatch.rar must be
modified to add support for the rtv protocol.
specifically, the following line:
if (stricmp(url->protocol, "xmbs") &&
stricmp(url->protocol, "xns") &&
stricmp(url->protocol, "shout") &&
stricmp(url->protocol, "cdda") &&
stricmp(url->protocol, "smb") &&
stricmp(url->protocol, "iso9660") )
must be changed to:
if (stricmp(url->protocol, "xmbs") &&
stricmp(url->protocol, "xns") &&
stricmp(url->protocol, "shout") &&
stricmp(url->protocol, "cdda") &&
stricmp(url->protocol, "smb") &&
stricmp(url->protocol, "rtv") &&
stricmp(url->protocol, "iso9660") )
5) xbmc.vcproj
the included xbmc.vcproj.patch file modifies this file to add the files
rtvdirectory.h, rtvdirectory.cpp, filertv.h, and filertv.cpp to the xbmc
project and also suppresses preloading of the librtv library.
***************************************************************************
added xbmc files:
***************************************************************************
1)xbmc/filesystem/rtvdirectory.h
the interface for the crtvdirectory class.
2)xbmc/filesystem/rtvdirectory.cpp
the implementation of the crtvdirectory class.
3)xbmc/filesystem/filertv.h
the interface for the cfilertv class.
4)xbmc/filesystem/filertv.cpp
the implementation of the cfilertv class.
5) docs/librtv.rar
this file contains complete source code for the librtv library.
***************************************************************************
added xbmc directories:
***************************************************************************
1) xbmc/lib/librtv
this directory should contain the librtv binaries built from the source
code included in "docs/librtv.rar" (release: librtv.lib, debug:
librtvd.lib). this directory should also include the *.h header files from
the "docs/librtv.rar" file.
***************************************************************************
instructions for use:
***************************************************************************
setting up rtv shares in a build of xbmc that includes support for them is
easy. just add the necessary info under the <video> section of
xboxmediacenter.xml, much as you would for a relax or xbms share there are
2 different kinds of shares, each with two different show listing formats.
share type #1 - manual rtv share
listing format a (preferred)
the following example will display a list of recordings by name (as
retrieved from the replayguide) for the replaytv with the ip address of
192.168.1.100.
<bookmark>
<name>name of your choice</name>
<path>rtv://192.168.1.100/</path>
</bookmark>
listing format b
the following example will display a list of recordings by *filename only*
for the replaytv with the ip address of 192.168.1.100. this can be useful
if for some reason your replayguide cannot be properly parsed (all known
replayguide formats as of 01/04 should be supported).
<bookmark>
<name>name of your choice</name>
<path>rtv://192.168.1.100/video</path>
</bookmark>
share type #2 - automatic rtv share
listing format a (preferred)
the following example will attempt to automatically discover and list in
xbmc *all* replaytvs on your lan. selecting a particular replaytv in the
list will then display its recordings by name as described above.
<bookmark>
<name>name of your choice</name>
<path>rtv://*/</path>
</bookmark>
listing format b
the following example will attempt to automatically discover and list in
xbmc *all* replaytvs on your lan. selecting a particular replaytv in the
list will then display its recordings by *filename only* as described
above.
<bookmark>
<name>name of your choice</name>
<path>rtv://*/video</path>
</bookmark>
that's it!