Last modified: 2008-08-21 16:49:06 UTC

Wikimedia Bugzilla is closed!

Wikimedia migrated from Bugzilla to Phabricator. Bug reports are handled in Wikimedia Phabricator.
This static website is read-only and for historical purposes. It is not possible to log in and except for displaying bug reports and their history, links might be broken. See T17119, the corresponding Phabricator task for complete and up-to-date bug report information.
Bug 15119 - Patch for Java Theora decoder: Computation of quantization matrices according to spec
Patch for Java Theora decoder: Computation of quantization matrices according...
Status: CLOSED FIXED
Product: Cortado
Classification: Unclassified
jheora (Other open bugs)
unspecified
All All
: Normal enhancement (vote)
: ---
Assigned To: Tim Starling
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2008-08-11 13:42 UTC by Maik Merten
Modified: 2008-08-21 16:49 UTC (History)
1 user (show)

See Also:
Web browser: ---
Mobile Platform: ---
Assignee Huggle Beta Tester: ---


Attachments
Proposed patch to implement quantization-matrices setup according to Theora spec (31.81 KB, patch)
2008-08-11 13:42 UTC, Maik Merten
Details
Version 2 of the patch, makes jheora decode Thusnelda clips (34.77 KB, patch)
2008-08-17 11:17 UTC, Maik Merten
Details

Description Maik Merten 2008-08-11 13:42:35 UTC
Created attachment 5159 [details]
Proposed patch to implement quantization-matrices setup according to Theora spec

The current incarnation of jheora, the Java Theora decoder used in Cortado, is hardcoded to only support the quantization setup as seen in the VP3-subset of the Theora spec. It e.g. doesn't interpolate between matrices.

I rewrote much of the quant-setup code (Quant.java) according to the Theora spec. Each step is documented by the fitting part of the Theora spec.

This is an extensive (but inevitable) change to the decoder code. It's a prerequisite for implementing more specification features to enable Cortado to play back streams encoded with more advanced encoders.

Some testing has been done to determine if it breaks existing content. More testing welcome.
Comment 1 Tim Starling 2008-08-11 18:07:37 UTC
Any chance of a differential fuzz test? That is, a program that can feed random input to two decoders, presumably your one and a reference decoder like libtheora, and compare the outputs for any differences? When done correctly, it can be a very sensitive test for the correctness of both decoders, as long as they were written independently. 
Comment 2 Maik Merten 2008-08-12 12:46:09 UTC
As jheora is known to not implement the whole spec (after applying the patch it'll "just" implement a bit more) I see little value into fuzz-testing right now - jheora for sure won't match the reference encoder. What may make sense would be a "batch decoding" setup that ensures a given set of test files decodes without e.g. the decoder terminating due to encountered errors.
Comment 3 Brion Vibber 2008-08-14 03:36:30 UTC
FWIW this patch doesn't seem to be quite enough to render the thusnelda encoder test output downloadable from http://xiphmont.livejournal.com/35363.html :(
Comment 4 Maik Merten 2008-08-14 11:54:30 UTC
This is a known problem. The proposed patch is supposed to prepare the codebase for further changes, it won't by itself enable playback of real-life content the old unpatched decoder wouldn't decode as well.
Comment 5 Tim Starling 2008-08-16 03:24:29 UTC
It's a big change in a region of code that none of us at Wikimedia are familiar with. Could you add some decoder features that we can test, to give us some confidence that you know what you're doing?
Comment 6 Maik Merten 2008-08-16 09:02:18 UTC
Okay, I'll try to extend the patch so it includes support for the Thusnelda encoder and then resubmit. That way the risk of breaking things at least has the prospect of adding something immediately useful.
Comment 7 Maik Merten 2008-08-17 11:17:12 UTC
Created attachment 5183 [details]
Version 2 of the patch, makes jheora decode Thusnelda clips

Newly attached patch includes the changes of the first proposed patch and additionally enables playback of content encoded with the experimental Thusnelda encoder.
Comment 8 Maik Merten 2008-08-21 16:08:56 UTC
Patch committed. Closing this bug.
Comment 9 Brion Vibber 2008-08-21 16:49:06 UTC
Woohoo! :D Thanks!

Note You need to log in before you can comment on or make changes to this bug.


Navigation
Links