Bring libvpx to ffvpx/libavcodecs
Categories
(Core :: Audio/Video, task, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox122 | --- | fixed |
People
(Reporter: chunmin, Assigned: chunmin)
References
Details
Attachments
(7 files, 3 obsolete files)
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review |
Currently, there is no vpx encoder in ffvpx. To implement a VPX encoder with MediaDataEncoder interface through ffvpx/libavcodec, we need to bring libvpx to ffvpx.
Assignee | ||
Comment 1•8 months ago
|
||
This patch brings the platform-specific vpx_codec_build_config
implementation into libvpx since it will be used and exposed in the
following patches.
Assignee | ||
Comment 2•8 months ago
|
||
Depends on D193598
Assignee | ||
Comment 3•8 months ago
|
||
This patch copies the libvpx files from ffmpeg @ d9d5695390, which is
the current revision used in ffvpx, with the following command:
cp <FFMPEG>/libavcodec/libvpx* <GECKO>/media/ffvpx/libavcodec/
Depends on D193599
Assignee | ||
Comment 4•8 months ago
|
||
- Add libvpxdec.c and libvpxenc.c to libavcodec/moz.build
- Add ff_libvpx_vp{8,9}_{de, en}coder to codec_list
Depends on D193600
Assignee | ||
Comment 5•8 months ago
|
||
Set CONFIG_LIBVPX on unix64 platforms and enable CONFIG_LIBVPX_VP*
Depends on D193601
Updated•8 months ago
|
Updated•8 months ago
|
Comment 6•7 months ago
|
||
Comment on attachment 9363597 [details]
WIP: Bug 1864008 - Add encoder-related APIs into FFmpegLibWrapper
Revision D193602 was moved to bug 1860899. Setting attachment 9363597 [details] to obsolete.
Updated•7 months ago
|
Updated•7 months ago
|
Updated•7 months ago
|
Updated•7 months ago
|
Assignee | ||
Comment 7•7 months ago
|
||
Depends on D193598
Assignee | ||
Comment 8•7 months ago
|
||
This patch is the first part that moves libvpx from libgkmedias to
libgkcodecs.
When ac_add_options --with-system-libvpx
(and --without-sysroot
if
needed) is set in mozconfig (MOZ_SYSTEM_LIBVPX case), the libvpx
installed in the system will be used and the media/libvpx won't be
built, so the libvpx APIs shouldn't be exposed via gkcodecs' symbols in
this case.
With the changes, the "vpx/..." headers #include
d in the VPX
encoders should be replaced with system headers like <vpx/...>
instead. While the VPX headers under dom/media are updated in this
patch, those headers under third_party/libwebrtc are set in a different
way in the following patches.
Since libpixman needs android_getCpuFeatures and _getCpuFamily APIs,
which were built by libvpx previously, cpu-features.c now is required to
be included in its moz.build to get the API it needs.
Depends on D195055
Assignee | ||
Comment 9•7 months ago
|
||
This patch addes trampoline headers for libvpx.
To follow the libwebrtc merge procedure, the vpx headers are silently
replaced with "trampoline" headers, which do nothing but include real
VPX headers. This makes the libwebrtc-merge process easier without
worrying headers' paths.
Depends on D195494
Assignee | ||
Comment 10•7 months ago
|
||
This patch sets rtc_build_libvpx
to true
in webrtc.gni, so the
moz.build file for third_party/libvpx can be generated by the
gn_processor in the next patch.
Depends on D195495
Assignee | ||
Comment 11•7 months ago
|
||
This patch overwrites moz.build files for libwebrtc.
The newly added libvpx_gn/moz.build and other build files are generated
automatically by running
./mach python python/mozbuild/mozbuild/gn_processor.py \
dom/media/webrtc/third_party_build/gn-configs/webrtc.json
Depends on D195496
Updated•7 months ago
|
Updated•7 months ago
|
Updated•7 months ago
|
Updated•7 months ago
|
Comment 12•7 months ago
|
||
Pushed by cchang@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/63ec56d06ad6 Build libvpx with platform-specific vpx_config.c r=media-playback-reviewers,glandium,karlt https://hg.mozilla.org/integration/autoland/rev/b99801655626 Alphabetize gkcodecs.symbols r=glandium https://hg.mozilla.org/integration/autoland/rev/4ad7de7e3c9c Move libvpx to libgkcodecs, part 1 r=media-playback-reviewers,glandium,alwu,padenot https://hg.mozilla.org/integration/autoland/rev/d43978d3d835 Move libvpx to libgkcodecs, part 2 r=webrtc-reviewers,padenot,mjf https://hg.mozilla.org/integration/autoland/rev/87d8deb5500f Move libvpx to libgkcodecs, part 3 r=webrtc-reviewers,padenot,mjf https://hg.mozilla.org/integration/autoland/rev/4c80c48cc943 Copy libvpx files to ffvpx r=media-playback-reviewers,padenot https://hg.mozilla.org/integration/autoland/rev/4e7047383483 Integrate libvpx with libavcodec r=media-playback-reviewers,glandium,padenot
Comment 13•7 months ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/63ec56d06ad6
https://hg.mozilla.org/mozilla-central/rev/b99801655626
https://hg.mozilla.org/mozilla-central/rev/4ad7de7e3c9c
https://hg.mozilla.org/mozilla-central/rev/d43978d3d835
https://hg.mozilla.org/mozilla-central/rev/87d8deb5500f
https://hg.mozilla.org/mozilla-central/rev/4c80c48cc943
https://hg.mozilla.org/mozilla-central/rev/4e7047383483
Description
•