Repository navigation
libvpx-m: libvpx 1.17.0 (VP9) and libwebm 1.0.0.32 (WebM) as C++ modules - #1
Merged
Merged
Conversation
mcpplibs.mwrap.libvpx over compat.libvpx and compat.libwebm, generated from the pinned tags' headers (tools/gen_exports.py over tools/inventory.py): - mcpplibs.mwrap.libvpx: libvpx's 133 types, 192 enumerators, the 35 functions upstream exports and the two VP9 interfaces (VP8 is not built, so its interfaces are not exported); the headers' 86 typed controls (static functions made by VPX_CTRL_USE_TYPE) adapted under the same names in mcpplibs::mwrap::libvpx, each calling vpx_codec_control_ as upstream's body does; - mcpplibs.mwrap.libvpx.webm: libwebm's mkvmuxer, mkvparser and libwebm namespaces (classes, types, enumerators, free functions); the namespace-scope constants, which have internal linkage, under the same names in mcpplibs::mwrap::libvpx::mkvmuxer / ::mkvparser; - mcpplibs.mwrap.libvpx.macros: 74 macros as constants (of their expression's type), functions (vpx_codec_enc_init, vpx_codec_dec_init …) and constexpr functions (VPX_VERSION_MAJOR …); what stays a macro is in <mwrap/libvpx/macros.hpp>. Tests: VP9 at good quality, real time, four threads and lossless, muxed into WebM with mkvmuxer, parsed back with mkvparser and decoded, each file's bytes pinned; every macro mapping against the raw headers; every exported function and control linked. The export audit (tools/check_exports.py), and the conformance run (tools/run_conformance.py): examples/vpxwebm, written against the module, writes the same IVF bytes as upstream's vpxenc for six settings, and vpxdec reads its WebM files to the same frames as the module does vpxenc's. The default template (webm), the bilingual README, the usage documentation, CI (Linux x86_64 GCC/LLVM, Linux arm64 GCC, macOS, Windows, the Web), release and template workflows. Until mcpp-index publishes the two compat packages (mcpplibs/mcpp-index#624), CI resolves them from that PR's branch (tools/candidate_index.py).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
mcpplibs.mwrap.libvpx over compat.libvpx and compat.libwebm, generated from
the pinned tags' headers (tools/gen_exports.py over tools/inventory.py):
functions upstream exports and the two VP9 interfaces (VP8 is not built,
so its interfaces are not exported); the headers' 86 typed controls
(static functions made by VPX_CTRL_USE_TYPE) adapted under the same names
in mcpplibs::mwrap::libvpx, each calling vpx_codec_control_ as upstream's
body does;
namespaces (classes, types, enumerators, free functions); the
namespace-scope constants, which have internal linkage, under the same
names in mcpplibs::mwrap::libvpx::mkvmuxer / ::mkvparser;
expression's type), functions (vpx_codec_enc_init, vpx_codec_dec_init …)
and constexpr functions (VPX_VERSION_MAJOR …); what stays a macro is in
<mwrap/libvpx/macros.hpp>.
Tests: VP9 at good quality, real time, four threads and lossless, muxed into
WebM with mkvmuxer, parsed back with mkvparser and decoded, each file's
bytes pinned; every macro mapping against the raw headers; every exported
function and control linked. The export audit (tools/check_exports.py), and
the conformance run (tools/run_conformance.py): examples/vpxwebm, written
against the module, writes the same IVF bytes as upstream's vpxenc for six
settings, and vpxdec reads its WebM files to the same frames as the module
does vpxenc's. The default template (webm), the bilingual README, the usage
documentation, CI (Linux x86_64 GCC/LLVM, Linux arm64 GCC, macOS, Windows,
the Web), release and template workflows. Until mcpp-index publishes the two
compat packages (mcpplibs/mcpp-index#624), CI resolves them from that PR's
branch (tools/candidate_index.py).