
GpuVideoDecodeAccelerator/Host runs IPCs between renderer and GPU processes, sharing a route with a specific CommandBufferStub/ProxyImpl. This is a bit tricky to do with Mojo because Media IPCs are a layer above GPU, and we therefore need CommandBuffer-associated interfaces that CommandBuffer doesn't know about. To facilitate this we introduce a generic BindMediaReceiver API on CommandBuffer which takes a mojo::GenericPendingAssociatedReceiver, i.e. an associated interface endpoint that can be of any type. We then introduce a GPU-side hook that the Media stack can use to handle such requests. The primordial associated interface introduced here is GpuAcceleratedVideoDecoderProvider, which in turn has a single IPC for binding a GpuAcceleratedVideoDecoder/Client pair, also associated with the CommandBuffer. This migration removes the last remaining legacy IPC messages used by the GPU process, so once this is landed we can altogether remove IPC Channel from GPU code. Bug: 1196476, 993189 Change-Id: Ife986434b3c10b5796ce995d837a37c29514af49 Test: manually tested with custom extension doing a hardware VP9 decode via pp::VideoDecoder Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2956897 Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Avi Drissman <avi@chromium.org> Reviewed-by: Sean Topping <seantopping@chromium.org> Reviewed-by: Robert Sesek <rsesek@chromium.org> Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org> Reviewed-by: Dan Sanders <sandersd@chromium.org> Commit-Queue: Ken Rockot <rockot@google.com> Cr-Commit-Position: refs/heads/master@{#893111}
Cast base
cast_features
This file contains tools for checking the feature state of all of the features which affect Cast products. Cast features build upon the Chrome feature system. Some aspects of Cast require the feature system to work differently, however, so some additional logic has been layered on top. Details are available in comments of the header file. The basics are:
- If you are adding a new feature, add it to
cast_features.cc
so it lives alongside existing features - Add your new feature to the list of
kFeatures
incast_features.cc
const base::Feature kMyFeature{"my_feature", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature* kFeatures[] = {
// ..other features
&kMyFeature
}