Issue #2965 - Update libtheora to 1.2.0.

This commit is contained in:
Job Bautista 2026-02-25 20:55:00 +08:00 • committed by OwnedByWuigi
commit 9bda7819c9
56 changed files with 367 additions and 307 deletions

View file

@ -1,169 +1,218 @@
libteora 1.2.0alpha1 (2010 September 23)
libtheora 1.2.0 (2025 March 29)
* Bumped minor SONAME versions as oc_comment_unpack() implementation
changed.
* Added example wrapper script encoder_example_ffmpeg (#1601 #2336).
* Improve comment handling on platforms where malloc(0) return NULL
(#2304).
* Added pragma in example code to quiet clang op precedenca warnings.
* Adjusted encoder_example help text.
* Adjusted README, CHANGES, pkg-config and spec files to better reflect
current release (#2331 #2328).
* Corrected english typos in source and build system.
* Switched http links to https in doc and comments where relevant.
Did not touch RFC drafts.
- New 'ptalarbvorm' encoder with better rate/distortion optimization
- New th_encode_ctl option for copying configuration from an existing
setup header, useful for splicing streams.
- Returns TH_DUPFRAME in more cases.
- Add ARM optimizations
- Add TI C64x+ DSP optimizations
- Other performance improvements
- Rename speedlevel 2 to 3 and provide a new speedlevel 2
- Various minor bug fixes
libtheora 1.2.0beta1 (2025 March 15)
* Bumped minor SONAME versions as <codec.h> methods changed constness
of arguments.
* Updated libogg dependency to version 1.3.4 for ogg_uint64_t.
* Updated doxygen setup.
* Updated autotools setup and support scripts (#1467 #1800 #1987 #2318
#2320).
* Added support for RISC OS.
* Fixed mingw build (#2141).
* Improved ARM support.
* Converted SCons setup to work with Python 3.
* Introduced new configure options --enable-mem-constraint and
--enable-gcc-sanitizers.
* Fixed all known compiler warnings and errors from gcc and clang.
* Improved examples for stability and correctness.
* Various speed, bug fixes and code quality improvements.
- Fixed build problem with Visual Studio (#2317).
- Avoids undefined bit shift of signed numbers (#2321, #2322).
- Avoids example encoder crash on bogus audio input (#2305).
- Fixed musl linking issue with asm enabled (#2287).
- Fixed some broken clamping in rate control (#2229).
- Added NULL check _tc and _setup even for data packets (#2279).
- Fixed mismatched oc_mb_fill_cmapping11 signature (#2068).
- Updated the documentation for theora_encode_comment() (#726).
- Adjusted build to only link libcompat with dump_video (#1587).
- Corrected an operator precedence error in the visualization
code (#1751).
- Fixed two spelling errors in the comments (#1804).
- Avoid negative bit shift operation in huffdec.c (CVE-2024-56431).
* Improved library documentation and specification text.
* Adjusted library dependencies so libtheoraenc do not depend on
libtheoradec.
* Handle fallout from CVE-2017-14633 in libvorbis, check return value
in encoder_example and transcoder_example.
libtheora 1.2.0alpha1 (2010 September 23)
* New 'ptalarbvorm' encoder with better rate/distortion optimization
* New th_encode_ctl option for copying configuration from an existing
setup header, useful for splicing streams.
* Returns TH_DUPFRAME in more cases.
* Add ARM optimizations
* Add TI C64x+ DSP optimizations
* Other performance improvements
* Rename speedlevel 2 to 3 and provide a new speedlevel 2
* Various minor bug fixes
libtheora 1.1.2 (unreleased snapshot)
- Fix Huffman table decoding with OC_HUFF_SLUSH is set to 0
- Fix a frame size bug in player_example
- Add support for passing a buffer the size of the picture
* Fix Huffman table decoding with OC_HUFF_SLUSH is set to 0
* Fix a frame size bug in player_example
* Add support for passing a buffer the size of the picture
region, rather than a full padded frame to th_encode_ycbcr_in()
as was possible with the legacy pre-1.0 API.
- 4:4:4 support in player_example using software yuv->rgb
- Better rgb->yuv conversion in png2theora
- Clean up warnings and local variables
- Build and documentation fixes
* 4:4:4 support in player_example using software yuv->rgb
* Better rgb->yuv conversion in png2theora
* Clean up warnings and local variables
* Build and documentation fixes
libtheora 1.1.1 (2009 October 1)
- Fix problems with MSVC inline assembly
- Add the missing encoder_disabled.c to the distribution
- build updates: autogen.sh should work better after switching systems
* Fix problems with MSVC inline assembly
* Add the missing encoder_disabled.c to the distribution
* build updates: autogen.sh should work better after switching systems
and the MSVC project now defaults to the dynamic runtime library
- Namespace some variables to avoid conflicts on wince.
* Namespace some variables to avoid conflicts on wince.
libtheora 1.1.0 (2009 September 24)
- Fix various small issues with the example and telemetry code
- Fix handing a zero-byte packet as the first frame
- Documentation cleanup
- Two minor build fixes
* Fix various small issues with the example and telemetry code
* Fix handing a zero-byte packet as the first frame
* Documentation cleanup
* Two minor build fixes
libtheora 1.1beta3 (2009 August 22)
- Rate control fixes to smooth quality
- MSVC build now exports all of the 1.0 api
- Assorted small bug fixes
* Rate control fixes to smooth quality
* MSVC build now exports all of the 1.0 api
* Assorted small bug fixes
libtheora 1.1beta2 (2009 August 12)
- Fix a rate control problem with difficult input
- Build fixes for OpenBSD and Apple Xcode
- Examples now all use the 1.0 api
- TH_ENCCTL_SET_SPLEVEL works again
- Various bug fixes and source tree rearrangement
* Fix a rate control problem with difficult input
* Build fixes for OpenBSD and Apple Xcode
* Examples now all use the 1.0 api
* TH_ENCCTL_SET_SPLEVEL works again
* Various bug fixes and source tree rearrangement
libtheora 1.1beta1 (2009 August 5)
- Support for two-pass encoding
- Performance optimization of both encoder and decoder
- Encoder supports dynamic adjustment of quality and
* Support for two-pass encoding
* Performance optimization of both encoder and decoder
* Encoder supports dynamic adjustment of quality and
bitrate targets
- Encoder is generally more configurable, and all
* Encoder is generally more configurable, and all
rate control modes perform better
- Encoder now accepts 4:2:2 and 4:4:4 chroma sampling
- Decoder telemetry output shows quantization choice
* Encoder now accepts 4:2:2 and 4:4:4 chroma sampling
* Decoder telemetry output shows quantization choice
and a breakdown of bitrate usage in the frame
- MSVC assembly optimizations up to date and functional
* MSVC assembly optimizations up to date and functional
libtheora 1.1alpha2 (2009 May 26)
- Reduce lambda for small quantizers.
- New encoder fDCT does better on smooth gradients
- Use SATD for mode decisions (1-2% bitrate reduction)
- Assembly rewrite for new features and general speed up
- Share code between the encoder and decoder for performance
- Fix 4:2:2 decoding and telemetry
- MSVC project files updated, but assembly is disabled.
- New configure option --disable-spec to work around toolchain
* Reduce lambda for small quantizers.
* New encoder fDCT does better on smooth gradients
* Use SATD for mode decisions (1-2% bitrate reduction)
* Assembly rewrite for new features and general speed up
* Share code between the encoder and decoder for performance
* Fix 4:2:2 decoding and telemetry
* MSVC project files updated, but assembly is disabled.
* New configure option --disable-spec to work around toolchain
detection failures.
- Limit symbol exports on MacOS X.
- Port remaining unit tests from the 1.0 release.
* Limit symbol exports on MacOS X.
* Port remaining unit tests from the 1.0 release.
libtheora 1.1alpha1 (2009 March 27)
- Encoder rewrite with much improved vbr quality/bitrate and
* Encoder rewrite with much improved vbr quality/bitrate and
better tracking of the target rate in cbr mode.
- MSVC project files do not work in this release.
* MSVC project files do not work in this release.
libtheora 1.0 (2008 November 3)
- Merge x86 assembly for forward DCT from Thusnelda branch.
- Update 32 bit MMX with loop filter fix.
- Check for an uninitialized state before dereferencing in propagating
* Merge x86 assembly for forward DCT from Thusnelda branch.
* Update 32 bit MMX with loop filter fix.
* Check for an uninitialized state before dereferencing in propagating
decode calls.
- Remove all TH_DEBUG statements.
- Rename the bitpacker source files copied from libogg to avoid
* Remove all TH_DEBUG statements.
* Rename the bitpacker source files copied from libogg to avoid
confusing simple build systems using both libraries.
- Declare bitfield entries to be explicitly signed for Solaris cc.
- Set quantization parameters to default values when an empty buffer is
* Declare bitfield entries to be explicitly signed for Solaris cc.
* Set quantization parameters to default values when an empty buffer is
passed with TH_ENCCTL_SET_QUANT_PARAMS.
- Split encoder and decoder tests depending on configure settings.
- Return lstylex.sty to the distribution.
- Disable inline assembly on gcc versions prior to 3.1.
- Remove extern references for OC_*_QUANT_MIN.
- Make various data tables static const so they can be read-only.
- Remove ENCCTL codes from the old encoder API.
- Implement TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE ctl.
- Fix segfault when exactly one of the width or height is not a multiple
* Split encoder and decoder tests depending on configure settings.
* Return lstylex.sty to the distribution.
* Disable inline assembly on gcc versions prior to 3.1.
* Remove extern references for OC_*_QUANT_MIN.
* Make various data tables static const so they can be read-only.
* Remove ENCCTL codes from the old encoder API.
* Implement TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE ctl.
* Fix segfault when exactly one of the width or height is not a multiple
of 16, but the other is.
- Compute the correct vertical offset for chroma.
- cpuid assembly fix for MSVC.
- Add VS2008 project files.
- Build updates for 64-bit platforms, Mingw32, VS and XCode.
- Do not clobber the cropping rectangle.
- Declare ourselves 1.0final to pkg-config to sort after beta releases.
- Fix the scons build to include asm in libtheoradec/enc.
* Compute the correct vertical offset for chroma.
* cpuid assembly fix for MSVC.
* Add VS2008 project files.
* Build updates for 64-bit platforms, Mingw32, VS and XCode.
* Do not clobber the cropping rectangle.
* Declare ourselves 1.0final to pkg-config to sort after beta releases.
* Fix the scons build to include asm in libtheoradec/enc.
libtheora 1.0beta3 (2008 April 16)
- Build new libtheoradec and libtheoraenc libraries
* Build new libtheoradec and libtheoraenc libraries
supporting the new API from theora-exp. This API should
not be considered stable yet.
- Change granule_frame() to return an index as documented.
* Change granule_frame() to return an index as documented.
This is a change of behaviour from 1.0beta1.
- Document that granule_time() returns the end of the
* Document that granule_time() returns the end of the
presentation interval.
- Use a custom copy of the libogg bitpacker in the decoder
* Use a custom copy of the libogg bitpacker in the decoder
to avoid function call overhead.
- MMX code improved and ported to MSVC.
- Fix a problem with the MMX code on SELinux.
- Fix a problem with decoder quantizer initialization.
- Fix a page queue problem with png2theora.
- Improved robustness.
- Updated VS2005 project files.
- Dropped build support for Microsoft VS2003.
- Dropped build support for the unreleased libogg2.
- Added the specification to the autotools build.
- Specification corrections.
* MMX code improved and ported to MSVC.
* Fix a problem with the MMX code on SELinux.
* Fix a problem with decoder quantizer initialization.
* Fix a page queue problem with png2theora.
* Improved robustness.
* Updated VS2005 project files.
* Dropped build support for Microsoft VS2003.
* Dropped build support for the unreleased libogg2.
* Added the specification to the autotools build.
* Specification corrections.
libtheora 1.0beta2 (2007 October 12)
- Fix a crash bug on char-is-unsigned architectures (PowerPC)
- Fix a buffer sizing issue that caused rare encoder crashes
- Fix a buffer alignment issue
- Build fixes for MingW32, MSVC
- Improved format documentation.
* Fix a crash bug on char-is-unsigned architectures (PowerPC)
* Fix a buffer sizing issue that caused rare encoder crashes
* Fix a buffer alignment issue
* Build fixes for MingW32, MSVC
* Improved format documentation.
libtheora 1.0beta1 (2007 September 22)
- Granulepos scheme modified to match other codecs. This bumps
* Granulepos scheme modified to match other codecs. This bumps
the bitstream revision to 3.2.1. Bitstreams marked 3.2.0 are
handled correctly by this decoder. Older decoders will show
a one frame sync error in the less noticeable direction.
libtheora 1.0alpha8 (2007 September 18)
- Switch to new spec compliant decoder from theora-exp branch.
* Switch to new spec compliant decoder from theora-exp branch.
Written by Dr. Timothy Terriberry.
- Add support to the encoder for using quantization settings
* Add support to the encoder for using quantization settings
provided by the application.
- more assembly optimizations
* more assembly optimizations
libtheora 1.0alpha7 (2006 June 20)
- Enable mmx assembly by default
- Avoid some relocations that caused problems on SELinux
- Other build fixes
- time testing mode (-f) for the dump_video example
* Enable mmx assembly by default
* Avoid some relocations that caused problems on SELinux
* Other build fixes
* time testing mode (-f) for the dump_video example
libtheora 1.0alpha6 (2006 May 30)
@ -183,7 +232,7 @@ libtheora 1.0alpha5 (2005 August 20)
* Fixed bitrate management bugs that caused popping and encode
errors
* Fixed a crash problem with the theora_state internals not
being intialized properly.
being initialized properly.
* new utility function:
- theora_granule_shift()
* dump_video example now makes YUV4MPEG files by default, so
@ -220,7 +269,7 @@ libtheora 1.0alpha3 (2004 March 20)
- move the granulepos shift field to maintain byte alignment longer.
- reserve 5 additional bits for subsampling and interlace flags.
* Bitstream setup header FORMAT CHANGES:
- support for a range of interpolated quant matricies.
- support for a range of interpolated quant matrices.
- include the in-loop block filter coeff.
* Bitsteam data packet FORMAT CHANGES:
- Reserve a bit for per-block Q index selection.