Commit graph

68 commits

Author SHA1 Message Date
Tim-Philipp Müller db450689db Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3358>
2022-11-08 02:08:08 +00:00
Tim-Philipp Müller 3e29ac35c4 Release 1.21.2 2022-11-07 23:54:03 +00:00
Tim-Philipp Müller 98d2f958a9 Update ChangeLogs for 1.21.2 2022-11-07 23:53:57 +00:00
Sebastian Dröge 366893e9ac Fix various warnings from gobject-introspection
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3261>
2022-10-25 09:45:25 +03:00
Sebastian Dröge 502eddfc36 rtsp-server: Add/fix various annotations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>
2022-10-18 13:51:16 +03:00
Edward Hervey ae8a5e110c rtsp-client: Remove duplicate documentation
Confuses the documentation builder, since it's documented twice it complains
about a missing "Since:" marker whereas it's present in the documentation
comment further down

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3180>
2022-10-14 08:54:17 +02:00
Linus Svensson f5451f7ff2 rtsp-server: Free client if no connection could be created
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3164>
2022-10-12 11:09:41 +00:00
Peter Stensson 11982bcaba rtsp-server: Add since marker for adjust_error_code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3157>
2022-10-12 08:08:27 +00:00
Peter Stensson ec605e7b52 rtsp-server: Add support for adjusting request response on pipeline errors
The idea is to give the application the possibility to adjust the error
code when responding to a request. For that purpose the pipeline's bus
messages are emitted to subscribers through a signal handle-message.
The subscribers can then check those messages for errors and adjust
the response error code by overriding the virtual method
adjust_error_code().

Fixes #1294

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2972>
2022-10-11 07:42:28 +02:00
Tim-Philipp Müller 99bbb1ef35 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3115>
2022-10-04 03:57:31 +01:00
Tim-Philipp Müller 9820e58be6 Release 1.21.1 2022-10-04 01:18:20 +01:00
Tim-Philipp Müller c376d80e9b Update ChangeLogs for 1.21.1 2022-10-04 01:13:59 +01:00
Nirbheek Chauhan a0e6278dba meson: Use implicit builtin dirs in pkgconfig generation
Starting with Meson 0.62, meson automatically populates the variables
list in the pkgconfig file if you reference builtin directories in the
pkgconfig file (whether via a custom pkgconfig variable or elsewhere).
We need this, because ${prefix}/libexec is a hard-coded value which is
incorrect on, for example, Debian.

Bump requirement to 0.62, and remove version compares that retained
support for older Meson versions.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1245

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3061>
2022-09-21 21:08:11 +05:30
Zebediah Figura c4681ac428 meson: Build with -Wl,-z,nodelete to prevent unloading of dynamic libraries and plugins
GLib made the unfortunate decision to prevent libgobject from ever being
unloaded, which means that now any library which registers a static type
can't ever be unloaded either (and any library that depends on those,
ad nauseam).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/778>
2022-09-13 15:48:52 +00:00
Chris Wiggins 5666debd5f rtsp-server: context: Add method to set the RTSPToken on some RTSPContext
Fixes #1399.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2979>
2022-09-13 10:42:52 +03:00
Bruce Liang 657cc3e6d6 gst-rtsp-server: Fix pushing backlog to client
Check back pressure of a stream transport before popping buffer from its backlog.

If the stream transport is not experiencing back pressure, the buffer can be popped from backlog and pushed to client.

Fixes:#1298

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2936>
2022-09-02 16:04:06 +00:00
Sebastian Dröge 57a6e48ed1 rtsp-server: stream: Don't loop forever if binding to the multicast address fails
The address/port is pre-defined by the caller of the function, so
retrying is only going to loop forever.

Ideally the multicast address should be checked after allocating but
this doesn't happen currently, so it's better to error out cleanly then
to loop forever trying the same address.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2975>
2022-09-02 14:28:26 +00:00
Thibault Saunier 6a4425e46a meson: Call pkgconfig.generate in the loop where we declare plugins dependencies
Removing some copy pasted code

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
2022-09-01 21:17:35 +00:00
Thibault Saunier bc9c1e3956 meson: Namespace the plugins_doc_dep/libraries variables
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
2022-09-01 21:17:35 +00:00
Thibault Saunier b5e90fe579 meson: Rename plugins list and make them "dependency" objects
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
2022-09-01 21:17:35 +00:00
Nirbheek Chauhan 5da9f62313 rtsp+rtmp: Forward warning added to tls-validation-flags to our users
With the 2.72 release, glib-networking developers have decided that
TLS certificate validation cannot be implemented correctly by them, so
they've deprecated it.

