Files
UXP/media/libtheora/CHANGES
T
2026-02-27 06:58:00 +08:00

305 lines
12 KiB
Plaintext

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.
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
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
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
and the MSVC project now defaults to the dynamic runtime library
* 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
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
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
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
bitrate targets
* 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
and a breakdown of bitrate usage in the frame
* 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
detection failures.
* 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
better tracking of the target rate in cbr mode.
* 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
decode calls.
* 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
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
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.
libtheora 1.0beta3 (2008 April 16)
* 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.
This is a change of behaviour from 1.0beta1.
* Document that granule_time() returns the end of the
presentation interval.
* 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.
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.
libtheora 1.0beta1 (2007 September 22)
* 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.
Written by Dr. Timothy Terriberry.
* Add support to the encoder for using quantization settings
provided by the application.
* 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
libtheora 1.0alpha6 (2006 May 30)
* Merge theora-mmx simd acceleration (x86_32 and x86_64)
* Major RTP payload specification update
* Minor format specification updates
* Fix some spurious calls to free() instead of _ogg_free()
* Fix invalid array indexing in PixelLineSearch()
* Improve robustness against invalid input
* General warning cleanup
* The offset_y member now means what every application thought it meant
(offset from the top). This will mean some old files (those with a
non-centered image created with a buggy encoder) will display differently.
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 initialized properly.
* new utility function:
- theora_granule_shift()
* dump_video example now makes YUV4MPEG files by default, so
the results can be fed back to encoder_example and similar
tools. The old behavior is restored through the '-r' switch.
* ./configure now prints a summary
* simple unit test of the comment api under 'make check'
* misc code cleanup, warning and leak fixes
libtheora 1.0alpha4 (2004 December 15)
* first draft of the Theora I Format Specification
* API documentation generated from theora.h with Doxygen
* fix a double-update bug in the motion analysis
* apply the loop filter before filling motion vector border
in the reference frame
* new utility functions:
- theora_packet_isheader(),
- theora_packet_iskeyframe()
- theora_granule_frame()
* optional support for building without floating point
* optional support for building without encode support
* various build and packaging fixes
* pkg-config support
* SymbianOS build support
libtheora 1.0alpha3 (2004 March 20)
UPDATE: on 2004 July 1 the Theora I bitstream format was frozen. Files
produced by the libtheora 1.0alpha3 reference encoder will always be
decodable by the Theora I spec.
* Bitstream info header FORMAT CHANGES:
- 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 matrices.
- include the in-loop block filter coeff.
* Bitsteam data packet FORMAT CHANGES:
- Reserve a bit for per-block Q index selection.
- Flip the coded image orientation for compatibility with VP3.
This allows lossless transcoding of VP3 content, but files
encoded with earlier theora releases would play upside down.
* example VP3 lossless transcoder
* optional support for libogg2
* timing improvements in the example player
* packaging and build system updates and fixes
libtheora 1.0alpha2 (2003 June 9)
* bitstream FORMAT CHANGES:
- store the quant tables in a third setup header for
future encoder flexibility
- store the huffman tables in the third setup header
- add a field for marking the colorspace to the info header
- add crop parameters for non-multiple-of-16 frame sizes
- add a second vorbiscomment-style metadata header
* API changes to handle multiple headers with a single
theora_decode_header() call, like libvorbis
* code cleanup and minor fixes
* new dump_video code example/utility
* experimental win32 code examples
libtheora 1.0alpha1 (2002 September 25)
* First release of the theora reference implementation
* Port of the newly opened VP3 code to the Ogg container
* Rewrite of the code for portability and to use the libogg bitpacker