diff options
author | James Cowgill <jcowgill@debian.org> | 2018-08-12 18:52:25 +0100 |
---|---|---|
committer | James Cowgill <jcowgill@debian.org> | 2018-08-12 18:52:25 +0100 |
commit | 81c7b516689aa03ec2a2036d37d68137113fed5c (patch) | |
tree | d7a38bc1e1a97d221eca0dfd30ac50631422b814 | |
parent | a31541259e0908643c4a8be9a2a3be7d6ffe4bd6 (diff) |
Commit Debian 3.0 (quilt) metadatadebian/1.0.0-1archive/debian/1.0.0-1
[dgit (6.6) quilt-fixup]
10 files changed, 945 insertions, 0 deletions
diff --git a/debian/patches/cmake-link-pthreads-into-aom-target.patch b/debian/patches/cmake-link-pthreads-into-aom-target.patch new file mode 100644 index 000000000..77c6ea098 --- /dev/null +++ b/debian/patches/cmake-link-pthreads-into-aom-target.patch @@ -0,0 +1,29 @@ +From: Tom Finegan <tomfinegan@google.com> +Date: Thu, 2 Aug 2018 11:12:22 -0700 +X-Dgit-Generated: 1.0.0-1 fe173d61e658dcbf99a2911ff161ad832be94e15 +Subject: cmake: Link pthreads into aom target. + +Link pthread into the aom library target instead of +looping over all executable targets and making each +depend on pthread. + +BUG=aomedia:2071 + +Change-Id: I93766e16e47fb74844180f20c7e43ba1e7a5b0ed +(cherry picked from commit a167939a0c2be1206ba3175f5bcaf917d55f15ef) + +--- + +--- aom-1.0.0.orig/CMakeLists.txt ++++ aom-1.0.0/CMakeLists.txt +@@ -552,9 +552,7 @@ endif() + + if(HAVE_PTHREAD_H AND CONFIG_MULTITHREAD) + find_package(Threads) +- foreach(app_target ${AOM_APP_TARGETS}) +- target_link_libraries(${app_target} ${AOM_LIB_LINK_TYPE} Threads::Threads) +- endforeach() ++ target_link_libraries(aom ${AOM_LIB_LINK_TYPE} Threads::Threads) + endif() + + if(XCODE) diff --git a/debian/patches/cmake-restrict-exported-symbols-in-share.patch b/debian/patches/cmake-restrict-exported-symbols-in-share.patch new file mode 100644 index 000000000..1d6803eee --- /dev/null +++ b/debian/patches/cmake-restrict-exported-symbols-in-share.patch @@ -0,0 +1,65 @@ +From: Tom Finegan <tomfinegan@google.com> +Date: Mon, 6 Aug 2018 11:53:40 -0700 +X-Dgit-Generated: 1.0.0-1 d494bba3c001db562b2719966f5520c3fceea241 +Subject: cmake: Restrict exported symbols in shared object builds. + +Add missing local section to linker script. Also some cosmetics: +- set() -> list(APPEND) in generate_exports.cmake. +- Make the linker script more readable (indent/whitespace). + +BUG=aomedia:2072 + +Change-Id: I96d474f5ac9a7f9a19108cb9efd2af3587c9b81e +(cherry picked from commit 7fe8cb729bf36264d47a5d5d1e1803fa2623d3c3) +[jcowgill: remove exports_test related code because v1.0.0 does not +have this] + +--- + +--- aom-1.0.0.orig/build/cmake/exports_sources.cmake ++++ aom-1.0.0/build/cmake/exports_sources.cmake +@@ -13,14 +13,15 @@ if(AOM_BUILD_CMAKE_EXPORTS_SOURCES_CMAKE + endif() # AOM_BUILD_CMAKE_EXPORTS_SOURCES_CMAKE_ + set(AOM_BUILD_CMAKE_EXPORTS_SOURCES_CMAKE_ 1) + +-set(AOM_EXPORTS_SOURCES "${AOM_ROOT}/aom/exports_com") ++list(APPEND AOM_EXPORTS_SOURCES "${AOM_ROOT}/aom/exports_com") + + if(CONFIG_AV1_DECODER) +- set(AOM_EXPORTS_SOURCES ${AOM_EXPORTS_SOURCES} "${AOM_ROOT}/aom/exports_dec" +- "${AOM_ROOT}/av1/exports_dec") ++ list(APPEND AOM_EXPORTS_SOURCES "${AOM_ROOT}/aom/exports_dec" ++ "${AOM_ROOT}/av1/exports_dec") + endif() + + if(CONFIG_AV1_ENCODER) +- set(AOM_EXPORTS_SOURCES ${AOM_EXPORTS_SOURCES} "${AOM_ROOT}/aom/exports_enc" +- "${AOM_ROOT}/av1/exports_enc") ++ list(APPEND AOM_EXPORTS_SOURCES "${AOM_ROOT}/aom/exports_enc" ++ "${AOM_ROOT}/av1/exports_enc") + endif() ++ +--- aom-1.0.0.orig/build/cmake/generate_exports.cmake ++++ aom-1.0.0/build/cmake/generate_exports.cmake +@@ -39,7 +39,7 @@ elseif("${AOM_TARGET_SYSTEM}" MATCHES "W + file(WRITE "${aom_sym_file}" "LIBRARY libaom INITINSTANCE TERMINSTANCE\n" + "DATA MULTIPLE NONSHARED\n" "EXPORTS\n") + else() +- file(WRITE "${aom_sym_file}" "{ global:\n") ++ file(WRITE "${aom_sym_file}" "{\nglobal:\n") + endif() + + foreach(export_file ${AOM_EXPORTS_SOURCES}) +@@ -51,10 +51,10 @@ endforeach() + foreach(exported_symbol ${exported_symbols}) + string(STRIP "${exported_symbol}" exported_symbol) + string(REGEX REPLACE "text \|data " "" "exported_symbol" "${exported_symbol}") +- set(exported_symbol "${symbol_prefix}${exported_symbol}${symbol_suffix}") ++ set(exported_symbol " ${symbol_prefix}${exported_symbol}${symbol_suffix}") + file(APPEND "${aom_sym_file}" "${exported_symbol}\n") + endforeach() + + if("${aom_sym_file}" MATCHES "ver$") +- file(APPEND "${aom_sym_file}" " };") ++ file(APPEND "${aom_sym_file}" " \nlocal:\n *;\n};") + endif() diff --git a/debian/patches/move-aom_obu_type_to_string-from-exports.patch b/debian/patches/move-aom_obu_type_to_string-from-exports.patch new file mode 100644 index 000000000..887d73e48 --- /dev/null +++ b/debian/patches/move-aom_obu_type_to_string-from-exports.patch @@ -0,0 +1,21 @@ +From: Tom Finegan <tomfinegan@google.com> +Date: Mon, 6 Aug 2018 16:16:15 -0700 +X-Dgit-Generated: 1.0.0-1 b79a45b84bca3d800346544b268fd8ddaf071491 +Subject: Move aom_obu_type_to_string from exports_test to exports_dec + +This is where it's really needed: obu_parser.cc needs it. + +Change-Id: I8ebe48807a6d828b78b5cfcd38a5c6f4d94c94e2 +(cherry picked from commit 1ef7b8cd1371464906fdaab1cb2d0d6baaf22d1a) +[jcowgill: fixup because v1.0.0 does not have exports_test] + +--- + +--- aom-1.0.0.orig/aom/exports_dec ++++ aom-1.0.0/aom/exports_dec +@@ -6,4 +6,5 @@ text aom_codec_peek_stream_info + text aom_codec_register_put_frame_cb + text aom_codec_register_put_slice_cb + text aom_codec_set_frame_buffer_functions ++text aom_obu_type_to_string + text aom_read_obu_header diff --git a/debian/patches/move-aom_read_obu_header-from-exports_te.patch b/debian/patches/move-aom_read_obu_header-from-exports_te.patch new file mode 100644 index 000000000..f917ba489 --- /dev/null +++ b/debian/patches/move-aom_read_obu_header-from-exports_te.patch @@ -0,0 +1,20 @@ +From: Tom Finegan <tomfinegan@google.com> +Date: Mon, 6 Aug 2018 14:35:35 -0700 +X-Dgit-Generated: 1.0.0-1 39e28d089c8fff36c0e642ce6050659771ec9ebb +Subject: Move aom_read_obu_header from exports_test to exports_dec + +This is where it's really needed: obudec.c needs it. + +Change-Id: I531da399c418f1fa33e181fe2c0d24ce88144cf7 +(cherry picked from commit 7a76b645a08ce45ef52dfb7fd719a26c1af1da85) +[jcowgill: fixup because v1.0.0 does not have exports_test] + +--- + +--- aom-1.0.0.orig/aom/exports_dec ++++ aom-1.0.0/aom/exports_dec +@@ -6,3 +6,4 @@ text aom_codec_peek_stream_info + text aom_codec_register_put_frame_cb + text aom_codec_register_put_slice_cb + text aom_codec_set_frame_buffer_functions ++text aom_read_obu_header diff --git a/debian/patches/relocate-symbol-exports-needed-by-exampl.patch b/debian/patches/relocate-symbol-exports-needed-by-exampl.patch new file mode 100644 index 000000000..15fce5126 --- /dev/null +++ b/debian/patches/relocate-symbol-exports-needed-by-exampl.patch @@ -0,0 +1,61 @@ +From: Tom Finegan <tomfinegan@google.com> +Date: Tue, 7 Aug 2018 07:37:08 -0700 +X-Dgit-Generated: 1.0.0-1 12912988d3808c132e133fe4cc0386659483d054 +Subject: Relocate symbol exports needed by examples/noise_model.c + +Moved from aom/exports_test to aom/exports_com: +aom_malloc + +Moved from aom/exports_test to aom/exports_enc: +aom_film_grain_table_append +aom_film_grain_table_free +aom_film_grain_table_write +aom_flat_block_finder_init +aom_flat_block_finder_run +aom_noise_model_init +aom_noise_model_get_grain_parameters +aom_noise_model_save_latest +aom_noise_model_update + +From av1/exports_test to av1/exports_dec: +av1_add_film_grain + +BUG=aomedia:2072 + +Change-Id: Iccd0496c368be8ce03c0fdec2d69fa5502b8951d +(cherry picked from commit a227f56ac90a282d7f558f853078c03189950cb1) +[jcowgill: fixup because v1.0.0 does not have exports_test] + +--- + +--- aom-1.0.0.orig/aom/exports_com ++++ aom-1.0.0/aom/exports_com +@@ -17,6 +17,7 @@ text aom_img_plane_height + text aom_img_set_rect + text aom_img_wrap + text aom_img_alloc_with_border ++text aom_malloc + text aom_uleb_decode + text aom_uleb_encode + text aom_uleb_encode_fixed_size +--- aom-1.0.0.orig/aom/exports_enc ++++ aom-1.0.0/aom/exports_enc +@@ -7,3 +7,12 @@ text aom_codec_get_cx_data + text aom_codec_get_global_headers + text aom_codec_get_preview_frame + text aom_codec_set_cx_data_buf ++text aom_film_grain_table_append ++text aom_film_grain_table_free ++text aom_film_grain_table_write ++text aom_flat_block_finder_init ++text aom_flat_block_finder_run ++text aom_noise_model_init ++text aom_noise_model_get_grain_parameters ++text aom_noise_model_save_latest ++text aom_noise_model_update +--- aom-1.0.0.orig/av1/exports_dec ++++ aom-1.0.0/av1/exports_dec +@@ -1,2 +1,3 @@ + data aom_codec_av1_dx_algo + text aom_codec_av1_dx ++text av1_add_film_grain diff --git a/debian/patches/relocate-symbol-exports-needed-by-exampl.patch1 b/debian/patches/relocate-symbol-exports-needed-by-exampl.patch1 new file mode 100644 index 000000000..04c6db70e --- /dev/null +++ b/debian/patches/relocate-symbol-exports-needed-by-exampl.patch1 @@ -0,0 +1,40 @@ +From: Tom Finegan <tomfinegan@google.com> +Date: Tue, 7 Aug 2018 08:34:55 -0700 +X-Dgit-Generated: 1.0.0-1 106ccceb4332404abee2538fdfa5be3f384594e6 +Subject: Relocate symbol exports needed by examples/resize_util.c + +Completes relocation started in a87d645d. + +Move from aom/exports_com to av1/exports_com: +av1_resize_frame420 + +BUG=aomedia:2072 + +Change-Id: If72f83313ece4b2eb8d7487e9fbff7e91a8369aa +(cherry picked from commit 7e2126955ceed074383422e1860a1318f0d0450e) + +--- + +--- aom-1.0.0.orig/aom/exports_com ++++ aom-1.0.0/aom/exports_com +@@ -22,4 +22,3 @@ text aom_uleb_decode + text aom_uleb_encode + text aom_uleb_encode_fixed_size + text aom_uleb_size_in_bytes +-text av1_resize_frame420 +--- /dev/null ++++ aom-1.0.0/av1/exports_com +@@ -0,0 +1 @@ ++text av1_resize_frame420 +--- aom-1.0.0.orig/build/cmake/exports_sources.cmake ++++ aom-1.0.0/build/cmake/exports_sources.cmake +@@ -13,7 +13,8 @@ if(AOM_BUILD_CMAKE_EXPORTS_SOURCES_CMAKE + endif() # AOM_BUILD_CMAKE_EXPORTS_SOURCES_CMAKE_ + set(AOM_BUILD_CMAKE_EXPORTS_SOURCES_CMAKE_ 1) + +-list(APPEND AOM_EXPORTS_SOURCES "${AOM_ROOT}/aom/exports_com") ++list(APPEND AOM_EXPORTS_SOURCES "${AOM_ROOT}/aom/exports_com" ++ "${AOM_ROOT}/av1/exports_com") + + if(CONFIG_AV1_DECODER) + list(APPEND AOM_EXPORTS_SOURCES "${AOM_ROOT}/aom/exports_dec" diff --git a/debian/patches/relocate-symbol-exports-needed-by-lightf.patch b/debian/patches/relocate-symbol-exports-needed-by-lightf.patch new file mode 100644 index 000000000..820222480 --- /dev/null +++ b/debian/patches/relocate-symbol-exports-needed-by-lightf.patch @@ -0,0 +1,25 @@ +From: Tom Finegan <tomfinegan@google.com> +Date: Tue, 7 Aug 2018 08:29:52 -0700 +X-Dgit-Generated: 1.0.0-1 14da85aeb3a5587eb4323ef263902118a1194ce3 +Subject: Relocate symbol exports needed by lightfield_bitstream_parsing.c + +Move from aom/exports_test to aom/exports_enc: +aom_wb_write_literal +aom_wb_write_unsigned_literal + +BUG=aomedia:2072 + +Change-Id: I73862a9aea282427419dcc0624cee54f31e78973 +(cherry picked from commit 408fec56dd9166c8df2b25ab38f9a7398a71303a) +[jcowgill: fixup because v1.0.0 does not have exports_test] + +--- + +--- aom-1.0.0.orig/aom/exports_enc ++++ aom-1.0.0/aom/exports_enc +@@ -16,3 +16,5 @@ text aom_noise_model_init + text aom_noise_model_get_grain_parameters + text aom_noise_model_save_latest + text aom_noise_model_update ++text aom_wb_write_literal ++text aom_wb_write_unsigned_literal diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 000000000..f1921b534 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,9 @@ +update-changelog.patch +cmake-link-pthreads-into-aom-target.patch +move-aom_read_obu_header-from-exports_te.patch +move-aom_obu_type_to_string-from-exports.patch +relocate-symbol-exports-needed-by-exampl.patch +temporarily-relocate-av1_resize_frame420.patch +relocate-symbol-exports-needed-by-lightf.patch +cmake-restrict-exported-symbols-in-share.patch +relocate-symbol-exports-needed-by-exampl.patch1 diff --git a/debian/patches/temporarily-relocate-av1_resize_frame420.patch b/debian/patches/temporarily-relocate-av1_resize_frame420.patch new file mode 100644 index 000000000..4c63fc1d2 --- /dev/null +++ b/debian/patches/temporarily-relocate-av1_resize_frame420.patch @@ -0,0 +1,24 @@ +From: Tom Finegan <tomfinegan@google.com> +Date: Tue, 7 Aug 2018 08:43:11 -0700 +X-Dgit-Generated: 1.0.0-1 d3e4f39f9737be3ce4d47591da5453248cb16813 +Subject: Temporarily relocate av1_resize_frame420 export. + +Move it to aom/exports_com to clear some shared library +build issues. It will be moved to where it belongs in a +follow up (av1/exports_com is where it should be). + +BUG=aomedia:2072 + +Change-Id: I54448dd7068563005043de34f24bdc3312d30591 +(cherry picked from commit a87d645d23a05872c927b66f5b266ecb6a58f96d) +[jcowgill: fixup because v1.0.0 does not have exports_test] + +--- + +--- aom-1.0.0.orig/aom/exports_com ++++ aom-1.0.0/aom/exports_com +@@ -22,3 +22,4 @@ text aom_uleb_decode + text aom_uleb_encode + text aom_uleb_encode_fixed_size + text aom_uleb_size_in_bytes ++text av1_resize_frame420 diff --git a/debian/patches/update-changelog.patch b/debian/patches/update-changelog.patch new file mode 100644 index 000000000..72f2c19d7 --- /dev/null +++ b/debian/patches/update-changelog.patch @@ -0,0 +1,651 @@ +From: James Zern <jzern@google.com> +Date: Thu, 28 Jun 2018 09:45:53 -0700 +X-Dgit-Generated: 1.0.0-1 dbfa8b978661af6e53122a8110b87cc075b633bb +Subject: update CHANGELOG + +- add a v1.0.0 entry to match the tag of the same name +- remove libvpx notes + +BUG=aomedia:1988 + +Change-Id: Ieead418dd16d9cc4c7e64c65fa71357bf2d936b8 +(cherry picked from commit 0ddc150516b7672101265eac032a11a9aae4cb53) + +--- + +--- aom-1.0.0.orig/CHANGELOG ++++ aom-1.0.0/CHANGELOG +@@ -1,631 +1,5 @@ +-Next Release +- - Incompatible changes: +- The AV1 encoder's default keyframe interval changed to 128 from 9999. +- Support for armv6 was removed. ++2018-06-28 v1.0.0 ++ AOMedia Codec Workgroup Approved version 1.0 + + 2016-04-07 v0.1.0 "AOMedia Codec 1" + This release is the first Alliance for Open Media codec. +-2015-11-09 v1.5.0 "Javan Whistling Duck" +- This release improves upon the VP9 encoder and speeds up the encoding and +- decoding processes. +- +- - Upgrading: +- This release is ABI incompatible with 1.4.0. It drops deprecated VP8 +- controls and adds a variety of VP9 controls for testing. +- +- The vpxenc utility now prefers VP9 by default. +- +- - Enhancements: +- Faster VP9 encoding and decoding +- Smaller library size by combining functions used by VP8 and VP9 +- +- - Bug Fixes: +- A variety of fuzzing issues +- +-2015-04-03 v1.4.0 "Indian Runner Duck" +- This release includes significant improvements to the VP9 codec. +- +- - Upgrading: +- This release is ABI incompatible with 1.3.0. It drops the compatibility +- layer, requiring VPX_IMG_FMT_* instead of IMG_FMT_*, and adds several codec +- controls for VP9. +- +- - Enhancements: +- Faster VP9 encoding and decoding +- Multithreaded VP9 decoding (tile and frame-based) +- Multithreaded VP9 encoding - on by default +- YUV 4:2:2 and 4:4:4 support in VP9 +- 10 and 12bit support in VP9 +- 64bit ARM support by replacing ARM assembly with intrinsics +- +- - Bug Fixes: +- Fixes a VP9 bitstream issue in Profile 1. This only affected non-YUV 4:2:0 +- files. +- +- - Known Issues: +- Frame Parallel decoding fails for segmented and non-420 files. +- +-2013-11-15 v1.3.0 "Forest" +- This release introduces the VP9 codec in a backward-compatible way. +- All existing users of VP8 can continue to use the library without +- modification. However, some VP8 options do not map to VP9 in the same manner. +- +- The VP9 encoder in this release is not feature complete. Users interested in +- the encoder are advised to use the git master branch and discuss issues on +- libvpx mailing lists. +- +- - Upgrading: +- This release is ABI and API compatible with Duclair (v1.0.0). Users +- of older releases should refer to the Upgrading notes in this document +- for that release. +- +- - Enhancements: +- Get rid of bashisms in the main build scripts +- Added usage info on command line options +- Add lossless compression mode +- Dll build of libvpx +- Add additional Mac OS X targets: 10.7, 10.8 and 10.9 (darwin11-13) +- Add option to disable documentation +- configure: add --enable-external-build support +- make: support V=1 as short form of verbose=yes +- configure: support mingw-w64 +- configure: support hardfloat armv7 CHOSTS +- configure: add support for android x86 +- Add estimated completion time to vpxenc +- Don't exit on decode errors in vpxenc +- vpxenc: support scaling prior to encoding +- vpxdec: support scaling output +- vpxenc: improve progress indicators with --skip +- msvs: Don't link to winmm.lib +- Add a new script for producing vcxproj files +- Produce Visual Studio 10 and 11 project files +- Produce Windows Phone project files +- msvs-build: use msbuild for vs >= 2005 +- configure: default configure log to config.log +- Add encoding option --static-thresh +- +- - Speed: +- Miscellaneous speed optimizations for VP8 and VP9. +- +- - Quality: +- In general, quality is consistent with the Eider release. +- +- - Bug Fixes: +- This release represents approximately a year of engineering effort, +- and contains multiple bug fixes. Please refer to git history for details. +- +- +-2012-12-21 v1.2.0 +- This release acts as a checkpoint for a large amount of internal refactoring +- and testing. It also contains a number of small bugfixes, so all users are +- encouraged to upgrade. +- +- - Upgrading: +- This release is ABI and API compatible with Duclair (v1.0.0). Users +- of older releases should refer to the Upgrading notes in this +- document for that release. +- +- - Enhancements: +- VP8 optimizations for MIPS dspr2 +- vpxenc: add -quiet option +- +- - Speed: +- Encoder and decoder speed is consistent with the Eider release. +- +- - Quality: +- In general, quality is consistent with the Eider release. +- +- Minor tweaks to ARNR filtering +- Minor improvements to real time encoding with multiple temporal layers +- +- - Bug Fixes: +- Fixes multithreaded encoder race condition in loopfilter +- Fixes multi-resolution threaded encoding +- Fix potential encoder dead-lock after picture resize +- +- +-2012-05-09 v1.1.0 "Eider" +- This introduces a number of enhancements, mostly focused on real-time +- encoding. In addition, it fixes a decoder bug (first introduced in +- Duclair) so all users of that release are encouraged to upgrade. +- +- - Upgrading: +- This release is ABI and API compatible with Duclair (v1.0.0). Users +- of older releases should refer to the Upgrading notes in this +- document for that release. +- +- This release introduces a new temporal denoiser, controlled by the +- VP8E_SET_NOISE_SENSITIVITY control. The temporal denoiser does not +- currently take a strength parameter, so the control is effectively +- a boolean - zero (off) or non-zero (on). For compatibility with +- existing applications, the values accepted are the same as those +- for the spatial denoiser (0-6). The temporal denoiser is enabled +- by default, and the older spatial denoiser may be restored by +- configuring with --disable-temporal-denoising. The temporal denoiser +- is more computationally intensive than the spatial one. +- +- This release removes support for a legacy, decode only API that was +- supported, but deprecated, at the initial release of libvpx +- (v0.9.0). This is not expected to have any impact. If you are +- impacted, you can apply a reversion to commit 2bf8fb58 locally. +- Please update to the latest libvpx API if you are affected. +- +- - Enhancements: +- Adds a motion compensated temporal denoiser to the encoder, which +- gives higher quality than the older spatial denoiser. (See above +- for notes on upgrading). +- +- In addition, support for new compilers and platforms were added, +- including: +- improved support for XCode +- Android x86 NDK build +- OS/2 support +- SunCC support +- +- Changing resolution with vpx_codec_enc_config_set() is now +- supported. Previously, reinitializing the codec was required to +- change the input resolution. +- +- The vpxenc application has initial support for producing multiple +- encodes from the same input in one call. Resizing is not yet +- supported, but varying other codec parameters is. Use -- to +- delineate output streams. Options persist from one stream to the +- next. +- +- Also, the vpxenc application will now use a keyframe interval of +- 5 seconds by default. Use the --kf-max-dist option to override. +- +- - Speed: +- Decoder performance improved 2.5% versus Duclair. Encoder speed is +- consistent with Duclair for most material. Two pass encoding of +- slideshow-like material will see significant improvements. +- +- Large realtime encoding speed gains at a small quality expense are +- possible by configuring the on-the-fly bitpacking experiment with +- --enable-onthefly-bitpacking. Realtime encoder can be up to 13% +- faster (ARM) depending on the number of threads and bitrate +- settings. This technique sees constant gain over the 5-16 speed +- range. For VC style input the loss seen is up to 0.2dB. See commit +- 52cf4dca for further details. +- +- - Quality: +- On the whole, quality is consistent with the Duclair release. Some +- tweaks: +- +- Reduced blockiness in easy sections by applying a penalty to +- intra modes. +- +- Improved quality of static sections (like slideshows) with +- two pass encoding. +- +- Improved keyframe sizing with multiple temporal layers +- +- - Bug Fixes: +- Corrected alt-ref contribution to frame rate for visible updates +- to the alt-ref buffer. This affected applications making manual +- usage of the frame reference flags, or temporal layers. +- +- Additional constraints were added to disable multi-frame quality +- enhancement (MFQE) in sections of the frame where there is motion. +- (#392) +- +- Fixed corruption issues when vpx_codec_enc_config_set() was called +- with spatial resampling enabled. +- +- Fixed a decoder error introduced in Duclair where the segmentation +- map was not being reinitialized on keyframes (#378) +- +- +-2012-01-27 v1.0.0 "Duclair" +- Our fourth named release, focused on performance and features related to +- real-time encoding. It also fixes a decoder crash bug introduced in +- v0.9.7, so all users of that release are encouraged to upgrade. +- +- - Upgrading: +- This release is ABI incompatible with prior releases of libvpx, so the +- "major" version number has been bumped to 1. You must recompile your +- applications against the latest version of the libvpx headers. The +- API remains compatible, and this should not require code changes in most +- applications. +- +- - Enhancements: +- This release introduces several substantial new features to the encoder, +- of particular interest to real time streaming applications. +- +- Temporal scalability allows the encoder to produce a stream that can +- be decimated to different frame rates, with independent rate targetting +- for each substream. +- +- Multiframe quality enhancement postprocessing can make visual quality +- more consistent in the presence of frames that are substantially +- different quality than the surrounding frames, as in the temporal +- scalability case and in some forced keyframe scenarios. +- +- Multiple-resolution encoding support allows the encoding of the +- same content at different resolutions faster than encoding them +- separately. +- +- - Speed: +- Optimization targets for this release included the decoder and the real- +- time modes of the encoder. Decoder speed on x86 has improved 10.5% with +- this release. Encoder improvements followed a curve where speeds 1-3 +- improved 4.0%-1.5%, speeds 4-8 improved <1%, and speeds 9-16 improved +- 1.5% to 10.5%, respectively. "Best" mode speed is consistent with the +- Cayuga release. +- +- - Quality: +- Encoder quality in the single stream case is consistent with the Cayuga +- release. +- +- - Bug Fixes: +- This release fixes an OOB read decoder crash bug present in v0.9.7 +- related to the clamping of motion vectors in SPLITMV blocks. This +- behavior could be triggered by corrupt input or by starting +- decoding from a P-frame. +- +- +-2011-08-15 v0.9.7-p1 "Cayuga" patch 1 +- This is an incremental bugfix release against Cayuga. All users of that +- release are strongly encouraged to upgrade. +- +- - Fix potential OOB reads (cdae03a) +- +- An unbounded out of bounds read was discovered when the +- decoder was requested to perform error concealment (new in +- Cayuga) given a frame with corrupt partition sizes. +- +- A bounded out of bounds read was discovered affecting all +- versions of libvpx. Given an multipartition input frame that +- is truncated between the mode/mv partition and the first +- residiual paritition (in the block of partition offsets), up +- to 3 extra bytes could have been read from the source buffer. +- The code will not take any action regardless of the contents +- of these undefined bytes, as the truncated buffer is detected +- immediately following the read based on the calculated +- starting position of the coefficient partition. +- +- - Fix potential error concealment crash when the very first frame +- is missing or corrupt (a609be5) +- +- - Fix significant artifacts in error concealment (a4c2211, 99d870a) +- +- - Revert 1-pass CBR rate control changes (e961317) +- Further testing showed this change produced undesirable visual +- artifacts, rolling back for now. +- +- +-2011-08-02 v0.9.7 "Cayuga" +- Our third named release, focused on a faster, higher quality, encoder. +- +- - Upgrading: +- This release is backwards compatible with Aylesbury (v0.9.5) and +- Bali (v0.9.6). Users of older releases should refer to the Upgrading +- notes in this document for that release. +- +- - Enhancements: +- Stereo 3D format support for vpxenc +- Runtime detection of available processor cores. +- Allow specifying --end-usage by enum name +- vpxdec: test for frame corruption +- vpxenc: add quantizer histogram display +- vpxenc: add rate histogram display +- Set VPX_FRAME_IS_DROPPABLE +- update configure for ios sdk 4.3 +- Avoid text relocations in ARM vp8 decoder +- Generate a vpx.pc file for pkg-config. +- New ways of passing encoded data between encoder and decoder. +- +- - Speed: +- This release includes across-the-board speed improvements to the +- encoder. On x86, these measure at approximately 11.5% in Best mode, +- 21.5% in Good mode (speed 0), and 22.5% in Realtime mode (speed 6). +- On ARM Cortex A9 with Neon extensions, real-time encoding of video +- telephony content is 35% faster than Bali on single core and 48% +- faster on multi-core. On the NVidia Tegra2 platform, real time +- encoding is 40% faster than Bali. +- +- Decoder speed was not a priority for this release, but improved +- approximately 8.4% on x86. +- +- Reduce motion vector search on alt-ref frame. +- Encoder loopfilter running in its own thread +- Reworked loopfilter to precalculate more parameters +- SSE2/SSSE3 optimizations for build_predictors_mbuv{,_s}(). +- Make hor UV predict ~2x faster (73 vs 132 cycles) using SSSE3. +- Removed redundant checks +- Reduced structure sizes +- utilize preload in ARMv6 MC/LPF/Copy routines +- ARM optimized quantization, dfct, variance, subtract +- Increase chrow row alignment to 16 bytes. +- disable trellis optimization for first pass +- Write SSSE3 sub-pixel filter function +- Improve SSE2 half-pixel filter funtions +- Add vp8_sub_pixel_variance16x8_ssse3 function +- Reduce unnecessary distortion computation +- Use diamond search to replace full search +- Preload reference area in sub-pixel motion search (real-time mode) +- +- - Quality: +- This release focused primarily on one-pass use cases, including +- video conferencing. Low latency data rate control was significantly +- improved, improving streamability over bandwidth constrained links. +- Added support for error concealment, allowing frames to maintain +- visual quality in the presence of substantial packet loss. +- +- Add rc_max_intra_bitrate_pct control +- Limit size of initial keyframe in one-pass. +- Improve framerate adaptation +- Improved 1-pass CBR rate control +- Improved KF insertion after fades to still. +- Improved key frame detection. +- Improved activity masking (lower PSNR impact for same SSIM boost) +- Improved interaction between GF and ARFs +- Adding error-concealment to the decoder. +- Adding support for independent partitions +- Adjusted rate-distortion constants +- +- +- - Bug Fixes: +- Removed firstpass motion map +- Fix parallel make install +- Fix multithreaded encoding for 1 MB wide frame +- Fixed iwalsh_neon build problems with RVDS4.1 +- Fix semaphore emulation, spin-wait intrinsics on Windows +- Fix build with xcode4 and simplify GLOBAL. +- Mark ARM asm objects as allowing a non-executable stack. +- Fix vpxenc encoding incorrect webm file header on big endian +- +- +-2011-03-07 v0.9.6 "Bali" +- Our second named release, focused on a faster, higher quality, encoder. +- +- - Upgrading: +- This release is backwards compatible with Aylesbury (v0.9.5). Users +- of older releases should refer to the Upgrading notes in this +- document for that release. +- +- - Enhancements: +- vpxenc --psnr shows a summary when encode completes +- --tune=ssim option to enable activity masking +- improved postproc visualizations for development +- updated support for Apple iOS to SDK 4.2 +- query decoder to determine which reference frames were updated +- implemented error tracking in the decoder +- fix pipe support on windows +- +- - Speed: +- Primary focus was on good quality mode, speed 0. Average improvement +- on x86 about 40%, up to 100% on user-generated content at that speed. +- Best quality mode speed improved 35%, and realtime speed 10-20%. This +- release also saw significant improvement in realtime encoding speed +- on ARM platforms. +- +- Improved encoder threading +- Dont pick encoder filter level when loopfilter is disabled. +- Avoid double copying of key frames into alt and golden buffer +- FDCT optimizations. +- x86 sse2 temporal filter +- SSSE3 version of fast quantizer +- vp8_rd_pick_best_mbsegmentation code restructure +- Adjusted breakout RD for SPLITMV +- Changed segmentation check order +- Improved rd_pick_intra4x4block +- Adds armv6 optimized variance calculation +- ARMv6 optimized sad16x16 +- ARMv6 optimized half pixel variance calculations +- Full search SAD function optimization in SSE4.1 +- Improve MV prediction accuracy to achieve performance gain +- Improve MV prediction in vp8_pick_inter_mode() for speed>3 +- +- - Quality: +- Best quality mode improved PSNR 6.3%, and SSIM 6.1%. This release +- also includes support for "activity masking," which greatly improves +- SSIM at the expense of PSNR. For now, this feature is available with +- the --tune=ssim option. Further experimentation in this area +- is ongoing. This release also introduces a new rate control mode +- called "CQ," which changes the allocation of bits within a clip to +- the sections where they will have the most visual impact. +- +- Tuning for the more exact quantizer. +- Relax rate control for last few frames +- CQ Mode +- Limit key frame quantizer for forced key frames. +- KF/GF Pulsing +- Add simple version of activity masking. +- make rdmult adaptive for intra in quantizer RDO +- cap the best quantizer for 2nd order DC +- change the threshold of DC check for encode breakout +- +- - Bug Fixes: +- Fix crash on Sparc Solaris. +- Fix counter of fixed keyframe distance +- ARNR filter pointer update bug fix +- Fixed use of motion percentage in KF/GF group calc +- Changed condition for using RD in Intra Mode +- Fix encoder real-time only configuration. +- Fix ARM encoder crash with multiple token partitions +- Fixed bug first cluster timecode of webm file is wrong. +- Fixed various encoder bugs with odd-sized images +- vp8e_get_preview fixed when spatial resampling enabled +- quantizer: fix assertion in fast quantizer path +- Allocate source buffers to be multiples of 16 +- Fix for manual Golden frame frequency +- Fix drastic undershoot in long form content +- +- +-2010-10-28 v0.9.5 "Aylesbury" +- Our first named release, focused on a faster decoder, and a better encoder. +- +- - Upgrading: +- This release incorporates backwards-incompatible changes to the +- ivfenc and ivfdec tools. These tools are now called vpxenc and vpxdec. +- +- vpxdec +- * the -q (quiet) option has been removed, and replaced with +- -v (verbose). the output is quiet by default. Use -v to see +- the version number of the binary. +- +- * The default behavior is now to write output to a single file +- instead of individual frames. The -y option has been removed. +- Y4M output is the default. +- +- * For raw I420/YV12 output instead of Y4M, the --i420 or --yv12 +- options must be specified. +- +- $ ivfdec -o OUTPUT INPUT +- $ vpxdec --i420 -o OUTPUT INPUT +- +- * If an output file is not specified, the default is to write +- Y4M to stdout. This makes piping more natural. +- +- $ ivfdec -y -o - INPUT | ... +- $ vpxdec INPUT | ... +- +- * The output file has additional flexibility for formatting the +- filename. It supports escape characters for constructing a +- filename from the width, height, and sequence number. This +- replaces the -p option. To get the equivalent: +- +- $ ivfdec -p frame INPUT +- $ vpxdec --i420 -o frame-%wx%h-%4.i420 INPUT +- +- vpxenc +- * The output file must be specified with -o, rather than as the +- last argument. +- +- $ ivfenc <options> INPUT OUTPUT +- $ vpxenc <options> -o OUTPUT INPUT +- +- * The output defaults to webm. To get IVF output, use the --ivf +- option. +- +- $ ivfenc <options> INPUT OUTPUT.ivf +- $ vpxenc <options> -o OUTPUT.ivf --ivf INPUT +- +- +- - Enhancements: +- ivfenc and ivfdec have been renamed to vpxenc, vpxdec. +- vpxdec supports .webm input +- vpxdec writes .y4m by default +- vpxenc writes .webm output by default +- vpxenc --psnr now shows the average/overall PSNR at the end +- ARM platforms now support runtime cpu detection +- vpxdec visualizations added for motion vectors, block modes, references +- vpxdec now silent by default +- vpxdec --progress shows frame-by-frame timing information +- vpxenc supports the distinction between --fps and --timebase +- NASM is now a supported assembler +- configure: enable PIC for shared libs by default +- configure: add --enable-small +- configure: support for ppc32-linux-gcc +- configure: support for sparc-solaris-gcc +- +- - Bugs: +- Improve handling of invalid frames +- Fix valgrind errors in the NEON loop filters. +- Fix loopfilter delta zero transitions +- Fix valgrind errors in vp8_sixtap_predict8x4_armv6(). +- Build fixes for darwin-icc +- +- - Speed: +- 20-40% (average 28%) improvement in libvpx decoder speed, +- including: +- Rewrite vp8_short_walsh4x4_sse2() +- Optimizations on the loopfilters. +- Miscellaneous improvements for Atom +- Add 4-tap version of 2nd-pass ARMv6 MC filter. +- Improved multithread utilization +- Better instruction choices on x86 +- reorder data to use wider instructions +- Update NEON wide idcts +- Make block access to frame buffer sequential +- Improved subset block search +- Bilinear subpixel optimizations for ssse3. +- Decrease memory footprint +- +- Encoder speed improvements (percentage gain not measured): +- Skip unnecessary search of identical frames +- Add SSE2 subtract functions +- Improve bounds checking in vp8_diamond_search_sadx4() +- Added vp8_fast_quantize_b_sse2 +- +- - Quality: +- Over 7% overall PSNR improvement (6.3% SSIM) in "best" quality +- encoding mode, and up to 60% improvement on very noisy, still +- or slow moving source video +- +- Motion compensated temporal filter for Alt-Ref Noise Reduction +- Improved use of trellis quantization on 2nd order Y blocks +- Tune effect of motion on KF/GF boost in two pass +- Allow coefficient optimization for good quality speed 0. +- Improved control of active min quantizer for two pass. +- Enable ARFs for non-lagged compress +- +-2010-09-02 v0.9.2 +- - Enhancements: +- Disable frame dropping by default +- Improved multithreaded performance +- Improved Force Key Frame Behaviour +- Increased rate control buffer level precision +- Fix bug in 1st pass motion compensation +- ivfenc: correct fixed kf interval, --disable-kf +- - Speed: +- Changed above and left context data layout +- Rework idct calling structure. +- Removed unnecessary MB_MODE_INFO copies +- x86: SSSE3 sixtap prediction +- Reworked IDCT to include reconstruction (add) step +- Swap alt/gold/new/last frame buffer ptrs instead of copying. +- Improve SSE2 loopfilter functions +- Change bitreader to use a larger window. +- Avoid loopfilter reinitialization when possible +- - Quality: +- Normalize quantizer's zero bin and rounding factors +- Add trellis quantization. +- Make the quantizer exact. +- Updates to ARNR filtering algorithm +- Fix breakout thresh computation for golden & AltRef frames +- Redo the forward 4x4 dct +- Improve the accuracy of forward walsh-hadamard transform +- Further adjustment of RD behaviour with Q and Zbin. +- - Build System: +- Allow linking of libs built with MinGW to MSVC +- Fix target auto-detection on mingw32 +- Allow --cpu= to work for x86. +- configure: pass original arguments through to make dist +- Fix builds without runtime CPU detection +- msvs: fix install of codec sources +- msvs: Change devenv.com command line for better msys support +- msvs: Add vs9 targets. +- Add x86_64-linux-icc target +- - Bugs: +- Potential crashes on older MinGW builds +- Fix two-pass framrate for Y4M input. +- Fixed simple loop filter, other crashes on ARM v6 +- arm: fix missing dependency with --enable-shared +- configure: support directories containing .o +- Replace pinsrw (SSE) with MMX instructions +- apple: include proper mach primatives +- Fixed rate control bug with long key frame interval. +- Fix DSO link errors on x86-64 when not using a version script +- Fixed buffer selection for UV in AltRef filtering +- +- +-2010-06-17 v0.9.1 +- - Enhancements: +- * ivfenc/ivfdec now support YUV4MPEG2 input and pipe I/O +- * Speed optimizations +- - Bugfixes: +- * Rate control +- * Prevent out-of-bounds accesses on invalid data +- - Build system updates: +- * Detect toolchain to be used automatically for native builds +- * Support building shared libraries +- * Better autotools emulation (--prefix, --libdir, DESTDIR) +- - Updated LICENSE +- * http://webmproject.blogspot.com/2010/06/changes-to-webm-open-source-license.html +- +- +-2010-05-18 v0.9.0 +- - Initial open source release. Welcome to WebM and VP8! +- |