theora.git
8 years agoAdd a new libtheora_info example program.
Ralph Giles [Thu, 2 Dec 2010 19:28:11 +0000 (19:28 +0000)]
Add a new libtheora_info example program.

This program shows how to query a few version-dependent library
paramenters, such as the vendor string and maximum speed level,
and prints a summary to stdout in 'header: value' format.

I mostly wanted this as a utility to get the maximum speed level
for benchmark scripts, but thought it structuring it as an example
was better than stuffing it in tools.

It would be reasonable to extend this to return decoder parameters
like the maximum preprocessing level.

svn path=/trunk/theora/; revision=17709

8 years agoEnable svn keyword expansion of eol-adjustment on dump_psnr.c
Ralph Giles [Thu, 2 Dec 2010 19:22:04 +0000 (19:22 +0000)]
Enable svn keyword expansion of eol-adjustment on dump_psnr.c

svn path=/trunk/theora/; revision=17708

8 years agoRemove an extra space in the file header.
Ralph Giles [Thu, 2 Dec 2010 18:46:32 +0000 (18:46 +0000)]
Remove an extra space in the file header.

svn path=/trunk/theora/; revision=17707

8 years agoAdd a build variable collect_metrics to the scons build.
Ralph Giles [Tue, 30 Nov 2010 19:32:31 +0000 (19:32 +0000)]
Add a build variable collect_metrics to the scons build.

Invoking the build with 'scons collect_metrics=1' will
compile the library -DOC_COLLECT_METRICS, which enables
recording training metrics.

svn path=/trunk/theora/; revision=17692

8 years agoAdd a -q option to encoder_example to silence progress messages.
Ralph Giles [Thu, 25 Nov 2010 21:20:07 +0000 (21:20 +0000)]
Add a -q option to encoder_example to silence progress messages.

This makes it a little nice to call from a batch job with parallel
executation. The messages indentifying the input file parameters
and error messages are still printed.

svn path=/trunk/theora/; revision=17660

8 years agoMake input parameter_intra_satd const, ACKed by derf.
oggk [Thu, 25 Nov 2010 15:23:36 +0000 (15:23 +0000)]
Make input parameter_intra_satd const, ACKed by derf.

svn path=/trunk/theora/; revision=17649

8 years agoFix out-of-date OC_ARM_ASM_ARMV6 usage.
Tim Terriberry [Wed, 24 Nov 2010 21:11:47 +0000 (21:11 +0000)]
Fix out-of-date OC_ARM_ASM_ARMV6 usage.

This was ultimately named OC_ARM_ASM_MEDIA instead.
It shouldn't have mattered in this case, as it shouldn't be possible to get
 OC_ARM_ASM_MEDIA without OC_ARM_ASM_EDSP, but clean it up anyway.

svn path=/trunk/theora/; revision=17646

8 years agoRename OC_SAD_SHIFT to OC_SATD_SHIFT.
Ralph Giles [Wed, 24 Nov 2010 20:51:36 +0000 (20:51 +0000)]
Rename OC_SAD_SHIFT to OC_SATD_SHIFT.

The SAD and SADT metrics have different ranges, so it is
necessary to use different scale factors when comparing
them.

Originally we used SAD, and when SATD was added, the
scale factor was updated without changing the name.
This commit finally does so. However, it is intended
that the code switch back to the SAD metric at higher
speed levels, we also keep OC_SAD_SHIFT with its
appropriate value, 6 according to Tim.

Likewise, OC_SAD_BINS is renamed OC_COMP_BINS in
expectation of supporting mode tables for both
metrics.

svn path=/trunk/theora/; revision=17645

8 years agoDocument that the th_*_ctl() return values are specific
Ralph Giles [Mon, 22 Nov 2010 20:55:49 +0000 (20:55 +0000)]
Document that the th_*_ctl() return values are specific
to the control codes passed.

svn path=/trunk/theora/; revision=17639

8 years agoCorrect a typo in the usage documentation.
Ralph Giles [Thu, 18 Nov 2010 17:18:43 +0000 (17:18 +0000)]
Correct a typo in the usage documentation.

Thanks to Basil Gohar for pointing this out.

svn path=/trunk/theora/; revision=17632

8 years agoDon't change the block qii flags if no ac coefficients will be coded in the selected...
Gregory Maxwell [Tue, 9 Nov 2010 02:43:37 +0000 (02:43 +0000)]
Don't change the block qii flags if no ac coefficients will be coded in the selected mode. The code previously tried to do this but failed, instead it desynchronized the qii costing with the coded flags. 0.065dB SSIM improvement on 312kbit/sec foreman_cif.y4m.

svn path=/trunk/theora/; revision=17624

8 years ago#define __GNUC_PREREQ ourselves.
Tim Terriberry [Fri, 29 Oct 2010 04:21:26 +0000 (04:21 +0000)]
#define __GNUC_PREREQ ourselves.

On non-glibc systems (Android), the system headers won't do it for us.
This also simplifies its use, since we can guarantee it's always #define'd
 (i.e., as 0 on non-gcc builds).

svn path=/trunk/theora/; revision=17578

