Jeongmo Yang [Mon, 8 Feb 2021 05:16:22 +0000 (14:16 +0900)]
[v4l2videodecoder] Post message for number of buffers
- Tizen media player framework refers it for buffer management.
[Version] 1.16.2-19
[Issue Type] Update
Change-Id: I5ff40fa7f5fccb3bee8742b4349bd32672ad0c80
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
Jeongmo Yang [Thu, 4 Feb 2021 11:28:42 +0000 (20:28 +0900)]
[v4l2videodecoder] Add new property to enable TBM output buffer
- In previous code, TBM output buffer was enabled for v4l2src plugin,
and it caused unexpected error when it's used for camera.
[Version] 1.16.2-18
[Issue Type] Bug fix
Change-Id: Ia84f6f9bdb03567b380f263074af44dcc56810ab
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
Jeongmo Yang [Mon, 25 Jan 2021 09:23:21 +0000 (18:23 +0900)]
[v4l2videodecoder] Fix memory leak
- Add code to free tizen buffer
[Version] 1.16.2-17
[Issue Type] Memory leak
Change-Id: I5935bb126564a5224ac946b1eb1f82e8d1c80e1e
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
Nicolas Dufresne [Fri, 26 Jun 2020 18:48:14 +0000 (14:48 -0400)]
v4l2bufferpool: Only resurrect the right amount of buffers
On streamon, we need to resurrect (queue back) some buffers, as during
flushign seek we'd endup with an empty queued. We initially started with
resurrecting as many as we could without blocking, but that miss-behaved with
dynamic CREATE_BUFS, causing the pool to grow dramatically. This was limited
by the number of allocated buffers, but this still tried to resurrect too many
buffers for the first run, as activating the pool will queued buffers.
In this patch, we calculte the missing detal in the queue and only try and
resurrect that amount of buffers.
Change-Id: I3257c66f4049c55fa714ed639eeb56053b805277
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/651>
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
Gilbok Lee [Thu, 21 Jan 2021 07:41:21 +0000 (16:41 +0900)]
v4l2videodec: Increase v4l2videodecoder rank
Change-Id: I7184c9e504b1fb093eedc3c16172fb318ec35a8a
Gilbok Lee [Thu, 21 Jan 2021 07:39:07 +0000 (16:39 +0900)]
Merge branch 'tizen_6.0' into tizen_6.0_hotfix
Change-Id: I25edaabb90b6bcf9794c63d538e5d2d85f799b86
Jeongmo Yang [Fri, 20 Nov 2020 12:10:23 +0000 (21:10 +0900)]
[v4l2videodecoder] Support TBM for output buffer
[Version] 1.16.2-15
[Issue Type] Update
Change-Id: I96aed003f684a4f49ca1806dabdaf09b02cf042d
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
Jeongmo Yang [Mon, 26 Oct 2020 05:28:59 +0000 (14:28 +0900)]
[v4l2] Revice log for device open failure
[Version] 1.16.2-13
[Issue Type] Log
Change-Id: I0c82ae6cffdd48cac1476dad5208f1059025e778
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
Jeongmo Yang [Thu, 24 Sep 2020 07:34:25 +0000 (16:34 +0900)]
v4l2: Support additional V4L2 CIDs
[https://www.linuxtv.org/downloads/legacy/video4linux/API/V4L2_API/spec/ch01s08.html]
- V4L2_CID_WHITE_BALANCE_TEMPERATURE
: This control specifies the white balance settings as a color temperature in Kelvin.
[https://www.linuxtv.org/downloads/legacy/video4linux/API/V4L2_API/spec/ch01s09.html]
- V4L2_CID_EXPOSURE_AUTO
: Enables automatic adjustments of the exposure time and/or iris aperture.
- V4L2_CID_EXPOSURE_ABSOLUTE
: Determines the exposure time of the camera sensor
- V4L2_CID_EXPOSURE_AUTO_PRIORITY
: When V4L2_CID_EXPOSURE_AUTO is set to AUTO or APERTURE_PRIORITY,
this control determines if the device may dynamically vary the frame rate.
[Version] 1.16.2-12
[Issue Type] Update
Change-Id: Idab94bb29fdd36a62aaf2df025e2fd338f11c124
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
Hyunil [Wed, 4 Nov 2020 07:47:20 +0000 (16:47 +0900)]
rtpv8depay: Add property for waiting until the next keyframe after packet loss
[Version] 1.16.2-14
[Issue Type] Improvement
If VP8 is not encoded with error resilience enabled then any packet loss
causes very bad artefacts when decoding and waiting for the next
keyframe instead improves user experience considerably.
Patch is got from gstreamr upstream master branch
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/318/diffs?commit_id=
f2a3bb7999cc36471849944b5e810f1ca3d57876
Change-Id: I14fa420bca71b8107fd456c6543b6ab4c1831049
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
(cherry picked from commit
db52a2e2e655a9a06835b91a0b3f1f261c930455)
Gilbok Lee [Tue, 15 Sep 2020 07:29:40 +0000 (16:29 +0900)]
avidemux: Fix coverity issue (Resource leak)
Change-Id: I28674d2e37e814039506f08de96ae0f49b3cef25
Gilbok Lee [Mon, 14 Sep 2020 06:09:33 +0000 (15:09 +0900)]
aacparse: Check aacparse seekable to byte, in the push mode
Change-Id: If8f66f71b562b03c7faa412724f299c516c9106b
Jeongmo Yang [Wed, 2 Sep 2020 11:17:53 +0000 (20:17 +0900)]
v4l2src: Add new property for auto scan device feature
[Version] 1.16.2-9
[Issue Type] Update
Change-Id: I81d2ee3b62a99ffe55d44c06d4c589ae5e0a8a31
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
Sangchul Lee [Fri, 31 Jul 2020 07:50:06 +0000 (16:50 +0900)]
pulsesink: Unset missing stream callbacks
[Version] 1.16.2-8
[Issue Type] Improvement
Change-Id: I733c8c3cdc3f0563848081cac85f97b1db77ea75
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 31 Jul 2020 05:42:49 +0000 (14:42 +0900)]
pulsesink: Add null check to fix crash
[Version] 1.16.2-7
[Issue Type] Bug fix
Change-Id: I533716bd1d22a245ec709219b3df6572f4a3abdc
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Gilbok Lee [Tue, 14 Jul 2020 02:04:32 +0000 (11:04 +0900)]
souphttpsrc: Remove cookie_jar patch
- Cookie jar patch is no longer necessary due to the patch below.
souphttpsrc: Implement soup session sharing
souphttpsrc: Use a in-memory cookie jar by default in sessions we created
Change-Id: I47d9adea66f994e235f80938985ce43f281bb487
Hyunil [Fri, 22 May 2020 05:20:25 +0000 (14:20 +0900)]
rtspsrc: use use-rtsp-buffering property of rtpbin
- rtpbin working is same with old version if this property set
Change-Id: Iae2ae283bfcf0c455f3503de9617dadd5546d679
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Sangchul Lee [Wed, 20 May 2020 07:32:56 +0000 (16:32 +0900)]
Enable VPx encoder/decoder
Plugins are included as below
vp8dec: On2 VP8 Decoder
vp8enc: On2 VP8 Encoder
vp9dec: On2 VP9 Decoder
vp9enc: On2 VP9 Encoder
[Version] 1.16.2-4
[Issue Type] Update
Change-Id: I80655315bc3f647db9970d5cb11693fa515ebc57
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Hyunil [Thu, 21 May 2020 07:04:34 +0000 (16:04 +0900)]
rtpbin: Add use-rtsp-buffering property
Change-Id: Ia250c1ca60bc66c12b30b6cab064185f3c457016
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Hyunil [Wed, 20 May 2020 09:40:50 +0000 (18:40 +0900)]
rtspsrc: increase plugin rank
- to use rtspsrc when autoplugging in player decodebin3
Change-Id: If276b37fbc54170c2fbc172b84296f5a60a6c66f
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Jeongmo Yang [Tue, 24 Mar 2020 07:22:44 +0000 (16:22 +0900)]
[v4l2src] Enable libv4l2 to use emulated format
- libv4l2 was disabled as default since 1.14.
- libv4l2 can be enabled by run-time environment value(GST_V4L2_USE_LIBV4L2=1).
- This patch always enables libv4l2 with tizen feature
and GST_V4L2_USE_LIBV4L2 will be ignored in run-time.
[Version] 1.16.2-1
[Profile] Common
[Issue Type] Update
Change-Id: I9588f455dd7df12f51766a5446971f3583368ba6
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
Sangchul Lee [Thu, 12 Mar 2020 09:33:06 +0000 (09:33 +0000)]
Merge "pulsesink: Add property to apply render delay automatically based on the latency change" into tizen
Gilbok Lee [Wed, 11 Mar 2020 04:20:06 +0000 (13:20 +0900)]
v4l2: disable v4l2 device probing
Change-Id: I61f81c8afbcc6649100b282a834ff849787f1a85
Sangchul Lee [Tue, 25 Feb 2020 07:26:05 +0000 (16:26 +0900)]
pulsesink: Add property to apply render delay automatically based on the latency change
Change-Id: I496fca57bc627a3e09170ba32c9b50bccbc00cc9
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Eunhye Choi [Wed, 26 Feb 2020 07:06:27 +0000 (16:06 +0900)]
v4l2video: decrease plugin rank
- set primary rank to v4l2 video decoder
prev commit :
a3d33c9390cd87827dea563dca0b211142506ae4
- and set secondary rank to v4l2 video encoder
Change-Id: I0ecb91d2310b669d1ed415cb1ccd8a00ca73c973
Gilbok Lee [Fri, 21 Feb 2020 06:23:12 +0000 (15:23 +0900)]
Merge branch 'tizen_gst_1.16.2' into tizen
Change-Id: I923f7b41cac2359f26abb9606122d05115ac14ad
Gilbok Lee [Tue, 18 Feb 2020 05:07:03 +0000 (14:07 +0900)]
aacparse: Add codec_data in caps, even if stream-format is adts
- Some decoder need to codec_data, even if stream-format is adts
Change-Id: Iec0c25b109c96b260141928f7730eb41797c2e91
(cherry picked from commit
eb3e279f28434ba6a94bd24a745dca902d74163e)
Gilbok Lee [Thu, 13 Feb 2020 08:57:55 +0000 (17:57 +0900)]
qtdemux: Fix the problem that framerate don't include in caps
Change-Id: I64a76d43cfdff7f8bb39349b5ffcc6d6e6fd67c5
Eunhye Choi [Tue, 11 Feb 2020 06:30:34 +0000 (15:30 +0900)]
souphttpsrc: fix coverity issue
Change-Id: If2e63b989241207cfbf4277c5d5aed1653e5b6ed
Gilbok Lee [Tue, 21 Jan 2020 07:22:33 +0000 (16:22 +0900)]
Merge branch 'upstream/1.16' into tizen_gst_1.16.2
Change-Id: I8a42e721d93e6078a99c82aa1587b5aead6ea27d
Tim-Philipp Müller [Tue, 3 Dec 2019 11:06:36 +0000 (11:06 +0000)]
Release 1.16.2
Tim-Philipp Müller [Tue, 3 Dec 2019 11:06:35 +0000 (11:06 +0000)]
Update docs
Tim-Philipp Müller [Tue, 3 Dec 2019 11:06:34 +0000 (11:06 +0000)]
Update translations
Havard Graff [Wed, 30 Nov 2016 14:55:01 +0000 (15:55 +0100)]
rtpL16depay: don't crash if data is not modulo channels*width
Seungha Yang [Fri, 29 Nov 2019 11:46:26 +0000 (20:46 +0900)]
vp9dec: Fix broken 4:4:4 8bits decoding
VPX_IMG_FMT_I444 pixel format with sRGB colorspace means
GBR data.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/651
Havard Graff [Fri, 29 Nov 2019 13:23:49 +0000 (14:23 +0100)]
rtpsession: add locking for clear-pt-map
...or it will segfault from time to time...
Amr Mahdi [Mon, 19 Aug 2019 07:30:17 +0000 (07:30 +0000)]
wavparse: Fix push mode ignoring audio with a size smaller than segment buffer
In push mode (streaming), if the audio size is smaller than segment buffer size, it would be ignored.
This happens because when the plugin receives an EOS signal while a single audio chunk that is less than the segment buffer size is buffered, it does not
flush this chunk. The fix is to flush the data chunk when it receives an EOS signal and has a single (first) chunk buffered.
How to reproduce:
1. Run gst-launch with tcp source
```
gst-launch-1.0 tcpserversrc port=3000 ! wavparse ignore-length=0 ! audioconvert ! filesink location=bug.wav
```
2. Send a wav file with unspecified data chunk length (0). Attached a test file
```
cat test.wav | nc localhost 3000
```
3. Compare the length of the source file and output file
```
ls -l test.wav bug.wav
-rw-rw-r-- 1 amr amr 0 Aug 15 11:07 bug.wav
-rwxrwxr-x 1 amr amr 3564 Aug 15 11:06 test.wav
```
The expected length of the result of the gst-lauch pipeline should be the same as the test file minus the headers (44), which is ```3564 - 44 = 3520``` but the actual output length is ```0```
After the fix:
```
ls -l test.wav fix.wav
-rw-rw-r-- 1 amr amr 3520 Aug 15 11:09 fix.wav
-rwxrwxr-x 1 amr amr 3564 Aug 15 11:06 test.wav
```
Amr Mahdi [Wed, 7 Aug 2019 12:09:46 +0000 (12:09 +0000)]
wavparse: Fix ignoring of last chunk in push mode
In push mode (streaming), if the last audio payload chunk is less than the segment rate buffer size, it would be ignored since the plugin waits until it has at least segment rate bufer size of audio.
The fix is to introduce a flushing flag that indicates that no more audio will be available so that the plugin can recognize this condition and flush the data is has even if it is less
than the desired segment rate buffer size.
Nicolas Dufresne [Wed, 17 Oct 2018 02:28:13 +0000 (02:28 +0000)]
v4l2bufferpool: Queue number of allocated buffers to capture
Before we do streamon, we queue all capture buffers by calling
resurrect. When the driver supports CREATE_BUFS, this would lead
to buffers being allocated till the maximum of 32 is reached.
Instead, we now save the number of allocated buffers and queue this
amount.
Nicolas Dufresne [Mon, 18 Nov 2019 18:27:42 +0000 (13:27 -0500)]
v4l2object: Workaround bad TRY_FMT colorimetry implementation
libv4l2 reset the colorpace to 0 and does not do any request to the
driver. This yields an invalid colorspace which currently cause a
negotiation failure. This workaround by ignoring bad values during the
TRY_FMT step.
aogun [Mon, 4 Nov 2019 09:18:30 +0000 (17:18 +0800)]
aacparse: fix wrong offset of adts channel
Scott Kanowitz [Thu, 12 Sep 2019 19:21:24 +0000 (15:21 -0400)]
jpegdec: Fix incorrect logic in EOI tag detection
This change fixes the reversed logic in the EOI tag detection
code.
Nicolas Dufresne [Tue, 12 Nov 2019 22:28:22 +0000 (17:28 -0500)]
videocrop: Also update the coordinate when in-place
This update is needed when the output caps is not changed (e.g. we are
moving a viewport around).
Fixes #669
Nirbheek Chauhan [Tue, 5 Nov 2019 16:11:55 +0000 (21:41 +0530)]
vpx: Error out if enabled and no features found
See: https://gitlab.freedesktop.org/gstreamer/cerbero/issues/200
Michael Olbrich [Wed, 7 Nov 2018 08:00:02 +0000 (09:00 +0100)]
jpegdec: don't overwrite the last valid line
If the the height is not a multiple of the macro block size then the memory
of the last line is reused for all extra lines. This is no problem if the
last line is duplicated properly. However, if the extra lines are not
initialized properly during encoding, then the last visible line is
overwritten with undefined data.
Use a extra buffer to avoid this problem.
James Cowgill [Tue, 29 Oct 2019 14:05:48 +0000 (14:05 +0000)]
v4l2videodec: ensure pool exists before orphaning it
In commit
e2ff87732d0b ("v4l2videodec: support orphaning") support for
orphaning the capture buffer pool was added when the format is
renegotiated. However, the commit forgot to check that a pool existed
before doing this. This is needed because it's possible for the format
to be renegotiated before a capture pool is allocated, which would
result in trying to orphan a NULL pool and lead to a NULL pointer
dereference.
Fix this by checking a pool exists first. If the pool doesn't exist,
there are no buffers to be reclaimed, so skip the allocation query in
that case.
HuQian [Wed, 25 Sep 2019 12:36:32 +0000 (12:36 +0000)]
is a typo here? gstv4l2object.c
Tim-Philipp Müller [Sun, 13 Oct 2019 11:46:58 +0000 (12:46 +0100)]
v4l2videoenc: fix wrong type cast
Follow-up to commit
1b752c0f !361
Fuwei Tang [Fri, 11 Oct 2019 02:33:20 +0000 (10:33 +0800)]
v4l2videoenc: fix type conversion errors
Tim-Philipp Müller [Mon, 23 Sep 2019 10:09:38 +0000 (11:09 +0100)]
Release 1.16.1
Tim-Philipp Müller [Mon, 23 Sep 2019 10:09:38 +0000 (11:09 +0100)]
Update docs
Tim-Philipp Müller [Mon, 23 Sep 2019 10:09:37 +0000 (11:09 +0100)]
Update translations
Doug Nazar [Mon, 9 Sep 2019 00:43:17 +0000 (20:43 -0400)]
alpha: Fix one_over_kc calculation
On arm/aarch64, converting from float directly to unsigned int uses
a different opcode and negative numbers result in 0. Cast to
signed int first.
Mathieu Duponchelle [Wed, 7 Aug 2019 22:29:25 +0000 (18:29 -0400)]
valgrind: suppress Cond error coming from gnutls
taken from https://salsa.debian.org/debian/flatpak/commit/
fb4a8dda211c4bc036781f2b0d706266e95ce068
Nicolas Dufresne [Tue, 4 Jun 2019 17:39:00 +0000 (13:39 -0400)]
supp: Ignore leaks caused by shout/sethostent
sethostent() seems to be using a global state and we endup with leaks from
that API when called through shout_init(). We had the option to only
ignore the shout case, but the impression is that if we have shout and
another sethostend user, as it's a global state, we may endup with a
different stack trace for the same leak. So in the end, we just ignore
memory allocated by sethostent in general.
Seungha Yang [Wed, 21 Aug 2019 15:18:51 +0000 (00:18 +0900)]
souphttpsrc: Fix incompatible type build warning
gstsouphttpsrc.c(2191): warning C4133:
'=': incompatible types - from 'guint (__cdecl *)(GType)' to 'GstURIType (__cdecl *)(GType)'
Olivier Crête [Fri, 24 May 2019 14:31:39 +0000 (10:31 -0400)]
rtpjitterbuffer: max-dropout-time gets cast to int32
So any value over MAXINT32 gets considered as negative and is silently ignored.
Jan Schmidt [Fri, 14 Jun 2019 16:00:43 +0000 (02:00 +1000)]
rtpjitterbuffer: Clear clock master before unreffing
Make sure to clear any master clock on the media_clock
before unreffing it to release the timer callback that's
updating the clock and keeping it reffed.
Seungha Yang [Thu, 1 Aug 2019 06:02:23 +0000 (15:02 +0900)]
qtdemux: Use empty-array safe way to cleanup GPtrArray
Fix assertion fail
GLib-CRITICAL **: g_ptr_array_remove_range: assertion 'index_ < rarray->len' failed
Nicolas Dufresne [Wed, 7 Aug 2019 02:27:40 +0000 (22:27 -0400)]
v4l2: Fix type compatibility issue with glibc 2.30
From now on, we will use linux/types.h on Linux, and use typedef of the
various flavour of BSD.
Fixes #635
Mathieu Duponchelle [Wed, 31 Jul 2019 19:55:16 +0000 (21:55 +0200)]
rtpfunnel: forward correct segment when switching pad
Forwarding a single segment event from the pad that first gets
chained is incorrect: when that first event was sent by an element
such as x264enc, with its offset start, we end pushing out of segment
buffers for the other pad(s).
Instead, everytime the active pad changes, forward the appropriate
segment event.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1028
Guillaume Desmottes [Thu, 25 Jul 2019 15:51:26 +0000 (21:21 +0530)]
gtkglsink: fix crash when widget is resized after element destruction
Prevent _size_changed_cb() to be called after gtkglsink has been finalized.
Fix #632
Sebastian Dröge [Thu, 25 Jul 2019 12:08:54 +0000 (15:08 +0300)]
jpegdec: Don't dereference NULL input state if we have no caps in TIME segments
Simply assume that the JPEG frame is not going to be interlaced instead
of crashing.
Knut Andre Tidemann [Mon, 22 Jul 2019 08:28:50 +0000 (10:28 +0200)]
rtp: opuspay: fix memory leak in gst_rtp_opus_pay_setcaps.
The src caps were never dereferenced, causing a memory leak.
Song Bing [Wed, 13 Jun 2018 21:55:29 +0000 (14:55 -0700)]
v4l2videodec: Fix drain() function return type
Return right type for drain() function.
Nicolas Dufresne [Tue, 21 May 2019 19:25:03 +0000 (15:25 -0400)]
rtpssrcdemux: Avoid taking streamlock out-of-band
In this change we now protect the internal srcpads list using the
stream lock and limit usage of the internal stream lock to
preventing data flowing on the other src pad type while creating
and signalling the new pad.
This fixes a deadlock with RTPBin shutdown lock. These two locks would
end up being taken in two different order, which caused a deadlock. More
generally, we should not rely on a streamlock when handling out-of-band
data, so as a side effect, we should not take a stream lock when
iterating internal links.
Damian Hobson-Garcia [Thu, 30 May 2019 02:13:07 +0000 (11:13 +0900)]
v4l2bufferpool: return TRUE when buffer pool orphaning succeeds
When trying to orphan a buffer pool, successfully return and unref
the pool when the pool is either successfully stopped or orphaned.
Indicate failure and leave the pool untouched otherwise.
Damian Hobson-Garcia [Thu, 30 May 2019 04:12:31 +0000 (13:12 +0900)]
v4l2bufferpool: Free orphaned allocator resources when buffers are released
Allocator resources cannot be freed when a buffer pool is orphaned
while its buffers are in use. They should, however, be freed once those
buffers are no longer needed. This patch disposes of any buffers
belonging to an orphaned pool as they are released, and makes sure
that the allocator is cleaned up when the last buffer is returned.
Damian Hobson-Garcia [Mon, 27 May 2019 09:08:54 +0000 (18:08 +0900)]
v4l2object: Orphan buffer pool on object_stop if supported
Use V4L2 buffer orphaning, on recent kernels so that
the device can be restarted immediately with
a new buffer pool during renogatiation.
Sebastian Dröge [Wed, 22 May 2019 15:06:04 +0000 (18:06 +0300)]
splitmuxsink: Only set running time on finalizing sink element when in async-finalize mode
There is only a single sink element in async-finalize mode, and we would
keep the running time from previous fragments set in that case. As we
don't ever set the running time for the very last fragment on EOS, this
would mean that the closing time reported for the very last fragment is
the same as the closing time of the previous fragment.
Nicolas Dufresne [Tue, 14 May 2019 21:36:14 +0000 (17:36 -0400)]
rtpsession: Always keep at least one NACK on early RTCP
We recently added code to remove outdate NACK to avoid using bandwidth
for packet that have no chance of arriving on time. Though, this had a
side effect, which is that it was to get an early RTCP packet with no
feedback into it. This was pretty useless but also had a side effect,
which is that the RTX RTT value would never be updated. So we we stared
having late RTX request due to high RTT, we'd never manage to recover.
This fixes the regression by making sure we keep at least one NACK in
this situation. This is really light on the bandwidth and allow for
quick recover after the RTT have spiked higher then the jitterbuffer
capacity.
Nicolas Dufresne [Wed, 24 Apr 2019 17:47:54 +0000 (13:47 -0400)]
rtpsession: Call on-new-ssrc earlier
Right now, we may call on-new-ssrc after we have processed the first
RTP packet. This prevents properly configuring the source as some
property like "probation" are copied internally for use as a
decreasing counter. For this specific property, it prevents the
application from disabling probation on auxiliary sparse stream.
Probation is harmful on sparse streams since the probation algorithm
assume frequent and contiguous RTP packets.
Nicolas Dufresne [Wed, 24 Apr 2019 17:54:12 +0000 (13:54 -0400)]
rtpsource: Add more information to probation warning
Thiago Santos [Fri, 3 May 2019 05:14:35 +0000 (22:14 -0700)]
rtspsrc: do not try to send EOS with invalid seqnum
The second udpsrc (rtcp) might not have seen the segment event if it was
not enabled or if rtcp is not available on the server. So if the
application tries to send an EOS event it will try to set an invalid
seqnum to the event.
Sebastian Dröge [Wed, 1 May 2019 07:00:51 +0000 (10:00 +0300)]
rtprawdepay: Don't get rid of the buffer pool on FLUSH_STOP
We expect there to be a pool as long as the caps are known and
FLUSH_STOP is not resetting the caps. Getting rid of the pool would
cause assertions.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/584
Danny Smith [Fri, 8 Feb 2019 09:09:17 +0000 (10:09 +0100)]
rtpbin: Free storage when freeing session
Philippe Normand [Tue, 23 Apr 2019 09:10:01 +0000 (10:10 +0100)]
scaletempo: Advertise interleaved layout in caps templates
Scaletempo doesn't support non-interleaved layout. Not explicitely stating this
would trigger critical warnings and a caps negotiation failure when scaletempo
is used as playbin audio-filter.
Patch suggested by George Kiagiadakis <george.kiagiadakis@collabora.com>.
Fixes #591
Eunhye Choi [Wed, 17 Jul 2019 07:34:28 +0000 (16:34 +0900)]
souphttpsrc: get seekable info from dlna op code
- get seekable info from dlna op code to support
seek operation regardless of the server response code.
Change-Id: Ica14f9bed5d3121ca8cca3179ea97a7314d2d8c6
Sangchul Lee [Thu, 9 May 2019 03:35:59 +0000 (12:35 +0900)]
pulsesink: Apply individual volume ratio to volume/mute properties
It relates to the commit below.
-
82a861316c7d53940a4ba5c5ea6b80e4e9b2fbb0
- pulseutil: Add API for setting volume ratio
Change-Id: I376d2049e63c01cfe8e25d4e1d68786045cce8fc
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Sangchul Lee [Fri, 3 May 2019 02:58:14 +0000 (11:58 +0900)]
pulseutil: Add API for setting volume ratio
In Tizen, a stream has one volume type such as media, notification,
alarm. Each type is so-called volume group which has its own volume
value of a certain volume level. It is managed on the Tizen policy
module of the PulseAudio. That's why the player framework has been
using volume element instead of volume property of gstpulsesink of
the pipeline to set individual volume of the stream itself.
Here we add a function to set volume ratio for the individual volume
value via the policy module of the PulseAudio which can be with the
volume group concept.
Change-Id: I6b2cf8d4814a01970e425a4dd25b49aa883ee7e1
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
Tim-Philipp Müller [Thu, 2 May 2019 11:35:21 +0000 (12:35 +0100)]
ci: use template from 1.16 branch
Tim-Philipp Müller [Thu, 18 Apr 2019 23:23:16 +0000 (00:23 +0100)]
Release 1.16.0
Tim-Philipp Müller [Thu, 18 Apr 2019 23:23:16 +0000 (00:23 +0100)]
Update docs
Tim-Philipp Müller [Thu, 18 Apr 2019 23:23:14 +0000 (00:23 +0100)]
Update translations
Benjamin Sigonneau [Thu, 18 Apr 2019 15:14:18 +0000 (17:14 +0200)]
qmlglsink: fix compilation with Qt >= 5.5 on Windows
As of Qt >= 5.5, qmake do not link to opengl32 by default anymore. This commit adds opengl32.lib to the .pro
file so that the plugin can be build using QtCreator on Windows.
Nirbheek Chauhan [Wed, 17 Apr 2019 10:18:26 +0000 (15:48 +0530)]
meson: Build qt plugin in C++11 mode explicitly
This works implicitly most of the time, but we need to set it
explicitly for building with Android.
Guillaume Desmottes [Tue, 16 Apr 2019 09:05:06 +0000 (14:35 +0530)]
v4l2: fix use after free when handling events
The sink_event parent function may consume the event so we shouldn't use
it after having calling it.
Tim-Philipp Müller [Wed, 10 Apr 2019 23:26:58 +0000 (00:26 +0100)]
Release 1.15.90
Tim-Philipp Müller [Wed, 10 Apr 2019 23:26:58 +0000 (00:26 +0100)]
Update docs
Tim-Philipp Müller [Tue, 9 Apr 2019 22:51:22 +0000 (23:51 +0100)]
rtpulpfecdec,enc: unbreak plugin gtk-doc build in autotools
Fix doc chunks to not use that syntax for links that have the
url as description, it will be put verbatim into the xml/*.xml
file and then the expat parser will throw a syntax error like:
File "../../common/mangle-db.py", line 71, in <module>
main()
File "../../common/mangle-db.py", line 69, in main
patch (details.replace("-details", ""), os.path.basename(details))
File "../../common/mangle-db.py", line 20, in patch
doc = xml.dom.minidom.parse(related)
File "/usr/lib/python2.7/xml/dom/minidom.py", line 1918, in parse
return expatbuilder.parse(file)
File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 924, in parse
result = builder.parseFile(fp)
File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 207, in parseFile
parser.Parse(buffer, 0)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 84, column 7
Antonio Ospite [Mon, 8 Apr 2019 09:35:34 +0000 (11:35 +0200)]
rtpvrawpay: preserve GST_BUFFER_FLAG_DISCONT on the first outputted buffer
If the incoming frame buffer has GST_BUFFER_FLAG_DISCONT set this should
be preserved and set for the first output buffer too, like other
payloaders do.
Spotted with gst-validate-1.0 when adding integration tests for
rtpsession, a minimal test to reproduce the issue is:
$ gst-validate-1.0 videotestsrc num-buffers=1 ! rtpvrawpay ! identity ! fakesink
Starting pipeline
Pipeline started
warning : Buffer didn't have expected DISCONT flag333 speed: 1.000000 />
Detected on <identity0:sink>
Detected on <identity0:src>
Detected on <fakesink0:sink>
Description : Buffers after SEGMENT and FLUSH must have a DISCONT flag
Issues found: 1
=======> Test PASSED (Return value: 0)
Olivier Crête [Fri, 22 Mar 2019 16:42:14 +0000 (12:42 -0400)]
rtpulpfec*: Replace github URIs with gitlab.fdo ones
Olivier Crête [Thu, 21 Mar 2019 21:01:11 +0000 (17:01 -0400)]
rtpred*: Add example pipelines
Olivier Crête [Thu, 21 Mar 2019 20:48:37 +0000 (16:48 -0400)]
rtpulpfec*: Improve documentation
Olivier Crête [Wed, 20 Mar 2019 22:31:48 +0000 (18:31 -0400)]
rtpstorage + rtpulpfecdec: Get the storage using a query as fallback
This allows it to be used using gst-launch for easier testing.
Dan Kegel [Tue, 19 Mar 2019 13:22:29 +0000 (06:22 -0700)]
osxvideo: fix mac os 10.14 build
lockFocusIfCanDraw is deprecated in mac os 10.14. Apple suggests a
different way to do what that does, but for now, just suppress the deprecation.
There's no way to disable just that deprecation, so shut them all down.
OpenGL is also deprecated in mac os 10.14. There is a gentle way to
turn off just those deprecations (GL_SILENCE_DEPRECATION), but since
this commit turns them all off, that's moot.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/577
Nicolas Dufresne [Sun, 7 Apr 2019 16:00:49 +0000 (12:00 -0400)]
test: rtpsession: Verify on-sending-nacks callback
Nicolas Dufresne [Wed, 27 Mar 2019 20:19:15 +0000 (16:19 -0400)]
rtpsession: Allow overriding NACK packet creation
This introduce a new signal on RTSession, on-sending-nacks is emited
right before the list of seqnums to be nacked are processed and
transformed into FB Nack. This allow implementing custom nacks
handling through another mechanism with APP feedback.
Mathieu Duponchelle [Tue, 20 Nov 2018 01:45:04 +0000 (02:45 +0100)]
rtpsession: Add disable-sr-timestamp property
The Onvif Streaming Spec, in section 6.11, mandates that when
Rate-Control is disabled potential RTCP packets shall have
their timestamps set to 0.
<https://www.onvif.org/specs/stream/ONVIF-Streaming-Spec.pdf>
Philipp Zabel [Tue, 5 Mar 2019 19:57:44 +0000 (20:57 +0100)]
v4l2: remove __user define from types-compat.h
Remove the now unused __user define.