diff --git a/docs/api/structures/shared-texture-import-texture-info.md b/docs/api/structures/shared-texture-import-texture-info.md index 813aa70c5e..fa38df4c8d 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. + * `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. * `visibleRect` [Rectangle](rectangle.md) (optional) - A subsection of [0, 0, codedSize.width, codedSize.height]. In common cases, it is the full section area. diff --git a/shell/common/api/electron_api_shared_texture.cc b/shell/common/api/electron_api_shared_texture.cc index f1dddc00a3..ba22b50aa0 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_P010LE: + return "p010le"; default: NOTREACHED(); } @@ -569,6 +571,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 == "p010le") + out->pixel_format = media::PIXEL_FORMAT_P010LE; else return false; }