8 years agoPrevent double free on codebook unpacking failure.
Tim Terriberry [Fri, 29 Oct 2010 04:00:07 +0000 (04:00 +0000)]
Prevent double free on codebook unpacking failure.

svn path=/trunk/theora/; revision=17577

8 years agoWarning fixes.
Tim Terriberry [Fri, 29 Oct 2010 01:07:51 +0000 (01:07 +0000)]
Warning fixes.

Signed/unsigned comparison and integer conversion overflow.

svn path=/trunk/theora/; revision=17576

8 years agoMore include fixes.
Tim Terriberry [Fri, 29 Oct 2010 00:41:16 +0000 (00:41 +0000)]
More include fixes.

sse2trans.h was including encoder headers, when it can be used by the decoder
 alone.

svn path=/trunk/theora/; revision=17575

8 years agoTwo minor fixes.
Tim Terriberry [Fri, 29 Oct 2010 00:32:55 +0000 (00:32 +0000)]
Two minor fixes.

sse2idct.c was needlessly including x86enc.h when it is part of the decoder.
collect.c had a trailing space.

svn path=/trunk/theora/; revision=17574

8 years agoFix some C64x compiler warnings.
Tim Terriberry [Mon, 25 Oct 2010 21:17:23 +0000 (21:17 +0000)]
Fix some C64x compiler warnings.

Remove a few unused variables (that were assigned to, but never used), and
 add an explicit cast to convert -OC_LOTS_OF_BITS to unsigned, since the C64x
 compiler complains about the sign change (arguably rightly so).

svn path=/trunk/theora/; revision=17565

8 years agoAdd c64x changes for r17563, as they were accidentally omitted.
Tim Terriberry [Mon, 25 Oct 2010 21:11:10 +0000 (21:11 +0000)]
Add c64x changes for r17563, as they were accidentally omitted.

svn path=/trunk/theora/; revision=17564

8 years agoEnsure frame rows are 16-byte aligned.
Tim Terriberry [Mon, 25 Oct 2010 17:40:54 +0000 (17:40 +0000)]
Ensure frame rows are 16-byte aligned.

We don't actually use this for anything yet, but it may help calling
 applications (e.g., doing software YUV2RGB conversion).
Also, change ref_frame_data to point directly to the desired reference frame,
 rather than require a lookup through ref_frame_idx first.
This saves an indirection and gives a 0.7% speed-up at 720p on a Cortex A8.
It should have an even bigger benefit on C64x, though it wasn't benchmarked
 there.

svn path=/trunk/theora/; revision=17563

8 years agoRemoved Windows CE Platform Builder as a dependency of building Windows Mobile binaries.
Cristian Adam [Wed, 20 Oct 2010 21:48:27 +0000 (21:48 +0000)]
Removed Windows CE Platform Builder as a dependency of building Windows Mobile binaries.

svn path=/trunk/theora/; revision=17550

8 years agomcenc.c: Skip the 4MV SATD in speed level 2. 2% speedup. Avoid duplicating the...
Gregory Maxwell [Wed, 13 Oct 2010 15:15:19 +0000 (15:15 +0000)]
mcenc.c: Skip the 4MV SATD in speed level 2.  2% speedup.  Avoid duplicating the first set b candidate (correctly adding the surrounding accelerators hurt efficiency).

svn path=/trunk/theora/; revision=17507

8 years agoImprove MV predictor computations.
Tim Terriberry [Wed, 13 Oct 2010 02:52:41 +0000 (02:52 +0000)]
Improve MV predictor computations.

This removes some useless clamping and only computes set B predictors when
 they're actually going to be used.

svn path=/trunk/theora/; revision=17506

8 years agoAvoid harmless Coverity warning in oc_sb_create_plane_mapping().
Tim Terriberry [Tue, 12 Oct 2010 19:56:11 +0000 (19:56 +0000)]
Avoid harmless Coverity warning in oc_sb_create_plane_mapping().

Coverity thinks we're overrunning this static array by passing it to memset.
In reality, it's a multidimensional array, and guaranteed to be contiguous, but
 we might as well silence this warning.
Reported in https://bugzilla.mozilla.org/show_bug.cgi?id=559343

svn path=/trunk/theora/; revision=17505

8 years agoName C version of oc_huff_token_decode properly.
Tim Terriberry [Tue, 12 Oct 2010 18:59:45 +0000 (18:59 +0000)]
Name C version of oc_huff_token_decode properly.

This should have had a _c suffix, which r17503 exposed.

svn path=/trunk/theora/; revision=17504

8 years agoPull in internal.h (for config.h) from bitpack.h.
Tim Terriberry [Tue, 12 Oct 2010 13:38:16 +0000 (13:38 +0000)]
Pull in internal.h (for config.h) from bitpack.h.

This is needed to get OC_ARM_ASM, so the C bitpacking routines don't get used
 during header parsing.

svn path=/trunk/theora/; revision=17503

8 years agoRemove a debug printf from parse_time.
Ralph Giles [Fri, 8 Oct 2010 18:42:04 +0000 (18:42 +0000)]
Remove a debug printf from parse_time.

