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