Bug 167450

Summary: This bug is here just to trace the extra changes for information and discussion on the webkit side.
Product: WebKit Reporter: Alex. Gouaillard <agouaillard>
Component: MediaAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Minor CC: agouaillard
Priority: P3    
Version: WebKit Local Build   
Hardware: Unspecified   
OS: macOS 10.12   

Description Alex. Gouaillard 2017-01-26 00:15:45 PST
Porting Changeset 211046 to upstream's webrtc

[WebRTC] Make VP8 optional in libwebrtc
‚Äčhttps://bugs.webkit.org/show_bug.cgi?id=167257

The above patch cannot be ported as it, as it requires modifying some BUILD.gn files.
Comment 1 Alex. Gouaillard 2017-01-26 00:49:34 PST
The default libwebrtc compiles with VP* always ON.
While this patch uses the same implementation that was used for VP9 upstream, it does not modify the build files accordingly.

The proposed solution is to add a GN configuration to reflect that this is a build in webkit, just like the two existing flags that differentiates the standalone build (default), chromium build (build_with_chromium), and the firefox build (build_with firefox). It's more consistent, and it also allows for less post processing of GN Generated files in webkit. Just like firefox flag, it is more prone to breakage, and would be more or less th responsibility of the webkit maintainers to make sure it is kept updated.

changes:
in /webrtc/webrtc.gni:

  rtc_libvpx_build_vp8 = true
  if (build_with_webkit) {
    etc_libvpx_build_vp8 = false
  }

in /webrtc/BUILD.gn:

  if (!rtc_libvpx_build_vp8) {
    defines += [ "RTC_DISABLE_VP8" ]
  }

  if (build_with_webkit) {
    defines += [ "WEBRTC_WEBKIT_BUILD" ]
  }

in /webrtc/modules/video_coding/BUILD.gn:

rtc_static_library("webrtc_vp8") {
  if (rtc_libvpx_build_vp8) {
    sources = [
      "codecs/vp8/include/vp8.h",
      "codecs/vp8/vp8_impl.cc",
      "codecs/vp8/vp8_impl.h",
    ]
  } else {
    sources = [
      "codecs/vp8/vp8_noop.cc",
    ]
  }