electron/docs/api/structures/offscreen-shared-texture.md

2.4 KiB

OffscreenSharedTexture Object

  • textureInfo Object - The shared texture info.
    • widgetType string - The widget type of the texture. Can be popup or frame.
    • pixelFormat string - The pixel format of the texture. Can be rgba or bgra.
    • codedSize Size - The full dimensions of the video frame.
    • visibleRect Rectangle - A subsection of [0, 0, codedSize.width(), codedSize.height()]. In OSR case, it is expected to have the full section area.
    • contentRect Rectangle - The region of the video frame that capturer would like to populate. In OSR case, it is the same with dirtyRect that needs to be painted.
    • timestamp number - The time in microseconds since the capture start.
    • metadata Object - Extra metadata. See comments in src\media\base\video_frame_metadata.h for accurate details.
      • captureUpdateRect Rectangle (optional) - Updated area of frame, can be considered as the dirty area.
      • regionCaptureRect Rectangle (optional) - May reflect the frame's contents origin if region capture is used internally.
      • sourceSize Rectangle (optional) - Full size of the source frame.
      • frameCount number (optional) - The increasing count of captured frame. May contain gaps if frames are dropped between two consecutively received frames.
    • sharedTextureHandle Buffer Windows macOS - The handle to the shared texture.
    • planes Object[] Linux - Each plane's info of the shared texture.
      • stride number - The strides and offsets in bytes to be used when accessing the buffers via a memory mapping. One per plane per entry.
      • offset number - The strides and offsets in bytes to be used when accessing the buffers via a memory mapping. One per plane per entry.
      • size number - Size in bytes of the plane. This is necessary to map the buffers.
      • fd number - File descriptor for the underlying memory object (usually dmabuf).
    • modifier string Linux - The modifier is retrieved from GBM library and passed to EGL driver.
  • release Function - Release the resources. The texture cannot be directly passed to another process, users need to maintain texture lifecycles in main process, but it is safe to pass the textureInfo to another process. Only a limited number of textures can exist at the same time, so it's important that you call texture.release() as soon as you're done with the texture.