Commit graph

23341 commits

Author SHA1 Message Date
Matthew Waters
c5c69dcc55 qt: don't #include platform specific gstglcontext_*.h headers
They aren't public headers
2018-02-07 20:15:35 +11:00
Guillaume Desmottes
58ce84a3ea opencv: fix OPENCV_PATH_NAME when using meson
Meson was checking for $prefix/OpenCV but was then defining
OPENCV_PATH_NAME with 'OpenCv' rather than 'OpenCV'.

https://bugzilla.gnome.org/show_bug.cgi?id=793212
2018-02-06 13:06:33 +00:00
Sean DuBois
fc4fe1c10e aom: Drop pointless cast from av1enc
https://bugzilla.gnome.org/show_bug.cgi?id=791674
2018-02-05 15:34:49 +02:00
Sean DuBois
86abe6b1e6 aom: Fix all definite leaks in av1enc
Track if the encoder has been inited, and cleanup if needed. Also unref
input_state if has been set

https://bugzilla.gnome.org/show_bug.cgi?id=791674
2018-02-05 15:34:49 +02:00
Sean DuBois
327586bd26 aom: Consistent naming between av1dec and av1enc
https://bugzilla.gnome.org/show_bug.cgi?id=791674
2018-02-05 15:34:49 +02:00
Sean DuBois
3a8d50a355 aom: Implement flush for av1dec
https://bugzilla.gnome.org/show_bug.cgi?id=791674
2018-02-05 10:09:48 +02:00
Tim-Philipp Müller
4d0b06f42c autotools: use -fno-strict-aliasing where supported
https://bugzilla.gnome.org/show_bug.cgi?id=769183
2018-02-05 08:26:16 +01:00
Matthew Waters
18156a76fb tests: add a test for the dtls{enc,dec} elements 2018-02-05 17:44:33 +11:00
Matthew Waters
eaef193d08 dtls: drop upstream segment and stream-start events
Fixes tests with GstHarness

We will push our own from the srcpad task.
2018-02-05 17:44:33 +11:00
Matthew Waters
dc452aa799 dtls: don't leak the system clock
Obtain and release it as needed.
2018-02-05 17:44:33 +11:00
Matthew Waters
18a62b144d dtlsenc: fix typo in is-client property description 2018-02-05 17:44:33 +11:00
Mathieu Duponchelle
ce98e7b87b adaptivedemux: reject segment seeks
While #782140 can stay open for actually handling these,
the fact is currently adaptivedemux does not handle segment
seeks, and as such should not accept them.

https://bugzilla.gnome.org/show_bug.cgi?id=784655
2018-02-02 16:59:54 +01:00
Matthew Waters
1894293d63 webrtcbin: an element that handles the transport aspects of webrtc connections
SDP's are generated and consumed according to the W3C PeerConnection API
available from https://www.w3.org/TR/webrtc/

The SDP is either created initially from the connected
sink pads/attached transceivers as in the case of generating an offer or
intersected with the connected sink pads/attached transceivers as in
the case for creating an answer.  In both cases, the rtp payloaded streams
sent by the peer are exposed as separate src pads.

The implementation supports trickle ICE, RTCP muxing, reduced size RTCP.

With contributions from:
Nirbheek Chauhan <nirbheek@centricular.com>
Mathieu Duponchelle <mathieu@centricular.com>
Edward Hervey <edward@centricular.com>

