Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(904)

Unified Diff: ui/accelerated_widget_mac/ca_renderer_layer_tree.mm

Issue 2366433002: Mac video: Add blacklist entry for AVSampleBufferDisplayLayer (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/accelerated_widget_mac/ca_renderer_layer_tree.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/accelerated_widget_mac/ca_renderer_layer_tree.mm
diff --git a/ui/accelerated_widget_mac/ca_renderer_layer_tree.mm b/ui/accelerated_widget_mac/ca_renderer_layer_tree.mm
index dcc8cca2b2029dfd5ff5dba6e9059ecb3f0c0589..985b06e9401fbe9c2589a89627b9f8de49d64ee5 100644
--- a/ui/accelerated_widget_mac/ca_renderer_layer_tree.mm
+++ b/ui/accelerated_widget_mac/ca_renderer_layer_tree.mm
@@ -129,7 +129,10 @@ bool AVSampleBufferDisplayLayerEnqueueIOSurface(
} // namespace
-CARendererLayerTree::CARendererLayerTree() {}
+CARendererLayerTree::CARendererLayerTree(
+ bool allow_av_sample_buffer_display_layer)
+ : allow_av_sample_buffer_display_layer_(
+ allow_av_sample_buffer_display_layer) {}
CARendererLayerTree::~CARendererLayerTree() {}
bool CARendererLayerTree::ScheduleCALayer(const CARendererLayerParams& params) {
@@ -139,7 +142,7 @@ bool AVSampleBufferDisplayLayerEnqueueIOSurface(
LOG(ERROR) << "ScheduleCALayer called after CommitScheduledCALayers.";
return false;
}
- return root_layer_.AddContentLayer(params);
+ return root_layer_.AddContentLayer(this, params);
}
void CARendererLayerTree::CommitScheduledCALayers(
@@ -267,6 +270,7 @@ bool AVSampleBufferDisplayLayerEnqueueIOSurface(
}
CARendererLayerTree::ContentLayer::ContentLayer(
+ CARendererLayerTree* tree,
base::ScopedCFTypeRef<IOSurfaceRef> io_surface,
base::ScopedCFTypeRef<CVPixelBufferRef> cv_pixel_buffer,
const gfx::RectF& contents_rect,
@@ -311,7 +315,8 @@ bool AVSampleBufferDisplayLayerEnqueueIOSurface(
// Only allow 4:2:0 frames which fill the layer's contents to be promoted to
// AV layers.
- if (IOSurfaceGetPixelFormat(io_surface) ==
+ if (tree->allow_av_sample_buffer_display_layer_ &&
+ IOSurfaceGetPixelFormat(io_surface) ==
kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange &&
contents_rect == gfx::RectF(0, 0, 1, 1)) {
use_av_layer = true;
@@ -339,6 +344,7 @@ bool AVSampleBufferDisplayLayerEnqueueIOSurface(
}
bool CARendererLayerTree::RootLayer::AddContentLayer(
+ CARendererLayerTree* tree,
const CARendererLayerParams& params) {
bool needs_new_clip_and_sorting_layer = true;
@@ -375,11 +381,12 @@ bool AVSampleBufferDisplayLayerEnqueueIOSurface(
params.is_clipped, params.clip_rect, params.sorting_context_id,
is_singleton_sorting_context));
}
- clip_and_sorting_layers.back().AddContentLayer(params);
+ clip_and_sorting_layers.back().AddContentLayer(tree, params);
return true;
}
void CARendererLayerTree::ClipAndSortingLayer::AddContentLayer(
+ CARendererLayerTree* tree,
const CARendererLayerParams& params) {
bool needs_new_transform_layer = true;
if (!transform_layers.empty()) {
@@ -389,10 +396,11 @@ bool AVSampleBufferDisplayLayerEnqueueIOSurface(
}
if (needs_new_transform_layer)
transform_layers.push_back(TransformLayer(params.transform));
- transform_layers.back().AddContentLayer(params);
+ transform_layers.back().AddContentLayer(tree, params);
}
void CARendererLayerTree::TransformLayer::AddContentLayer(
+ CARendererLayerTree* tree,
const CARendererLayerParams& params) {
base::ScopedCFTypeRef<IOSurfaceRef> io_surface;
base::ScopedCFTypeRef<CVPixelBufferRef> cv_pixel_buffer;
@@ -405,7 +413,7 @@ bool AVSampleBufferDisplayLayerEnqueueIOSurface(
}
content_layers.push_back(
- ContentLayer(io_surface, cv_pixel_buffer, params.contents_rect,
+ ContentLayer(tree, io_surface, cv_pixel_buffer, params.contents_rect,
params.rect, params.background_color, params.edge_aa_mask,
params.opacity, params.filter));
}
« no previous file with comments | « ui/accelerated_widget_mac/ca_renderer_layer_tree.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698