new file mode 100644--- /dev/null+++ b/third_party/dav1d/CONTRIBUTING.md@@ -0,0 +1,53 @@+# dav1d contribution guide++## CoC+The [VideoLAN Code of Conduct](https://wiki.videolan.org/CoC) applies to this project.++## ToDo++Todo list can be found [on the wiki](https://code.videolan.org/videolan/dav1d/wikis/task-list).++## Codebase language++The codebase is developed with the following assumptions:++For the library:+- C language with C99 version, without the VLA or the Complex (*\_\_STDC_NO_COMPLEX__*) features, and without compiler extension,+- x86 asm in .asm files, using the NASM syntax,+- arm/arm64 in .S files, using the GAS syntax limited to subset llvm 5.0's internal assembler supports,+- no C++ is allowed, whatever the version.++For the tools and utils:+- C *(see above for restrictions)*+- Rust+- C++ only for the MFT.++If you want to use *Threads* or *Atomic* features, please conform to the **C11**/**POSIX** semantic and use a wrapper for older compilers/platforms *(like done in VLC)*.++Please use modern standard POSIX functions *(strscpy, asprintf, tdestroy)*, and provide a compatibility fallback *(like done in VLC)*.++We will make reasonable efforts for compilers that are a bit older, but we won't support gcc 3 or MSVC 2012.++## Authorship++Please provide a correct authorship for your commit logs, with a name and a valid email.++We will reject anonymous contributions for now. As an exception, known pseudonyms from the multimedia community are accepted.++This project is respecting **Copyright** and **Droit d'auteur**. There is no copyright attribution or CLA.++## Commit logs++Please read [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/).++## Submit requests (WIP)++- Code+- Check [code style](https://code.videolan.org/videolan/dav1d/wikis/Coding-style)+- Test+- Try+- Submit patches++## Patent license++You need to read, understand, and agree to the [AV1 patents license](doc/PATENTS), before committing.

new file mode 100644--- /dev/null+++ b/third_party/dav1d/README.md@@ -0,0 +1,98 @@+# dav1d++**dav1d** is a new **AV1** cross-platform **d**ecoder, open-source, and focused on speed and correctness.++The canonical repository URL for this repo is https://code.videolan.org/videolan/dav1d++This project is partially funded by the *Alliance for Open Media*/**AOM**.++## Goal and Features++The goal of this project is to provide a decoder for **most platforms**, and achieve the **highest speed** possible to overcome the lack of AV1 hardware decoder.++It aims to support all features from AV1, including all subsampling and bit-depth parameters.++In the future, this project will host simple tools or simple wrappings *(like, for example, an MFT transform)*.++## License++**dav1d** is released under a very liberal license, a contrario from the other VideoLAN projects, so that it can be embedded anywhere, including non-open-source software; or even drivers, for hybrid decoders.++The reasoning behind this decision is the same as for libvorbis, [RMS on vorbis](https://lwn.net/2001/0301/a/rms-ov-license.php3).++# Roadmap++The plan is the folllowing:++1. Complete C implementation of the decoder,+2. Provide a usable API,+3. Port to most platforms,+4. Make it fast, by writing asm.++By the end of 2018, we hope to have a completely usable version that will be faster than any other software open source implementation.++# Contribute++Currently, we are looking for help from:+- C developers,+- asm developers,+- platform-specific developers,+- testers.++Our contributions guidelines are strict. We want to build a coherent codebase to simplify maintenance and achieve the highest possible speed.++Notably, the codebase is in pure C and asm.++We are on IRC, on the **#dav1d** channel on *Freenode*.++See the [contributions document](CONTRIBUTING.md).++## CLA++There is no CLA.++People will keep their copyright and their authorship rights.++VideoLAN will only have the collective work rights.++## CoC++The [VideoLAN Code of Conduct](https://wiki.videolan.org/CoC) applies to this project.++# Compile++1. Install [Meson](https://mesonbuild.com/) (0.47 or higher), [Ninja](https://ninja-build.org/), and, for x86* targets, [nasm](https://nasm.us/) (2.13 or higher)+2. Run `meson build --buildtype release`+3. Build with `ninja -C build`++# Support++This project is partially funded by the *Alliance for Open Media*/**AOM** and is supported by TwoOrioles and VideoLabs.++These companies can provide support and integration help, should you need it.+++# FAQ++## Why do you not improve libaom rather than starting a new project?++- We believe that libaom is a very good library. It was however developed for research purposes during AV1 design. +We think that an implementation written from scratch can achieve faster decoding, in the same way that *ffvp9* was faster than *libvpx*.++## Is dav1d a recursive acronym?++- Yes.++## Can I help?++- Yes. See the [contributions document](CONTRIBUTING.md).++## I am not a developer. Can I help?++- Yes. We need testers, bug reporters, and documentation writers.++## What about the AV1 patent license?++This project is an implementation of a decoder. It gives you no special rights on the AV1 patents.++Please read the [AV1 patent license](doc/PATENTS) that applies to the AV1 specification and codec.

