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
qffmpegcodec_p.h
Go to the documentation of this file.
1
// Copyright (C) 2024 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
QFFMPEGCODEC_P_H
5
#
define
QFFMPEGCODEC_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
<
QtFFmpegMediaPluginImpl
/
private
/
qffmpegdefs_p
.
h
>
// Important: Must be included first
19
#
include
<
QtFFmpegMediaPluginImpl
/
private
/
qffmpeg_ranges_p
.
h
>
20
21
#
include
<
QtMultimedia
/
private
/
qmultimedia_ranges_p
.
h
>
22
23
#
include
<
QtCore
/
qlatin1stringview
.
h
>
24
#
include
<
QtCore
/
qspan
.
h
>
25
26
#
include
<
vector
>
27
28
extern
"C"
{
29
#
include
<
libavcodec
/
avcodec
.
h
>
30
}
31
32
QT_BEGIN_NAMESPACE
33
34
namespace
QFFmpeg
{
35
36
class
Codec
37
{
38
public
:
39
explicit
Codec
(
const
AVCodec *codec);
40
41
[[nodiscard]]
const
AVCodec *
get
()
const
noexcept
;
42
[[nodiscard]] AVCodecID
id
()
const
noexcept
;
43
[[nodiscard]]
QLatin1StringView
name
()
const
noexcept
;
44
[[nodiscard]] AVMediaType
type
()
const
noexcept
;
45
[[nodiscard]]
int
capabilities
()
const
noexcept
;
46
[[nodiscard]]
bool
isEncoder
()
const
noexcept
;
47
[[nodiscard]]
bool
isDecoder
()
const
noexcept
;
48
[[nodiscard]]
bool
isExperimental
()
const
noexcept
;
49
[[nodiscard]]
QSpan
<
const
AVPixelFormat
>
pixelFormats
()
const
noexcept
;
50
[[nodiscard]]
QSpan
<
const
AVSampleFormat
>
sampleFormats
()
const
noexcept
;
51
[[nodiscard]]
QSpan
<
const
int
>
sampleRates
()
const
noexcept
;
52
[[nodiscard]]
QSpan
<
const
ChannelLayoutT
>
channelLayouts
()
const
noexcept
;
53
[[nodiscard]]
QSpan
<
const
AVRational
>
frameRates
()
const
noexcept
;
54
[[nodiscard]]
std
::
vector
<
const
AVCodecHWConfig
*>
hwConfigs
()
const
noexcept
;
55
[[nodiscard]]
const
AVCodecHWConfig *
hwConfigForPixelFormat
(AVPixelFormat)
const
noexcept
;
56
57
private
:
58
const
AVCodec *m_codec =
nullptr
;
59
};
60
61
using
CodecRange
=
FFmpegOpaqueIteratorRange
<
const
AVCodec
*,
av_codec_iterate
>;
62
63
inline
constexpr
CodecRange
avCodecRange
;
64
inline
constexpr
auto
allCodecs
=
65
avCodecRange | QtMultimediaPrivate::views::transform([](
const
AVCodec *codec) {
66
return
Codec(codec);
67
});
68
69
// Helper function to wrap pixel formats inside a span
70
QSpan
<
const
AVPixelFormat
>
makeSpan
(
const
AVPixelFormat *values);
71
72
}
// namespace QFFmpeg
73
74
QT_END_NAMESPACE
75
76
#
endif
QFFmpeg::Codec
Definition
qffmpegcodec_p.h:37
QFFmpeg::Codec::sampleRates
QSpan< const int > sampleRates() const noexcept
Definition
qffmpegcodec.cpp:225
QFFmpeg::Codec::get
const AVCodec * get() const noexcept
Definition
qffmpegcodec.cpp:149
QFFmpeg::Codec::id
AVCodecID id() const noexcept
Definition
qffmpegcodec.cpp:155
QFFmpeg::Codec::channelLayouts
QSpan< const ChannelLayoutT > channelLayouts() const noexcept
Definition
qffmpegcodec.cpp:235
QFFmpeg::Codec::isExperimental
bool isExperimental() const noexcept
Definition
qffmpegcodec.cpp:198
QFFmpeg::Codec::pixelFormats
QSpan< const AVPixelFormat > pixelFormats() const noexcept
Definition
qffmpegcodec.cpp:205
QFFmpeg::Codec::name
QLatin1StringView name() const noexcept
Definition
qffmpegcodec.cpp:162
QFFmpeg::Codec::hwConfigs
std::vector< const AVCodecHWConfig * > hwConfigs() const noexcept
Definition
qffmpegcodec.cpp:255
QFFmpeg::Codec::isEncoder
bool isEncoder() const noexcept
Definition
qffmpegcodec.cpp:184
QFFmpeg::Codec::Codec
Codec(const AVCodec *codec)
Definition
qffmpegcodec.cpp:144
QFFmpeg::Codec::capabilities
int capabilities() const noexcept
Definition
qffmpegcodec.cpp:177
QFFmpeg::Codec::frameRates
QSpan< const AVRational > frameRates() const noexcept
Definition
qffmpegcodec.cpp:245
QFFmpeg::Codec::type
AVMediaType type() const noexcept
Definition
qffmpegcodec.cpp:169
QFFmpeg::Codec::hwConfigForPixelFormat
const AVCodecHWConfig * hwConfigForPixelFormat(AVPixelFormat) const noexcept
Definition
qffmpegcodec.cpp:269
QFFmpeg::Codec::isDecoder
bool isDecoder() const noexcept
Definition
qffmpegcodec.cpp:191
QFFmpeg::Codec::sampleFormats
QSpan< const AVSampleFormat > sampleFormats() const noexcept
Definition
qffmpegcodec.cpp:215
QFFmpeg
Definition
qandroidcacertificates.cpp:26
QFFmpeg::avCodecRange
constexpr CodecRange avCodecRange
Definition
qffmpegcodec_p.h:63
QFFmpeg::makeSpan
QSpan< const AVPixelFormat > makeSpan(const AVPixelFormat *values)
Definition
qffmpegcodec.cpp:280
QFFmpeg::allCodecs
constexpr auto allCodecs
Definition
qffmpegcodec_p.h:64
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qtmultimedia
src
plugins
multimedia
ffmpeg
qffmpegcodec_p.h
Generated on
for Qt by
1.18.0