platform/upstream/gst-plugins-good.git
3 years agov4l2videodec: Increase v4l2videodecoder rank 73/251973/1 accepted/tizen/6.0/unified/hotfix/20210121.233059 submit/tizen_6.0_hotfix/20210121.075705
Gilbok Lee [Thu, 21 Jan 2021 07:41:21 +0000 (16:41 +0900)]
v4l2videodec: Increase v4l2videodecoder rank

Change-Id: I7184c9e504b1fb093eedc3c16172fb318ec35a8a

3 years agoMerge branch 'tizen_6.0' into tizen_6.0_hotfix 72/251972/1
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

3 years ago[v4l2videodecoder] Support TBM for output buffer 71/251971/1
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>
4 years ago[v4l2] Revice log for device open failure 95/247495/1
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>
4 years agov4l2: Support additional V4L2 CIDs 94/247494/1
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>
4 years agortpv8depay: Add property for waiting until the next keyframe after packet loss 39/247439/1
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)

4 years agoavidemux: Fix coverity issue (Resource leak) 28/244128/1 accepted/tizen/6.0/unified/20201030.110342 accepted/tizen/6.0/unified/hotfix/20201102.233449 accepted/tizen/6.0/unified/hotfix/20201103.051021 accepted/tizen/unified/20200916.212652 submit/tizen/20200916.082856 submit/tizen_6.0/20201029.205502 submit/tizen_6.0_hotfix/20201102.192902 submit/tizen_6.0_hotfix/20201103.115102 tizen_6.0.m2_release
Gilbok Lee [Tue, 15 Sep 2020 07:29:40 +0000 (16:29 +0900)]
avidemux: Fix coverity issue (Resource leak)

Change-Id: I28674d2e37e814039506f08de96ae0f49b3cef25

4 years agoaacparse: Check aacparse seekable to byte, in the push mode 18/244018/4 accepted/tizen/unified/20200915.014518 submit/tizen/20200914.081919
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

4 years agov4l2src: Add new property for auto scan device feature 12/243012/5 accepted/tizen/unified/20200904.035426 submit/tizen/20200903.054554
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>
4 years agopulsesink: Unset missing stream callbacks 80/239980/1 accepted/tizen/unified/20200803.122153 submit/tizen/20200731.081305
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>
4 years agopulsesink: Add null check to fix crash 66/239966/1
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>
4 years agosouphttpsrc: Remove cookie_jar patch 33/238433/2 submit/tizen/20200728.023312
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

4 years agortspsrc: use use-rtsp-buffering property of rtpbin 25/234125/3 accepted/tizen/unified/20200723.161246 submit/tizen/20200713.061214 submit/tizen/20200722.045405
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>
4 years agoEnable VPx encoder/decoder 01/233901/4
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>
4 years agortpbin: Add use-rtsp-buffering property 28/234028/8
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>
4 years agortspsrc: increase plugin rank 27/233927/4
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>
4 years ago[v4l2src] Enable libv4l2 to use emulated format 23/228623/2 accepted/tizen/unified/20200325.055653 submit/tizen/20200324.013709
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>
4 years agoMerge "pulsesink: Add property to apply render delay automatically based on the laten... submit/tizen/20200312.101118
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

4 years agov4l2: disable v4l2 device probing 61/227261/1 submit/tizen/20200311.075310
Gilbok Lee [Wed, 11 Mar 2020 04:20:06 +0000 (13:20 +0900)]
v4l2: disable v4l2 device probing

Change-Id: I61f81c8afbcc6649100b282a834ff849787f1a85

4 years agopulsesink: Add property to apply render delay automatically based on the latency... 89/225889/4
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>
4 years agov4l2video: decrease plugin rank 21/226021/1 accepted/tizen/unified/20200304.124009 submit/tizen/20200221.064623 submit/tizen/20200302.032418
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

4 years agoMerge branch 'tizen_gst_1.16.2' into tizen 92/225592/1
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

4 years agoaacparse: Add codec_data in caps, even if stream-format is adts 34/225234/1
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)

4 years agoqtdemux: Fix the problem that framerate don't include in caps 33/224833/1 tizen_gst_1.16.2
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

4 years agosouphttpsrc: fix coverity issue 03/224503/1 accepted/tizen/unified/20200213.121605 submit/tizen/20200211.080304
Eunhye Choi [Tue, 11 Feb 2020 06:30:34 +0000 (15:30 +0900)]
souphttpsrc: fix coverity issue

Change-Id: If2e63b989241207cfbf4277c5d5aed1653e5b6ed

4 years agoMerge branch 'upstream/1.16' into tizen_gst_1.16.2 37/223037/2
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

5 years agoRelease 1.16.2 upstream/1.16 1.16.2
Tim-Philipp Müller [Tue, 3 Dec 2019 11:06:36 +0000 (11:06 +0000)]
Release 1.16.2

5 years agoUpdate docs
Tim-Philipp Müller [Tue, 3 Dec 2019 11:06:35 +0000 (11:06 +0000)]
Update docs

