Logitech MSN Webcam Codec Reverse-Engineered
Alexis Boulva writes "Tonight, Ole André Vadla Ravnås of the Farsight project (LGPL), which 'is an audio/video conferencing framework specifically designed for Instant Messengers' for the GNU Linux operating system, finished coding a release candidate of libmimic, 'an open source video encoding/decoding library for Mimic V2.x-encoded content (fourCC: ML20), which is the encoding used by MSN Messenger
for webcam conversations.' Ole, on the libmimic site, remarks that 'It should be noted that reverse-engineering for interoperability is 100%
legal here in Norway (and in most European countries).' Looks like the Free/Open Source Software movement is very close to closing up one of the most noticeable software gaps remaining from its glorious efforts."
Looks like the Free/Open Source Software movement is very close to closing up one of the most noticeable software gaps remaining from its glorious efforts."
That is until MSN 7 includes a new codec or in other ways blocks this implementation
Until MSN changes the protocol again. Timothy's byline is imho the most insightful part of the document: it's an extract from an ancient quote that goes, "DOS isn't done until Lotus won't run". [ref].
MSN's frequent "we won't let you run messenger because we need to install crucial updates for which you need to be administrator" errors is why I use Yahoo these days, but I can see how the videocam feature would be helpful to people - and how easy it would be for MSN to change it's protocols around.
Of course, GAIM had the same problem with Yahoo messenger, and they just fought them tooth-and-nail. What I'm saying is, unless somebody really puts their muscle behind this, MSN will just keep screwing around with them.
Linux isn't the only OS without an MSN video client, OS X/PPC could do with one too. As nice as iChat is, unless everyone you know is on the AIM network you're somewhat limited. I understand AIM is the largest IM network in the US, however in the UK I'd (unscientifically) say that title belongs to MSN.
I'm fully aware that having a C implementation doesn't necessarily mean portability (endianess, 64 vs 32 bit etc.), but it certainly helps.
Cheers,
Ian
90% of all video conferencing done in the professional world is based on open standards already, H.323 and H.264 are much more viable options then a propriotary microsoft product.
If linux and other GNU/GPL/open source projects are to routinely tout the viability of open source standards, why not simply use the existing and tested open sources already in use in the vast majority of VTC solutions?
Unless it's a bunch of linux users that want to taunt microsoft fans on MSN.
:::: the insomniac's digest
Er. Hence the storm of european software patents! - they _aren't_ currently enforceable in most european countries, but the patent office has been granting the patents anyway. Right now, mimic or whatever it's called is likely 100% legal in europe.
And just to make another point, to those who say FOSS is "just playing catchup" or "always copying" or whatever: Many early Webcam-style applications were BSD-licensed, things like VIC/RAT from the MBONE suite. If it weren't for the installed base of proprietary users, this package would be unnecessary. This is why Microsoft is usually careful not to care too much about "piracy" (and why you shouldn't "pirate" software even if you disagree with copyright...): network effects which dominate the computing market establish lock-in of their proprietary tools.
I call troll...
A less trivial (and possibly more legal) undertaking would have been to code a new framework from scratch
1. There is no legal problem here - it's completely legal to reverse engineer for interoperability.
2. How exactly is your "new framework" going to interact with existing (closed) systems? Or are you expecting the likes of Microsoft to implement a new open protocol so they can interact with the FOSS community?
we complain that MS "embraces and extends" all the time -- how is this any different?
Microsoft does "embrace and extend" on well defined open protocols and screws everyone over because of their market position (which basically forces everyone else to adopt their extensions). This is simply "embracing" (not extending) a propriatory system so we can interoperate with it - no protocols are being broken here.
I much prefer *actual* open source projects. Not open source derived from disassembly of closed source.
Like it or not, when interacting with propriatory systems you have to reverse engineer them because the propriators are sure as hell not going to give you the specs. The same is true of hardware drivers, etc. (an aweful lot of the hardware drivers in Linux were reverse engineered by looking at how the Windows drivers interacted with the hardware). How would you suggest doing it?
http://blog.nexusuk.org