From 41178059049f4e04d0bd8447f4414f2c41e4dcff Mon Sep 17 00:00:00 2001 From: "trop[bot]" <37223003+trop[bot]@users.noreply.github.com> Date: Thu, 23 Apr 2026 10:12:49 +0200 Subject: [PATCH] feat: import shared texture supports nv16 (#51187) Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: David Franco --- docs/api/structures/shared-texture-import-texture-info.md | 1 + shell/common/api/electron_api_shared_texture.cc | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/docs/api/structures/shared-texture-import-texture-info.md b/docs/api/structures/shared-texture-import-texture-info.md index fa38df4c8d..bfe83fc51f 100644 --- a/docs/api/structures/shared-texture-import-texture-info.md +++ b/docs/api/structures/shared-texture-import-texture-info.md @@ -5,6 +5,7 @@ * `rgba` - 32bpp RGBA (byte-order), 1 plane. * `rgbaf16` - Half float RGBA, 1 plane. * `nv12` - 12bpp with Y plane followed by a 2x2 interleaved UV plane. + * `nv16` - 16bpp with Y plane followed by a 2x1 interleaved UV plane. * `p010le` - 4:2:0 10-bit YUV (little-endian), Y plane followed by a 2x2 interleaved UV plane. * `colorSpace` [ColorSpace](color-space.md) (optional) - The color space of the texture. * `codedSize` [Size](size.md) - The full dimensions of the shared texture. diff --git a/shell/common/api/electron_api_shared_texture.cc b/shell/common/api/electron_api_shared_texture.cc index 4582e4e65a..e3035bdceb 100644 --- a/shell/common/api/electron_api_shared_texture.cc +++ b/shell/common/api/electron_api_shared_texture.cc @@ -127,6 +127,8 @@ std::string TransferVideoPixelFormatToString(media::VideoPixelFormat format) { return "rgbaf16"; case media::PIXEL_FORMAT_NV12: return "nv12"; + case media::PIXEL_FORMAT_NV16: + return "nv16"; case media::PIXEL_FORMAT_P010LE: return "p010le"; default: @@ -577,6 +579,8 @@ struct Converter { out->pixel_format = media::PIXEL_FORMAT_RGBAF16; else if (pixel_format_str == "nv12") out->pixel_format = media::PIXEL_FORMAT_NV12; + else if (pixel_format_str == "nv16") + out->pixel_format = media::PIXEL_FORMAT_NV16; else if (pixel_format_str == "p010le") out->pixel_format = media::PIXEL_FORMAT_P010LE; else