Unfortunately, according to Wikipedia, Skype holds software patents on parts of
the algorithm. Even though they said they'd make them avaiable royalty-free, this
still means it isn't completely free.
In what way is using a technology not free, if you are given a royalty-free license to use the patents on it? (Honest question, I don't know what you mean here.)
Notice that permission is only given for implementations that comply with the specification. (And if Skype ever infringes any of your patents, you can't sue them without losing the rights to Opus.)
Whether or not you agree with Skype's moral right to its patents, this is clearly a limitation of developers' freedom. Imagine if HTTP were covered by this kind of patent: anyone could implement a client or server, but developing a backward-incompatible extension like SPDY would be off-limits. If you were to take the license terms literally, even releasing a buggy implementation that doesn't precisely follow all of the requirements of the spec would make you liable.
> Notice that permission is only given for implementations that comply with the specification.
That's typical - otherwise, you could implement some almost arbitrary protocol but say it was this one (and use a small amount of it) and claim that you were shielded from Skype's patents. The patent license is just for this particular codec.
Of course there are issues with this, it's been debated a lot regarding the Java and C# licenses, which also have similar clauses for similar reasons. The motivation for them is reasonable, but the details can be tricky.
> (And if Skype ever infringes any of your patents, you can't sue them without losing the rights to Opus.)
Personally I think that's fine. If you want to engage in a full-on patent war, you should not benefit from a patent license like this.
> Whether or not you agree with Skype's moral right to its patents, this is clearly a limitation of developers' freedom. Imagine if HTTP were covered by this kind of patent: anyone could implement a client or server, but developing a backward-incompatible extension like SPDY would be off-limits. If you were to take the license terms literally, even releasing a buggy implementation that doesn't precisely follow all of the requirements of the spec would make you liable.
If a single bug makes you liable, obviously it is unfair, etc, but that's exactly where the details of the license come into play - I am not a lawyer, so I have no idea if the terms here are reasonable or not.
>That's typical - otherwise, you could implement some almost arbitrary
protocol but say it was this one (and use a small amount of it) and claim that
you were shielded from Skype's patents.
No, that's what standard bodies are for. No need for stupid patent licenses.
Besides, this is exactly why this isn't free.
Could I make a format based on Opus, but not conforming to the spec? Maybe
because I had an idea for better algorithms in some parts? No. I cannot take the
parts of Opus which fall under Skype/Microsofts patents and use them in
derivatives. This means that both the implementation as well as the standard are
free and open on paper only. In reality, I am denied freedom number 3 - the
right to distribute modified implementations.
Take note that you could just solve this with a trademark on Opus (which
probably already exists). Many large FLOSS projects do that. Firefox, for
example - derivatives are not allowed to call themselves "Firefox" (which I
think is one of the very few valid uses of trademarks).
If Skype/Microsoft would be actually interested in a free and open standard,
they would have pledged to let go of these patents. I don't know if you can just
say "this patent is now invalid", but if not, they could hand them over to the
standard body, which could then assure that everybody is allowed to use these
patents until they expire.
>Personally I think that's fine. If you want to engage in a full-on patent war,
you should not benefit from a patent license like this.
I find it quite funny that people already implictly assume that if someone
starts a patent infringement lawsuit, they are in for patent war. Please tell me
again why we haven't got rid of patents yet?
>If a single bug makes you liable, obviously it is unfair, etc, but that's exactly where the details of the license come into play - I am not a lawyer, so I have no idea if the terms here are reasonable or not.
Speaking as one of the authors of the spec here, this is very much not the intention. I personally believe a patent license should never be used to enforce standards compliance, and that's not the purpose of that term. Keep in mind, I don't think anyone involved in this standard wants to go around suing people, particularly those interested in implementing and deploying it! In addition to being a gigantic waste of time and money, it would kill the standard dead.
But we specifically included a conformance test to make it easy to know if you met the legal requirements, so you didn't have to trust us. At the request of the working group, this test was made so lax that we worried you could start deleting random lines of code (as an "optimization") and still manage to pass it (to combat this the test also displays a "quality" parameter which drops long before you get to the failure point, so implementors can start marketing that number if their competitors try this tactic, instead of being stuck in a race to the bottom).
in some ways, a perpetual unrestricted license is better than an unpatented algorithm. The big excuse for not adopting webm was "uncertainty" about the patent situation. If skype has the patents and is giving free licenses, there isn't any uncertainty here, you know that microsoft has no basis to ever sue.
This is true and is one reason that free things these days are given "licenses" instead of simply being declared by their makers to be in the public domain. The public domain isn't what it used to be.
It's impossible to declare a work under the public domain in the USA. A creative work reaches the public domain only when its copyright expires, or if it's a government work.
Read up on the rationale behind the CC0 license for more information:
To some (significant) degree, but you never know that no one else has patents on a technology. That's exactly what is so messed up with software patents.
On any specific technology, you absolutely can know that no one else has patents on it. That is the responsibility of the patent office: to grant exclusive rights to an 'invention'. you cannot be held liable for infringement of anything you have a license for.
In this case though, Microsoft only has patents on part of the algorithm, so it is theoretically possible that other parts of the algorithm are covered by other patents.
It's rare, but I remember reading that USPTO has mistakenly issued conflicting patents. Legally, any publication is enough to bar others' patents, they're just not good at finding anything in the software literature, so having your own patent sort of rubs examiners' noses in it.
> On any specific technology, you absolutely can know that no one else has patents on it. That is the responsibility of the patent office: to grant exclusive rights to an 'invention'.
The problem though is that anything complex like a video or audio codec can constitute many "inventions" from the USPTO's point of view. H.264 has many patents on it, for example. Again, this is one of the big problems with the current patent system.
So in practical terms you can never use a codec with the knowledge that no one else has patents on it.
And in certain situations it's better not to know, because knowingly infringing patents can result in significantly higher monetary penalties than unknowingly infringing them.
I vehemently disagree. This is supposed to become an open standard. Open
standards must, in my opinion, be completely free. No compromises. No
exceptions. No footnotes. No patent bullshit.