diff options
Diffstat (limited to 'chromium/media/renderers/video_frame_yuv_mailboxes_holder.cc')
-rw-r--r-- | chromium/media/renderers/video_frame_yuv_mailboxes_holder.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/chromium/media/renderers/video_frame_yuv_mailboxes_holder.cc b/chromium/media/renderers/video_frame_yuv_mailboxes_holder.cc index 1fb194a9bd9..881dd03dee5 100644 --- a/chromium/media/renderers/video_frame_yuv_mailboxes_holder.cc +++ b/chromium/media/renderers/video_frame_yuv_mailboxes_holder.cc @@ -1,4 +1,4 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. +// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -182,16 +182,21 @@ GrYUVABackendTextures VideoFrameYUVMailboxesHolder::VideoFrameToSkiaTextures( sk_sp<SkImage> VideoFrameYUVMailboxesHolder::VideoFrameToSkImage( const VideoFrame* video_frame, - viz::RasterContextProvider* raster_context_provider) { + viz::RasterContextProvider* raster_context_provider, + sk_sp<SkColorSpace> reinterpret_color_space) { GrDirectContext* gr_context = raster_context_provider->GrContext(); DCHECK(gr_context); GrYUVABackendTextures yuva_backend_textures = VideoFrameToSkiaTextures( video_frame, raster_context_provider, /*for_surface=*/false); + auto rgb_color_space = + reinterpret_color_space + ? reinterpret_color_space + : video_frame->ColorSpace().GetAsFullRangeRGB().ToSkColorSpace(); DCHECK(yuva_backend_textures.isValid()); auto result = SkImage::MakeFromYUVATextures(gr_context, yuva_backend_textures, - SkColorSpace::MakeSRGB()); + rgb_color_space); DCHECK(result); return result; } @@ -297,6 +302,7 @@ VideoFrameYUVMailboxesHolder::VideoPixelFormatToSkiaValues( // we do assume 8 bit formats. With that exception, anything else should work. switch (video_format) { case PIXEL_FORMAT_NV12: + case PIXEL_FORMAT_P016LE: return {SkYUVAInfo::PlaneConfig::kY_UV, SkYUVAInfo::Subsampling::k420}; case PIXEL_FORMAT_I420: return {SkYUVAInfo::PlaneConfig::kY_U_V, SkYUVAInfo::Subsampling::k420}; |