In a nutshell: a cert can have several validation errors, but there
are no guarantees that the TLS backend will return all those errors,
and things are made even more complicated by the fact that the list of
errors might refer to certs that are added for backwards-compat and
won't actually be used by the TLS library.

Our best option is to ignore the deprecation and pass the warning onto
users so they can make an appropriate security decision regarding
this.

We can't deprecate the tls-validation-flags property because it is
very useful when connecting to RTSP cameras that will never get
updates to fix certificate errors.

Relevant upstream merge requests / issues:

https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2214

https://gitlab.gnome.org/GNOME/glib-networking/-/issues/179

https://gitlab.gnome.org/GNOME/glib-networking/-/merge_requests/193

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2494>
2022-07-30 11:27:12 +00:00
Bruce Liang ebd8bd8f13 rtsp-client: Fix url for generating key in media factory
The mount point at / can be accessed by both the URL forms rtsp://<IP>:<PORT> and rtsp://<IP>:<PORT>/.
To make media factory generating the same key for both the URL forms, the url sent to gst_rtsp_media_factory_construct() needs to be normalized first.
This commit creates a new GstRTSPUrl as the normalized url to send to gst_rtsp_media_factory_construct().

Fixes:https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1297

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2681>
2022-07-12 10:01:35 +00:00
Tim-Philipp Müller 9272943bc7 coding style: allow declarations after statement
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/
and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2683>
2022-06-29 13:40:25 +00:00
Tim-Philipp Müller a6a298b2f3 docs: make sure rtspclientsink plugin docs index page is called index.html
.. instead of plugin-index.html.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2592>
2022-06-15 21:05:28 +00:00
Tim-Philipp Müller 9d9e59622f Bump GLib requirement to >= 2.62
Can't require 2.64 yet because of
https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/323

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2568>
2022-06-10 06:01:41 +00:00
Patricia Muscalu 6c3445a83f rtsp-media: Correct logic on GstRTSPStreamBlocking message reception
We must take into account the receiving streams as well when calculating
the expected number of the received GstRTSPStreamBlocking messages.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2429>
2022-05-20 07:37:05 +00:00
Mathieu Duponchelle 4cd3830bc8 tests/onvif: improve robustness
The previous iteration of the code was inferring the type of the
frame by looking at the overall size of the gst-payloaded packet.

It is more robust to actually parse the payload and look at the
actual data buffers it contains.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2303>
2022-04-27 06:39:24 +00:00
Mathieu Duponchelle 9689693534 tests/onvif: don't push buffers outside segment
segment->stop is exclusive, so in reverse playback mode we do not
need to output a buffer at that position as it will simply get
clipped in basesink.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2303>
2022-04-27 06:39:24 +00:00
Pierre Bourré 4ac544d5aa rtspclientsink: fix possible shutdown deadlock collect_streams()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1696>
2022-04-22 18:14:04 +00:00
Sebastian Dröge a91b1c64a1 rtsp-server: Add RFC5576 Source-specific media attribute to the SDP media for signalling the CNAME
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
2022-04-20 14:40:25 +00:00
Marc Leeman 5926da85ba gst-rtsp-server: minor spelling fixes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2170>
2022-04-13 14:38:52 +02:00
Xavier Claessens b004464ac6 Remove glib and gobject dependencies everywhere
They are part of gst_dep already and we have to make sure to always have
gst_dep. The order in dependencies matters, because it is also the order
in which Meson will set -I args. We want gstreamer's config.h to take
precedence over glib's private config.h when it's a subproject.

While at it, remove useless fallback args for gmodule/gio dependencies,
only gstreamer core needs it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>
2022-04-01 16:32:17 +00:00
Matthew Waters 67e364b34d rtsp-stream: remove unused variable:
Fixes:

../gst/rtsp-server/rtsp-stream.c:2670:9: error: variable 'n_messages' set but not used [-Werror,-Wunused-but-set-variable]
  guint n_messages = 0;
        ^

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046>
2022-03-28 10:30:23 +00:00
Nirbheek Chauhan 1cb127f16b meson: Bump all meson requirements to 0.60
Lots of new warnings ever since
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1977>
2022-03-18 22:49:16 +00:00
Vivienne Watermeier 8cb5d9f49e documentation: improve misleading wording
The documentation for several gst_*_writable_structure functions stated
that they would never return NULL, without making clear that the passed
object is required to be writable. This changes the wording in those
cases to make that requirement more clear.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1784>
2022-03-17 11:56:37 +00:00
Branko Subasic 2689277a6b rtponviftimestamp: add support for using reference timestamps
Make it posible to configure the element to obtain the timestamps from
reference timestamp meta data instead of using the ntp-offset property,
or estimating its own offset. Currently the only time format supported
is "timestamp/x-unix", i.e. UTC time expressed in the unix time epoch.