svn path=/trunk/theora/; revision=17495

8 years agoFix a comment typo.
Ralph Giles [Fri, 8 Oct 2010 16:39:54 +0000 (16:39 +0000)]
Fix a comment typo.

svn path=/trunk/theora/; revision=17494

8 years agoAdd PROC/ENDP markings to the ARM asm (currently ignored by the GNU toolchain).
Tim Terriberry [Sun, 3 Oct 2010 22:49:42 +0000 (22:49 +0000)]
Add PROC/ENDP markings to the ARM asm (currently ignored by the GNU toolchain).
Also slightly simplify the MB mode and MV decoding.
The new code uses slightly less cache and fewer lookups.

svn path=/trunk/theora/; revision=17481

8 years agoAdd x86 assembly files to the libtheoraenc and libtheoradec
Ralph Giles [Tue, 28 Sep 2010 18:52:07 +0000 (18:52 +0000)]
Add x86 assembly files to the libtheoraenc and libtheoradec
static library targets in the XCode build.

svn path=/trunk/theora/; revision=17473

8 years agoFix win32 bustage created by r17457.
Tim Terriberry [Fri, 24 Sep 2010 23:01:08 +0000 (23:01 +0000)]
Fix win32 bustage created by r17457.

Thanks to Cristian Adam for the report.

svn path=/trunk/theora/; revision=17467

8 years agoFix typos. Thanks to Maik Merten for pointing these out.
Ralph Giles [Fri, 24 Sep 2010 08:29:54 +0000 (08:29 +0000)]
Fix typos. Thanks to Maik Merten for pointing these out.

svn path=/trunk/theora/; revision=17465

8 years agoUpdate the README for the 1.2 releases.
Ralph Giles [Fri, 24 Sep 2010 08:17:50 +0000 (08:17 +0000)]
Update the README for the 1.2 releases.

svn path=/trunk/theora/; revision=17464

8 years agoBump version strings post-release.
Ralph Giles [Fri, 24 Sep 2010 07:58:29 +0000 (07:58 +0000)]
Bump version strings post-release.

svn path=/trunk/theora/; revision=17463

8 years agoAdd a summary of changes for the 1.2.0alpha1 release.
Ralph Giles [Fri, 24 Sep 2010 07:56:48 +0000 (07:56 +0000)]
Add a summary of changes for the 1.2.0alpha1 release.

Unfortunately, I didn't do this before actually making the release.

svn path=/trunk/theora/; revision=17462

8 years agoCache the reference frame associated with the current MB mode in each fragment.
Tim Terriberry [Fri, 24 Sep 2010 02:05:49 +0000 (02:05 +0000)]
Cache the reference frame associated with the current MB mode in each fragment.

This avoids repeatedly performing the MB mode -> reference frame translation,
 which is done many times per fragment during DC prediction.
In fact, by using a special OC_FRAME_NONE tag for uncoded fragments, one need
 not even check to see if a fragment is coded during DC prediction, simplifying
 it even more.
This saves 2% on 720p decode on a Cortex A8.

svn path=/trunk/theora/; revision=17457

8 years agoRestore the old automake options in a comment.
Tim Terriberry [Thu, 23 Sep 2010 23:13:52 +0000 (23:13 +0000)]
Restore the old automake options in a comment.

This makes it easier for me to switch back to them in places that don't support
 automake 1.11 yet.

svn path=/trunk/theora/; revision=17456

8 years agoUpdated Visual Studio project files. v1.2.0alpha1
Cristian Adam [Thu, 23 Sep 2010 21:50:57 +0000 (21:50 +0000)]
Updated Visual Studio project files.

svn path=/trunk/theora/; revision=17452

8 years agoBump the library and package versioning for the 1.2 release.
Ralph Giles [Thu, 23 Sep 2010 20:30:53 +0000 (20:30 +0000)]
Bump the library and package versioning for the 1.2 release.

svn path=/trunk/theora/; revision=17449

8 years agoBump the vendor string.
Ralph Giles [Thu, 23 Sep 2010 20:30:30 +0000 (20:30 +0000)]
Bump the vendor string.

svn path=/trunk/theora/; revision=17448

8 years agoPrefer xz to bzip2 for distribution.
Ralph Giles [Thu, 23 Sep 2010 20:28:11 +0000 (20:28 +0000)]
Prefer xz to bzip2 for distribution.

This requires bumping the minimum automake version to 1.11.

svn path=/trunk/theora/; revision=17447

8 years agoWin32 asm fixes.
Tim Terriberry [Thu, 23 Sep 2010 20:06:20 +0000 (20:06 +0000)]
Win32 asm fixes.

Thanks to Benjamin Jemlich and Cristian Adam for help diagnosing and testing.

svn path=/trunk/theora/; revision=17446

8 years agoCopy Derf's experimental ptalarbvorm branch to trunk.
Ralph Giles [Thu, 23 Sep 2010 15:56:45 +0000 (15:56 +0000)]
Copy Derf's experimental ptalarbvorm branch to trunk.

This will be the basis of the 1.2.x releases.

svn path=/trunk/theora/; revision=17445