Commit graph

6587 commits

Author SHA1 Message Date
Matthew Waters
ecca6cbfd2 vulkanimage: move fence creation earlier
Fixes a critical:

GStreamer-CRITICAL **: 02:26:34.698: gst_mini_object_ref: assertion 'mini_object != NULL' failed
2019-10-28 07:22:45 +00:00
Matthew Waters
103112725c vulkan: change to clamp to edge rather than clamp to border
clamp-to-border will return the border color which is typically black,
white or transparent.  When linear filtering the edge pixels will
typeically be combined with the border color which is not typically what
we want.  Especially when color converting, this removes a green box
around the edge when converting YUV->RGB.
2019-10-28 07:22:45 +00:00
Julien Isorce
2b9c7bff45 srtpenc: also insert ssrc(s) from rtp buffers
This fixes a regression from commit "srtp: Support libsrtp2"
e9aa117200 where an internal
set of ssrc(s) was added because the libsrtp v2 keeps its
internal streams as private. But the change prevented that
ssrc(s) that not in the caps from being added to the stats.
This patch ensures that all ssrc(s) are inserted to this set
instead of only inserting those from the caps.
2019-10-25 12:04:50 -07:00
Jan Alexander Steffens (heftig)
912214e34f opencv: Don't error when unable to detect OpenCV data dir
Instead, mark OpenCV as not found. We error out later if OpenCV was
explicitly enabled.
2019-10-25 11:47:15 +00:00
Philippe Normand
b905501c55 wpe: Get rid of un-necessary frameComplete dispatchs
frameComplete() should be called only if there's a new commited frame.
2019-10-24 09:41:10 +00:00
Philippe Normand
0f03e33b03 wpe: Run frameComplete outside of images mutex scope
If the mutex is locked while running frameComplete there is a potential deadlock
bound to happen when we get a new exported images from the backend.

Fixes #1101
2019-10-24 09:41:10 +00:00
Jordan Petridis
8969f02fd5 lv2: fix build without the debug system
```
FAILED: subprojects/gst-plugins-bad/ext/lv2/b8a2ebe@@gstlv2@sha/gstlv2utils.c.o
../subprojects/gst-plugins-bad/ext/lv2/gstlv2utils.c: In function 'lv2_log_printf':
../subprojects/gst-plugins-bad/ext/lv2/gstlv2utils.c:50:3: error: attempt to use poisoned "gst_debug_log_valist"
   50 |   gst_debug_log_valist (lv2_debug, GST_LEVEL_INFO, "", "", 0, NULL, fmt, ap);
      |   ^
../subprojects/gst-plugins-bad/ext/lv2/gstlv2utils.c:50:25: error: 'lv2_debug' undeclared (first use in this function); did you mean 'g_debug'?
   50 |   gst_debug_log_valist (lv2_debug, GST_LEVEL_INFO, "", "", 0, NULL, fmt, ap);
      |                         ^~~~~~~~~
      |                         g_debug
```
2019-10-22 13:44:04 +00:00
Philippe Normand
a40476914d wpesrc: Implement load-bytes action signal 2019-10-17 08:15:44 +00:00
Philippe Normand
d7778e6a7c wpe: Rewrite wpesrc as a glbasesrc subclass
And since it no longer allocates memories itself, this fixes issues with
fakevideosink. A lot of code previously copied from gltestsrc is no longer
needed thanks to the glbasesrc super-class.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1046
2019-10-17 08:15:44 +00:00
Tim-Philipp Müller
f218ec2794 Remove autotools build system 2019-10-14 13:54:27 +01:00
Mathieu Duponchelle
75f47ee5e4 ext: add libmicrodns-based mdns device provider
The provider for now only detects and handles rtsp devices, but
more protocols should be easy to add.
2019-10-08 12:28:01 +00:00
Seungha Yang
2c394df69d hlssink2: Respect requested max-files property for decision on removing old fragments from disk
hlssink2 defined "max-files" property to decide the maximum number
of fragments which should be stored in disk. But we've not used
the property. Instead, the size has been maintained by "playlist-length".
Since "max-files" and "playlist-length" have different meaning,
the decision should be done by "max-files" property.

For example, an user might want expose only 3 fragments via playlist
but might want to keep more files than 3 in disk.
2019-10-07 14:29:57 +09:00
Matthew Waters
84718775a2 ass: avoid infinite unref loop with bad data
A classic case of not updating the next item to iterate after deleting
it from the singly linked list.

