Read more on our blog.
API 구조 OffscreenSharedTexture 객체 OffscreenSharedTexture 객체
textureInfo
객체 - 공유 텍스처 정보
widgetType
문자열 - 텍스처의 위젯 타입. popup
또는 frame
이 가능하다.
pixelFormat
문자열 - 텍스처의 픽셀 포맷. rgba
또는 bgra
가 가능하다.
codedSize
Size - 비디오 프레임의 전체 크기.
visibleRect
Rectangle - [0, 0, codedSize.width(), codedSize.height()]의 부분 영역. OSR(Off-Screen Rendering) 경우에는 전체 영역을 가진다.
contentRect
Rectangle - 캡처러가 채우고자 하는 비디오 프레임의 영역. OSR 경우에는 페인팅이 필요한 dirtyRect
와 동일하다.
timestamp
숫자 - 캡처 시작 이후의 시간(마이크로초 단위).
metadata
객체 - 추가 메타데이터. 자세한 내용은 src\media\base\video_frame_metadata.h의 주석을 참고한다.
captureUpdateRect
Rectangle (선택 사항) - 프레임의 업데이트된 영역. dirty
영역으로 간주할 수 있다.
regionCaptureRect
Rectangle (선택 사항) - 내부적으로 영역 캡처를 사용하는 경우 프레임 콘텐츠의 오리진을 반영할 수 있다.
sourceSize
Rectangle (선택 사항) - 소스 프레임의 전체 크기.
frameCount
숫자 (선택 사항) - 캡처된 프레임의 증가하는 카운트. 두 연속적으로 수신된 프레임 사이에 프레임이 드롭된 경우 간격이 있을 수 있다.
sharedTextureHandle
Buffer Windows macOS - 공유 텍스처의 핸들.
planes
객체[] Linux - 공유 텍스처의 각 플레인 정보.
stride
숫자 - 메모리 매핑을 통해 버퍼에 접근할 때 사용할 스트라이드와 오프셋(바이트 단위). 각 플레인별로 하나씩 존재한다.
offset
숫자 - 메모리 매핑을 통해 버퍼에 접근할 때 사용할 스트라이드와 오프셋(바이트 단위). 각 플레인별로 하나씩 존재한다.
size
숫자 - 플레인의 크기(바이트 단위). 버퍼를 매핑하기 위해 필요하다.
fd
숫자 - 기본 메모리 객체(보통 dmabuf)에 대한 파일 디스크립터.
modifier
문자열 Linux - GBM 라이브러리에서 검색되고 EGL 드라이버로 전달되는 수정자.
release
함수 - 리소스를 해제한다. texture
는 다른 프로세스로 직접 전달할 수 없으며, 사용자는 메인 프로세스에서 텍스처 라이프사이클을 관리해야 한다. 하지만 textureInfo
는 다른 프로세스로 전달해도 안전하다. 동시에 존재할 수 있는 텍스처의 수는 제한적이므로, 텍스처 사용이 끝나면 texture.release()
를 즉시 호출하는 것이 중요하다.