Commit graph

2,253 commits

Author SHA1 Message Date
trav90
6676331d30 Put AV1 codec behind a pref
Disabled by default.
2019-02-16 00:17:48 +08:00
trav90
368651059a Update libaom to commit ID 1e227d41f0616de9548a673a83a21ef990b62591 2019-02-16 00:17:46 +08:00
trav90
77c9089b7d Update libaom vendor scripts to account for upstream changes 2019-02-16 00:17:43 +08:00
trav90
656835e767 [aom] Only build stats code if examples are enabled 2019-02-16 00:17:42 +08:00
trav90
3d109dd4fc Update libaom to rev b25610052a1398032320008d69b51d2da94f5928 2019-02-16 00:17:40 +08:00
trav90
8493557d20 [aom] No longer necessary to run lint_config.sh anymore
Upstream can now code generate the rtcd interface files directly from the aom_config.h header, so we no longer have to generate an intermediate file by running lint_config.sh. This also means we can remove the code for creating a temporary directory.
2019-02-16 00:17:38 +08:00
trav90
e731bff61e Add missing : to libaom moz.build 2019-02-16 00:17:37 +08:00
trav90
b66027c8c0 Updates to AOMDecoder for aom v1.0.0
This reflects the API changes to the aom_codec_decode function and the removal of I440. It also sets allow_lowbitdepth to give proper support for 8 bit video, and removes the git version from the mime type.
2019-02-16 00:17:35 +08:00
trav90
524295194e [aom] Fixup moz.build 2019-02-16 00:17:33 +08:00
trav90
8490d860d9 Do not build aomstats unless examples are enabled
The aomstats library is only used in the code examples, but we assume that all libraries should be linked into libxul, which leads to an unresolved external dependency on fatal at link time. This adds a guard to only build aomstats if we are building the examples.
2019-02-16 00:17:32 +08:00
trav90
48f6d2e034 Update aom to v1.0.0
Update aom to commit id d14c5bb4f336ef1842046089849dee4a301fbbf0.
2019-02-16 00:17:30 +08:00
trav90
bb61121b44 Add support for SSE 4.2 to libaom moz.build 2019-02-16 00:17:27 +08:00
trav90
760b6c7d25 Add aom_version.h 2019-02-16 00:17:25 +08:00
trav90
5e1d42c618 Update generate_sources_mozbuild.sh
This changes generate_sources_mozbuild.sh to call generate_sources_mozbuild.py to generate sources.mozbuild and config files and removes the parts of the script that are no longer necessary.
2019-02-16 00:17:24 +08:00
trav90
1077a5cfec Add generate_sources_mozbuild.py
This uses the cmakeparser to generate sources.mozbuild and the config files for each platform.
2019-02-16 00:17:22 +08:00
trav90
8411fe7c7d Add Python cmake parser
Unfortunately, upstream has removed the configure+make build system our import script relies on to generate code and moz.build files.
2019-02-16 00:17:21 +08:00
trav90
b9b9d8e4a1 Fix aom compile errors with VS2015
Import BUG=aomedia:900
2019-02-16 00:17:19 +08:00
trav90
49bf3b1211 [av1] Fix build issues
This revision of libaom has some conflicts with our vendor script
and build system. A number of new .asm files have the same basename
as .c files, which our build system cannot handle.

To work around this, I manually renamed the conflicting
files in the filesystem and sources.mozbuild.

Also add av1_convolve_scale_sse4.c to sources.mozbuild manually.
This is needed by the build but for some reason isn't picked up
by generate_sources_mozbuild.sh.
2019-02-16 00:17:17 +08:00
trav90
992c6637e3 Update aom to commit id e87fb2378f01103d5d6e477a4ef6892dc714e614 2019-02-16 00:17:15 +08:00
trav90
debbee1e2a [aom] Fix win32 debug build
Visual Studio 2015u3 fails to compile reconintra.c for win32
debug targets. It's confused by the #if conditional inside
the assert macro expansion.

The checks are obsolete upstream. Address the issue by
duplicating the assert calls for each branch of the
conditional.
2019-02-16 00:17:13 +08:00
trav90
ff19a9f251 [aom] Don't resample 8-bit images
The libaom av1 decoder will return 16 bit per channel aom_image_t structures with only 8 significant bits.

Detect this case and use the mSkip fields of PlanarYCbCrImage to handle the extra data instead of allocating and performing an extra copy to obtain the necessary 8 bit representation.
2019-02-16 00:17:11 +08:00
trav90
0b85248bea [aom] Resample high bit depth frames
The libaom av1 decoder can return high bit depth frame data now. Handle those frames by downsampling them to 8 bits per channel so they can be passed to our normal playback pipeline.
2019-02-16 00:17:10 +08:00
trav90
ceb35852fa [aom] Fix stream info peeking
Backport upstream patch by Sebastian Alaiwan fixing
aom_peek_stream_info after changes to the superblock
location.
2019-02-16 00:17:08 +08:00
trav90
de3974b3c4 Export aom_config.h
Recent changes made this a public header, so it needs to be available to callers like AOMDecoder.
2019-02-16 00:17:07 +08:00
trav90
2ab8fcbfd1 Update aom to commit id f5bdeac22930ff4c6b219be49c843db35970b918 2019-02-16 00:17:05 +08:00
trav90
e329bc4331 [aom] Remove unused option 2019-02-16 00:17:01 +08:00
trav90
6940d0df6c [aom] Filter out CONFIG_EXT_PARTITION_TYPES
aom_dsp_rtcd_defs.pl checks only whether this key is present in the config, not whether it is set to true or not. Our script sets CONFIG_FOO=no for disabled options, while the upstream build system omits them, resulting in extra symbol declarations the build will never define.