Only ever hit with a text buffer with GST_CLOCK_TIME_NONE for either the
timestamp or duration.
2019-10-07 00:07:36 +11:00
Seungha Yang
d763aeee4b hlssink,hlssink2: Ensure writing ENDLIST tag at the end
hlssink* elements could be finalized without EOS event, and in that case
the final playlist might not include the EXT-X-ENDLIST tag.
Since missing ENDLIST tag means it's live stream, but we did't intend it,
hlssink* elements should put the tag at the end.
2019-10-01 17:16:05 +09:00
olivier.crete@collabora.com
fd9dfb9d0c wayland: Add more DRM formats
Add DRM format equivalents that we were missing compared
to our caps.
2019-09-27 19:52:25 +00:00
olivier.crete@collabora.com
b393b650ab wayland: Drop big-endian version of the DRM formats
They were a big in some big-endian implementations
2019-09-27 19:52:25 +00:00
Fabian Greffrath
296e17e3f1 fluidsynth: add sf3 to soundfont search path
In Debian, soundfonts in SF3 format (i.e. the same as SF2 format but
with Ogg/Vorbis-compressed samples) are installed into
/usr/share/sounds/sf3. Soundfonts in SF3 format are supported since
FluidSynth 1.1.7 (released in Feb 2018).
2019-09-26 07:41:31 +00:00
Matthew Waters
34ff895040 vulkan: remove VkImageView from the memory
There can be multiple views per image for different subresource ranges
or planes in multi-planer images.
2019-09-25 11:11:02 +00:00
Matthew Waters
452bb72292 vkbuffer: remove buffer view from the memory
It's only really useful for texture buffers which we currently do not
use.
2019-09-25 11:11:02 +00:00
Matthew Waters
82e86573b8 vulkan: implement command buffer reuse
Using a similar design for reference counting as
GstBuffer/GstBufferPool.
2019-09-19 02:01:35 +00:00
Matthew Waters
2af2402880 vulkan: add device provider implementation 2019-09-17 13:02:44 +10:00
Matthew Waters
66ed62b794 vulkansink: attempt a context query for a device 2019-09-17 13:02:44 +10:00
Matthew Waters
5f76c84feb vulkan: split physical device from logical device 2019-09-17 13:02:44 +10:00
Matthew Waters
407dab607f vulkan: only pass the device/instance/display in to *_handle_*() functions
We don't need to change the pointer value in these functions.
2019-09-17 13:02:43 +10:00
Matthew Waters
523f4e4b50 webrtc/stats: redo considering internal sources
Internal sources seem to be rtp streams we are sending whereas
non-internal sources are the rtp streams we are receiving. Redo the
statistics with that in mind.
2019-09-12 01:06:41 +00:00
Mark Nauwelaerts
2f920a90bb wayland: gracefully handle unknown formats 2019-09-09 17:07:30 +00:00
Wonchul Lee
fbcbf36fe3 av1enc: change cpu-used range upto 5
The speed 6, 7 and 8 has been removed because it's not yet tuned
correctly.
https://aomedia.googlesource.com/aom/+/7ffbf92030baf6886c2486574cca16d60499bbb8
2019-09-06 13:41:35 +00:00
Jeffy Chen
b8946d06c7 Revert "waylandsink: Don't create throwaway empty regions"
This reverts commit 68fa80e831.

Some wayland servers, especially weston, only expect empty input
region as a request to disable input.

Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2019-09-03 13:27:12 +00:00
Sam Gigliotti
90d939ea36 webrtcbin: Fixed memory leak in gstwebrtcstats
The function _get_stats_from_ice_transport returns a string which must be
freed by the caller. However, _get_stats_from_dtls_transport was ignoring
the return value from this function, resulting in a leak.

Ran this with valgrind. Before this fix there was a leak of 40 bytes each
time this was called. After there was no leak.
2019-08-30 15:55:35 +00:00
Yeongjin Jeong
8bc5144020 vulkan: Don't dereference null pointer when printing error
When printing error message because the function failed, the GError variable
may not be used and it can be NULL.
2019-08-29 11:19:37 +00:00
Matthew Waters
d9248560e4 vulkancolorconvert: explicitly initalize swizzle arrays
Fixes uninitialized access of the indexed values larger than
the number of planes in the video format.
2019-08-28 10:34:39 +00:00
Matthew Waters
278039be06 mpeg2enc: fix werror build with clang
/usr/include/mjpegtools/mpeg2enc/ontheflyratectlpass1.hh:1:9: error: '_ONTHEFLYRATECTLPASS1_HH' is used as a header guard here, followed by #define of a different macro [-Werror,-Wheader-guard]
#ifndef _ONTHEFLYRATECTLPASS1_HH
        ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/mjpegtools/mpeg2enc/ontheflyratectlpass1.hh:2:9: note: '_ONTHELFYRATECTLPASS1_HH' is defined here; did you mean '_ONTHEFLYRATECTLPASS1_HH'?
#define _ONTHELFYRATECTLPASS1_HH
        ^~~~~~~~~~~~~~~~~~~~~~~~
        _ONTHEFLYRATECTLPASS1_HH
In file included from ../subprojects/gst-plugins-bad/ext/mpeg2enc/gstmpeg2encoder.cc:31:
/usr/include/mjpegtools/mpeg2enc/ontheflyratectlpass2.hh:1:9: error: '_ONTHEFLYRATECTLPASS2_HH' is used as a header guard here, followed by #define of a different macro [-Werror,-Wheader-guard]
#ifndef _ONTHEFLYRATECTLPASS2_HH
        ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/mjpegtools/mpeg2enc/ontheflyratectlpass2.hh:2:9: note: '_ONTHELFYRATECTLPASS2_HH' is defined here; did you mean '_ONTHEFLYRATECTLPASS2_HH'?
