QAbstractVideoBuffer Class

QAbstractVideoBuffer 클래스는 비디오 데이터에 대한 추상화입니다. 더 보기...

Header: #include <QAbstractVideoBuffer>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia
이후: Qt 6.8

공용 형

struct MapData

공용 함수

virtual ~QAbstractVideoBuffer()
virtual QVideoFrameFormat format() const = 0
virtual QAbstractVideoBuffer::MapData map(QVideoFrame::MapMode mode) = 0
virtual void unmap()

상세 설명

QVideoFrame 클래스는 비디오 데이터의 버퍼를 참조하기 위해 내부적으로 QAbstractVideoBuffer를 사용합니다. QAbstractVideoBuffer의 서브클래스를 생성하면 미리 할당된 버퍼 또는 정적 버퍼에서 비디오 프레임을 구성할 수 있습니다. 서브클래스는 하드웨어 버퍼를 포함할 수 있으며, 버퍼를 CPU 메모리에 매핑하여 데이터에 대한 액세스를 구현할 수 있습니다.

버퍼의 내용은 현재 비디오 데이터의 평면 레이아웃에 대한 정보를 포함하는 구조를 반환하는 map() 함수를 사용하여 버퍼를 메모리에 매핑하여 액세스할 수 있습니다.

QVideoFrame, QVideoFrameFormat, QVideoFrame::MapMode참조하세요 .

멤버 함수 문서

[virtual noexcept] QAbstractVideoBuffer::~QAbstractVideoBuffer()

동영상 버퍼를 삭제합니다.

[pure virtual] QVideoFrameFormat QAbstractVideoBuffer::format() const

기본 비디오 버퍼의 QVideoFrameFormat 를 가져옵니다.

이 형식은 QVideoFrame 을 구축할 때 사용할 수 있어야 합니다. QVideoFrame 에는 주어진 형식의 원 인스턴스가 포함되며, 분리 및 수정이 가능합니다.

[pure virtual] QAbstractVideoBuffer::MapData QAbstractVideoBuffer::map(QVideoFrame::MapMode mode)

비디오 버퍼의 평면을 메모리에 매핑합니다.

매핑된 현재 비디오 데이터의 평면 레이아웃에 대한 정보가 포함된 MapData 구조를 반환합니다. 매핑에 실패하면 이 메서드는 기본 구조를 반환합니다. CPU 메모리 버퍼의 경우, 데이터는 이미 매핑된 것으로 간주되므로 함수는 미리 할당된 기본 데이터의 평면 레이아웃만 반환합니다.

mode 맵은 매핑된 메모리의 내용을 버퍼에서 읽거나 버퍼에 써야 하는지 여부를 나타냅니다. 맵 모드에 QVideoFrame::ReadOnly 플래그가 포함된 경우 매핑된 메모리는 처음 매핑될 때 버퍼의 콘텐츠로 채워집니다. 맵 모드에 QVideoFrame::WriteOnly 플래그가 포함된 경우 매핑이 해제되면 수정되었을 가능성이 있는 매핑된 메모리의 콘텐츠가 버퍼에 다시 기록됩니다.

데이터에 대한 액세스가 더 이상 필요하지 않으면 unmap 함수가 호출되어 매핑된 메모리를 해제하고 버퍼 콘텐츠를 업데이트할 수 있습니다.

비디오 데이터의 포맷이 멀티플레인인 경우, 전체 픽셀 데이터를 단일 평면으로 매핑할 수 있습니다. 이 경우 QVideoFrame 으로 버퍼를 매핑하면 첫 번째 평면의 지정된 선 보폭, 프레임 높이 및 데이터 크기에서 추가 평면을 계산합니다.

[virtual] void QAbstractVideoBuffer::unmap()

map() 함수에 의해 매핑된 메모리를 해제합니다.

MapModeQVideoFrame::WriteOnly 플래그가 포함된 경우 매핑된 메모리의 현재 콘텐츠를 비디오 프레임에 다시 씁니다.

CPU 비디오 버퍼의 경우 이 함수는 재정의되지 않을 수 있습니다. unmap 의 기본 구현은 아무 작업도 수행하지 않습니다.

map()도 참조하세요 .

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.