Compare commits
10 Commits
c14b135861
...
4417183bae
Author | SHA1 | Date | |
---|---|---|---|
|
4417183bae | ||
|
581e72a23e | ||
|
feb6e1602a | ||
|
822bef51f0 | ||
|
5c4bf60c94 | ||
|
09cf44aa13 | ||
|
d273b790e1 | ||
|
e72e9a95d8 | ||
|
e627d02171 | ||
|
c5f9d4073f |
@ -168,6 +168,7 @@ gst_mockdecryptor_transform_caps (GstBaseTransform * base,
|
||||
gst_caps_intersect_full (transformed_caps, filter,
|
||||
GST_CAPS_INTERSECT_FIRST);
|
||||
gst_caps_replace (&transformed_caps, intersection);
|
||||
gst_caps_unref (intersection);
|
||||
}
|
||||
|
||||
GST_DEBUG_OBJECT (base, "returning %" GST_PTR_FORMAT, transformed_caps);
|
||||
|
@ -488,6 +488,7 @@ _append_accept_caps_failure_details (GstValidatePadMonitor * monitor,
|
||||
}
|
||||
}
|
||||
|
||||
gst_caps_unref (refused_caps);
|
||||
gst_caps_unref (possible_caps);
|
||||
gst_object_unref (pad);
|
||||
|
||||
|
@ -699,8 +699,6 @@ gst_validate_report_init (void)
|
||||
gchar **wanted_files;
|
||||
wanted_files = g_strsplit (file_env, G_SEARCHPATH_SEPARATOR_S, 0);
|
||||
|
||||
/* FIXME: Make sure it is freed in the deinit function when that is
|
||||
* implemented */
|
||||
log_files =
|
||||
g_malloc0 (sizeof (FILE *) * (g_strv_length (wanted_files) + 1));
|
||||
for (i = 0; i < g_strv_length (wanted_files); i++) {
|
||||
@ -745,6 +743,16 @@ gst_validate_report_deinit (void)
|
||||
|
||||
g_clear_object (&socket_client);
|
||||
g_clear_object (&server_connection);
|
||||
|
||||
if (log_files) {
|
||||
gint i;
|
||||
for (i = 0; log_files[i]; i++) {
|
||||
if (log_files[i] != stdout && log_files[i] != stderr)
|
||||
fclose (log_files[i]);
|
||||
}
|
||||
g_free (log_files);
|
||||
log_files = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -90,6 +90,7 @@ gst_validate_reporter_get_priv (GstValidateReporter * reporter)
|
||||
g_direct_equal, NULL, (GDestroyNotify) gst_validate_report_unref);
|
||||
|
||||
g_mutex_init (&priv->reports_lock);
|
||||
g_weak_ref_init (&priv->runner, NULL);
|
||||
g_object_set_data_full (G_OBJECT (reporter), REPORTER_PRIVATE, priv,
|
||||
(GDestroyNotify) _free_priv);
|
||||
}
|
||||
|
@ -2207,6 +2207,7 @@ select_stream_data_free (SelectStreamData * d)
|
||||
{
|
||||
gst_validate_action_unref (d->action);
|
||||
g_list_free_full (d->wanted_streams, g_free);
|
||||
g_rec_mutex_clear (&d->m);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -2311,7 +2312,7 @@ done:
|
||||
if (selected_streams && d->message_sid &&
|
||||
d->wanted_n_calls >= 1 && d->n_calls == d->wanted_n_calls) {
|
||||
/* Consider action done once we get the STREAM_SELECTED signal */
|
||||
gst_validate_action_set_done (gst_validate_action_ref (d->action));
|
||||
gst_validate_action_set_done (d->action);
|
||||
gst_bus_disable_sync_message_emission (bus);
|
||||
g_signal_handler_disconnect (bus, d->message_sid);
|
||||
d->message_sid = 0;
|
||||
@ -2347,7 +2348,7 @@ stream_selection_scenario_stopping_cb (GstValidateScenario * scenario,
|
||||
d->wanted_n_calls, d->n_calls);
|
||||
}
|
||||
|
||||
gst_validate_action_set_done (gst_validate_action_ref (d->action));
|
||||
gst_validate_action_set_done (d->action);
|
||||
|
||||
if (bus && d->message_sid) {
|
||||
gst_bus_disable_sync_message_emission (bus);
|
||||
@ -2911,6 +2912,8 @@ _execute_on_sub_scenario (GstValidateScenario * scenario,
|
||||
data->subaction_done_sigid);
|
||||
data->subaction_done_sigid = 0;
|
||||
}
|
||||
|
||||
gst_validate_action_set_done (subaction);
|
||||
}
|
||||
g_mutex_unlock (&data->sigid_lock);
|
||||
validate_action_foreign_scenario_data_unref (data);
|
||||
@ -4387,6 +4390,7 @@ _execute_appsrc_push (GstValidateScenario * scenario,
|
||||
|
||||
g_signal_emit_by_name (appsink, "pull-sample", &sample, NULL);
|
||||
|
||||
g_strfreev (pipeline_elements);
|
||||
goto push_sample;
|
||||
}
|
||||
|
||||
@ -5290,6 +5294,7 @@ handle_bus_message (MessageData * d)
|
||||
g_list_free_full (priv->seeks,
|
||||
(GDestroyNotify) gst_validate_seek_information_free);
|
||||
priv->seeks = NULL;
|
||||
priv->current_seek = NULL;
|
||||
SCENARIO_UNLOCK (scenario);
|
||||
|
||||
GST_DEBUG_OBJECT (scenario, "Got EOS; generate 'stop' action");
|
||||
@ -5958,6 +5963,7 @@ gst_validate_scenario_dispose (GObject * object)
|
||||
}
|
||||
|
||||
gst_object_replace ((GstObject **) & priv->clock, NULL);
|
||||
gst_object_unref (runner);
|
||||
|
||||
G_OBJECT_CLASS (gst_validate_scenario_parent_class)->dispose (object);
|
||||
}
|
||||
@ -7598,6 +7604,7 @@ _execute_start_http_server (GstValidateScenario * scenario,
|
||||
err->message);
|
||||
REPORT_UNLESS (sscanf (line, "PORT: %d", &port) == 1, done,
|
||||
"Failed to parse port number from server output: %s", line);
|
||||
g_free (line);
|
||||
|
||||
server.port = port;
|
||||
server.subprocess = subprocess;
|
||||
|
@ -518,7 +518,8 @@ gst_validate_deinit (void)
|
||||
g_list_free (core_config);
|
||||
core_config = NULL;
|
||||
|
||||
g_list_free_full (all_configs, (GDestroyNotify) gst_structure_free);
|
||||
g_list_free_full (g_steal_pointer (&all_configs),
|
||||
(GDestroyNotify) gst_structure_free);
|
||||
gst_validate_deinit_runner ();
|
||||
|
||||
gst_validate_scenario_deinit ();
|
||||
|
@ -651,9 +651,6 @@ class Test(Loggable):
|
||||
return command
|
||||
|
||||
def use_valgrind(self, command, subenv):
|
||||
vglogsfile = os.path.splitext(self.logfile)[0] + '.valgrind'
|
||||
self.extra_logfiles.add(vglogsfile)
|
||||
|
||||
vg_args = []
|
||||
|
||||
for o, v in [('trace-children', 'yes'),
|
||||
@ -675,7 +672,7 @@ class Test(Loggable):
|
||||
if not self.options.redirect_logs:
|
||||
vglogsfile = os.path.splitext(self.logfile)[0] + '.valgrind'
|
||||
self.extra_logfiles.add(vglogsfile)
|
||||
vg_args.append("--%s=%s" % ('log-file', vglogsfile))
|
||||
vg_args.append("--%s=%s" % ('log-file', vglogsfile.replace("%", "%%")))
|
||||
|
||||
for supp in self.get_valgrind_suppressions():
|
||||
vg_args.append("--suppressions=%s" % supp)
|
||||
|
@ -481,6 +481,7 @@ _set_videoconvert (ValidateSsimOverride * o,
|
||||
caps = gst_pad_get_current_caps (pad);
|
||||
gst_object_unref (pad);
|
||||
gst_caps_replace (&priv->last_caps, caps);
|
||||
gst_caps_unref (caps);
|
||||
|
||||
gst_video_info_init (&priv->in_info);
|
||||
gst_video_info_init (&priv->out_info);
|
||||
|
@ -86,6 +86,8 @@ GST_START_TEST (monitors_cleanup)
|
||||
g_object_get_data ((GObject *) sink->sinkpads->data, "validate-monitor");
|
||||
gst_check_objects_destroyed_on_unref (monitor, pmonitor1, pmonitor2, NULL);
|
||||
gst_check_objects_destroyed_on_unref (pipeline, src, sink, NULL);
|
||||
|
||||
gst_object_unref (runner);
|
||||
}
|
||||
|
||||
GST_END_TEST;
|
||||
|
@ -154,6 +154,7 @@ GST_START_TEST (buffer_before_segment)
|
||||
_check_reports_refcount (srcpad, 2);
|
||||
gst_object_unref (srcpad);
|
||||
gst_check_object_destroyed_on_unref (sink);
|
||||
gst_object_unref (monitor);
|
||||
ASSERT_OBJECT_REFCOUNT (runner, "runner", 2);
|
||||
gst_object_unref (runner);
|
||||
}
|
||||
@ -221,11 +222,15 @@ GST_START_TEST (buffer_outside_segment)
|
||||
buffer = gst_discont_buffer_new ();
|
||||
GST_BUFFER_PTS (buffer) = 10 * GST_SECOND;
|
||||
GST_BUFFER_DURATION (buffer) = GST_SECOND;
|
||||
fail_if (GST_PAD_IS_FLUSHING (gst_element_get_static_pad (identity,
|
||||
"sink")));
|
||||
fail_if (GST_PAD_IS_FLUSHING (gst_element_get_static_pad (identity,
|
||||
"src")));
|
||||
fail_if (GST_PAD_IS_FLUSHING (gst_element_get_static_pad (sink, "sink")));
|
||||
pad = gst_element_get_static_pad (identity, "sink");
|
||||
fail_if (GST_PAD_IS_FLUSHING (pad));
|
||||
gst_clear_object (&pad);
|
||||
pad = gst_element_get_static_pad (identity, "src");
|
||||
fail_if (GST_PAD_IS_FLUSHING (pad));
|
||||
gst_clear_object (&pad);
|
||||
pad = gst_element_get_static_pad (sink, "sink");
|
||||
fail_if (GST_PAD_IS_FLUSHING (pad));
|
||||
gst_clear_object (&pad);
|
||||
fail_unless_equals_int (gst_pad_push (srcpad, buffer), GST_FLOW_OK);
|
||||
|
||||
reports = gst_validate_runner_get_reports (runner);
|
||||
|
@ -206,6 +206,10 @@ _create_issues (GstValidateRunner * runner)
|
||||
gst_object_unref (sinkpad);
|
||||
gst_object_unref (funnel_sink1);
|
||||
gst_object_unref (funnel_sink2);
|
||||
free_element_monitor (fakemixer);
|
||||
free_element_monitor (sink);
|
||||
free_element_monitor (src2);
|
||||
free_element_monitor (src1);
|
||||
gst_check_objects_destroyed_on_unref (fakemixer, funnel_sink1, funnel_sink2,
|
||||
NULL);
|
||||
gst_check_objects_destroyed_on_unref (src1, srcpad1, NULL);
|
||||
|
@ -37,6 +37,9 @@ GST_START_TEST (test_expression_parser)
|
||||
fail_unless_equals_uint64 (start, 50 * GST_SECOND);
|
||||
gst_validate_action_unref (action);
|
||||
|
||||
gst_mini_object_unref (GST_MINI_OBJECT (seek_type));
|
||||
gst_mini_object_unref (GST_MINI_OBJECT (set_vars));
|
||||
gst_object_unref (scenario);
|
||||
gst_object_unref (runner);
|
||||
}
|
||||
|
||||
|
@ -8,7 +8,7 @@ meta,
|
||||
expected-issues = {
|
||||
# First attempt to play while the mpd is not available
|
||||
"expected-issue, issue-id=\"runtime::error-on-bus\", details=\".*Service Unavailable.*\"",
|
||||
"expected-issue, issue-id=\"runtime::error-on-bus\", details=\".*Got error: Internal data stream error.*\"",
|
||||
"expected-issue, issue-id=\"runtime::error-on-bus\", details=\".*Got error: Internal data stream error.*\", sometimes=true",
|
||||
"expected-issue, issue-id=\"scenario::execution-error\", details=\".*Error message happened while executing action.*\"",
|
||||
# Spurious error that happens racily when tearing down the pipeline
|
||||
"expected-issue, issue-id=\"runtime::error-on-bus\", details=\".*Stream doesn't contain enough.*\", sometimes=true",
|
||||
|
@ -90,7 +90,7 @@ gst_webrtc_rtp_sender_set_property (GObject * object, guint prop_id,
|
||||
|
||||
switch (prop_id) {
|
||||
case PROP_PRIORITY:
|
||||
gst_webrtc_rtp_sender_set_priority (sender, g_value_get_uint (value));
|
||||
gst_webrtc_rtp_sender_set_priority (sender, g_value_get_enum (value));
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
@ -107,7 +107,7 @@ gst_webrtc_rtp_sender_get_property (GObject * object, guint prop_id,
|
||||
switch (prop_id) {
|
||||
case PROP_PRIORITY:
|
||||
GST_OBJECT_LOCK (sender);
|
||||
g_value_set_uint (value, sender->priority);
|
||||
g_value_set_enum (value, sender->priority);
|
||||
GST_OBJECT_UNLOCK (sender);
|
||||
break;
|
||||
case PROP_TRANSPORT:
|
||||
|
@ -2163,14 +2163,16 @@ gst_base_text_overlay_shade_xRGB (GstBaseTextOverlay * overlay,
|
||||
{
|
||||
gint i, j;
|
||||
guint8 *dest_ptr;
|
||||
guint stride;
|
||||
|
||||
dest_ptr = dest->data[0];
|
||||
dest_ptr = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
|
||||
stride = GST_VIDEO_FRAME_PLANE_STRIDE (dest, 0);
|
||||
|
||||
for (i = y0; i < y1; i++) {
|
||||
for (j = x0; j < x1; j++) {
|
||||
gint y, y_pos, k;
|
||||
|
||||
y_pos = (i * 4 * overlay->width) + j * 4;
|
||||
y_pos = (i * stride) + j * 4;
|
||||
for (k = 0; k < 4; k++) {
|
||||
y = dest_ptr[y_pos + k] - overlay->shading_value;
|
||||
dest_ptr[y_pos + k] = CLAMP (y, 0, 255);
|
||||
@ -2240,13 +2242,15 @@ gint x0, gint x1, gint y0, gint y1) \
|
||||
{ \
|
||||
gint i, j;\
|
||||
guint8 *dest_ptr;\
|
||||
guint stride;\
|
||||
\
|
||||
dest_ptr = dest->data[0];\
|
||||
dest_ptr = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);\
|
||||
stride = GST_VIDEO_FRAME_PLANE_STRIDE (dest, 0);\
|
||||
\
|
||||
for (i = y0; i < y1; i++) {\
|
||||
for (j = x0; j < x1; j++) {\
|
||||
gint y, y_pos, k;\
|
||||
y_pos = (i * 4 * overlay->width) + j * 4;\
|
||||
y_pos = (i * stride) + j * 4;\
|
||||
for (k = OFFSET; k < 3+OFFSET; k++) {\
|
||||
y = dest_ptr[y_pos + k] - overlay->shading_value;\
|
||||
dest_ptr[y_pos + k] = CLAMP (y, 0, 255);\
|
||||
|
@ -1342,8 +1342,9 @@ gst_riff_create_audio_caps (guint16 codec_id,
|
||||
* so either we calculate the bitrate or mark it as invalid as this
|
||||
* would probably confuse timing */
|
||||
strf->av_bps = 0;
|
||||
if (strf->channels != 0 && strf->rate != 0 && strf->blockalign != 0) {
|
||||
int spb = ((strf->blockalign - strf->channels * 7) / 2) * 2;
|
||||
if (strf->channels != 0 && strf->rate != 0 && strf->blockalign != 0 &&
|
||||
(strf->blockalign / strf->channels) >= 7) {
|
||||
int spb = ((strf->blockalign / strf->channels) - 7) * 2 + 2;
|
||||
strf->av_bps =
|
||||
gst_util_uint64_scale_int (strf->rate, strf->blockalign, spb);
|
||||
GST_DEBUG ("fixing av_bps to calculated value %d of MS ADPCM",
|
||||
@ -1464,8 +1465,9 @@ gst_riff_create_audio_caps (guint16 codec_id,
|
||||
* header, so either we calculate the bitrate or mark it as invalid
|
||||
* as this would probably confuse timing */
|
||||
strf->av_bps = 0;
|
||||
if (strf->channels != 0 && strf->rate != 0 && strf->blockalign != 0) {
|
||||
int spb = ((strf->blockalign - strf->channels * 4) / 2) * 2;
|
||||
if (strf->channels != 0 && strf->rate != 0 && strf->blockalign != 0 &&
|
||||
(strf->blockalign / strf->channels) >= 4) {
|
||||
int spb = ((strf->blockalign / strf->channels) - 4) * 2 + 1;
|
||||
strf->av_bps =
|
||||
gst_util_uint64_scale_int (strf->rate, strf->blockalign, spb);
|
||||
GST_DEBUG ("fixing av_bps to calculated value %d of IMA DVI ADPCM",
|
||||
|
@ -207,6 +207,16 @@ QtGLVideoItem::getForceAspectRatio()
|
||||
return this->priv->force_aspect_ratio;
|
||||
}
|
||||
|
||||
void
|
||||
QtGLVideoItem::setAcceptEvents(bool accept)
|
||||
{
|
||||
if (accept == acceptEvents)
|
||||
return;
|
||||
|
||||
acceptEvents = accept;
|
||||
Q_EMIT acceptEventsChanged(acceptEvents);
|
||||
}
|
||||
|
||||
bool
|
||||
QtGLVideoItem::itemInitialized()
|
||||
{
|
||||
@ -495,18 +505,21 @@ QtGLVideoItem::wheelEvent(QWheelEvent * event)
|
||||
g_object_unref (element);
|
||||
}
|
||||
g_mutex_unlock (&this->priv->lock);
|
||||
event->setAccepted(acceptEvents);
|
||||
}
|
||||
|
||||
void
|
||||
QtGLVideoItem::hoverEnterEvent(QHoverEvent *)
|
||||
QtGLVideoItem::hoverEnterEvent(QHoverEvent *event)
|
||||
{
|
||||
mouseHovering = true;
|
||||
event->setAccepted(acceptEvents);
|
||||
}
|
||||
|
||||
void
|
||||
QtGLVideoItem::hoverLeaveEvent(QHoverEvent *)
|
||||
QtGLVideoItem::hoverLeaveEvent(QHoverEvent *event)
|
||||
{
|
||||
mouseHovering = false;
|
||||
event->setAccepted(acceptEvents);
|
||||
}
|
||||
|
||||
void
|
||||
@ -535,6 +548,7 @@ QtGLVideoItem::hoverMoveEvent(QHoverEvent * event)
|
||||
}
|
||||
}
|
||||
g_mutex_unlock (&this->priv->lock);
|
||||
event->setAccepted(acceptEvents);
|
||||
}
|
||||
|
||||
void
|
||||
@ -597,6 +611,7 @@ QtGLVideoItem::touchEvent(QTouchEvent * event)
|
||||
|
||||
g_object_unref (element);
|
||||
g_mutex_unlock (&this->priv->lock);
|
||||
event->setAccepted(acceptEvents);
|
||||
}
|
||||
|
||||
void
|
||||
@ -649,12 +664,14 @@ QtGLVideoItem::mousePressEvent(QMouseEvent * event)
|
||||
{
|
||||
forceActiveFocus();
|
||||
sendMouseEvent(event, TRUE);
|
||||
event->setAccepted(acceptEvents);
|
||||
}
|
||||
|
||||
void
|
||||
QtGLVideoItem::mouseReleaseEvent(QMouseEvent * event)
|
||||
{
|
||||
sendMouseEvent(event, FALSE);
|
||||
event->setAccepted(acceptEvents);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -71,6 +71,10 @@ class QtGLVideoItem : public QQuickItem, protected QOpenGLFunctions
|
||||
READ getForceAspectRatio
|
||||
WRITE setForceAspectRatio
|
||||
NOTIFY forceAspectRatioChanged)
|
||||
Q_PROPERTY(bool acceptEvents
|
||||
READ getAcceptEvents
|
||||
WRITE setAcceptEvents
|
||||
NOTIFY acceptEventsChanged)
|
||||
|
||||
public:
|
||||
QtGLVideoItem();
|
||||
@ -82,6 +86,9 @@ public:
|
||||
bool getForceAspectRatio();
|
||||
bool itemInitialized();
|
||||
|
||||
bool getAcceptEvents() const { return acceptEvents; }
|
||||
void setAcceptEvents(bool accept);
|
||||
|
||||
QSharedPointer<QtGLVideoItemInterface> getInterface() { return proxy; };
|
||||
/* private for C interface ... */
|
||||
QtGLVideoItemPrivate *priv;
|
||||
@ -89,6 +96,7 @@ public:
|
||||
Q_SIGNALS:
|
||||
void itemInitializedChanged();
|
||||
void forceAspectRatioChanged(bool);
|
||||
void acceptEventsChanged(bool acceptEvents);
|
||||
|
||||
private Q_SLOTS:
|
||||
void handleWindowChanged(QQuickWindow * win);
|
||||
@ -117,6 +125,7 @@ private:
|
||||
|
||||
quint32 mousePressedButton;
|
||||
bool mouseHovering;
|
||||
bool acceptEvents = true;
|
||||
|
||||
QSharedPointer<QtGLVideoItemInterface> proxy;
|
||||
};
|
||||
|
@ -193,6 +193,16 @@ Qt6GLVideoItem::setForceAspectRatio(bool force_aspect_ratio)
|
||||
emit forceAspectRatioChanged(force_aspect_ratio);
|
||||
}
|
||||
|
||||
void
|
||||
Qt6GLVideoItem::setAcceptEvents(bool accept)
|
||||
{
|
||||
if (accept == acceptEvents)
|
||||
return;
|
||||
|
||||
acceptEvents = accept;
|
||||
Q_EMIT acceptEventsChanged(acceptEvents);
|
||||
}
|
||||
|
||||
bool
|
||||
Qt6GLVideoItem::getForceAspectRatio()
|
||||
{
|
||||
@ -487,18 +497,22 @@ Qt6GLVideoItem::wheelEvent(QWheelEvent * event)
|
||||
g_object_unref (element);
|
||||
}
|
||||
g_mutex_unlock (&this->priv->lock);
|
||||
|
||||
event->setAccepted(acceptEvents);
|
||||
}
|
||||
|
||||
void
|
||||
Qt6GLVideoItem::hoverEnterEvent(QHoverEvent *)
|
||||
Qt6GLVideoItem::hoverEnterEvent(QHoverEvent *event)
|
||||
{
|
||||
mouseHovering = true;
|
||||
event->setAccepted(acceptEvents);
|
||||
}
|
||||
|
||||
void
|
||||
Qt6GLVideoItem::hoverLeaveEvent(QHoverEvent *)
|
||||
Qt6GLVideoItem::hoverLeaveEvent(QHoverEvent *event)
|
||||
{
|
||||
mouseHovering = false;
|
||||
event->setAccepted(acceptEvents);
|
||||
}
|
||||
|
||||
void
|
||||
@ -527,6 +541,7 @@ Qt6GLVideoItem::hoverMoveEvent(QHoverEvent * event)
|
||||
}
|
||||
}
|
||||
g_mutex_unlock (&this->priv->lock);
|
||||
event->setAccepted(acceptEvents);
|
||||
}
|
||||
|
||||
void
|
||||
@ -589,6 +604,7 @@ Qt6GLVideoItem::touchEvent(QTouchEvent * event)
|
||||
|
||||
g_object_unref (element);
|
||||
g_mutex_unlock (&this->priv->lock);
|
||||
event->setAccepted(acceptEvents);
|
||||
}
|
||||
|
||||
void
|
||||
@ -641,12 +657,14 @@ Qt6GLVideoItem::mousePressEvent(QMouseEvent * event)
|
||||
{
|
||||
forceActiveFocus();
|
||||
sendMouseEvent(event, TRUE);
|
||||
event->setAccepted(acceptEvents);
|
||||
}
|
||||
|
||||
void
|
||||
Qt6GLVideoItem::mouseReleaseEvent(QMouseEvent * event)
|
||||
{
|
||||
sendMouseEvent(event, FALSE);
|
||||
event->setAccepted(acceptEvents);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -73,7 +73,10 @@ class Qt6GLVideoItem : public QQuickItem, protected QOpenGLFunctions
|
||||
READ getForceAspectRatio
|
||||
WRITE setForceAspectRatio
|
||||
NOTIFY forceAspectRatioChanged)
|
||||
|
||||
Q_PROPERTY(bool acceptEvents
|
||||
READ getAcceptEvents
|
||||
WRITE setAcceptEvents
|
||||
NOTIFY acceptEventsChanged)
|
||||
public:
|
||||
Qt6GLVideoItem();
|
||||
~Qt6GLVideoItem();
|
||||
@ -83,6 +86,8 @@ public:
|
||||
void setForceAspectRatio(bool);
|
||||
bool getForceAspectRatio();
|
||||
bool itemInitialized();
|
||||
bool getAcceptEvents() const { return acceptEvents; }
|
||||
void setAcceptEvents(bool accept);
|
||||
|
||||
QSharedPointer<Qt6GLVideoItemInterface> getInterface() { return proxy; };
|
||||
/* private for C interface ... */
|
||||
@ -91,6 +96,7 @@ public:
|
||||
Q_SIGNALS:
|
||||
void itemInitializedChanged();
|
||||
void forceAspectRatioChanged(bool);
|
||||
void acceptEventsChanged(bool acceptEvents);
|
||||
|
||||
private Q_SLOTS:
|
||||
void handleWindowChanged(QQuickWindow * win);
|
||||
@ -120,6 +126,7 @@ private:
|
||||
|
||||
quint32 mousePressedButton;
|
||||
bool mouseHovering;
|
||||
bool acceptEvents = true;
|
||||
|
||||
QSharedPointer<Qt6GLVideoItemInterface> proxy;
|
||||
};
|
||||
|
@ -207,6 +207,7 @@ test_src_create (GstPushSrc * psrc, GstBuffer ** buffer)
|
||||
onvif_event = gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM, s);
|
||||
|
||||
gst_element_send_event (GST_ELEMENT (src), onvif_event);
|
||||
gst_object_unref (clock);
|
||||
}
|
||||
|
||||
if (src->segment->rate < 1.0) {
|
||||
|
@ -2403,6 +2403,8 @@ GST_START_TEST (test_record_tcp)
|
||||
g_free (session);
|
||||
/* release the reference to server_sink, obtained in media_constructed_cb */
|
||||
gst_object_unref (server_sink);
|
||||
|
||||
gst_rtsp_thread_pool_cleanup ();
|
||||
}
|
||||
|
||||
GST_END_TEST;
|
||||
|
@ -64,6 +64,9 @@ main (int argc, char *argv[])
|
||||
/* create a server instance */
|
||||
server = gst_rtsp_server_new ();
|
||||
|
||||
/* set port to any */
|
||||
gst_rtsp_server_set_service (server, "0");
|
||||
|
||||
/* attach the server to the default maincontext */
|
||||
if ((id = gst_rtsp_server_attach (server, NULL)) == 0)
|
||||
goto failed;
|
||||
@ -84,6 +87,9 @@ main (int argc, char *argv[])
|
||||
/* ERRORS */
|
||||
failed:
|
||||
{
|
||||
g_object_unref (server);
|
||||
g_main_loop_unref (loop);
|
||||
|
||||
g_print ("failed to attach the server\n");
|
||||
return -1;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user