5 years agoUpdate translations
Tim-Philipp Müller [Tue, 3 Dec 2019 11:06:34 +0000 (11:06 +0000)]
Update translations

5 years agortpL16depay: don't crash if data is not modulo channels*width
Havard Graff [Wed, 30 Nov 2016 14:55:01 +0000 (15:55 +0100)]
rtpL16depay: don't crash if data is not modulo channels*width

5 years agovp9dec: Fix broken 4:4:4 8bits decoding
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
5 years agortpsession: add locking for clear-pt-map
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...

5 years agowavparse: Fix push mode ignoring audio with a size smaller than segment buffer
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
```

5 years agowavparse: Fix ignoring of last chunk in push mode
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.

5 years agov4l2bufferpool: Queue number of allocated buffers to capture
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.

5 years agov4l2object: Workaround bad TRY_FMT colorimetry implementation
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.

5 years agoaacparse: fix wrong offset of adts channel
aogun [Mon, 4 Nov 2019 09:18:30 +0000 (17:18 +0800)]
aacparse: fix wrong offset of adts channel

5 years agojpegdec: Fix incorrect logic in EOI tag detection
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.

5 years agovideocrop: Also update the coordinate when in-place
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

5 years agovpx: Error out if enabled and no features found
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

5 years agojpegdec: don't overwrite the last valid line
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.

5 years agov4l2videodec: ensure pool exists before orphaning it
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.

5 years agois a typo here? gstv4l2object.c
HuQian [Wed, 25 Sep 2019 12:36:32 +0000 (12:36 +0000)]
is a typo here? gstv4l2object.c

5 years agov4l2videoenc: fix wrong type cast
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

5 years agov4l2videoenc: fix type conversion errors
Fuwei Tang [Fri, 11 Oct 2019 02:33:20 +0000 (10:33 +0800)]
v4l2videoenc: fix type conversion errors

5 years agoRelease 1.16.1
Tim-Philipp Müller [Mon, 23 Sep 2019 10:09:38 +0000 (11:09 +0100)]
Release 1.16.1

5 years agoUpdate docs
Tim-Philipp Müller [Mon, 23 Sep 2019 10:09:38 +0000 (11:09 +0100)]
Update docs

5 years agoUpdate translations
Tim-Philipp Müller [Mon, 23 Sep 2019 10:09:37 +0000 (11:09 +0100)]
Update translations

5 years agoalpha: Fix one_over_kc calculation
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.

5 years agovalgrind: suppress Cond error coming from gnutls
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

5 years agosupp: Ignore leaks caused by shout/sethostent
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.

5 years agosouphttpsrc: Fix incompatible type build warning
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)'

5 years agortpjitterbuffer: max-dropout-time gets cast to int32
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.

5 years agortpjitterbuffer: Clear clock master before unreffing
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.

5 years agoqtdemux: Use empty-array safe way to cleanup GPtrArray
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

5 years agov4l2: Fix type compatibility issue with glibc 2.30
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

5 years agortpfunnel: forward correct segment when switching pad
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

5 years agogtkglsink: fix crash when widget is resized after element destruction
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

5 years agojpegdec: Don't dereference NULL input state if we have no caps in TIME segments
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.

5 years agortp: opuspay: fix memory leak in gst_rtp_opus_pay_setcaps.
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.

5 years agov4l2videodec: Fix drain() function return type
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.

5 years agortpssrcdemux: Avoid taking streamlock out-of-band
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.

5 years agov4l2bufferpool: return TRUE when buffer pool orphaning succeeds
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.

5 years agov4l2bufferpool: Free orphaned allocator resources when buffers are released
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.

5 years agov4l2object: Orphan buffer pool on object_stop if supported
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.

5 years agosplitmuxsink: Only set running time on finalizing sink element when in async-finalize...
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.

5 years agortpsession: Always keep at least one NACK on early RTCP
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.

5 years agortpsession: Call on-new-ssrc earlier
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.

5 years agortpsource: Add more information to probation warning
Nicolas Dufresne [Wed, 24 Apr 2019 17:54:12 +0000 (13:54 -0400)]
rtpsource: Add more information to probation warning

5 years agortspsrc: do not try to send EOS with invalid seqnum
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.

5 years agortprawdepay: Don't get rid of the buffer pool on FLUSH_STOP
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

5 years agortpbin: Free storage when freeing session
Danny Smith [Fri, 8 Feb 2019 09:09:17 +0000 (10:09 +0100)]
rtpbin: Free storage when freeing session

5 years agoscaletempo: Advertise interleaved layout in caps templates
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

5 years agosouphttpsrc: get seekable info from dlna op code 50/210250/3 accepted/tizen_5.5_unified_mobile_hotfix tizen_5.5_mobile_hotfix tizen_5.5_tv accepted/tizen/5.5/unified/20191031.005754 accepted/tizen/5.5/unified/mobile/hotfix/20201027.062832 accepted/tizen/unified/20190729.081000 submit/tizen/20190723.041031 submit/tizen/20190725.100239 submit/tizen_5.5/20191031.000006 submit/tizen_5.5_mobile_hotfix/20201026.185106 tizen_5.5.m2_release
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

5 years agopulsesink: Apply individual volume ratio to volume/mute properties 55/205755/2 accepted/tizen/unified/20190513.082534 submit/tizen/20190510.023327
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>
5 years agopulseutil: Add API for setting volume ratio 14/205414/2
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>
5 years agoci: use template from 1.16 branch
Tim-Philipp Müller [Thu, 2 May 2019 11:35:21 +0000 (12:35 +0100)]
ci: use template from 1.16 branch

5 years agoRelease 1.16.0
Tim-Philipp Müller [Thu, 18 Apr 2019 23:23:16 +0000 (00:23 +0100)]
Release 1.16.0

5 years agoUpdate docs
Tim-Philipp Müller [Thu, 18 Apr 2019 23:23:16 +0000 (00:23 +0100)]
Update docs

5 years agoUpdate translations
Tim-Philipp Müller [Thu, 18 Apr 2019 23:23:14 +0000 (00:23 +0100)]
Update translations

5 years agoqmlglsink: fix compilation with Qt >= 5.5 on Windows
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.

5 years agomeson: Build qt plugin in C++11 mode explicitly
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.

5 years agov4l2: fix use after free when handling events
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.

5 years agoRelease 1.15.90
Tim-Philipp Müller [Wed, 10 Apr 2019 23:26:58 +0000 (00:26 +0100)]
Release 1.15.90

5 years agoUpdate docs
Tim-Philipp Müller [Wed, 10 Apr 2019 23:26:58 +0000 (00:26 +0100)]
Update docs

5 years agortpulpfecdec,enc: unbreak plugin gtk-doc build in autotools
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

5 years agortpvrawpay: preserve GST_BUFFER_FLAG_DISCONT on the first outputted buffer
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)

5 years agortpulpfec*: Replace github URIs with gitlab.fdo ones
Olivier Crête [Fri, 22 Mar 2019 16:42:14 +0000 (12:42 -0400)]
rtpulpfec*: Replace github URIs with gitlab.fdo ones

5 years agortpred*: Add example pipelines
Olivier Crête [Thu, 21 Mar 2019 21:01:11 +0000 (17:01 -0400)]
rtpred*: Add example pipelines

5 years agortpulpfec*: Improve documentation
Olivier Crête [Thu, 21 Mar 2019 20:48:37 +0000 (16:48 -0400)]
rtpulpfec*: Improve documentation

5 years agortpstorage + rtpulpfecdec: Get the storage using a query as fallback
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.

5 years agoosxvideo: fix mac os 10.14 build
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

5 years agotest: rtpsession: Verify on-sending-nacks callback
Nicolas Dufresne [Sun, 7 Apr 2019 16:00:49 +0000 (12:00 -0400)]
test: rtpsession: Verify on-sending-nacks callback

5 years agortpsession: Allow overriding NACK packet creation
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.

5 years agortpsession: Add disable-sr-timestamp property
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>

5 years agov4l2: remove __user define from types-compat.h
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.

5 years agov4l2object: use opRGB colorspace and xfer func defines
Philipp Zabel [Tue, 5 Mar 2019 19:53:47 +0000 (20:53 +0100)]
v4l2object: use opRGB colorspace and xfer func defines

AdobeRGB defines have been renamed to opRGB in the kernel headers,
use the new names.

5 years agov4l2videodec: support orphaning
Philipp Zabel [Thu, 24 Jan 2019 15:12:13 +0000 (16:12 +0100)]
v4l2videodec: support orphaning

Recent kernels allow REQBUFS(0) on a queue that still has buffers in
use (mmapped or exported via dmabuf), orphaning all buffers on the queue.
If this is supported, the v4l2videodec element does not have to send a
drain request downstream.

5 years agov4l2bufferpool: support orphaning
Philipp Zabel [Thu, 24 Jan 2019 15:12:13 +0000 (16:12 +0100)]
v4l2bufferpool: support orphaning

Now that the v4l2allocator allows orphaning the V4L2 buffer queue, add
support for orphaning in the v4l2bufferpool. gst_v4l2_buffer_pool_orphan
can be used as a replacement for gst_v4l2_buffer_pool_stop, without
having to wait for buffers to be returned to the pool.

5 years agov4l2allocator: support orphaning
Philipp Zabel [Thu, 24 Jan 2019 15:12:13 +0000 (16:12 +0100)]
v4l2allocator: support orphaning

Recent kernels allow REQBUFS(0) on a queue that still has buffers in
use (mmapped or exported via dmabuf), orphaning all buffers on the queue.

Orphaning the allocator causes it to release all buffers with
REQBUFS(0), even if they are still in use. An orphaned allocator can
only be stopped. It can not be restarted or create new buffers.