Work around this by stripping the offending disabled config key if it is disabled.
2019-02-16 00:17:00 +08:00
trav90
ba7eca76ea Make aom_config.asm match upstream 2019-02-16 00:16:58 +08:00
trav90
27b580fb16 [aom] Add x86-win32-gcc config 2019-02-16 00:16:57 +08:00
trav90
42b95d2649 [av1] Clean up duplicate filenames check 2019-02-16 00:16:55 +08:00
trav90
ecc55bc615 Add missing includes to FFmpegLibWrapper 2019-02-16 00:16:54 +08:00
trav90
d7a7fe75a0 Fix typo (build bustage) 2019-02-16 00:16:52 +08:00
trav90
76f1e6edca Update aom to slightly newer commit ID 2019-02-16 00:16:50 +08:00
trav90
1c8af26369 Add av1 to MediaSource.isTypeSupported
When av1 video playback is enabled, declare it as supported in the webm container in MediaSource.IsTypeSupported.

Also support special mime types of the form video/webm; codecs=vp9.experimental.<git-commit-id> so test sites can verify playback support of particular encodings while the av1 bitstream is under development.
2019-02-16 00:16:48 +08:00
trav90
dc0970c312 Remove aom_codec_stream_info_t sz field references
Upstream has removed the requirement to set this when initializing the stream_info struct.
2019-02-16 00:16:46 +08:00
trav90
b3aa26975c Make AOMDecoder actually build 2019-02-16 00:16:44 +08:00
trav90
6aa74b9079 [aom] Enable YASM 2019-02-16 00:16:43 +08:00
trav90
0505067ed2 [aom] Remove 32-bit Mac OS build config 2019-02-16 00:16:41 +08:00
trav90
322543bed6 Add aom to the list of thirdparty code 2019-02-16 00:16:39 +08:00
trav90
c0086bdae8 Add missing includes to WebMDemuxer 2019-02-16 00:16:38 +08:00
trav90
76faa8e90f Recognize AV1 in WebMDemuxer
Call AOMDecoder to handle AV1 video tracks from the WebM container. The new decoder is very similar to VPXDecoder so we can use parallel calls. This codec is still build-time conditional.
2019-02-16 00:16:36 +08:00
trav90
349a05d4ad Add AOMDecoder to AgnosticDecoderModule 2019-02-16 00:16:35 +08:00
trav90
19743f8e4d Add AOMDecoder
Port the VPXDecoder interface to libaom which uses the same api with the names changed.
2019-02-16 00:16:33 +08:00
trav90
55dd02194d Add --enable-av1 configure switch 2019-02-16 00:16:31 +08:00
trav90
28c6a9062e Generate build description for libaom 2019-02-16 00:16:30 +08:00
trav90
edc8d83307 Import aom library
This is the reference implementation for the Alliance for Open Media's av1 video code.

The commit used was 4d668d7feb1f8abd809d1bca0418570a7f142a36.
2019-02-16 00:16:28 +08:00
trav90
eb8cd130a8 Port the libvpx mozbuild generator to aom
This is a port of the libvpx scripts, themselves a port of Chromium's scripts to generate an external build description using hooks in the upstream configure and make scripts. The libaom library is a fork of libvpx so we can use a similar approach.

The upstream source is located in $(topsrc_dir)/third_party/aom but the build description and any patches are under the media directory with the other codecs, similar to how zlib works. Config files and headers generated by the upstream build system are also under $(topsrc_dir)/media/libaom/.
2019-02-16 00:16:25 +08:00
Gaming4JC
6d3168b74b backport m-c bug 1333172 - Avoid 1100 warnings by replacing NS_ENSURE_SUCCESS in nsNetUtilInlines.h:180 2019-02-16 00:16:24 +08:00
Gaming4JC
961f369d66 backport m-c bug 1333174 - Don't use NS_ENSURE_SUCCESS at nsIOService:793
Log spam fix. Suppresses 1,100 instances of NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80520012 emitted from netwerk/base/nsIOService.cpp during linux64 debug testing. Backports [m-c 1333174](https://bugzilla.mozilla.org/show_bug.cgi?id=1333174).
2019-02-16 00:16:22 +08:00
adeshkp
c9bb0df8a6 Show hidden left border of search button on about:newtab page 2019-02-16 00:16:21 +08:00