OffscreenSharedTexture Object
textureInfo
Object - The shared texture info.widgetType
string - The widget type of the texture. Can bepopup
orframe
.pixelFormat
string - The pixel format of the texture. Can bergba
orbgra
.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 withdirtyRect
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 thedirty
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. Thetexture
cannot be directly passed to another process, users need to maintain texture lifecycles in main process, but it is safe to pass thetextureInfo
to another process. Only a limited number of textures can exist at the same time, so it's important that you calltexture.release()
as soon as you're done with the texture.