Google's VP8 codec license is OK after all

Google caused confusion with talk of patents, but it turns out company's VP8 video codec is safe for open source use

Responding to my article here two weeks ago, the Software Freedom Law Center (SFLC), a law firm that provides pro bono support to the open source software community, has published an opinion on the patent cross-license Google is considering for the VP8 codec. This is the codec used in WebM and proposed as the "mandatory to implement" video format for WebRTC, the real-time communications component of HTML5.

While the opinion broadly agrees with my assertions -- notably, if the terms in the cross-license were part of a software license rather than offered separately, they would render the license incompatible with the Open Source Definition (OSD) -- SFLC usefully clarifies that there's no actual incompatibility with open source licensing:

Because the patent license does not restrict those freedoms, but rather affords some new, limited protections to users and developers within the field of use, it improves on the current situation. Without this license, the patent holders would be in a position to threaten those users and developers as well as others.

[ Simon Phipps tells it like it is: Why software patents are evil. | Stay ahead of the key tech business news with InfoWorld's Today's Headlines: First Look newsletter. | Read Bill Snyder's Tech's Bottom Line blog for what the key business trends mean to you. ]

Re-reading my article, I realize it could be interpreted as stating there was an incompatibility with open source licensing. That's not my view. The problem is with introducing patents to the discussion at all. I believe Google should put much clearer caveats around the cross-license for open source developers, along the lines of "we don't think you actually need this, it's just to stop OEMs and pro-patent low life saying there's a problem."

In a long conversation, SFLC's Aaron Williamson and I found ourselves in broad agreement. SFLC agrees that the patent license has undesirable terms, notably around the need to register individually (non-sublicensability). I agree that the OSD does not apply to this document. I have been educated, though; I had expected to find that GPLv3 prevented someone writing code while relying on a patent license without passing on the protection of that license.

That's not so. While GPLv3 section 11 has language requiring developers to convey to others the same patent protections they themselves rely on, I'd not fully absorbed that this requirement is only imposed if the source code implementing the patented idea is kept secret. As long as you publish your implementation of VP8, it's perfectly OK to license under GPLv3 and to rely on patent protection you're not passing on.

When it comes to sublicensability, I remain unsettled by having a license that one has to trade personal information to receive and that can't be extended to others. It's been suggested to me that Google would have preferred a sublicensable cross-license but was prevented from offering it by restrictive terms from MPEG-LA, but I can't confirm that. However, a clause of Googles cross-license I'd not previously fully absorbed lends assistance here. Clause 4 offers "release from past infringement." Translation: If you accept the license, you're released from any claims of infringement of MPEG-LA patent claims. While no one I have spoken to believes MPEG-LA actually has any patents that read on VP8, this is a powerful device.

It means that in the event you're attacked by an MPEG-LA patent holder for infringement in your implementation of VP8, you can simply accept this cross-license and instantly be absolved of any claims. Moreover, the license is unilateral. To gain a license, you simply have to express agreement to its terms and conditions by mailing a signed copy to Google; there's no indication they have to approve your acceptance. Thus, while I can't extend the protection I have to you, you can at any time retrospectively get the same protection yourself.

1 2 Page 1
Page 1 of 2
How to choose a low-code development platform