This patches renames the OutputVideoFrames to OutputDecodedData and add
a function to convert DecodedData to the output type defined by the
template inheritance.
Differential Revision: https://phabricator.services.mozilla.com/D189015
This patch moves the input-to-MediaRawData conversion from DecodeMessage
to a template function so that the template inheritance can implement
its own conversion function.
Differential Revision: https://phabricator.services.mozilla.com/D188663
This patch creates a C++ template that will be used as a base class of
WebCodecs' VideoDecoder and (future) AudioDecoder.
Currently, only the internal member variabls and functions are moved
into the template class. The common interfaces shared between the
VideoDecoder and the AudioDecoder will be moved to the template in the
following patches.
Note that some changes are made in this patch:
- Add a VideoDecoderTraits type to specify the types used in the decoder
template
- Reset(const nsresult& aResult) and Close(...) for internal usages are
renamed to ResetInternal in order to be distinguished from the
Reset(ErrorResult& aRv) in the VideoDecoder's public interface
- ControlMessage-related classes become nested classes since they have
member variables whose types depends on the template's typename
- DecodedDataToVideoFrame is generalized to a function named
DecodedDataToOutputType that convert the decoded data to a specific
type (e.g., VideoFrame for VideoDecoder)
- Rename CreateVideoInfo to CreateTrackInfo and move it to
VideoDecoderTraits so that the decoder template can get a TrackInfo
from the template inheritance
- Add a IsSupported method to VideoDecoderTraits so that the decoder
template can know what codec its template ingeritance supports
Differential Revision: https://phabricator.services.mozilla.com/D188538
Add support for submitting stacks of commits to Lando for queueing
on Try, instead of pushing to hg.mozilla.org directly. This patch
implements the Device Code Authorization flow for Auth0, simple changeset
discovery and patch gathering, and submissing to Lando via HTTP POST.
Add a `try.txt` virtualenv site that contains packages from the common
virtualenv as well as the `auth0-python` package for verifying Auth0
JWTs. Use this new virtualenv for `mach try` and related subcommands.
Add a `--push-to-lando` flag that controls whether the push will be made
via the Lando API or using the VCS to hg.mozilla.org directly.
Create a `lando.py` module in the `tryselect` package that handles the
details around submitting to Lando. Authentication is handled by the
Device Code Authorization flow, and the returned access token is saved
to the mozbuild state directory. Auth0 details are added to the `.lando.ini`
file in the repo root, and a `LANDO_TRY_USE_DEV` environment variable can
be set to control submitting to the prod or dev Lando environments.
This module also includes patch stack gathering and discovery via `mozversioncontrol`.
mozversioncontrol's `Repository` subclass is extended with helper functions
to gather patch files from Mercurial and Git. We also add a `try_config_commit`
context manager that creates a temporary commit to hold try syntax commit
messages and/or a `try_task_config.json` file, which is removed from version
control on submission.
The `mach try` cram tests now use a separate virtualenv that must be built
before running, causing unexpected output in the tests. Run `mach try --help`
in the test setup to force the virtualenv to be built before running any
test.
`mach try chooser` would previously install packages for a small web application
from a `requirements.txt` file when run. Install these via the new `try.txt`
site environment instead. The required dependencies are also added to the
`python-test.txt` site since they will cause some tests to fail due to the
missing dependencies.
Differential Revision: https://phabricator.services.mozilla.com/D187641
This patch modifies the files-changed paths for the perfdocs task to only include the relevant testing/ directories, and remove the current testing/ regex.
Differential Revision: https://phabricator.services.mozilla.com/D189519
We need to jump to an element in the correct scope just like ::slotted()
does.
Factor that code to its own function both so that it's easier to reason
about and so that the code for that function remains small. At the end
of the day other combinators like descendant or sibling get executed a
ton of times (while pseudo-elements only jump once).
Differential Revision: https://phabricator.services.mozilla.com/D189478