#define _ONTHELFYRATECTLPASS2_HH
        ^~~~~~~~~~~~~~~~~~~~~~~~
        _ONTHEFLYRATECTLPASS2_HH

/usr/include/mjpegtools/mpeg2enc/encoderparams.hh:82:1: error: struct 'RateCtl' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Werror,-Wmismatched-tags]
struct RateCtl;
^
/usr/include/mjpegtools/mpeg2enc/ratectl.hh:50:7: note: previous use is here
class RateCtl
      ^
/usr/include/mjpegtools/mpeg2enc/encoderparams.hh:82:1: note: did you mean class here?
struct RateCtl;
^~~~~~
class
2019-08-28 02:47:18 +00:00
Matthew Waters
3cb01699d4 av1enc: fix werror build with clang
../subprojects/gst-plugins-bad/ext/aom/gstav1enc.c:415:34: warning: implicit conversion from enumeration type 'GstAV1EncEndUsageMode' to different enumeration type 'enum aom_rc_mode' [-Wenum-conversion]
  av1enc->aom_cfg.rc_end_usage = DEFAULT_END_USAGE;
                               ~ ^~~~~~~~~~~~~~~~~
../subprojects/gst-plugins-bad/ext/aom/gstav1enc.c:162:41: note: expanded from macro 'DEFAULT_END_USAGE'
#define DEFAULT_END_USAGE               GST_AV1_ENC_END_USAGE_VBR
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~
2019-08-28 02:47:18 +00:00
Olivier Crête
fa842f2156 srt: Set latency property on SRT socket 2019-08-27 22:31:50 +00:00
Olivier Crête
177f1f95e1 srt: Add sender side statistics 2019-08-27 22:31:50 +00:00
Olivier Crête
54dc0b5579 srtobject: Remove pointless GMainLoop
Just use srt's blocking epoll function and fix locking while we're at it.
2019-08-27 22:31:50 +00:00
Shinya Saito
e4c4f193f2 waylandsink: Fix return type of prototype of show_frame() 2019-08-26 11:54:45 +09:00
Mathieu Duponchelle
42adb02a10 docstrings: port ulinks to markdown links 2019-08-23 20:14:12 +02:00
Matthew Waters
833c596bc5 vulkan/fullscreenrender: free the attachment descriptions
Fixes a memory leak of the attachment descriptions we receive from the
subclass.
2019-08-22 14:57:02 +10:00
Matthew Waters
837cdd598a vulkanviewconvert: perform a renegotiation on multiview mode/flag property changes
Otherwise changing the output* properties have no effect until someone else
performs a renegotiation.
2019-08-22 11:51:01 +10:00
Matthew Waters
e5d574534c shaders/view-convert: remove some debugging colours
Fixes left and right output modes.
2019-08-22 11:50:51 +10:00
Seungha Yang
15c10618a2 hlsdemux: Post error message if hlsdemux could not start decryption
_decrypt_start() failure will lead to decryption failure eventually
but catching it earlier if possible. The decrpytion start failure means
that the hls plugin was built without crypto library or crypto library
does not want to accept given key and IV.
2019-08-21 23:47:45 +09:00
Seungha Yang
98b303498a hls: Make crypto dependency optional when hls-crypto is auto
crypto libraries are not required for hlssink and hlssink2.
Also, hlsdemux with nonencrypted stream can work without crpyto.

Make an error only when users set "hls-crpyto" with non-auto option explicitly,
but no crpyto library was found.
2019-08-21 22:55:50 +09:00
Thomas Coldrick
8e8d4acf69 ext/wayland: Define libdrm_dep in meson.build 2019-08-20 14:56:48 +00:00
Nirbheek Chauhan
70a90f0e5e sctp: Fix crash on free() when using the MSVC binaries
On Windows, if libusrsctp and gstreamer are built with different
C runtimes (CRT), we cannot free memory allocated inside libusrsctp
with the `free()` function from gstreamer's CRT.

`usrsctp_freedumpbuffer()` simply calls `free()`, but because of the
way DLLs work on Windows, it will always call the free function from
the correct CRT.
2019-08-20 14:33:41 +05:30
Mathieu Duponchelle
fef8c8f7b5 iqa: fix leak of map_meta.data 2019-08-16 13:23:55 +00:00
Sebastian Dröge
92dd72b7ee cccombiner: Make use of new GstAggregator::negotiate()
Simplifies the caps handling code considerably here and removes some
spurious negotiation.
2019-08-14 17:37:59 +00:00
Doug Nazar
52f736c233 pitch: Fix race between putSamples() and setting soundtouch parameters
The various soundtouch set*() functions may cause buffer (re)allocations
which interferes with inputting the audio data.
2019-08-14 15:32:24 +00:00
David Gunzinger
e2e86658f2 webrtc: fix type of max-retransmits, make it work 2019-08-13 12:17:13 +02:00
Seungha Yang
b49724fdb6 x265enc: Enhance profile setting with fixing infinite loop condition
Don't fixate profile caps which will choose the first profile from list.
Instead, store all profiles allowed by peer and try them until x265 can
accept one of them.
2019-08-09 06:36:06 +00:00