Subpoenaed in Apple lawsuit
Tuesday, August 11th, 2009I’ve been subpoenaed in the ongoing anti-trust lawsuit against Apple.
I suggest the plaintiffs lighten up and try The Cure for iPhone Envy:

I’ve been subpoenaed in the ongoing anti-trust lawsuit against Apple.
I suggest the plaintiffs lighten up and try The Cure for iPhone Envy:

The Sony DRM rootkit saga just keeps getting better. Sony is infringing the copyright of several open source projects. Matti Nikki who has been doing research into this mailed me to let me know that some of the code Sony has ripped off is the FairPlay code that I wrote for VLC.
Ben Waggoner has made a HD trailer of The Island available.
Specs: 18 Mbps CBR MPEG-2 video, 448 Kbps 5.1 AC-3 audio
BitTorrent download: The+Island+ATSC.ts.torrent
Update: Followup by Ben Waggoner:
I’ve made a followup test – same source, but at 8 Mbps VBR in four different codecs:
The goal here is to test content at a data rate where you could do a 1080p 2-hour feature on DVD-9 media. The trailer is very high motion, so it’s not exactly a fair test, but the results should be interesting.
Instructions for compiling VLC with VC-1 (WMV9) support under Ubuntu Breezy
Install dependencies available from the Ubuntu repositories (main and universe)
$ sudo apt-get install libwxgtk2.6-dev libdvbpsi3-dev libmpeg2-4-dev libmad0-dev libasound2-dev libesd0-dev x11proto-video-dev libdvdnav-dev liba52-0.7.4-dev libflac-dev libfreetype6-dev libid3tag0-dev libogg-dev libpng12-dev libspeex-dev libtheora-dev libvorbis-dev libxml2-dev zlib1g-dev gcc g++ automake1.9 autoconf libtool subversion cvs libx11-dev
Install libdvdcss (DVD support)
$ mkdir ~/videolan ; cd ~/videolan
$ wget http://downloads.videolan.org/pub/videolan/vlc/0.8.2/contrib/libdvdcss-1.2.8.tar.bz2
$ tar -jxvf libdvdcss-1.2.8.tar.bz2 ; cd libdvdcss-1.2.8
$ ./configure --prefix=/usr ; make ; sudo make install
Compile faad2 (AAC support)
$ cd ~/videolan ; wget http://downloads.videolan.org/pub/videolan/vlc/0.8.2/contrib/faad2-20040923.tar.bz2
$ tar -jxvf faad2-20040923.tar.bz2 ; cd faad2-20040923
$ ./configure --prefix=/usr ; cd libfaad ; make
Compile ffmpeg (support for H264 and many other codecs)
$ cd ~/videolan ; cvs -z9 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co ffmpeg
$ cd ffmpeg ; ./configure --enable-pp --enable-gpl ; make
Compile libvc1 (WMV9 support)
$ cd ~/videolan ; wget http://nanocrew.net/sw/libvc1-1.0.tar.gz ; tar -zxvf libvc1-1.0.tar.gz
$ wget http://USERNAME:PWD@www.smpte-vc1.org/TrialPublication/Decoder/VC1_reference_decoder_release6.zip
$ unzip VC1_reference_decoder_release6.zip
$ cp VC1_reference_decoder_release6/decoder/*.[ch] libvc1-1.0/src/.
$ cp VC1_reference_decoder_release6/shared/*.[ch] libvc1-1.0/src/.
$ cd libvc1-1.0 ; ./bootstrap ; ./configure --prefix=/usr ; make
Install VLC
$ cd ~/videolan ; svn co svn://svn.videolan.org/vlc/trunk vlc-trunk
$ cd vlc-trunk ; wget -O – http://nanocrew.net/sw/vlc-libvc1.diff | patch -p0
$ ./bootstrap ; ./configure --with-ffmpeg-tree=../ffmpeg --enable-faad --with-faad-tree=../faad2-20040923 --enable-esd --enable-flac --enable-theora --enable-libvc1 --with-libvc1-tree=../libvc1-1.0 --disable-hal
$ make ; sudo make install
I’ve reverse engineered the encoding used in the Microsoft NSC format and written a decoder. Here’s how Cisco describes NSC:
A multicast description file is required at the Cisco content engine’s Windows Media Technology Server. This description file, in the form of an .nsc file, is received from a known URL, mount point, or even via email. This file is also referred to as an “announcement.” The source path follows the standards based URL format: http://www.cisco.com/path/filename.nsc. … the structure of the .nsc file is protected with the use of encryption. This is used to protect the media from network sniffing of the media source’s IP address, port, and stream format.
That it’s encryption is a faulty assumption (or bullshit marketing) on Cisco’s part. The algorithm doesn’t take a key.
Download: nscdec.c (MD5: 7c81ca49bc68c2b8671d00f0cdf960e3)
Example usage:
$ nscdec 02AW000000000SLm1D0580HG1C0440MG0m0380800i0200GG0000
Encoding type: 2
Decoded string: [WMRELAY02 , A]
The following documents just became available for download from the SMPTE website:
Trial Publication of SMPTE 421M PROPOSED SMPTE STANDARD for Television:
VC-1 Compressed Video Bitstream Format and Decoding Process
Trial Publication of RP 227 PROPOSED SMPTE RECOMMENDED PRACTICE for Television:
VC-1 Bitstream Transport Encodings
Trial Publication of RP 228 PROPOSED SMPTE RECOMMENDED PRACTICE for Television:
VC-1 Decoder and Bitstream Conformance
VC-1 is also known as Windows Media Video 9. See this screenshot of VLC playing the Shuttle Discovery Launch video using the VC-1 reference decoder under GNU/Linux. The reference decoder won’t be publicly available until VC-1 becomes a SMPTE standard. Update: the reference decoder is now publicly available at smpte-vc1.org.
Google has released Google Video Viewer, a browser plugin based on VLC. Here’s one of the features they’ve added:
+ // Google mods
+ const char* allowed_host = "video.google.com";
+ char * host_found = strstr(p_sys->url.psz_host, allowed_host);
+ if ((host_found == NULL) ||
+ ((host_found + strlen(allowed_host)) !=
+ (p_sys->url.psz_host + strlen(p_sys->url.psz_host)))) {
+ msg_Warn( p_access, "invalid host, only video.google.com is allowed" );
+ goto error;
+ }
This “feature” prevents you from playing videos that are not hosted on Google’s servers. Download and run this patch I wrote to remove this restriction. Running the patch requires a .NET runtime.
Update: Journalists never cease to amaze me with their ability to blow things out of proportion. For the record, I haven’t spoken to or exchanged emails with a single journalist about this, so when the Associated Press writes “said he needed only one day” that’s a complete and utter fabrication since I’ve said no such thing here on my blog.
Some of you have requested the source code for the patch: GVVPatch.cs
If you use VLC, you might have wondered what the hell is the cone for?
One day, people from the VIA association (VIA is a students’ network association with many clubs … amongst those is VideoLAN.) came back drunk with a cone. They then began a cone collection (which is now quite impressive I must say). Some time later, the VideoLAN project began and they decided to use the cone as their logo.