In addition the custom event GstNtpOffset has been renamed to
GstOnvifTimestamp, to reflect that it is not necessarily used to convey
the ntp-offset. As a consequence we had to modify a couple of files in
the rtsp-server as well.

Fixes #984

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1683>
2022-03-11 08:39:50 +00:00
Branko Subasic 52c0763042 gst-rtsp-server: Plug a few memory leaks in tests
Found and fixed a few memory leaks in the gst_rtspserver, gst_onvif and
gst_stream tests by running the tests in valgrind.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1742>
2022-03-07 13:57:27 +00:00
Branko Subasic 41d436e56e gst-rtsp-server: fix race in rtsp-client
When tunneling over HTTP, if connection on the second channel happens
before the control timer is created we may trigger an assert in
rtsp_ctrl_timeout_remove(). Avoid that by taking the priv->lock before
attaching the client thread to the context.

Fixes #1025

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1867>
2022-03-07 09:15:11 +00:00
Tim-Philipp Müller 701ed92d27 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1635>
2022-02-04 22:59:41 +00:00
Tim-Philipp Müller f0b045a69b Release 1.20.0 2022-02-03 20:03:15 +00:00
Tim-Philipp Müller 463bafdd23 Update ChangeLogs for 1.20.0 2022-02-03 19:53:18 +00:00
Tim-Philipp Müller 31b5243e1d Release 1.19.90 2022-01-28 14:28:42 +00:00
Tim-Philipp Müller 12fe353a31 Update ChangeLogs for 1.19.90 2022-01-28 14:28:28 +00:00
Michael Gruner 49eba42e08 gst-rtsp-server: Fix leak in appsrc2 example
In the need-data appsrc callback, a buffer is pulled from the
appsink. This buffer is then copied so that metadata is writable.
The copy is pushed to the appsrc but it doesn't take ownership
of the buffer so we need to manually unref it. The original buffer
is finally unreffed when the sample is freed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1548>
2022-01-24 01:25:57 +00:00
Nirbheek Chauhan 1be6d6ccf5 meson: Add explicit check: kwarg to all run_command() calls
This is required since Meson 0.61.0, and causes a warning to be
emitted otherwise:

2c079d855e
https://github.com/mesonbuild/meson/issues/9300

This exposed a bunch of places where we had broken run_command()
calls, unnecessary run_command() calls, and places where check: true
should be used.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1507>
2022-01-09 18:12:47 +05:30
Fabrice Fontaine e637aae629 rtsp-server: add gst_dep to gst_rtsp_server_deps
Add gst_dep to gst_rtsp_server_deps, in the context of buildroot, this
will avoid the following build failure, because the correct girdir
location will be retrieved from gstreamer-1.0.pc:

/home/giuliobenetti/autobuild/run/instance-3/output-1/host/riscv32-buildroot-linux-gnu/sysroot/usr/bin/g-ir-compiler gst/rtsp-server/GstRtspServer-1.0.gir --output gst/rtsp-server/GstRtspServer-1.0.typelib --includedir=/usr/share/gir-1.0
Could not find GIR file 'Gst-1.0.gir'; check XDG_DATA_DIRS or use --includedir
error parsing file gst/rtsp-server/GstRtspServer-1.0.gir: Failed to parse included gir Gst-1.0
If the above error message is about missing .so libraries, then setting up GIR_EXTRA_LIBS_PATH in the .mk file should help.
Typically like this: PKG_MAKE_ENV += GIR_EXTRA_LIBS_PATH="$(@D)/.libs"

Fixes:
 - http://autobuild.buildroot.org/results/04af6b22cfa0cffb6a3109a3b32b27137ad2e0b0

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1460>
2021-12-20 13:08:33 +00:00
Mathieu Duponchelle 79f11eb778 rtsp-stream: fix get_rates raciness
Prior to this patch, we considered that a stream was blocking
whenever a pad probe was triggered for either the RTP pad or
the RTCP pad.

This led to situations where we subsequently unblocked and expected
to find a segment on the RTP pad, which was racy.

Instead, we now only consider that the stream is blocking when
the pad probe for the RTP pad has triggered with a blockable object
(buffer, buffer list, gap event).

The RTCP pad is simply blocked without affecting the state of the
stream otherwise.

Fixes #929

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1452>
2021-12-16 22:18:12 +00:00
Tim-Philipp Müller a7b376011b Back to development 2021-11-03 19:31:23 +00:00
Tim-Philipp Müller f513c289b0 Release 1.19.3 2021-11-03 15:43:43 +00:00
Tim-Philipp Müller d51b091cd9 Update ChangeLogs for 1.19.3 2021-11-03 15:43:32 +00:00