LlamaKISS is a replacement for the media streaming software known as PC-Link,
by Linksys, former KISS Technology.
It’s used to send videos, music and pictures from a Windows computer to
KISS digital video recorders:
- KISS DP-500
- KISS DP-508
- KISS DP-558 (I owned this one myself, R.I.P)
- KISS DP-600
- KISS DP-1500
- KISS DP-1504
- KISS DP-1600
So why this replacement?
Because the original PC-Link software didn’t work properly after I installed Windows Vista x64. When I tried to play videos,
the pre-buffering paused resulting in out-of-sync sound. Very annoying, and rendering my DP-558 somewhat useless.
So why not use any of the other replacements?
The only ones I’ve found are either made in Java
(JLink, Kiss Now,
Open DP-500), Perl
(kissntell) or isn’t made for Windows and uses
kissdx). LlamaKISS is a native Windows console application written in C++ using the WinSock API.
Does it work?
With Windows Vista x64 and my DP-558 it works as intended. If you have Windows XP, 2000, or another player model and it don’t,
please contact me. You can help me debug by un-commenting the two
[debug] settings in the
do some test and e-mail me the files created.
So what does it cost? Nothing, it’s free software.
- 2009-03-10 v1.1.0:
It’s now possible to install and run in the background as a service!
- 2009-01-01 v1.0.11:
GET command parse issue where DP-508 players sometimes don’t send PlayerID nor enclosing characters.
- 2008-07-29 v1.0.10:
ACTION command issue, might fix issues with DP-1500.
- 2008-05-31 v1.0.9:
LIST command issue where some players models make the directory path locally and don’t use the absolute path sent.
- 2008-05-30 v1.0.8:
GET command parse issue where some player models (DP-600) don’t send PlayerID.
This might fix a few issues where LlamaKISS refused to play media files.
- 2008-04-03 v1.0.7:
Multiple locations for each media type. Please replace your existing
- 2008-03-01 v1.0.6:
Additional settings to help with debugging. The release build is now compiled with Debugging Information so MiniDump’s can be used.
- 2008-03-01 v1.0.5:
- 2008-02-28 v1.0.4:
New security setting to filter media by file extension. Re-write of the command parser, hopefully fixing issue where some only saw directories.
- 2007-12-31 v1.0.3:
To get out of DLL-hell I’ve statically linked the CRT, not as easy as it sounds due to Visual Studio weirdness.
File size increased due to that. I now know it should work on Windows XP. I’ve tested.
- 2007-12-20 v1.0.2:
Changed to using GetCurrentThreadId instead of GetThreadId, which hopefully fixes Windows 2000 and XP issue.
- 2007-12-07 v1.0.1:
Changed from SOCKADDR to SOCKADDR_STORAGE structures, hopefully fixing the bug where getpeername could fail.
- 2007-11-20 v1.0.0:
Initial public release.
- If your DP-508 player don’t accept .srt subtitle files, try renaming them to .utf and add
utf=VIDEO to the
[extensions] section of your
- Some players (DP-1600?) can only see the directory structure not
the media files. This might be that some players send different command
than my DP-558 thus LlamaKISS interpret them wrong.
- Some players (DP-558?) hang, requiring a reboot, after playing some
movie files. I’ve noticed this a few times myself, cause yet unknown.
- Distorted picture the first second when playing a
Not much can be done about this I think, it’s a player issue.
- File not found: VIDEO\DIVX VIDEO\(movie name).avi. This might be
caused by symbolic links (shortcuts), LlamaKISS does not follow ’em.
Most of there can probably be fixed quite easily with a little help from you.
CommandDumpFile=LlamaKISS.log in the
[debug] section of the
try playing a movie then e-mail me the log-file created.
The file contains all the commands sent from your player to the server.
With it I can see if the commands differ from what my DP-558 sends and then change the interpretation in LlamaKISS accordingly.
If any of you have C/C++ experience and would like to help out,
I’ll happily publish/open source the code.
I’ve open-sourced it, hosted at Google code.
- Testing with more models of KISS hardware. I would appreciate your feedback.
- Play list support.
Maybe make it a Windows Service to run in the background. Done!
- Make a true Windows application with a nice GUI. For the configuration anyway, if the rest becomes a Windows Service.
- Support disc image
iso playback. This really isn’t that important any longer since you can just map one of your
VIDEO location to a virtual drive (DaemonTools) and play the
TS files directly.
Support FLAC playback.
I’ve tried to implement this and concluded that it can’t be done without transcoding to
My DP-558 can’t play
PCM samples, neither in
- Maybe integrate a KML server, if someone find it usefull.
- Any requests?
- Real-time browsing of available media files. No need to add every file/directory like PC-Link.
- Map multiple paths for each type of media. Virtual drives (DaemonTools),
network shares, USB-sticks, floppy drives :).
- Allow/deny connections by IP address.
- Allow/deny media streaming by PlayerID.
- Filter media files by file-extension.
- Very low memory and CPU usage, using overlapped IO (IoCompletionPort) with worker threads and
system cache manager calls (TransmitFile).
Download and un-zip the archive to wherever you want,
Program Files directory. Edit the
LlamaKISS.ini with Notepad, or alike, and add variables in the
PICTURE sections to where your media is located. Run
LlamaKISS.exe, use Ctrl-C to exit.
If you’re using a firewall make sure
LlamaKISS.exe can accept incomming TCP connections and send/receive UPD packets on port 8000.
GNU Lesser General Public License <http://www.gnu.org/licenses/lgpl-3.0.txt>
Henrik Lindqvist <firstname.lastname@example.org>