Benjamin Gaignard
de153222da
onvif: Add onvifmetadataextractor element
...
onvifmetadataextractor does the opposite operation than
onvifmetadatacombiner, it extracts ONVIF metadatas from the
stream buffer and export them as buffers which could be
used by rtponvifpay element.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1464 >
2024-10-23 10:27:31 +00:00
Benjamin Gaignard
43a4468263
onvif: onvifmetadataoverlay: Add support of Transformation node
...
Transformation node allows to modify the coordinate system for
individual nodes of XML tree.
Parse the XML to get translation and scaling vectors values and
apply them when computing bounding box coordinates.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1464 >
2024-10-23 10:27:31 +00:00
Benjamin Gaignard
eddf443a8b
onvif: Use CustomMeta::is_registered function
...
Use CustomMeta::is_registered() to avoid registering twice
OnvifXMLFrameMeta type.
It will be useful later when adding relation meta elements.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1464 >
2024-10-23 10:27:31 +00:00
Sebastian Dröge
7e59c3f0fd
Remove once_cell dependency
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1868 >
2024-10-21 17:53:18 +00:00
Jan Schmidt
7905626a5f
onvifmetadatapay: Set output caps earlier
...
As soon as input caps arrive, we can set output
caps. This means upstream can send gap events earlier,
before there is any actual metadata to send
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1779 >
2024-09-19 20:45:43 +10:00
Sebastian Dröge
98b28d69ce
Update for new debug log macro syntax
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1658 >
2024-07-08 11:25:23 +03:00
Sebastian Dröge
9b323a6519
Use Option::is_some_and(...)
instead of Option::map_or(false, ...)
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1630 >
2024-06-19 13:03:37 +00:00
Sebastian Dröge
7757e06e36
onvifmetadataparse: Reset state in PAUSED->READY after pad deactivation
...
Otherwise the clock id will simply be overridden instead of unscheduling
it, and if the streaming thread of the source pad currently waits on it
then it will wait potentially for a very long time and deactivating the
pad would wait for that to happen.
Also unschedule the clock id on `Drop` of the state to be one the safe
side and not simply forget about it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1526 >
2024-04-05 15:19:37 +00:00
Sebastian Dröge
4ad101b53b
Use once_cell crate directly again
...
The glib crate does not depend on it anymore and also does not re-export
it anymore.
Also switch some usages of OnceCell to OnceLock from std.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1441 >
2024-01-31 18:07:57 +02:00
Sebastian Dröge
16b917abb1
Update for gst::Rank
API changes
2023-11-02 14:10:59 +02:00
Sebastian Dröge
b12278e334
onvifmetadataparse: Skip metadata frames with unrepresentable UTC time
...
Previously we would panic, which causes the element to post an error
message. Instead, simply skip metadata frames if their UTC time since
the UNIX epoch can't be represented as nanoseconds in u64.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1326 >
2023-09-16 10:59:27 +03:00
Bilal Elmoussaoui
dd2d7d9215
Use re-exported once_cell
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1268 >
2023-07-06 17:50:49 +03:00
Bilal Elmoussaoui
2cc98bf410
Adapt to glib::Continue rename
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1268 >
2023-07-06 17:50:49 +03:00
Sebastian Dröge
c65b3429ad
Use MPL as license specifier for plugins only requiring GStreamer < 1.20
...
And use MPL-2.0 for all that require GStreamer 1.20 or newer. The new
string is only allowed in 1.20 or newer and using it in older versions
causes failure to load the plugin.
All affected plugins are of course still MPL-2.0 licensed.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/374
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1235 >
2023-06-07 19:13:55 +03:00
François Laignel
7ba0073052
use Pad builders for optional name definition
...
Also, apply auto-naming in the following cases
* When building from a non wildcard-named template, the name of the template is
automatically assigned to the Pad. User can override with a specific name by
calling `name()` on the `PadBuilder`.
* When building with a target and no name was provided via the above, the
GhostPad is named after the target.
See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/448
Auto-naming discussion: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1255#note_1891181
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1197 >
2023-05-12 12:55:31 +02:00
Sebastian Dröge
7cfd570c15
onvif: Update for allocation query caps API changes
2023-01-19 16:38:06 +02:00
Sebastian Dröge
6132788b02
Update for caps/structure-related string API changes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1048 >
2023-01-15 22:58:44 +02:00
Sebastian Dröge
3f904553ea
Fix various new clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1011 >
2022-12-13 11:43:16 +02:00
Sebastian Dröge
456fb276d6
Revert "Update for pango API changes"
...
This reverts commit 6e54d3cea9
.
The change was wrong and the pango bindings work the same as before
again.
2022-11-18 10:58:41 +02:00
Sebastian Dröge
6e54d3cea9
Update for pango API changes
...
pango::Language::from_string() can fail and also can accept None as
argument.
2022-11-18 09:46:50 +02:00
Sebastian Dröge
9a68f6e221
Move from imp.instance()
to imp.obj()
...
It's doing the same thing and is shorter.
2022-10-23 23:08:46 +03:00
Sebastian Dröge
f045099fc1
Fix GObject type names, GStreamer debug category names and element factory names
...
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/198
2022-10-23 20:46:08 +03:00
François Laignel
6319d104a8
Take advantage of Into<Option<_>>
args
...
Commit 24b7cfc8
applied changes related to nullability as declared
by gir. One consequence was that some functions signature ended up
requiring users to pass `Some(val)` when they could use `val`
before.
This commit applies changes on `gstreamer-rs` which, will honoring
the nullability stil allow users to pass `val` for the few affected
functions.
This commit also fixes the signature for `Element::request_new_pad`
which was updated upstream.
2022-10-21 11:54:24 +02:00
Sebastian Dröge
7b5d887c5b
onvifmetadatacombiner: On timeout don't wait for metadata to arrive anymore but output the current video frame
...
Otherwise it will be too late downstream.
2022-10-21 07:08:46 +00:00
Sebastian Dröge
09ffeaf04e
onvifmetadatacombiner: Add a lot of trace debug output
2022-10-21 07:08:46 +00:00
Sebastian Dröge
24b7cfc841
Update for GStreamer API changes
2022-10-18 19:26:52 +03:00
François Laignel
8011eadfd2
Use new format constructors
...
See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1128
2022-10-18 10:36:59 +00:00
Sebastian Dröge
e17688a2da
Update for pango API changes
2022-10-17 20:02:02 +03:00
Vivia Nikolaidou
0ab965335f
onvifmetadataoverlay, cea608overlay: Fix pangocairo::FontMap::new()
...
It doesn't return an Option anymore.
2022-10-14 18:12:33 +03:00
Sebastian Dröge
b2ddb34258
onvif: Switch from minidom to xmltree for parsing ONVIF timed metadata
...
minidom doesn't handle various valid but suboptimal XML documents.
2022-10-12 21:00:13 +00:00
Sebastian Dröge
e49138516c
Update for pad default functions API changes
2022-10-12 19:50:15 +03:00
Sebastian Dröge
7ee4afacf4
Change *Impl trait methods to only take &self and not Self::Type in addition
2022-10-10 15:03:25 +03:00
Sebastian Dröge
8601562efe
onvif: Fix for gst::meta::CustomMeta::register()
API change
2022-09-29 17:48:27 +03:00
Sebastian Dröge
d6ab55c263
onvifmetadataparse: Schedule EOS events after the last currently queued up frame
...
Otherwise EOS might be sent before the last frame's data, or even at a
much earlier frame due to reordering.
2022-09-27 11:43:54 +00:00
Sebastian Dröge
f0b2df49dc
onvifmetadataparse: Handle negative running times in debug output
2022-09-27 11:43:54 +00:00
Sebastian Dröge
692a063528
onvifmetadataparse: Refactor clock/condvar waiting
...
Always first try draining queued data in the loop and only start waiting
if there's nothing to drain right now. Otherwise data might have to be
drained right now but we still wait and nothing is ever waking up the
source pad task again.
Also make sure to not wait multiple times on the same gst::ClockId but
instead unset it after waiting on it and no new one was scheduled in the
meantime. Future waits on the same ClockId will immediately return and
instead we should wait on the condvar if no new ClockId is available.
2022-09-23 13:26:15 +03:00
Sebastian Dröge
c4d2f4a60a
onvifmetadataparse: Start source pad task on StreamStart if needed
...
Otherwise receiving StreamStart after Eos might keep the source pad task
paused and no new data is ever pushed downstream.
2022-09-23 13:26:15 +03:00
François Laignel
caefa6d33e
net/onvif: update with new gst::Signed
features
2022-09-21 17:45:22 +00:00
Sebastian Dröge
1fa39d0ab4
onvifmetadatacombiner: Drop gap metadata buffers
...
They won't have a reference timestamp metadata set and are not useful
for further processing.
2022-09-16 14:54:33 +03:00
Sebastian Dröge
f2893aae0b
onvifmetadataparse: Simplify some code
2022-09-16 14:54:33 +03:00
Sebastian Dröge
49602e1e01
onvifmetadataparse: Drop initial buffers until an UTC/running time mapping can be established
2022-09-16 14:54:33 +03:00
Sebastian Dröge
c6d8fec18f
onvifmetadataparse: Drop initial buffers if their UTC time would be negative
2022-09-16 14:54:33 +03:00
Sebastian Dröge
28151f2011
onvifmetadataparse: Push buffers from a separate source pad task to guarantee latency and generally improve correctness
2022-09-16 14:54:33 +03:00
Thibault Saunier
528bbcf67e
onvifmetadatacombiner: Do not classify as Muxer
...
It confuses `encodebin` and technically it is not really a muxer so
as agreed on IRC, I am proposing to remove that classification.
2022-09-09 10:01:12 +03:00
Sebastian Dröge
cb339c1bf8
onvifmetadataparse: Pass through other XML as is with the UTC times based on the buffer PTSs
2022-08-31 10:33:16 +00:00
Sebastian Dröge
420f36251a
onvif: Rename onvif(de)pay to rtponvifmetadata(de)pay and include the metadata specifier in the other element names too
...
This is more descriptive and avoids any future conflicts with other
kinds of ONVIF specific RTP (de)payloaders.
2022-08-31 13:00:53 +03:00
Thibault Saunier
67e651f57c
Allow "unused_doc_comments" as we use hotdoc and not rustdoc
2022-08-29 18:33:22 -04:00
Thibault Saunier
31a53bba8a
Generate plugins documentation using hotdoc
...
Which will automatically be integrated in gstreamer documentation
2022-08-29 18:33:22 -04:00
Mathieu Duponchelle
052092cd2e
onvifmetadata: removing encoding field
...
The encoding of ONVIF metadata is always UTF-8. ONVIF metadata may
or may not be encoded with gzip, but we don't see a use case for
transporting compressed ONVIF metadata between elements for now.
2022-08-24 08:57:12 +00:00
Vivia Nikolaidou
5606111345
plugins: Simplify code using ParamSpecBuilder
2022-08-22 17:58:43 +03:00