Hello community,
here is the log from the commit of package gstreamer-rtsp-server for
openSUSE:Factory checked in at 2019-12-12 23:17:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-rtsp-server (Old)
and /work/SRC/openSUSE:Factory/.gstreamer-rtsp-server.new.4691 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer-rtsp-server"
Thu Dec 12 23:17:07 2019 rev:23 rq:754309 version:1.16.2
Changes:
--------
---
/work/SRC/openSUSE:Factory/gstreamer-rtsp-server/gstreamer-rtsp-server.changes
2019-10-11 15:14:25.752579933 +0200
+++
/work/SRC/openSUSE:Factory/.gstreamer-rtsp-server.new.4691/gstreamer-rtsp-server.changes
2019-12-12 23:17:11.522218712 +0100
@@ -1,0 +2,10 @@
+Wed Dec 4 13:21:03 UTC 2019 - Bjørn Lie <[email protected]>
+
+- Update to version 1.16.2:
+ + rtsp-media: Use lock in gst_rtsp_media_is_receive_only
+ + rtsp-client:
+ - RTP Info when completed_sender
+ - Fix location uri-format by getting uri directly from context
+ instead
+
+-------------------------------------------------------------------
Old:
----
gst-rtsp-server-1.16.1.tar.xz
New:
----
gst-rtsp-server-1.16.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gstreamer-rtsp-server.spec ++++++
--- /var/tmp/diff_new_pack.ZsBW4p/_old 2019-12-12 23:17:12.150218655 +0100
+++ /var/tmp/diff_new_pack.ZsBW4p/_new 2019-12-12 23:17:12.158218654 +0100
@@ -1,7 +1,7 @@
#
# spec file for package gstreamer-rtsp-server
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%define _name gst-rtsp-server
Name: gstreamer-rtsp-server
-Version: 1.16.1
+Version: 1.16.2
Release: 0
Summary: GStreamer-based RTSP server library
License: LGPL-2.0-or-later
++++++ gst-rtsp-server-1.16.1.tar.xz -> gst-rtsp-server-1.16.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-rtsp-server-1.16.1/ChangeLog
new/gst-rtsp-server-1.16.2/ChangeLog
--- old/gst-rtsp-server-1.16.1/ChangeLog 2019-09-23 12:17:42.000000000
+0200
+++ new/gst-rtsp-server-1.16.2/ChangeLog 2019-12-03 12:16:06.000000000
+0100
@@ -1,3 +1,51 @@
+=== release 1.16.2 ===
+
+2019-12-03 11:16:06 +0000 Tim-Philipp Müller <[email protected]>
+
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
+ * configure.ac:
+ * gst-rtsp-server.doap:
+ * meson.build:
+ Release 1.16.2
+
+2019-09-17 13:45:57 +0200 Adam x Nilsson <[email protected]>
+
+ * gst/rtsp-server/rtsp-media.c:
+ rtsp-media: Use lock in gst_rtsp_media_is_receive_only
+ (cherry picked from commit f1d2a0cae9a791ce07c753faaf82a6cdefecd373)
+
+2019-11-04 12:56:13 +0100 Kristofer Bjorkstrom <[email protected]>
+
+ * gst/rtsp-server/rtsp-client.c:
+ * gst/rtsp-server/rtsp-media.c:
+ * tests/check/gst/client.c:
+ rtsp-client: RTP Info when completed_sender
+ Change condition that should be fulfilled regarding RTPInfo.
+ Replace !gst_rtsp_media_is_receive_only with
+ gst_rtsp_media_has_completed_sender. It is more correct to actually
look
+ for a sender pipeline that is complete. Only then a RTPInfo should
+ exist.
+ gst_rtsp_media_is_receive_only gives different answears depending on
+ state of server.
+ If Describe is called wth URL+options for backchannel SDP will give
only
+ audio and only backchannel a=sendonly
+ If Describe is called on URL+options that gives both audio and video
+ direction from server to client, pipelines are created. Thus
+ receive_only will return false, even though Setup only would setup
+ backchannel.
+ RTP-Info is only for outgoing streams. Thus one should look if
outgoing
+ streams are complete.
+
+2019-10-17 12:15:42 +0200 Muhammet Ilendemli <[email protected]>
+
+ * gst/rtsp-server/rtsp-client.c:
+ rtsp-client: Generate correct URI for MIKEY in ANNOUNCE responses
+ Instead of hardcoding the URI, take the actual URI (and especially
the correct port)
+ from the RTSP context.
+ Fixes #84
+
=== release 1.16.1 ===
2019-09-23 11:17:41 +0100 Tim-Philipp Müller <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-rtsp-server-1.16.1/NEWS
new/gst-rtsp-server-1.16.2/NEWS
--- old/gst-rtsp-server-1.16.1/NEWS 2019-09-23 12:17:41.000000000 +0200
+++ new/gst-rtsp-server-1.16.2/NEWS 2019-12-03 12:16:06.000000000 +0100
@@ -5,13 +5,13 @@
GStreamer 1.16.0 was originally released on 19 April 2019.
-The latest bug-fix release in the 1.16 series is 1.16.1 and was released
-on 23 September 2019.
+The latest bug-fix release in the 1.16 series is 1.16.2 and was released
+on 3 December 2019.
See https://gstreamer.freedesktop.org/releases/1.16/ for the latest
version of this document.
-_Last updated: Sunday 22 September 2019, 21:00 UTC (log)_
+_Last updated: Tuesday 03 December 2019, 08:00 UTC (log)_
Introduction
@@ -142,9 +142,9 @@
Raw audio samples are usually passed around in interleaved form in
GStreamer, which means that if there are multiple audio channels the
-samples for each channel are interleaved in memory, e.g.
-|LEFT|RIGHT|LEFT|RIGHT|LEFT|RIGHT| for stereo audio. A non-interleaved
-or planar arrangement in memory would look like
+samples for each channel are interleaved in memory,
+e.g. |LEFT|RIGHT|LEFT|RIGHT|LEFT|RIGHT| for stereo audio. A
+non-interleaved or planar arrangement in memory would look like
|LEFT|LEFT|LEFT|RIGHT|RIGHT|RIGHT| instead, possibly with
|LEFT|LEFT|LEFT| and |RIGHT|RIGHT|RIGHT| residing in separate memory
chunks or separated by some padding.
@@ -243,7 +243,7 @@
GstVideoOverlayCompositions on a stream. The element will emit the
"draw" signal for each video buffer, and the application then
generates an overlay for that frame (or not). This is much more
- performant than e.g. cairooverlay for many use cases, e.g. because
+ performant than e.g. cairooverlay for many use cases, e.g. because
pixel format conversions can be avoided or the blitting of the
overlay can be delegated to downstream elements (such as
gloverlaycompositor). It’s particularly useful for cases where only
@@ -336,7 +336,7 @@
- "reset-muxer" property: when unset, the muxer is reset using
flush events instead of setting its state to NULL and back. This
- means the muxer can keep state across resets, e.g. mpegtsmux
+ means the muxer can keep state across resets, e.g. mpegtsmux
will keep the continuity counter continuous across segments as
required by hlssink2.
@@ -700,9 +700,9 @@
- There is now a GDB PRETTY PRINTER FOR VARIOUS GSTREAMER TYPES: For
GstObject pointers the type and name is added, e.g.
0x5555557e4110 [GstDecodeBin|decodebin0]. For GstMiniObject pointers
- the object type is added, e.g. 0x7fffe001fc50 [GstBuffer]. For
+ the object type is added, e.g. 0x7fffe001fc50 [GstBuffer]. For
GstClockTime and GstClockTimeDiff the time is also printed in human
- readable form, e.g. 150116219955 [+0:02:30.116219955].
+ readable form, e.g. 150116219955 [+0:02:30.116219955].
- GDB EXTENSION WITH TWO CUSTOM GDB COMMANDS gst-dot AND gst-print:
@@ -1044,7 +1044,7 @@
- Rust 1.31 is the minimum supported Rust version now
- Update to latest gir code generator and glib bindings
-- Functions returning e.g. gst::FlowReturn or other “combined” enums
+- Functions returning e.g. gst::FlowReturn or other “combined” enums
were changed to return split enums like
Result<gst::FlowSuccess, gst::FlowError> to allow usage of the
standard Rust error handling.
@@ -1388,7 +1388,8 @@
- decklinkaudiosink: Drop late buffers
- openh264enc: Fix compilation with openh264 v2.0
- wasapisrc: fix segtotal value being always 2
-- Fix issues on Android Q
+- android: Fix gnutls issue causing a FORTIFY crash on Android Q
+- windows: Fix two crashes due to cross-CRT free when using MSVC
gstreamer core
@@ -1698,6 +1699,182 @@
- List of Merge Requests applied in 1.16
- List of Issues fixed in 1.16.1
+1.16.2
+
+The second 1.16 bug-fix release (1.16.2) was released on 03 December
+2019.
+
+This release only contains bugfixes and it _should_ be safe to update
+from 1.16.1.
+
+Highlighted bugfixes in 1.16.2
+
+- Interlaced video scaling fixes
+- CineForm video support in AVI
+- audioresample: avoid glitches due to rounding errors after changing
+ rate
+- Command line tool output printing improvements on Windows
+- various performance improvements, memory leak fixes and security
+ fixes
+- VP9 decoding fixes
+- avfvideosrc: Explicitly request video permission on macOS 10.14+
+- wasapi: bug fixes and stability improvements
+- webrtc-audio-processing: fix segmentation fault on 32-bit windows
+- tsdemux: improved handling of certain discontinuities
+- vaapi h265 decoder: wait for I-frame before trying to decode
+
+gstreamer
+
+- gst-launch: Fix ugly stdout on Windows
+- tee: Make sure to actually deactivate pads that are released
+- bin: Drop need-context messages without source instead of crashing
+- gst: Don’t pass miniobjects to GST_DEBUG_OBJECT() and similar macros
+- tracers: Don’t leak temporary GstStructure
+
+gst-plugins-base
+
+- xvimagepool: Update size, stride, and offset with allocated XvImage
+- video-converter: Fix RGB-XYZ-RGB conversion
+- audiorate: Update next_offset on rate change
+- audioringbuffer: Reset reorder flag before check
+- audio-buffer: Don’t fail to map buffers with zero samples
+- videorate: Fix max-duplication-time handling
+- gl/gbm: ensure we call the resize callback before attempting to draw
+- video-converter: Various fixes for interlaced scaling
+- gstrtspconnection: messages_bytes not decreased
+- check: Don’t use real audio devices for tests
+- riff: add CineForm mapping
+- glfilters: Don’t use static variables for storing per-element state
+- glupload: Add VideoMetas and GLSyncMeta to the raw uploaded buffers
+- streamsynchronizer: avoid pad release race during logging.
+- gst-play: Use gst_print* to avoid broken stdout string on Windows
+
+gst-plugins-good
+
+- vp9dec: Fix broken 4:4:4 8bits decoding
+- rtpsession: add locking for clear-pt-map
+- rtpL16depay: don’t crash if data is not modulo channels*width
+- wavparse: Fix push mode ignoring audio with a size smaller than
+ segment buffer
+- wavparse: Fix push mode ignoring last audio payload chunk
+- aacparse: fix wrong offset of the channel number in adts header
+- jpegdec: Fix incorrect logic in EOI tag detection
+- videocrop: Also update the coordinate when in-place
+- jpegdec: don’t overwrite the last valid line
+- vpx: Error out if enabled and no features found
+- v4l2videodec: ensure pool exists before orphaning it
+- v4l2videoenc: fix type conversion errors
+- v4l2bufferpool: Queue number of allocated buffers to capture
+- v4l2object: fix mpegversion number typo
+- v4l2object: Work around bad TRY_FMT colorimetry implementations
+
+gst-plugins-bad
+
+- avfvideosrc: Explicitly request video permission on macOS 10.14+
+- wasapi: Various fixes and a workaround for a specific driver bug
+- wasapi: Move to CoInitializeEx for COM initialization
+- wasapi: Fix runtime/build warnings
+- waylandsink: Commit the parent after creating subsurface
+- msdkdec: fix surface leak in msdkdec_handle_frame
+- tsmux: Fix copying of buffer region
+- tsdemux: Handle continuity mismatch in more cases
+- tsdemux: Always issue a DTS even when it’s equal to PTS
+- openexr: Fix build with OpenEXR 2.4 (and also OpenEXR 2.2 on Ubuntu
+ 18.04)
+- ccextractor: Always forward all sticky events to the caption pad
+- pnmdec: Return early on ::finish() if we have no actual data to
+ parse
+- ass: avoid infinite unref loop with bad data
+- fluidsynth: add sf3 to soundfont search path
+- webrtcdsp/webrtcechoprobe segmentation fault on windows (1.16.0 x86)
+
+gst-libav
+
+- avvidenc: Fix error propagation
+- avdemux: Fix segmentation fault if long_name is NULL
+- avviddec: Fix huge leak caused by circular reference
+- avviddec: Enforce allocate new AVFrame per input frame
+- avdec_mpeg2video (and probably more): Huge memory leak in git master
+
+gst-rtsp-server
+
+- rtsp-media: Use lock in gst_rtsp_media_is_receive_only
+- rtsp-client: RTP Info when completed_sender
+- rtsp-client: fix location uri-format by getting uri directly from
+ context instead
+
+gstreamer-vaapi
+
+- meson build: halt configuration if no renderer API
+- libs: decoder: h265: skip all pictures prior the first I-frame
+- libs: window: x11: Avoid usage of deprecated API
+
+gst-editing-services
+
+- Initialize debug categories before usage
+
+gst-build
+
+- gst-env: Use locally built GStreamer utility programs
+
+Cerbero build tool and packaging changes in 1.16.2
+
+General
+
+- openssl: Update to 1.1.1d
+- Updated ffmpeg, expat, flac, freetype, croco, ogg, xml2, mpg123,
+ openjpeg, opus, pixman, speex, tiff recipes
+- Fix setting of git credentials in local source repos
+
+Windows
+
+- webrtc-audio-processing: fix segmentation fault on 32-bit windows
+ with webrtcdsp/webrtcechoprobe elemens
+- vpx plugin has no features when built with Visual Studio 2019
+- libvpx: Add support for Visual Studio 2019
+- mingw-runtime.recipe: Correctly package pkg-config in the MSI
+- GIO doesn’t load any modules on Windows with MSVC, which breaks TLS
+ support since glib-networking’s giognutls module isn’t loaded
+- Make the instructions for running Cerbero the same on all platforms
+
+macOS + iOS
+
+- Add support for macOS 10.15 Catalina
+- Updates for Xcode 11
+- macos/ios: expose objc++ compilers in env variables
+- srt.recipe: Fix crash in constructor on iOS
+- osx-framework.recipe: Dynamically generate the list of libraries and
+ ship pkg-config
+- macos: add -mmacosx-version-min for framework
+- gstreamer-1.0-osx-framework.recipe contains an outdated hard-coded
+ list of libraries
+- We need to ship pkg-config with macOS
+
+Linux
+
+- Fix filesprovider.find_shlib_regex when a lib_suffix is used in the
+ cerbero config file
+
+Contributors to 1.16.2
+
+Adam Nilsson, Amr Mahdi, Angus Ao, Charlie Turner, Edward Hervey, Fabian
+Greffrath, Fuwei Tang, Havard Graff, Hu Qian, James Cowgill, Jan
+Alexander Steffens (heftig), Jeffy Chen, Jeremy Lempereur, Joakim
+Johansson, Jochen Henneberg, Julien Isorce, Kevin Joly, Kristofer
+Bjorkstrom, Kyrylo Polezhaiev, Matthew Waters, Michael Olbrich, Muhammet
+Ilendemli, Nicolas Dufresne, Nirbheek Chauhan, Pablo Marcos Oltra, Roman
+Shpuntov, Ruben Gonzalez, Scott Kanowitz, Sebastian Dröge, Seungha Yang,
+Thibault Saunier, Tim-Philipp Müller, Víctor Manuel Jáquez Leal, Vivia
+Nikolaidou,
+
+… and many others who have contributed bug reports, translations, sent
+suggestions or helped testing. Thank you all!
+
+List of merge requests and issues fixed in 1.16.2
+
+- List of Merge Requests applied in 1.16
+- List of Issues fixed in 1.16.2
+
Known Issues
@@ -1721,9 +1898,8 @@
development of 1.17/1.18 will happen in the git master branch.
The plan for the 1.18 development cycle is yet to be confirmed, but it
-is now expected that feature freeze will take place shortly after the
-GStreamer conference/hackfest in early November 2019, with the first
-1.18 stable release ready in late November or early December.
+is now expected that feature freeze will take place in December 2019,
+with the first 1.18 stable release ready in late January or February.
1.18 will be backwards-compatible to the stable 1.16, 1.14, 1.12, 1.10,
1.8, 1.6, 1.4, 1.2 and 1.0 release series.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-rtsp-server-1.16.1/RELEASE
new/gst-rtsp-server-1.16.2/RELEASE
--- old/gst-rtsp-server-1.16.1/RELEASE 2019-09-23 12:17:41.000000000 +0200
+++ new/gst-rtsp-server-1.16.2/RELEASE 2019-12-03 12:16:06.000000000 +0100
@@ -1,4 +1,4 @@
-This is GStreamer gst-rtsp-server 1.16.1.
+This is GStreamer gst-rtsp-server 1.16.2.
The GStreamer team is pleased to announce another bug-fix release in the
stable 1.x API series of your favourite cross-platform multimedia framework!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-rtsp-server-1.16.1/configure
new/gst-rtsp-server-1.16.2/configure
--- old/gst-rtsp-server-1.16.1/configure 2019-09-23 12:17:09.000000000
+0200
+++ new/gst-rtsp-server-1.16.2/configure 2019-12-03 12:15:32.000000000
+0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GStreamer RTSP Server Library 1.16.1.
+# Generated by GNU Autoconf 2.69 for GStreamer RTSP Server Library 1.16.2.
#
# Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
#
@@ -591,8 +591,8 @@
# Identity of this package.
PACKAGE_NAME='GStreamer RTSP Server Library'
PACKAGE_TARNAME='gst-rtsp-server'
-PACKAGE_VERSION='1.16.1'
-PACKAGE_STRING='GStreamer RTSP Server Library 1.16.1'
+PACKAGE_VERSION='1.16.2'
+PACKAGE_STRING='GStreamer RTSP Server Library 1.16.2'
PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
PACKAGE_URL=''
@@ -1537,7 +1537,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures GStreamer RTSP Server Library 1.16.1 to adapt to many
kinds of systems.
+\`configure' configures GStreamer RTSP Server Library 1.16.2 to adapt to many
kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1609,7 +1609,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of GStreamer RTSP Server Library
1.16.1:";;
+ short | recursive ) echo "Configuration of GStreamer RTSP Server Library
1.16.2:";;
esac
cat <<\_ACEOF
@@ -1807,7 +1807,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-GStreamer RTSP Server Library configure 1.16.1
+GStreamer RTSP Server Library configure 1.16.2
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2085,7 +2085,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by GStreamer RTSP Server Library $as_me 1.16.1, which was
+It was created by GStreamer RTSP Server Library $as_me 1.16.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3062,7 +3062,7 @@
# Define the identity of the package.
PACKAGE='gst-rtsp-server'
- VERSION='1.16.1'
+ VERSION='1.16.2'
cat >>confdefs.h <<_ACEOF
@@ -3273,9 +3273,9 @@
- PACKAGE_VERSION_MAJOR=$(echo 1.16.1 | cut -d'.' -f1)
- PACKAGE_VERSION_MINOR=$(echo 1.16.1 | cut -d'.' -f2)
- PACKAGE_VERSION_MICRO=$(echo 1.16.1 | cut -d'.' -f3)
+ PACKAGE_VERSION_MAJOR=$(echo 1.16.2 | cut -d'.' -f1)
+ PACKAGE_VERSION_MINOR=$(echo 1.16.2 | cut -d'.' -f2)
+ PACKAGE_VERSION_MICRO=$(echo 1.16.2 | cut -d'.' -f3)
@@ -3286,7 +3286,7 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
$as_echo_n "checking nano version... " >&6; }
- NANO=$(echo 1.16.1 | cut -d'.' -f4)
+ NANO=$(echo 1.16.2 | cut -d'.' -f4)
if test x"$NANO" = x || test "x$NANO" = "x0" ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -8112,10 +8112,10 @@
done
- GST_CURRENT=1601
+ GST_CURRENT=1602
GST_REVISION=0
- GST_AGE=1601
- GST_LIBVERSION=1601:0:1601
+ GST_AGE=1602
+ GST_LIBVERSION=1602:0:1602
@@ -12749,10 +12749,10 @@
-GST_REQ=1.16.1
-GSTPB_REQ=1.16.1
-GSTPG_REQ=1.16.1
-GSTPD_REQ=1.16.1
+GST_REQ=1.16.2
+GSTPB_REQ=1.16.2
+GSTPG_REQ=1.16.2
+GSTPD_REQ=1.16.2
@@ -18953,7 +18953,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by GStreamer RTSP Server Library $as_me 1.16.1, which
was
+This file was extended by GStreamer RTSP Server Library $as_me 1.16.2, which
was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -19019,7 +19019,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //;
s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-GStreamer RTSP Server Library config.status 1.16.1
+GStreamer RTSP Server Library config.status 1.16.2
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-rtsp-server-1.16.1/configure.ac
new/gst-rtsp-server-1.16.2/configure.ac
--- old/gst-rtsp-server-1.16.1/configure.ac 2019-09-23 12:16:58.000000000
+0200
+++ new/gst-rtsp-server-1.16.2/configure.ac 2019-12-03 12:15:20.000000000
+0100
@@ -2,7 +2,7 @@
dnl initialize autoconf
dnl when going to/from release please set the nano (fourth number) right !
dnl releases only do Wall, cvs and prerelease does Werror too
-AC_INIT([GStreamer RTSP Server Library], [1.16.1],
+AC_INIT([GStreamer RTSP Server Library], [1.16.2],
[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],
[gst-rtsp-server])
AG_GST_INIT
@@ -53,13 +53,13 @@
dnl 1.10.9 (who knows) => 1009
dnl
dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 1601, 0, 1601)
+AS_LIBTOOL(GST, 1602, 0, 1602)
dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.16.1
-GSTPB_REQ=1.16.1
-GSTPG_REQ=1.16.1
-GSTPD_REQ=1.16.1
+GST_REQ=1.16.2
+GSTPB_REQ=1.16.2
+GSTPG_REQ=1.16.2
+GSTPD_REQ=1.16.2
dnl *** autotools stuff ****
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-rtsp-server-1.16.1/docs/libs/html/GstRTSPClient.html
new/gst-rtsp-server-1.16.2/docs/libs/html/GstRTSPClient.html
--- old/gst-rtsp-server-1.16.1/docs/libs/html/GstRTSPClient.html
2019-09-23 12:17:44.000000000 +0200
+++ new/gst-rtsp-server-1.16.2/docs/libs/html/GstRTSPClient.html
2019-12-03 12:16:07.000000000 +0100
@@ -819,7 +819,7 @@
<a name="GstRTSPClientSendFunc"></a><h3>GstRTSPClientSendFunc ()</h3>
<pre class="programlisting"><a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span
class="returnvalue">gboolean</span></a>
<span class="c_punctuation">(</span>*GstRTSPClientSendFunc<span
class="c_punctuation">)</span> (<em class="parameter"><code><a class="link"
href="GstRTSPClient.html" title="GstRTSPClient"><span
class="type">GstRTSPClient</span></a> *client</code></em>,
- <em class="parameter"><code><a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPMessage.html#GstRTSPMessage"><span
class="type">GstRTSPMessage</span></a> *message</code></em>,
+ <em class="parameter"><code><a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPMessage.html#GstRTSPMessage-struct"><span
class="type">GstRTSPMessage</span></a> *message</code></em>,
<em class="parameter"><code><a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span
class="type">gboolean</span></a> close</code></em>,
<em class="parameter"><code><a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span
class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>This callback is called when <em class="parameter"><code>client</code></em>
@@ -843,7 +843,7 @@
</tr>
<tr>
<td class="parameter_name"><p>message</p></td>
-<td class="parameter_description"><p>a <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPMessage.html#GstRTSPMessage"><span
class="type">GstRTSPMessage</span></a></p></td>
+<td class="parameter_description"><p>a <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPMessage.html#GstRTSPMessage-struct"><span
class="type">GstRTSPMessage</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -924,7 +924,7 @@
<a name="GstRTSPClientSendMessagesFunc"></a><h3>GstRTSPClientSendMessagesFunc
()</h3>
<pre class="programlisting"><a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span
class="returnvalue">gboolean</span></a>
<span class="c_punctuation">(</span>*GstRTSPClientSendMessagesFunc<span
class="c_punctuation">)</span> (<em class="parameter"><code><a class="link"
href="GstRTSPClient.html" title="GstRTSPClient"><span
class="type">GstRTSPClient</span></a> *client</code></em>,
- <em class="parameter"><code><a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPMessage.html#GstRTSPMessage"><span
class="type">GstRTSPMessage</span></a> *messages</code></em>,
+ <em class="parameter"><code><a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPMessage.html#GstRTSPMessage-struct"><span
class="type">GstRTSPMessage</span></a> *messages</code></em>,
<em class="parameter"><code><a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span
class="type">guint</span></a> n_messages</code></em>,
<em class="parameter"><code><a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span
class="type">gboolean</span></a> close</code></em>,
<em class="parameter"><code><a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span
class="type">gpointer</span></a> user_data</code></em>);</pre>
@@ -949,7 +949,7 @@
</tr>
<tr>
<td class="parameter_name"><p>messages</p></td>
-<td class="parameter_description"><p><a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPMessage.html#GstRTSPMessage"><span
class="type">GstRTSPMessage</span></a></p></td>
+<td class="parameter_description"><p><a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPMessage.html#GstRTSPMessage-struct"><span
class="type">GstRTSPMessage</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -1038,7 +1038,7 @@
<a
name="gst-rtsp-client-handle-message"></a><h3>gst_rtsp_client_handle_message
()</h3>
<pre class="programlisting"><a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRtspdefs.html#GstRTSPResult"><span
class="returnvalue">GstRTSPResult</span></a>
gst_rtsp_client_handle_message (<em class="parameter"><code><a class="link"
href="GstRTSPClient.html" title="GstRTSPClient"><span
class="type">GstRTSPClient</span></a> *client</code></em>,
- <em class="parameter"><code><a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPMessage.html#GstRTSPMessage"><span
class="type">GstRTSPMessage</span></a> *message</code></em>);</pre>
+ <em class="parameter"><code><a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPMessage.html#GstRTSPMessage-struct"><span
class="type">GstRTSPMessage</span></a> *message</code></em>);</pre>
<p>Let the client handle <em class="parameter"><code>message</code></em>
.</p>
<div class="refsect3">
@@ -1057,7 +1057,7 @@
</tr>
<tr>
<td class="parameter_name"><p>message</p></td>
-<td class="parameter_description"><p>an <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPMessage.html#GstRTSPMessage"><span
class="type">GstRTSPMessage</span></a>. </p></td>
+<td class="parameter_description"><p>an <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPMessage.html#GstRTSPMessage-struct"><span
class="type">GstRTSPMessage</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym
title="Don't free data after the code is done."><span class="acronym">transfer
none</span></acronym>]</span></td>
</tr>
</tbody>
@@ -1074,10 +1074,10 @@
<pre class="programlisting"><a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRtspdefs.html#GstRTSPResult"><span
class="returnvalue">GstRTSPResult</span></a>
gst_rtsp_client_send_message (<em class="parameter"><code><a class="link"
href="GstRTSPClient.html" title="GstRTSPClient"><span
class="type">GstRTSPClient</span></a> *client</code></em>,
<em class="parameter"><code><a class="link"
href="GstRTSPSession.html" title="GstRTSPSession"><span
class="type">GstRTSPSession</span></a> *session</code></em>,
- <em class="parameter"><code><a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPMessage.html#GstRTSPMessage"><span
class="type">GstRTSPMessage</span></a> *message</code></em>);</pre>
+ <em class="parameter"><code><a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPMessage.html#GstRTSPMessage-struct"><span
class="type">GstRTSPMessage</span></a> *message</code></em>);</pre>
<p>Send a message message to the remote end. <em
class="parameter"><code>message</code></em>
must be a
-<a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPMessage.html#GST-RTSP-MESSAGE-REQUEST:CAPS"><span
class="type">GST_RTSP_MESSAGE_REQUEST</span></a> or a <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPMessage.html#GST-RTSP-MESSAGE-RESPONSE:CAPS"><span
class="type">GST_RTSP_MESSAGE_RESPONSE</span></a>.</p>
+<a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPMessage.html#GST-RTSP-MESSAGE-REQUEST:CAPS"><span
class="type">GST_RTSP_MESSAGE_REQUEST</span></a> or a <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPMessage.html#GST-RTSP-MESSAGE-RESPONSE:CAPS"><span
class="type">GST_RTSP_MESSAGE_RESPONSE</span></a>.</p>
<div class="refsect3">
<a name="gst-rtsp-client-send-message.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%"
border="0">
@@ -1100,7 +1100,7 @@
</tr>
<tr>
<td class="parameter_name"><p>message</p></td>
-<td class="parameter_description"><p>The <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPMessage.html#GstRTSPMessage"><span
class="type">GstRTSPMessage</span></a> to send. </p></td>
+<td class="parameter_description"><p>The <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPMessage.html#GstRTSPMessage-struct"><span
class="type">GstRTSPMessage</span></a> to send. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym
title="Don't free data after the code is done."><span class="acronym">transfer
none</span></acronym>]</span></td>
</tr>
</tbody>
@@ -1320,13 +1320,13 @@
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a
name="GstRTSPClientClass.params-set"></a>params_set</code></em> ()</p></td>
<td class="struct_member_description"><p>set parameters. This function should
also initialize the
-RTSP response(ctx->response) via a call to <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPMessage.html#gst-rtsp-message-init-response"><code
class="function">gst_rtsp_message_init_response()</code></a></p></td>
+RTSP response(ctx->response) via a call to <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPMessage.html#gst-rtsp-message-init-response"><code
class="function">gst_rtsp_message_init_response()</code></a></p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a
name="GstRTSPClientClass.params-get"></a>params_get</code></em> ()</p></td>
<td class="struct_member_description"><p>get parameters. This function should
also initialize the
-RTSP response(ctx->response) via a call to <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPMessage.html#gst-rtsp-message-init-response"><code
class="function">gst_rtsp_message_init_response()</code></a></p></td>
+RTSP response(ctx->response) via a call to <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPMessage.html#gst-rtsp-message-init-response"><code
class="function">gst_rtsp_message_init_response()</code></a></p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-rtsp-server-1.16.1/docs/libs/html/GstRTSPMediaFactory.html
new/gst-rtsp-server-1.16.2/docs/libs/html/GstRTSPMediaFactory.html
--- old/gst-rtsp-server-1.16.1/docs/libs/html/GstRTSPMediaFactory.html
2019-09-23 12:17:44.000000000 +0200
+++ new/gst-rtsp-server-1.16.2/docs/libs/html/GstRTSPMediaFactory.html
2019-12-03 12:16:07.000000000 +0100
@@ -1399,7 +1399,7 @@
<a
name="gst-rtsp-media-factory-construct"></a><h3>gst_rtsp_media_factory_construct
()</h3>
<pre class="programlisting"><a class="link" href="GstRTSPMedia.html"
title="GstRTSPMedia"><span class="returnvalue">GstRTSPMedia</span></a> *
gst_rtsp_media_factory_construct (<em class="parameter"><code><a class="link"
href="GstRTSPMediaFactory.html" title="GstRTSPMediaFactory"><span
class="type">GstRTSPMediaFactory</span></a> *factory</code></em>,
- <em class="parameter"><code>const <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPUrl.html#GstRTSPUrl"><span
class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
+ <em class="parameter"><code>const <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPUrl.html#GstRTSPUrl-struct"><span
class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
<p>Construct the media object and create its streams. Implementations
should create the needed gstreamer elements and add them to the result
object. No state changes should be performed on them yet.</p>
@@ -1440,7 +1440,7 @@
<a
name="gst-rtsp-media-factory-create-element"></a><h3>gst_rtsp_media_factory_create_element
()</h3>
<pre class="programlisting"><a
href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct"><span
class="returnvalue">GstElement</span></a> *
gst_rtsp_media_factory_create_element (<em class="parameter"><code><a
class="link" href="GstRTSPMediaFactory.html" title="GstRTSPMediaFactory"><span
class="type">GstRTSPMediaFactory</span></a> *factory</code></em>,
- <em class="parameter"><code>const <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPUrl.html#GstRTSPUrl"><span
class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
+ <em class="parameter"><code>const <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPUrl.html#GstRTSPUrl-struct"><span
class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
<p>Construct and return a <a
href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct"><span
class="type">GstElement</span></a> that is a <a
href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBin.html#GstBin-struct"><span
class="type">GstBin</span></a> containing
the elements to use for streaming the media.</p>
<p>The bin should contain payloaders pay%d for each stream. The default
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-rtsp-server-1.16.1/docs/libs/html/GstRTSPMountPoints.html
new/gst-rtsp-server-1.16.2/docs/libs/html/GstRTSPMountPoints.html
--- old/gst-rtsp-server-1.16.1/docs/libs/html/GstRTSPMountPoints.html
2019-09-23 12:17:44.000000000 +0200
+++ new/gst-rtsp-server-1.16.2/docs/libs/html/GstRTSPMountPoints.html
2019-12-03 12:16:07.000000000 +0100
@@ -266,7 +266,7 @@
<a
name="gst-rtsp-mount-points-make-path"></a><h3>gst_rtsp_mount_points_make_path
()</h3>
<pre class="programlisting"><a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span
class="returnvalue">gchar</span></a> *
gst_rtsp_mount_points_make_path (<em class="parameter"><code><a class="link"
href="GstRTSPMountPoints.html" title="GstRTSPMountPoints"><span
class="type">GstRTSPMountPoints</span></a> *mounts</code></em>,
- <em class="parameter"><code>const <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPUrl.html#GstRTSPUrl"><span
class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
+ <em class="parameter"><code>const <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPUrl.html#GstRTSPUrl-struct"><span
class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
<p>Make a path string from <em class="parameter"><code>url</code></em>
.</p>
<div class="refsect3">
@@ -285,7 +285,7 @@
</tr>
<tr>
<td class="parameter_name"><p>url</p></td>
-<td class="parameter_description"><p>a <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPUrl.html#GstRTSPUrl"><span
class="type">GstRTSPUrl</span></a></p></td>
+<td class="parameter_description"><p>a <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPUrl.html#GstRTSPUrl-struct"><span
class="type">GstRTSPUrl</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-rtsp-server-1.16.1/docs/libs/html/GstRTSPStreamTransport.html
new/gst-rtsp-server-1.16.2/docs/libs/html/GstRTSPStreamTransport.html
--- old/gst-rtsp-server-1.16.1/docs/libs/html/GstRTSPStreamTransport.html
2019-09-23 12:17:44.000000000 +0200
+++ new/gst-rtsp-server-1.16.2/docs/libs/html/GstRTSPStreamTransport.html
2019-12-03 12:16:07.000000000 +0100
@@ -72,7 +72,7 @@
</td>
</tr>
<tr>
-<td class="function_type">const <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPUrl.html#GstRTSPUrl"><span
class="returnvalue">GstRTSPUrl</span></a> *
+<td class="function_type">const <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPUrl.html#GstRTSPUrl-struct"><span
class="returnvalue">GstRTSPUrl</span></a> *
</td>
<td class="function_name">
<a class="link"
href="GstRTSPStreamTransport.html#gst-rtsp-stream-transport-get-url"
title="gst_rtsp_stream_transport_get_url
()">gst_rtsp_stream_transport_get_url</a> <span class="c_punctuation">()</span>
@@ -387,7 +387,7 @@
<hr>
<div class="refsect2">
<a
name="gst-rtsp-stream-transport-get-url"></a><h3>gst_rtsp_stream_transport_get_url
()</h3>
-<pre class="programlisting">const <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPUrl.html#GstRTSPUrl"><span
class="returnvalue">GstRTSPUrl</span></a> *
+<pre class="programlisting">const <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPUrl.html#GstRTSPUrl-struct"><span
class="returnvalue">GstRTSPUrl</span></a> *
gst_rtsp_stream_transport_get_url (<em class="parameter"><code><a class="link"
href="GstRTSPStreamTransport.html" title="GstRTSPStreamTransport"><span
class="type">GstRTSPStreamTransport</span></a> *trans</code></em>);</pre>
<p>Get the url configured in <em class="parameter"><code>trans</code></em>
.</p>
@@ -420,7 +420,7 @@
<a
name="gst-rtsp-stream-transport-set-url"></a><h3>gst_rtsp_stream_transport_set_url
()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_rtsp_stream_transport_set_url (<em class="parameter"><code><a class="link"
href="GstRTSPStreamTransport.html" title="GstRTSPStreamTransport"><span
class="type">GstRTSPStreamTransport</span></a> *trans</code></em>,
- <em class="parameter"><code>const <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPUrl.html#GstRTSPUrl"><span
class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
+ <em class="parameter"><code>const <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPUrl.html#GstRTSPUrl-struct"><span
class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
<p>Set <em class="parameter"><code>url</code></em>
as the client url.</p>
<div class="refsect3">
@@ -439,7 +439,7 @@
</tr>
<tr>
<td class="parameter_name"><p>url</p></td>
-<td class="parameter_description"><p>a client <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPUrl.html#GstRTSPUrl"><span
class="type">GstRTSPUrl</span></a>. </p></td>
+<td class="parameter_description"><p>a client <a
href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTSPUrl.html#GstRTSPUrl-struct"><span
class="type">GstRTSPUrl</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym
title="Don't free data after the code is done."><span class="acronym">transfer
none</span></acronym>][<acronym title="NULL may be passed as the value in, out,
in-out; or as a return value."><span
class="acronym">nullable</span></acronym>]</span></td>
</tr>
</tbody>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-rtsp-server-1.16.1/docs/libs/html/index.html
new/gst-rtsp-server-1.16.2/docs/libs/html/index.html
--- old/gst-rtsp-server-1.16.1/docs/libs/html/index.html 2019-09-23
12:17:44.000000000 +0200
+++ new/gst-rtsp-server-1.16.2/docs/libs/html/index.html 2019-12-03
12:16:07.000000000 +0100
@@ -15,7 +15,7 @@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2"
cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer RTSP Server
Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for GStreamer RTSP Server 1.16.1
+ for GStreamer RTSP Server 1.16.2
</p></div>
</div>
<hr>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-rtsp-server-1.16.1/gst/rtsp-server/rtsp-client.c
new/gst-rtsp-server-1.16.2/gst/rtsp-server/rtsp-client.c
--- old/gst-rtsp-server-1.16.1/gst/rtsp-server/rtsp-client.c 2019-09-21
19:58:44.000000000 +0200
+++ new/gst-rtsp-server-1.16.2/gst/rtsp-server/rtsp-client.c 2019-12-02
21:04:18.000000000 +0100
@@ -202,6 +202,7 @@
GstRTSPContext * ctx);
static gboolean pre_signal_accumulator (GSignalInvocationHint * ihint,
GValue * return_accu, const GValue * handler_return, gpointer data);
+gboolean gst_rtsp_media_has_completed_sender (GstRTSPMedia * media);
G_DEFINE_TYPE_WITH_PRIVATE (GstRTSPClient, gst_rtsp_client, G_TYPE_OBJECT);
@@ -1741,7 +1742,7 @@
GstRTSPResult res;
GstRTSPState rtspstate;
GstRTSPRangeUnit unit = GST_RTSP_RANGE_NPT;
- gchar *path, *rtpinfo;
+ gchar *path, *rtpinfo = NULL;
gint matched;
gchar *seek_style = NULL;
GstRTSPStatusCode sig_result;
@@ -1830,7 +1831,8 @@
}
/* grab RTPInfo from the media now */
- if (!(rtpinfo = gst_rtsp_session_media_get_rtpinfo (sessmedia)))
+ if (gst_rtsp_media_has_completed_sender (media) &&
+ !(rtpinfo = gst_rtsp_session_media_get_rtpinfo (sessmedia)))
goto rtp_info_error;
/* construct the response now */
@@ -1839,7 +1841,9 @@
gst_rtsp_status_as_text (code), ctx->request);
/* add the RTP-Info header */
- gst_rtsp_message_take_header (ctx->response, GST_RTSP_HDR_RTP_INFO, rtpinfo);
+ if (rtpinfo)
+ gst_rtsp_message_take_header (ctx->response, GST_RTSP_HDR_RTP_INFO,
+ rtpinfo);
if (seek_style)
gst_rtsp_message_add_header (ctx->response, GST_RTSP_HDR_SEEK_STYLE,
seek_style);
@@ -3091,16 +3095,18 @@
n_streams = gst_rtsp_media_n_streams (media);
for (i = 0; i < n_streams; i++) {
GstRTSPStream *stream = gst_rtsp_media_get_stream (media, i);
- gchar *location =
- g_strdup_printf ("rtsp://%s%s:8554/stream=%d", priv->server_ip, path,
- i);
- gchar *keymgmt = stream_make_keymgmt (client, location, stream);
+ gchar *uri, *location, *keymgmt;
+
+ uri = gst_rtsp_url_get_request_uri (ctx->uri);
+ location = g_strdup_printf ("%s/stream=%d", uri, i);
+ keymgmt = stream_make_keymgmt (client, location, stream);
if (keymgmt)
gst_rtsp_message_take_header (ctx->response, GST_RTSP_HDR_KEYMGMT,
keymgmt);
g_free (location);
+ g_free (uri);
}
/* we suspend after the announce */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-rtsp-server-1.16.1/gst/rtsp-server/rtsp-media.c
new/gst-rtsp-server-1.16.2/gst/rtsp-server/rtsp-media.c
--- old/gst-rtsp-server-1.16.1/gst/rtsp-server/rtsp-media.c 2019-09-21
19:58:44.000000000 +0200
+++ new/gst-rtsp-server-1.16.2/gst/rtsp-server/rtsp-media.c 2019-12-02
21:04:18.000000000 +0100
@@ -237,6 +237,9 @@
static guint gst_rtsp_media_signals[SIGNAL_LAST] = { 0 };
static gboolean check_complete (GstRTSPMedia * media);
+gboolean gst_rtsp_media_has_completed_sender (GstRTSPMedia * media);
+
+static gboolean gst_rtsp_media_is_receive_only (GstRTSPMedia * media);
#define C_ENUM(v) ((gint) v)
@@ -731,23 +734,24 @@
return rtpbin;
}
+/* Must be called with priv->lock */
static gboolean
is_receive_only (GstRTSPMedia * media)
{
GstRTSPMediaPrivate *priv = media->priv;
- gboolean recive_only = TRUE;
+ gboolean receive_only = TRUE;
guint i;
for (i = 0; i < priv->streams->len; i++) {
GstRTSPStream *stream = g_ptr_array_index (priv->streams, i);
if (gst_rtsp_stream_is_sender (stream) ||
!gst_rtsp_stream_is_receiver (stream)) {
- recive_only = FALSE;
+ receive_only = FALSE;
break;
}
}
- return recive_only;
+ return receive_only;
}
/* must be called with state lock */
@@ -757,6 +761,7 @@
GstQuery *query;
GstRTSPMediaPrivate *priv = media->priv;
+ g_mutex_lock (&priv->lock);
/* Update the seekable state of the pipeline in case it changed */
if (is_receive_only (media)) {
/* TODO: Seeking for "receive-only"? */
@@ -770,6 +775,7 @@
if (gst_rtsp_stream_get_publish_clock_mode (stream) ==
GST_RTSP_PUBLISH_CLOCK_MODE_CLOCK_AND_OFFSET) {
priv->seekable = -1;
+ g_mutex_unlock (&priv->lock);
return;
}
}
@@ -796,7 +802,7 @@
}
GST_DEBUG_OBJECT (media, "seekable:%" G_GINT64_FORMAT, priv->seekable);
-
+ g_mutex_unlock (&priv->lock);
gst_query_unref (query);
}
@@ -818,7 +824,7 @@
return FALSE;
}
-/* must be called with state lock */
+/* must be called with state lock and private lock */
static void
collect_media_stats (GstRTSPMedia * media)
{
@@ -826,8 +832,9 @@
gint64 position = 0, stop = -1;
if (priv->status != GST_RTSP_MEDIA_STATUS_PREPARED &&
- priv->status != GST_RTSP_MEDIA_STATUS_PREPARING)
+ priv->status != GST_RTSP_MEDIA_STATUS_PREPARING) {
return;
+ }
priv->range.unit = GST_RTSP_RANGE_NPT;
@@ -887,8 +894,9 @@
priv->range.max.seconds = ((gdouble) stop) / GST_SECOND;
priv->range_stop = stop;
}
-
+ g_mutex_unlock (&priv->lock);
check_seekable (media);
+ g_mutex_lock (&priv->lock);
}
}
@@ -2518,9 +2526,8 @@
priv->status != GST_RTSP_MEDIA_STATUS_SUSPENDED)
goto not_prepared;
- g_mutex_lock (&priv->lock);
-
/* Update the range value with current position/duration */
+ g_mutex_lock (&priv->lock);
collect_media_stats (media);
/* make copy */
@@ -2554,6 +2561,27 @@
}
}
+gboolean
+gst_rtsp_media_has_completed_sender (GstRTSPMedia * media)
+{
+ GstRTSPMediaPrivate *priv = media->priv;
+ gboolean sender = FALSE;
+ guint i;
+
+ g_mutex_lock (&priv->lock);
+ for (i = 0; i < priv->streams->len; i++) {
+ GstRTSPStream *stream = g_ptr_array_index (priv->streams, i);
+ if (gst_rtsp_stream_is_complete (stream) &&
+ gst_rtsp_stream_is_sender (stream)) {
+ sender = TRUE;
+ break;
+ }
+ }
+ g_mutex_unlock (&priv->lock);
+
+ return sender;
+}
+
static void
stream_update_blocked (GstRTSPStream * stream, GstRTSPMedia * media)
{
@@ -2910,10 +2938,13 @@
GST_DEBUG ("%p: went from %s to %s (pending %s)", media,
gst_element_state_get_name (old), gst_element_state_get_name (new),
gst_element_state_get_name (pending));
- if (priv->no_more_pads_pending == 0 && is_receive_only (media) &&
- old == GST_STATE_READY && new == GST_STATE_PAUSED) {
+ if (priv->no_more_pads_pending == 0
+ && gst_rtsp_media_is_receive_only (media) && old == GST_STATE_READY
+ && new == GST_STATE_PAUSED) {
GST_INFO ("%p: went to PAUSED, prepared now", media);
+ g_mutex_lock (&priv->lock);
collect_media_stats (media);
+ g_mutex_unlock (&priv->lock);
if (priv->status == GST_RTSP_MEDIA_STATUS_PREPARING)
gst_rtsp_media_set_status (media, GST_RTSP_MEDIA_STATUS_PREPARED);
@@ -2995,7 +3026,9 @@
if (priv->blocked && media_streams_blocking (media) &&
priv->no_more_pads_pending == 0) {
GST_DEBUG_OBJECT (GST_MESSAGE_SRC (message), "media is blocking");
+ g_mutex_lock (&priv->lock);
collect_media_stats (media);
+ g_mutex_unlock (&priv->lock);
if (priv->status == GST_RTSP_MEDIA_STATUS_PREPARING)
gst_rtsp_media_set_status (media, GST_RTSP_MEDIA_STATUS_PREPARED);
@@ -3385,7 +3418,7 @@
g_object_set_data (G_OBJECT (elem), "gst-rtsp-dynpay-handlers", handlers);
}
- if (priv->nb_dynamic_elements == 0 && is_receive_only (media)) {
+ if (priv->nb_dynamic_elements == 0 && gst_rtsp_media_is_receive_only
(media)) {
/* If we are receive_only (RECORD), do not try to preroll, to avoid
* a second ASYNC state change failing */
priv->is_live = TRUE;
@@ -4212,7 +4245,7 @@
switch (priv->suspend_mode) {
case GST_RTSP_SUSPEND_MODE_NONE:
- if (is_receive_only (media))
+ if (gst_rtsp_media_is_receive_only (media))
break;
if (media_streams_blocking (media)) {
gst_rtsp_media_set_status (media, GST_RTSP_MEDIA_STATUS_PREPARING);
@@ -4451,7 +4484,7 @@
/* we just activated the first media, do the playing state change */
if (old_active == 0 && activate)
do_state = TRUE;
- /* if we have no more active media and prepare count is not indicate
+ /* if we have no more active media and prepare count is not indicate
* that there are new session/sessions ongoing,
* do the downward state changes */
else if (priv->n_active == 0 && priv->prepare_count <= 1)
@@ -4472,9 +4505,11 @@
/* remember where we are */
if (state != GST_STATE_NULL && (state == GST_STATE_PAUSED ||
- old_active != priv->n_active))
+ old_active != priv->n_active)) {
+ g_mutex_lock (&priv->lock);
collect_media_stats (media);
-
+ g_mutex_unlock (&priv->lock);
+ }
g_rec_mutex_unlock (&priv->state_lock);
return TRUE;
@@ -4639,3 +4674,16 @@
return TRUE;
}
+
+gboolean
+gst_rtsp_media_is_receive_only (GstRTSPMedia * media)
+{
+ GstRTSPMediaPrivate *priv = media->priv;
+ gboolean receive_only;
+
+ g_mutex_lock (&priv->lock);
+ receive_only = is_receive_only (media);
+ g_mutex_unlock (&priv->lock);
+
+ return receive_only;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-rtsp-server-1.16.1/gst-rtsp-server.doap
new/gst-rtsp-server-1.16.2/gst-rtsp-server.doap
--- old/gst-rtsp-server-1.16.1/gst-rtsp-server.doap 2019-09-23
12:16:58.000000000 +0200
+++ new/gst-rtsp-server-1.16.2/gst-rtsp-server.doap 2019-12-03
12:15:20.000000000 +0100
@@ -32,6 +32,16 @@
<release>
<Version>
+ <revision>1.16.2</revision>
+ <branch>1.16</branch>
+ <name></name>
+ <created>2019-12-03</created>
+ <file-release
rdf:resource="https://gstreamer.freedesktop.org/src/gst-rtsp-server/gst-rtsp-server-1.16.2.tar.xz"
/>
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.16.1</revision>
<branch>1.16</branch>
<name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-rtsp-server-1.16.1/ltmain.sh
new/gst-rtsp-server-1.16.2/ltmain.sh
--- old/gst-rtsp-server-1.16.1/ltmain.sh 2019-09-23 12:17:04.000000000
+0200
+++ new/gst-rtsp-server-1.16.2/ltmain.sh 2019-12-03 12:15:26.000000000
+0100
@@ -31,7 +31,7 @@
PROGRAM=libtool
PACKAGE=libtool
-VERSION="2.4.6 Debian-2.4.6-10"
+VERSION="2.4.6 Debian-2.4.6-11"
package_revision=2.4.6
@@ -2141,7 +2141,7 @@
compiler: $LTCC
compiler flags: $LTCFLAGS
linker: $LD (gnu? $with_gnu_ld)
- version: $progname $scriptversion Debian-2.4.6-10
+ version: $progname $scriptversion Debian-2.4.6-11
automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-rtsp-server-1.16.1/meson.build
new/gst-rtsp-server-1.16.2/meson.build
--- old/gst-rtsp-server-1.16.1/meson.build 2019-09-23 12:16:58.000000000
+0200
+++ new/gst-rtsp-server-1.16.2/meson.build 2019-12-03 12:15:20.000000000
+0100
@@ -1,5 +1,5 @@
project('gst-rtsp-server', 'c',
- version : '1.16.1',
+ version : '1.16.2',
meson_version : '>= 0.47',
default_options : ['warning_level=1', 'buildtype=debugoptimized'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-rtsp-server-1.16.1/tests/check/gst/client.c
new/gst-rtsp-server-1.16.2/tests/check/gst/client.c
--- old/gst-rtsp-server-1.16.1/tests/check/gst/client.c 2019-09-21
19:58:44.000000000 +0200
+++ new/gst-rtsp-server-1.16.2/tests/check/gst/client.c 2019-12-02
21:04:18.000000000 +0100
@@ -55,6 +55,51 @@
}
static gboolean
+test_response_play_200 (GstRTSPClient * client, GstRTSPMessage * response,
+ gboolean close, gpointer user_data)
+{
+ GstRTSPStatusCode code;
+ const gchar *reason;
+ GstRTSPVersion version;
+ gchar *str;
+ gchar **session_hdr_params;
+ gchar *pattern;
+
+ fail_unless_equals_int (gst_rtsp_message_get_type (response),
+ GST_RTSP_MESSAGE_RESPONSE);
+
+ fail_unless (gst_rtsp_message_parse_response (response, &code, &reason,
+ &version)
+ == GST_RTSP_OK);
+ fail_unless_equals_int (code, GST_RTSP_STS_OK);
+ fail_unless_equals_string (reason, "OK");
+ fail_unless_equals_int (version, GST_RTSP_VERSION_1_0);
+
+ /* Verify mandatory headers according to RFC 2326 */
+ /* verify mandatory CSeq header */
+ fail_unless (gst_rtsp_message_get_header (response, GST_RTSP_HDR_CSEQ, &str,
+ 0) == GST_RTSP_OK);
+ fail_unless (atoi (str) == cseq++);
+
+ /* verify mandatory Session header */
+ fail_unless (gst_rtsp_message_get_header (response, GST_RTSP_HDR_SESSION,
+ &str, 0) == GST_RTSP_OK);
+ session_hdr_params = g_strsplit (str, ";", -1);
+ fail_unless (session_hdr_params[0] != NULL);
+ g_strfreev (session_hdr_params);
+
+ /* verify mandatory RTP-Info header */
+ fail_unless (gst_rtsp_message_get_header (response, GST_RTSP_HDR_RTP_INFO,
+ &str, 0) == GST_RTSP_OK);
+ pattern = g_strdup_printf ("^url=rtsp://.+;seq=[0-9]+;rtptime=[0-9]+");
+ fail_unless (g_regex_match_simple (pattern, str, 0, 0),
+ "GST_RTSP_HDR_RTP_INFO '%s' doesn't match pattern '%s'", str, pattern);
+ g_free (pattern);
+
+ return TRUE;
+}
+
+static gboolean
test_response_400 (GstRTSPClient * client, GstRTSPMessage * response,
gboolean close, gpointer user_data)
{
@@ -1707,7 +1752,55 @@
GST_END_TEST;
-static Suite *
+GST_START_TEST (test_client_play)
+{
+ GstRTSPClient *client;
+ GstRTSPMessage request = { 0, };
+ gchar *str;
+ GstRTSPContext ctx = { NULL };
+
+ client = setup_multicast_client (1);
+
+ ctx.client = client;
+ ctx.auth = gst_rtsp_auth_new ();
+ ctx.token =
+ gst_rtsp_token_new (GST_RTSP_TOKEN_MEDIA_FACTORY_ROLE, G_TYPE_STRING,
+ "user", NULL);
+ gst_rtsp_context_push_current (&ctx);
+
+ fail_unless (gst_rtsp_message_init_request (&request, GST_RTSP_SETUP,
+ "rtsp://localhost/test/stream=0") == GST_RTSP_OK);
+ str = g_strdup_printf ("%d", cseq);
+ gst_rtsp_message_take_header (&request, GST_RTSP_HDR_CSEQ, str);
+ gst_rtsp_message_add_header (&request, GST_RTSP_HDR_TRANSPORT,
+ "RTP/AVP;multicast");
+ /* destination is from adress pool */
+ expected_transport = "RTP/AVP;multicast;destination=233.252.0.1;"
+ "ttl=1;port=.*;mode=\"PLAY\"";
+ gst_rtsp_client_set_send_func (client, test_setup_response_200, NULL, NULL);
+ fail_unless (gst_rtsp_client_handle_message (client,
+ &request) == GST_RTSP_OK);
+ gst_rtsp_message_unset (&request);
+ expected_transport = NULL;
+
+ fail_unless (gst_rtsp_message_init_request (&request, GST_RTSP_PLAY,
+ "rtsp://localhost/test") == GST_RTSP_OK);
+ str = g_strdup_printf ("%d", cseq);
+ gst_rtsp_message_take_header (&request, GST_RTSP_HDR_CSEQ, str);
+ gst_rtsp_message_add_header (&request, GST_RTSP_HDR_SESSION, session_id);
+ gst_rtsp_client_set_send_func (client, test_response_play_200, NULL, NULL);
+ fail_unless (gst_rtsp_client_handle_message (client,
+ &request) == GST_RTSP_OK);
+ gst_rtsp_message_unset (&request);
+
+ send_teardown (client);
+ teardown_client (client);
+ g_object_unref (ctx.auth);
+ gst_rtsp_token_unref (ctx.token);
+ gst_rtsp_context_pop_current (&ctx);
+}
+
+GST_END_TEST static Suite *
rtspclient_suite (void)
{
Suite *s = suite_create ("rtspclient");
@@ -1759,6 +1852,7 @@
tcase_add_test (tc, test_client_multicast_max_ttl_first_client);
tcase_add_test (tc, test_client_multicast_max_ttl_second_client);
tcase_add_test (tc, test_client_multicast_invalid_ttl);
+ tcase_add_test (tc, test_client_play);
return s;
}