Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qgst_p.h File Reference

(264b7e8d7d5683252102b5e5149685c8b8a70c2d)

#include <QtCore/qdebug.h>
#include <QtCore/qlist.h>
#include <QtCore/qsemaphore.h>
#include <QtMultimedia/qaudioformat.h>
#include <QtMultimedia/qvideoframe.h>
#include <QtMultimedia/private/qtmultimediaglobal_p.h>
#include <QtMultimedia/private/qmultimediautils_p.h>
#include <gst/gst.h>
#include <gst/video/video-info.h>
#include "qgst_handle_types_p.h"
#include <type_traits>
+ Include dependency graph for qgst_p.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  QGstImpl::GstObjectTraits< T >
 
struct  QGstImpl::GstObjectTraits< GObject >
 
struct  QGRange< T >
 
struct  QGString
 
class  QGValue
 
class  QGstPointerImpl::QGstObjectWrapper< GstType >
 
class  QGstStructure
 
struct  QGstPointerImpl::QGstRefcountingAdaptor< GstCaps >
 
class  QGstCaps
 
struct  QGstPointerImpl::QGstRefcountingAdaptor< GstObject >
 
class  QGstObject
 
class  QGObjectHandlerConnection
 
class  QGObjectHandlerScopedConnection
 
class  QGstPad
 
class  QGstClock
 
class  QGstElement
 
class  QGstBin
 
class  QGstBaseSink
 
class  QGstBaseSrc
 

Namespaces

namespace  QGstImpl
 
namespace  QGstPointerImpl
 

Macros

#define QGST_DEFINE_CAST_TRAITS(ClassName, MACRO_LABEL)
 
#define QGST_DEFINE_CAST_TRAITS_FOR_INTERFACE(ClassName, MACRO_LABEL)
 

Functions

 QGstImpl::QGST_DEFINE_CAST_TRAITS (GstBin, BIN)
 
 QGstImpl::QGST_DEFINE_CAST_TRAITS (GstClock, CLOCK)
 
 QGstImpl::QGST_DEFINE_CAST_TRAITS (GstElement, ELEMENT)
 
 QGstImpl::QGST_DEFINE_CAST_TRAITS (GstObject, OBJECT)
 
 QGstImpl::QGST_DEFINE_CAST_TRAITS (GstPad, PAD)
 
 QGstImpl::QGST_DEFINE_CAST_TRAITS (GstPipeline, PIPELINE)
 
 QGstImpl::QGST_DEFINE_CAST_TRAITS (GstBaseSink, BASE_SINK)
 
 QGstImpl::QGST_DEFINE_CAST_TRAITS (GstBaseSrc, BASE_SRC)
 
 QGstImpl::QGST_DEFINE_CAST_TRAITS_FOR_INTERFACE (GstTagSetter, TAG_SETTER)
 
template<typename DestinationType , typename SourceType >
bool qIsGstObjectOfType (SourceType *arg)
 
template<typename DestinationType , typename SourceType >
DestinationType * qGstSafeCast (SourceType *arg)
 
template<typename DestinationType , typename SourceType >
DestinationType * qGstCheckedCast (SourceType *arg)
 
GstClockTime qGstClockTimeFromChrono (std::chrono::nanoseconds ns)
 
QString errorMessageCannotFindElement (std::string_view element)
 

Variables

template<typename... Ts>
std::enable_if_t<(std::is_base_of_v< QGstElement, Ts > &&...), void qLinkGstElements )(const Ts &...ts)
 
template<typename... Ts>
std::enable_if_t<(std::is_base_of_v< QGstElement, Ts > &&...), void qUnlinkGstElements )(const Ts &...ts)
 

Macro Definition Documentation

◆ QGST_DEFINE_CAST_TRAITS

#define QGST_DEFINE_CAST_TRAITS ( ClassName,
MACRO_LABEL )
Value:
template <> \
struct GstObjectTraits<ClassName> \
{ \
using Type = ClassName; \
template <typename U> \
static bool isObjectOfType(U *arg) \
{ \
return GST_IS_##MACRO_LABEL(arg); \
} \
template <typename U> \
static Type *cast(U *arg) \
{ \
return GST_##MACRO_LABEL##_CAST(arg); \
} \
template <typename U> \
static Type *checked_cast(U *arg) \
{ \
return GST_##MACRO_LABEL(arg); \
} \
}; \
static_assert(true, "ensure semicolon")
SSL_CTX int void * arg
Definition moc.h:23

Definition at line 59 of file qgst_p.h.

◆ QGST_DEFINE_CAST_TRAITS_FOR_INTERFACE

#define QGST_DEFINE_CAST_TRAITS_FOR_INTERFACE ( ClassName,
MACRO_LABEL )
Value:
template <> \
struct GstObjectTraits<ClassName> \
{ \
using Type = ClassName; \
template <typename U> \
static bool isObjectOfType(U *arg) \
{ \
return GST_IS_##MACRO_LABEL(arg); \
} \
template <typename U> \
static Type *cast(U *arg) \
{ \
return checked_cast(arg); \
} \
template <typename U> \
static Type *checked_cast(U *arg) \
{ \
return GST_##MACRO_LABEL(arg); \
} \
}; \
static_assert(true, "ensure semicolon")

Definition at line 82 of file qgst_p.h.

Function Documentation

◆ errorMessageCannotFindElement()

QString errorMessageCannotFindElement ( std::string_view element)
inline

Definition at line 817 of file qgst_p.h.

References QStringLiteral.

Referenced by QGStreamerAudioSink::create(), QGstreamerAudioDecoder::create(), QGstreamerCamera::create(), QGstreamerImageCapture::create(), QGstreamerMediaPlayer::create(), Q_LOGGING_CATEGORY(), Q_LOGGING_CATEGORY(), Q_LOGGING_CATEGORY(), Q_LOGGING_CATEGORY(), and QGstreamerMediaPlayer::setMedia().

+ Here is the caller graph for this function:

◆ qGstCheckedCast()

template<typename DestinationType , typename SourceType >
DestinationType * qGstCheckedCast ( SourceType * arg)

Definition at line 164 of file qgst_p.h.

References arg, and Q_ASSERT.

◆ qGstClockTimeFromChrono()

GstClockTime qGstClockTimeFromChrono ( std::chrono::nanoseconds ns)
inline

Definition at line 812 of file qgst_p.h.

◆ qGstSafeCast()

template<typename DestinationType , typename SourceType >
DestinationType * qGstSafeCast ( SourceType * arg)

Definition at line 155 of file qgst_p.h.

References arg.

◆ qIsGstObjectOfType()

template<typename DestinationType , typename SourceType >
bool qIsGstObjectOfType ( SourceType * arg)

Definition at line 148 of file qgst_p.h.

References arg.

Variable Documentation

◆ qLinkGstElements

template<typename... Ts>
std::enable_if_t<(std::is_base_of_v< QGstElement, Ts > &&...), void qLinkGstElements) (const Ts &...ts) ( const Ts &... ts)

◆ qUnlinkGstElements

template<typename... Ts>
std::enable_if_t<(std::is_base_of_v< QGstElement, Ts > &&...), void qUnlinkGstElements) (const Ts &...ts) ( const Ts &... ts)