QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
gstqgcqvideosink.h
Go to the documentation of this file.
1#pragma once
2
3#include <gst/video/gstvideosink.h>
4#include <gst/video/video-info.h>
5
6G_BEGIN_DECLS
7
8#define GST_TYPE_QGC_Q_VIDEO_SINK (gst_qgc_q_video_sink_get_type())
9G_DECLARE_FINAL_TYPE(GstQgcQVideoSink, gst_qgc_q_video_sink, GST, QGC_Q_VIDEO_SINK, GstVideoSink)
10
11
15{
16 GstVideoSink parent;
17
18 // Properties backed inline; GObject's property system is the cross-thread boundary (GST_OBJECT_LOCK).
19 gpointer qvideosink; // QVideoSink* (caller-owned; never unref'd by us)
20 gboolean active;
21 gboolean gpu_zerocopy;
22
23 // Cached negotiated state (set_caps writes, show_frame reads, both streaming-thread,
24 // serialised by GstBaseSink). `priv` holds heap C++ non-POD state so this struct stays POD.
25 gboolean caps_valid;
26 GstVideoInfo video_info;
27 gpointer priv; // owned (new/delete in instance_init / finalize)
28};
29
30G_END_DECLS
31
32#ifdef __cplusplus
34
37void gst_qgc_q_video_sink_set_hw_context(GstQgcQVideoSink* self, const HwVideoBufferContext& ctx);
38#endif
void gst_qgc_q_video_sink_set_hw_context(GstQgcQVideoSink *self, const HwVideoBufferContext &ctx)
Platform context for the factory; encapsulates EGL handles so callers don't need path-specific ifdefs...
GstVideoSink that pushes decoded frames into a Qt QVideoSink; sole sink in qgcvideosinkbin....
GstVideoInfo video_info