Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qffmpegvideobuffer_p.h
Go to the documentation of this file.
1
// Copyright (C) 2021 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4
#
ifndef
QFFMPEGVIDEOBUFFER_P_H
5
#
define
QFFMPEGVIDEOBUFFER_P_H
6
7
//
8
// W A R N I N G
9
// -------------
10
//
11
// This file is not part of the Qt API. It exists purely as an
12
// implementation detail. This header file may change from version to
13
// version without notice, or even be removed.
14
//
15
// We mean it.
16
//
17
18
#
include
<
QtMultimedia
/
private
/
qhwvideobuffer_p
.
h
>
19
#
include
<
QtCore
/
qvariant
.
h
>
20
21
#
include
<
QtFFmpegMediaPluginImpl
/
private
/
qffmpeg_p
.
h
>
22
#
include
<
QtFFmpegMediaPluginImpl
/
private
/
qffmpeghwaccel_p
.
h
>
23
24
QT_BEGIN_NAMESPACE
25
26
class
QFFmpegVideoBuffer
:
public
QHwVideoBuffer
27
{
28
public
:
29
using
AVFrameUPtr
=
QFFmpeg
::
AVFrameUPtr
;
30
31
QFFmpegVideoBuffer
(AVFrameUPtr frame, AVRational pixelAspectRatio = { 1, 1 });
32
~
QFFmpegVideoBuffer
()
override
;
33
34
MapData
map
(QVideoFrame::MapMode mode)
override
;
35
void
unmap
()
override
;
36
37
QVideoFrameTexturesUPtr
mapTextures
(QRhi &, QVideoFrameTexturesUPtr& oldTextures)
override
;
38
39
QVideoFrameFormat
::
PixelFormat
pixelFormat
()
const
;
40
QSize
size
()
const
;
41
42
static
QVideoFrameFormat
::
PixelFormat
toQtPixelFormat
(AVPixelFormat avPixelFormat,
bool
*needsConversion =
nullptr
);
43
static
AVPixelFormat
toAVPixelFormat
(QVideoFrameFormat::PixelFormat pixelFormat);
44
45
void
convertSWFrame
();
46
47
AVFrame
*
getHWFrame
()
const
{
return
m_hwFrame.get(); }
48
49
void
initTextureConverter
(QRhi &rhi)
override
;
50
51
QRhi
*
associatedCurrentThreadRhi
()
const
override
;
52
53
QVideoFrameFormat
::
ColorSpace
colorSpace
()
const
;
54
QVideoFrameFormat
::
ColorTransfer
colorTransfer
()
const
;
55
QVideoFrameFormat
::
ColorRange
colorRange
()
const
;
56
57
float
maxNits
();
58
59
private
:
60
// The result texture converter must be accessed from the rhi's thread
61
QFFmpeg::TextureConverter &ensureTextureConverter(QRhi &rhi);
62
63
QVideoFrameTexturesUPtr createTexturesFromHwFrame(QRhi &, QVideoFrameTexturesUPtr& oldTextures);
64
65
private
:
66
QVideoFrameFormat::PixelFormat m_pixelFormat;
67
AVFrame *m_frame =
nullptr
;
68
AVFrameUPtr m_hwFrame;
69
AVFrameUPtr m_swFrame;
70
QSize m_size;
71
QVideoFrame::MapMode m_mode =
QVideoFrame
::
NotMapped
;
72
};
73
74
QT_END_NAMESPACE
75
76
#
endif
QFFmpegVideoBuffer
Definition
qffmpegvideobuffer_p.h:27
QFFmpegVideoBuffer::convertSWFrame
void convertSWFrame()
Definition
qffmpegvideobuffer.cpp:50
QFFmpegVideoBuffer::maxNits
float maxNits()
Definition
qffmpegvideobuffer.cpp:137
QFFmpegVideoBuffer::pixelFormat
QVideoFrameFormat::PixelFormat pixelFormat() const
Definition
qffmpegvideobuffer.cpp:250
QFFmpegVideoBuffer::colorSpace
QVideoFrameFormat::ColorSpace colorSpace() const
Definition
qffmpegvideobuffer.cpp:122
QFFmpegVideoBuffer::unmap
void unmap() override
Releases the memory mapped by the map() function.
Definition
qffmpegvideobuffer.cpp:189
QFFmpegVideoBuffer::map
MapData map(QVideoFrame::MapMode mode) override
Maps the planes of a video buffer to memory.
Definition
qffmpegvideobuffer.cpp:156
QFFmpegVideoBuffer::colorTransfer
QVideoFrameFormat::ColorTransfer colorTransfer() const
Definition
qffmpegvideobuffer.cpp:127
QFFmpegVideoBuffer::initTextureConverter
void initTextureConverter(QRhi &rhi) override
Definition
qffmpegvideobuffer.cpp:84
QFFmpegVideoBuffer::toAVPixelFormat
static AVPixelFormat toAVPixelFormat(QVideoFrameFormat::PixelFormat pixelFormat)
Definition
qffmpegvideobuffer.cpp:328
QFFmpegVideoBuffer::mapTextures
QVideoFrameTexturesUPtr mapTextures(QRhi &, QVideoFrameTexturesUPtr &oldTextures) override
Definition
qffmpegvideobuffer.cpp:196
QFFmpegVideoBuffer::colorRange
QVideoFrameFormat::ColorRange colorRange() const
Definition
qffmpegvideobuffer.cpp:132
QFFmpegVideoBuffer::getHWFrame
AVFrame * getHWFrame() const
Definition
qffmpegvideobuffer_p.h:47
QFFmpegVideoBuffer::toQtPixelFormat
static QVideoFrameFormat::PixelFormat toQtPixelFormat(AVPixelFormat avPixelFormat, bool *needsConversion=nullptr)
Definition
qffmpegvideobuffer.cpp:260
QFFmpegVideoBuffer::QFFmpegVideoBuffer
QFFmpegVideoBuffer(AVFrameUPtr frame, AVRational pixelAspectRatio={ 1, 1 })
Definition
qffmpegvideobuffer.cpp:32
QFFmpegVideoBuffer::size
QSize size() const
Definition
qffmpegvideobuffer.cpp:255
QFFmpegVideoBuffer::~QFFmpegVideoBuffer
~QFFmpegVideoBuffer() override
QFFmpegVideoBuffer::associatedCurrentThreadRhi
QRhi * associatedCurrentThreadRhi() const override
Definition
qffmpegvideobuffer.cpp:112
QFFmpeg::VideoRenderer
Definition
qffmpegvideorenderer_p.h:29
QFFmpeg::VideoRenderer::renderInternal
RenderingResult renderInternal(Frame frame) override
Definition
qffmpegvideorenderer.cpp:35
QFFmpeg::VideoRenderer::setOutput
void setOutput(QVideoSink *sink, bool cleanPrevSink=false)
Definition
qffmpegvideorenderer.cpp:21
QFFmpeg
Definition
qandroidcacertificates.cpp:26
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qtmultimedia
src
plugins
multimedia
ffmpeg
qffmpegvideobuffer_p.h
Generated on
for Qt by
1.18.0