new file mode 100644--- /dev/null+++ b/third_party/dav1d/THANKS.md@@ -0,0 +1,16 @@+# The dav1d project and VideoLAN association would like to thank++## AOM+The Alliance for Open Media (AOM) for funding this project.++## Companies+* Two Orioles LLC, for important coding effort+* VideoLabs SAS++## Projects+* VideoLAN+* FFmpeg++## Individual++And all the dav1d Authors (git shortlog -sn)

new file mode 100644--- /dev/null+++ b/third_party/dav1d/doc/PATENTS@@ -0,0 +1,108 @@+Alliance for Open Media Patent License 1.0++1. License Terms.++1.1. Patent License. Subject to the terms and conditions of this License, each+ Licensor, on behalf of itself and successors in interest and assigns,+ grants Licensee a non-sublicensable, perpetual, worldwide, non-exclusive,+ no-charge, royalty-free, irrevocable (except as expressly stated in this+ License) patent license to its Necessary Claims to make, use, sell, offer+ for sale, import or distribute any Implementation.++1.2. Conditions.++1.2.1. Availability. As a condition to the grant of rights to Licensee to make,+ sell, offer for sale, import or distribute an Implementation under+ Section 1.1, Licensee must make its Necessary Claims available under+ this License, and must reproduce this License with any Implementation+ as follows:++ a. For distribution in source code, by including this License in the+ root directory of the source code with its Implementation.++ b. For distribution in any other form (including binary, object form,+ and/or hardware description code (e.g., HDL, RTL, Gate Level Netlist,+ GDSII, etc.)), by including this License in the documentation, legal+ notices, and/or other written materials provided with the+ Implementation.++1.2.2. Additional Conditions. This license is directly from Licensor to+ Licensee. Licensee acknowledges as a condition of benefiting from it+ that no rights from Licensor are received from suppliers, distributors,+ or otherwise in connection with this License.++1.3. Defensive Termination. If any Licensee, its Affiliates, or its agents+ initiates patent litigation or files, maintains, or voluntarily+ participates in a lawsuit against another entity or any person asserting+ that any Implementation infringes Necessary Claims, any patent licenses+ granted under this License directly to the Licensee are immediately+ terminated as of the date of the initiation of action unless 1) that suit+ was in response to a corresponding suit regarding an Implementation first+ brought against an initiating entity, or 2) that suit was brought to+ enforce the terms of this License (including intervention in a third-party+ action by a Licensee).++1.4. Disclaimers. The Reference Implementation and Specification are provided+ "AS IS" and without warranty. The entire risk as to implementing or+ otherwise using the Reference Implementation or Specification is assumed+ by the implementer and user. Licensor expressly disclaims any warranties+ (express, implied, or otherwise), including implied warranties of+ merchantability, non-infringement, fitness for a particular purpose, or+ title, related to the material. IN NO EVENT WILL LICENSOR BE LIABLE TO+ ANY OTHER PARTY FOR LOST PROFITS OR ANY FORM OF INDIRECT, SPECIAL,+ INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER FROM ANY CAUSES OF+ ACTION OF ANY KIND WITH RESPECT TO THIS LICENSE, WHETHER BASED ON BREACH+ OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, AND WHETHER OR+ NOT THE OTHER PARTRY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.++2. Definitions.++2.1. Affiliate. “Affiliate” means an entity that directly or indirectly+ Controls, is Controlled by, or is under common Control of that party.++2.2. Control. “Control” means direct or indirect control of more than 50% of+ the voting power to elect directors of that corporation, or for any other+ entity, the power to direct management of such entity.++2.3. Decoder. "Decoder" means any decoder that conforms fully with all+ non-optional portions of the Specification.++2.4. Encoder. "Encoder" means any encoder that produces a bitstream that can+ be decoded by a Decoder only to the extent it produces such a bitstream.++2.5. Final Deliverable. “Final Deliverable” means the final version of a+ deliverable approved by the Alliance for Open Media as a Final+ Deliverable.++2.6. Implementation. "Implementation" means any implementation, including the+ Reference Implementation, that is an Encoder and/or a Decoder. An+ Implementation also includes components of an Implementation only to the+ extent they are used as part of an Implementation.++2.7. License. “License” means this license.++2.8. Licensee. “Licensee” means any person or entity who exercises patent+ rights granted under this License.++2.9. Licensor. "Licensor" means (i) any Licensee that makes, sells, offers+ for sale, imports or distributes any Implementation, or (ii) a person+ or entity that has a licensing obligation to the Implementation as a+ result of its membership and/or participation in the Alliance for Open+ Media working group that developed the Specification.++2.10. Necessary Claims. "Necessary Claims" means all claims of patents or+ patent applications, (a) that currently or at any time in the future,+ are owned or controlled by the Licensor, and (b) (i) would be an+ Essential Claim as defined by the W3C Policy as of February 5, 2004+ (https://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential)+ as if the Specification was a W3C Recommendation; or (ii) are infringed+ by the Reference Implementation.++2.11. Reference Implementation. “Reference Implementation” means an Encoder+ and/or Decoder released by the Alliance for Open Media as a Final+ Deliverable.++2.12. Specification. “Specification” means the specification designated by+ the Alliance for Open Media as a Final Deliverable for which this+ License was issued.+