https://bugzilla.gnome.org/show_bug.cgi?id=792523
2018-02-02 15:02:21 +11:00
Matthew Waters
94a7bf9ede dtls: remove reliance on a default GMainContext/Loop
By removing the indirection to the main loop completely when receiving
the peer certificate. For reference, the on-decoder-key signal does not
have a redirection.
2018-02-01 23:25:18 +11:00
Omar Akkila
c365ab7e66 netsim: fix format errors for different platforms
https://bugzilla.gnome.org/show_bug.cgi?id=793073
2018-02-01 11:10:50 +00:00
Tim-Philipp Müller
4167b02050 configure: fix opengl api conditional
Fixes build of openglmixers plugin due to mismatch between
build system conditional USE_OPENGL and define in gstglconfig.h
2018-01-31 16:10:39 +00:00
Tim-Philipp Müller
b19e3d8cf3 configure: fix OpenGL API detection
And don't build gl mosaic element unconditionally.
2018-01-31 13:11:04 +00:00
Tim-Philipp Müller
bd37da2de4 autotools: fix build if OpenGL support is not available
https://bugzilla.gnome.org/show_bug.cgi?id=793039
2018-01-31 13:11:04 +00:00
Víctor Manuel Jáquez Leal
f6cb16ab8c gdpdepay: don't use allocator if it has custom alloc
gdpdepay element uses the decide_allocation to fetch the downstream
allocator. Nonetheless it is possible that allocate uses a custom
alloc function, which is not usable by gdpdepay, crashing later the
application when the allocater buffer is NULL.

This patch checks for the allocator flags and reset it if the
allocator has a custom alloc function.

https://bugzilla.gnome.org/show_bug.cgi?id=789476
2018-01-31 14:03:36 +01:00
Víctor Manuel Jáquez Leal
f04b20e59e gdpdepay: don't allocation query if caps aren't fixed
When querying downstream for allocation, and the source caps hasn't
set its caps, using ANY by default, it raises a critical message in
console:

CRITICAL **: gst_video_info_from_caps: assertion 'gst_caps_is_fixed (caps)' failed

This patch bails out decide_allocation() if the caps aren't fixed.

https://bugzilla.gnome.org/show_bug.cgi?id=789476
2018-01-31 14:03:36 +01:00
Nirbheek Chauhan
538ccb6093 wasapi: Correctly set ringbuffer segsize/segtotal
This will set the actual-latency-time and actual-buffer-time of the sink
and source.

We completely ignore the latency-time/buffer-time values set
on the element because WASAPI is happiest when it is reading/writing at
the default period. Improving this will likely require the use of the
IAudioClient3 interfaces which are not available in MinGW yet.

https://bugzilla.gnome.org/show_bug.cgi?id=792897
2018-01-31 14:58:21 +05:30
Nirbheek Chauhan
ec6a10ed06 wasapi: Implement a device provider for probing
Currently only does probing and does not handle messages from
endpoints/devices. In the future we want to do proper monitoring which
is well-supported in WASAPI.

https://bugzilla.gnome.org/show_bug.cgi?id=792897
2018-01-31 14:58:21 +05:30
Nirbheek Chauhan
d6d31064b4 wasapi: Implement support for >2 channels
We need to parse the WAVEFORMATEXTENSIBLE structure, figure out what
positions the channels have (if they are positional), and reorder them
as necessary.

