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
qgst_discoverer_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
QGST_DISCOVERER_P_H
5
#
define
QGST_DISCOVERER_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
<
QtCore
/
qglobal
.
h
>
19
#
include
<
QtCore
/
qlocale
.
h
>
20
#
include
<
QtCore
/
qsize
.
h
>
21
#
include
<
QtCore
/
private
/
qexpected_p
.
h
>
22
23
#
include
<
QtMultimedia
/
private
/
qmultimediautils_p
.
h
>
24
25
#
include
"qgst_p.h"
26
#
include
"qgst_handle_types_p.h"
27
28
#
include
<
gst
/
pbutils
/
gstdiscoverer
.
h
>
29
30
#
include
<
vector
>
31
32
QT_BEGIN_NAMESPACE
33
34
class
QMediaMetaData;
35
36
namespace
QGst
{
37
38
using
QGstDiscovererHandle
=
QGstImpl
::
QGstHandleHelper
<
GstDiscoverer
>::
SharedHandle
;
39
using
QGstDiscovererInfoHandle
=
QGstImpl
::
QGstHandleHelper
<
GstDiscovererInfo
>::
SharedHandle
;
40
using
QGstDiscovererAudioInfoHandle
=
41
QGstImpl
::
QGstHandleHelper
<
GstDiscovererAudioInfo
>::
SharedHandle
;
42
using
QGstDiscovererVideoInfoHandle
=
43
QGstImpl
::
QGstHandleHelper
<
GstDiscovererVideoInfo
>::
SharedHandle
;
44
using
QGstDiscovererSubtitleInfoHandle
=
45
QGstImpl
::
QGstHandleHelper
<
GstDiscovererSubtitleInfo
>::
SharedHandle
;
46
using
QGstDiscovererStreamInfoHandle
=
47
QGstImpl
::
QGstHandleHelper
<
GstDiscovererStreamInfo
>::
SharedHandle
;
48
49
struct
QGstDiscovererStreamInfo
50
{
51
int
streamNumber
{};
52
QString
streamID
;
53
QGstTagListHandle
tags
;
54
QGstCaps
caps
;
55
};
56
57
struct
QGstDiscovererVideoInfo
:
QGstDiscovererStreamInfo
58
{
59
QSize
size
;
60
int
bitDepth
{};
61
Fraction
framerate
{};
62
Fraction
pixelAspectRatio
{};
63
bool
isInterlaced
{};
64
int
bitrate
{};
65
int
maxBitrate
{};
66
bool
isImage
{};
67
};
68
69
struct
QGstDiscovererAudioInfo
:
QGstDiscovererStreamInfo
70
{
71
int
channels
{};
72
uint64_t
channelMask
{};
73
int
sampleRate
{};
74
int
bitsPerSample
{};
75
int
bitrate
{};
76
int
maxBitrate
{};
77
QLocale
::
Language
language
{};
78
};
79
80
struct
QGstDiscovererSubtitleInfo
:
QGstDiscovererStreamInfo
81
{
82
QLocale
::
Language
language
{};
83
};
84
85
struct
QGstDiscovererContainerInfo
:
QGstDiscovererStreamInfo
86
{
87
QGstTagListHandle
tags
;
88
};
89
90
struct
QGstDiscovererInfo
91
{
92
bool
isLive
{};
93
bool
isSeekable
{};
94
std
::
optional
<
std
::
chrono
::
nanoseconds
>
duration
;
95
96
std
::
optional
<
QGstDiscovererContainerInfo
>
containerInfo
;
97
QGstTagListHandle
tags
;
98
std
::
vector
<
QGstDiscovererVideoInfo
>
videoStreams
;
99
std
::
vector
<
QGstDiscovererAudioInfo
>
audioStreams
;
100
std
::
vector
<
QGstDiscovererSubtitleInfo
>
subtitleStreams
;
101
std
::
vector
<
QGstDiscovererContainerInfo
>
containerStreams
;
102
};
103
104
class
QGstDiscoverer
105
{
106
public
:
107
QGstDiscoverer
();
108
109
q23
::
expected
<
QGstDiscovererInfo
,
QUniqueGErrorHandle
>
discover
(
const
QString &uri);
110
q23
::
expected
<
QGstDiscovererInfo
,
QUniqueGErrorHandle
>
discover
(
const
QUrl &);
111
q23
::
expected
<
QGstDiscovererInfo
,
QUniqueGErrorHandle
>
discover
(QIODevice *);
112
113
private
:
114
q23::expected<QGstDiscovererInfo, QUniqueGErrorHandle> discover(
const
char
*);
115
QGstDiscovererHandle m_instance;
116
};
117
118
QMediaMetaData
toContainerMetadata
(
const
QGstDiscovererInfo
&);
119
QMediaMetaData
toStreamMetadata
(
const
QGstDiscovererVideoInfo
&);
120
QMediaMetaData
toStreamMetadata
(
const
QGstDiscovererAudioInfo
&);
121
QMediaMetaData
toStreamMetadata
(
const
QGstDiscovererSubtitleInfo
&);
122
123
}
// namespace QGst
124
125
QT_END_NAMESPACE
126
127
#
endif
// QGST_DISCOVERER_P_H
QGstCaps
Definition
qgst_p.h:384
QGst::QGstDiscoverer
Definition
qgst_discoverer_p.h:105
QGst::QGstDiscoverer::discover
q23::expected< QGstDiscovererInfo, QUniqueGErrorHandle > discover(const QString &uri)
Definition
qgst_discoverer.cpp:202
QGst::QGstDiscoverer::QGstDiscoverer
QGstDiscoverer()
Definition
qgst_discoverer.cpp:194
QGst::QGstDiscoverer::discover
q23::expected< QGstDiscovererInfo, QUniqueGErrorHandle > discover(QIODevice *)
Definition
qgst_discoverer.cpp:212
QGstUtils
Definition
qgstutils_p.h:31
QGst
Definition
qgst_discoverer.cpp:16
QGst::toStreamMetadata
QMediaMetaData toStreamMetadata(const QGstDiscovererAudioInfo &info)
Definition
qgst_discoverer.cpp:298
QGst::discovererTimeout
static constexpr std::chrono::nanoseconds discovererTimeout
Definition
qgst_discoverer.cpp:192
QGst::toStreamMetadata
QMediaMetaData toStreamMetadata(const QGstDiscovererSubtitleInfo &info)
Definition
qgst_discoverer.cpp:312
QGst::toStreamMetadata
QMediaMetaData toStreamMetadata(const QGstDiscovererVideoInfo &info)
Definition
qgst_discoverer.cpp:279
QGst::toContainerMetadata
QMediaMetaData toContainerMetadata(const QGstDiscovererInfo &info)
Definition
qgst_discoverer.cpp:236
QGst::updateMetadata
static void updateMetadata(QMediaMetaData &metadata, QMediaMetaData::Key key, ValueType value)
Definition
qgst_discoverer.cpp:272
QGst::addMissingKeysFromTaglist
void addMissingKeysFromTaglist(QMediaMetaData &metadata, const QGstTagListHandle &tagList)
Definition
qgst_discoverer.cpp:260
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
QGst::QGstDiscovererAudioInfo
Definition
qgst_discoverer_p.h:70
QGst::QGstDiscovererAudioInfo::language
QLocale::Language language
Definition
qgst_discoverer_p.h:77
QGst::QGstDiscovererAudioInfo::bitsPerSample
int bitsPerSample
Definition
qgst_discoverer_p.h:74
QGst::QGstDiscovererAudioInfo::sampleRate
int sampleRate
Definition
qgst_discoverer_p.h:73
QGst::QGstDiscovererAudioInfo::channelMask
uint64_t channelMask
Definition
qgst_discoverer_p.h:72
QGst::QGstDiscovererAudioInfo::channels
int channels
Definition
qgst_discoverer_p.h:71
QGst::QGstDiscovererAudioInfo::maxBitrate
int maxBitrate
Definition
qgst_discoverer_p.h:76
QGst::QGstDiscovererAudioInfo::bitrate
int bitrate
Definition
qgst_discoverer_p.h:75
QGst::QGstDiscovererContainerInfo
Definition
qgst_discoverer_p.h:86
QGst::QGstDiscovererContainerInfo::tags
QGstTagListHandle tags
Definition
qgst_discoverer_p.h:87
QGst::QGstDiscovererInfo
Definition
qgst_discoverer_p.h:91
QGst::QGstDiscovererInfo::audioStreams
std::vector< QGstDiscovererAudioInfo > audioStreams
Definition
qgst_discoverer_p.h:99
QGst::QGstDiscovererInfo::containerStreams
std::vector< QGstDiscovererContainerInfo > containerStreams
Definition
qgst_discoverer_p.h:101
QGst::QGstDiscovererInfo::videoStreams
std::vector< QGstDiscovererVideoInfo > videoStreams
Definition
qgst_discoverer_p.h:98
QGst::QGstDiscovererInfo::tags
QGstTagListHandle tags
Definition
qgst_discoverer_p.h:97
QGst::QGstDiscovererInfo::isSeekable
bool isSeekable
Definition
qgst_discoverer_p.h:93
QGst::QGstDiscovererInfo::containerInfo
std::optional< QGstDiscovererContainerInfo > containerInfo
Definition
qgst_discoverer_p.h:96
QGst::QGstDiscovererInfo::subtitleStreams
std::vector< QGstDiscovererSubtitleInfo > subtitleStreams
Definition
qgst_discoverer_p.h:100
QGst::QGstDiscovererInfo::isLive
bool isLive
Definition
qgst_discoverer_p.h:92
QGst::QGstDiscovererInfo::duration
std::optional< std::chrono::nanoseconds > duration
Definition
qgst_discoverer_p.h:94
QGst::QGstDiscovererStreamInfo
Definition
qgst_discoverer_p.h:50
QGst::QGstDiscovererStreamInfo::streamID
QString streamID
Definition
qgst_discoverer_p.h:52
QGst::QGstDiscovererStreamInfo::tags
QGstTagListHandle tags
Definition
qgst_discoverer_p.h:53
QGst::QGstDiscovererStreamInfo::caps
QGstCaps caps
Definition
qgst_discoverer_p.h:54
QGst::QGstDiscovererStreamInfo::streamNumber
int streamNumber
Definition
qgst_discoverer_p.h:51
QGst::QGstDiscovererSubtitleInfo
Definition
qgst_discoverer_p.h:81
QGst::QGstDiscovererSubtitleInfo::language
QLocale::Language language
Definition
qgst_discoverer_p.h:82
QGst::QGstDiscovererVideoInfo
Definition
qgst_discoverer_p.h:58
QGst::QGstDiscovererVideoInfo::framerate
Fraction framerate
Definition
qgst_discoverer_p.h:61
QGst::QGstDiscovererVideoInfo::bitDepth
int bitDepth
Definition
qgst_discoverer_p.h:60
QGst::QGstDiscovererVideoInfo::size
QSize size
Definition
qgst_discoverer_p.h:59
QGst::QGstDiscovererVideoInfo::bitrate
int bitrate
Definition
qgst_discoverer_p.h:64
QGst::QGstDiscovererVideoInfo::isImage
bool isImage
Definition
qgst_discoverer_p.h:66
QGst::QGstDiscovererVideoInfo::isInterlaced
bool isInterlaced
Definition
qgst_discoverer_p.h:63
QGst::QGstDiscovererVideoInfo::pixelAspectRatio
Fraction pixelAspectRatio
Definition
qgst_discoverer_p.h:62
QGst::QGstDiscovererVideoInfo::maxBitrate
int maxBitrate
Definition
qgst_discoverer_p.h:65
qtmultimedia
src
plugins
multimedia
gstreamer
common
qgst_discoverer_p.h
Generated on
for Qt by
1.18.0