https://bugzilla.gnome.org/show_bug.cgi?id=792897
2018-01-31 14:58:21 +05:30
Tim-Philipp Müller
f75c7823dd meson: use -fno-strict-aliasing where supported
https://bugzilla.gnome.org/show_bug.cgi?id=769183
2018-01-30 20:35:10 +00:00
Sreerenj Balachandran
cedc7d4def codecparser: vp8: Fix range decoder init
According to the vp8 spec, the first partition (size can be derived from
the frame header) should have all compressed header information and we
implemented gst codecparser based on that. But it doesn't seem to be the
case with some of the streams (#792773) and libvpx
works fine because it uses the whole frame size (not the first partition
size) to initialize the bool decoder.

https://bugzilla.gnome.org/show_bug.cgi?id=792773
2018-01-30 11:34:58 -09:00
Nicolas Dufresne
a7c207630c kmssink: Make render rectangle property controllable
https://bugzilla.gnome.org/show_bug.cgi?id=792798
2018-01-30 10:02:14 +00:00
Vincent Penquerc'h
782fb43887 glvideomixer: fix vertex_buffer leak
We call the base class first as this will remove the pad from
the aggregator, thus stopping misc callbacks from being called,
one of which (process_textures) will recreate the vertex_buffer
if it is destroyed

https://bugzilla.gnome.org/show_bug.cgi?id=760873
2018-01-29 09:58:00 +00:00
Jan Alexander Steffens (heftig)
e9aa117200 srtp: Support libsrtp2
For libsrtp 1, add defines that translate the new namespaced identifiers
to the old unnamespaced ones. Also move the code for setting and getting
a stream's ROC into two compat functions that match libsrtp2's API.

It seems that libsrtp2 properly supports changing the ROC without having
to touch the sequence numbers afterwards, given that srtp_set_stream_roc
sets a pending_roc field, so the entire roc_changed dance should not be
needed anymore. The compat functions for libsrtp 1 just contain our
preexisting hacks, however, so it's still needed there.

libsrtp2 has no means of discovering the streams in the session, so to
create the stats structure we need to iterate over our own set of SSRCs.
For this we also need to re-add the previously removed ssrcs_set to the
encoder.

https://bugzilla.gnome.org/show_bug.cgi?id=776901
2018-01-29 09:58:11 +02:00
Tim-Philipp Müller
49d30c901d rtmpsink: don't crash if there's streamheader field in the caps
Fix regression when used in combination with new flvmux which was
ported to GstAggregator, and which sends plain video/x-flv caps
before sending full caps that include streamheaders.
2018-01-28 14:28:33 +00:00
Justin Kim
297f7e4f04 ahc: enable autofocus callback
It should be enabled to set autofocus properly, but
it seems to be commented out mistakenly from the first commit.

https://bugzilla.gnome.org/show_bug.cgi?id=790945
2018-01-26 10:13:00 +00:00
Sean DuBois
2b03bc021c aom: Add direct casts for GstAV1Enc and GstAV1Dec
https://bugzilla.gnome.org/show_bug.cgi?id=791674
2018-01-26 11:12:06 +02:00
Sean DuBois
8b27637b4a aom: Deadline was removed from AV1
https://bugzilla.gnome.org/show_bug.cgi?id=791674
2018-01-26 11:12:06 +02:00
Sean DuBois
c89f6107cd aom: Fix leak in av1dec
AOM Decoder wasn't being destroyed in stop

https://bugzilla.gnome.org/show_bug.cgi?id=791674
2018-01-26 11:12:06 +02:00
Sean DuBois
0900cbd0a2 aom: Put av1enc config debugging under gst_av1_enc_debug namespace
https://bugzilla.gnome.org/show_bug.cgi?id=791674
2018-01-26 11:12:06 +02:00
Sebastian Dröge
357a5746b0 directsoundsrc: Add missing \ in multi-line #define 2018-01-25 21:23:09 +02:00
Sebastian Dröge
b174a91a1a directsoundsrc: Add support for a DeviceProvider
https://bugzilla.gnome.org/show_bug.cgi?id=792782
2018-01-25 20:20:08 +02:00
Nirbheek Chauhan
c8c32a7200 wasapi: Fix some leaks, bugs, and compiler warnings
Also improve logging.
2018-01-25 17:57:23 +05:30
Guillaume Desmottes
a1b271d2ec h26{4,5}parse: expose chroma format and bit depth in caps
This information could be used for example to pick a decoder supporting
a specific chroma and/or bit depth, like 4:2:2 10 bits.
It can also be used to inform earlier decoder about the format it is
about to decode.

https://bugzilla.gnome.org/show_bug.cgi?id=792039
2018-01-24 11:50:54 -05:00
Tim-Philipp Müller
07c8417799 nvenc: add "gop-size" property
This also changes the default gop size from 30 to 75 frames.

https://bugzilla.gnome.org/show_bug.cgi?id=781410
2018-01-24 10:39:40 +00:00
Tim-Philipp Müller
bea0ea66be nvenc: mark properties that can be changed at runtime accordingly
https://bugzilla.gnome.org/show_bug.cgi?id=781410
2018-01-24 10:21:48 +00:00
Ole André Vadla Ravnås
59365e3d7b nvenc: Add support for dynamic bitrate/preset reconfiguration
Useful for dynamically updating bitrate in live scenarios.

https://bugzilla.gnome.org/show_bug.cgi?id=781410
2018-01-24 10:17:58 +00:00
Ole André Vadla Ravnås
bc92b10164 nvenc: Add support for I420
https://bugzilla.gnome.org/show_bug.cgi?id=781410
2018-01-24 09:30:49 +00:00
Jun Xie
3f87a9dd7f netsim: fix misleading packet delay log
packet delay time shall be calculated by ready_time minus current time

https://bugzilla.gnome.org/show_bug.cgi?id=791838
2018-01-24 00:22:06 +00:00
Mathieu Duponchelle
99f646b009 videoaggregatorpad: implement skip_buffer
Skip buffers from sources with a framerate higher than the output
framerate.

https://bugzilla.gnome.org/show_bug.cgi?id=781928
2018-01-23 20:19:38 +01:00
Tim-Philipp Müller
2a40ab6ad6 decklink: don't crash if there are no decklink devices
Fixes generic/states check.
2018-01-23 14:49:51 +00:00
Tim-Philipp Müller
9bb905620c decklink: don't limit number of devices to 16
There is no fixed limitation for the number of devices on the
decklink API side according to BlackMagic. Many PC motherboards
are able support 6 decklink cards each with up to 8 inputs so
a limit of 16 might well be too low.

https://bugzilla.gnome.org/show_bug.cgi?id=777239
2018-01-23 14:14:35 +00:00
Tim-Philipp Müller
c7e34a0b2f Update for renamed aggregator pad API
https://bugzilla.gnome.org/show_bug.cgi?id=791204
2018-01-23 09:01:00 +00:00
Tim-Philipp Müller
cfe030ad1b meosn: curl: also check for and use libssh2 if available 2018-01-22 18:55:06 +00:00
Sebastian Dröge
b691700f5e directsoundsrc: Don't dynamically load one DirectSound symbol at runtime
Just link statically to it, like for all other DirectSound symbols.
2018-01-22 15:24:56 +02:00
Nirbheek Chauhan
1450851095 wasapi: Rewrite most of the code to make it work
Both the source and the sink elements were broken in a number of ways:

* prepare() was assuming that the format was always S16LE 2ch 44.1KHz.
  We now probe the preferred format with GetMixFormat().
* Device initialization was done with the wrong buffer size
  (buffer_time is in microseconds, not nanoseconds).
* sink_write() and src_read() were just plain wrong and would never
  write or read anything useful.
* Some functions in prepare() were always returning FALSE which meant
  trying to use the elements would *always* fail.
* get_caps() and delay() were not implemented at all.

TODO: support for >2 channels
TODO: pro-audio low-latency
TODO: SPDIF and other encoded passthroughs

Three new properties are now implemented: role, mute, and device.

* 'role' designates the stream role of the initialized device, see:
   https://msdn.microsoft.com/en-us/library/windows/desktop/dd370842(v=vs.85).aspx
* 'device' is a system-wide GUIDesque string for a specific device.
* 'mute' is a sink property and simply mutes it.

On my Windows 8.1 system, the lowest latency that works is:

  wasapisrc buffer-time=20000
  wasapisink buffer-time=10000

aka, 20ms and 10ms respectively. These values are close to the lowest
possible with the IAudioClient interface. Further improvements require
porting to IAudioClient2 or IAudioClient3.

https://docs.microsoft.com/en-us/windows-hardware/drivers/audio/low-latency-audio
2018-01-22 14:18:53 +05:30