Commit graph

23293 commits

Author SHA1 Message Date
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
Tim-Philipp Müller
92400a3b69 tests: camerabin: skip checks if we don't have encoders for the default format
https://bugzilla.gnome.org/show_bug.cgi?id=767863
2018-01-20 15:49:35 +00:00
Tim-Philipp Müller
e62eb34bfc tests: ipcpipeline: fix struct initialisation warnings with clang
Use init macros to avoid gst-indent making a mess of it.

https://bugzilla.gnome.org/show_bug.cgi?id=787980
2018-01-17 12:06:29 +00:00
Tim-Philipp Müller
0409d7d0fa tests: remove test that's never been ported to 1.x 2018-01-16 11:36:05 +00:00
Jun Xie
e9240762ed hlsdemux: fix memory leak while updating master playlist
new_master needs to be freed if current playlist is not a master playlist

https://bugzilla.gnome.org/show_bug.cgi?id=792146
2018-01-16 08:49:04 +01:00
Tim-Philipp Müller
944f347d00 lv2: fix inverted boolean properties
https://bugzilla.gnome.org/show_bug.cgi?id=791330
2018-01-15 20:01:06 +00:00
Edward Hervey
5d8d1d359c check: Update gitignore 2018-01-11 11:49:06 +01:00
Edward Hervey
6c2fc31012 mxfdemux: Remove useless check
Any modification of ret in that "while (ret == GST_FLOW_OK)" loop will
break (and cause it to stop the iteration).

CID #1427095
2018-01-11 11:41:33 +01:00
Edward Hervey
c755ad5032 kateenc: Refactoring for readability and leak fixing
Instead of a massive if/else/if/else/if/else/...:
* Use a common cleanup path for allocated items just before leaving
  the function (which will be free-d only if we're not dealing with
  a delayed SPU).
* "goto" that cleanup path wherever needed

CID #1427096
CID #1427114
2018-01-11 11:38:25 +01:00
Víctor Manuel Jáquez Leal
568c552ac0 msdk: change plugin's description
There are not only encoders nowadays, there are decoders too and a
postprocessor in the future.
2018-01-11 11:29:38 +01:00
Sreerenj Balachandran
b6c26919df msdk: init the debug category for mpeg2dec
https://bugzilla.gnome.org/show_bug.cgi?id=792260
2018-01-10 18:24:07 -09:00
Sreerenj Balachandran
7536d12095 msdk: Add mpeg2 decoder
https://bugzilla.gnome.org/show_bug.cgi?id=792260
2018-01-10 10:40:24 -09:00
Olivier Crête
83380de808 srt: The pkgconfig is "srt", not "libsrt"
Also, always use the pkgconfig file instead of falling back
2018-01-09 18:11:52 -05:00
Olivier Crête
b7bd446fa8 srt: Include srt.h inside object header
Otherwise, newer GCC complains about now having sockaddr defined in
the header.
2018-01-09 18:10:04 -05:00
Philippe Normand
0c14a92c28 player: doc update for set_subtitle_uri()
A call to this function without enabling the subtitle track has no effect.
2018-01-07 17:03:10 +00:00
Vivia Nikolaidou
b5ff71fc3c decklinkaudiosrc: Extrapolate stream/hw reference timestamps when video frame is missing
Sometimes we might get an audio packet without a corresponding video
frame. In these cases, the stream and hardware reference timestamps
would be missing, because they're called on the video frame. Instead of
potentially breaking stuff downstream that might depend on these, we now
extrapolate them.

https://bugzilla.gnome.org/show_bug.cgi?id=792042
2018-01-04 15:51:16 +02:00
Vivia Nikolaidou
a3a7d2e0ff decklink: Detect gaps on incoming stream times, issue warnings
When we receive a video or audio buffer, we calculate the next stream
time based on the current stream time + buffer duration. If the next
buffer's stream time is after that, we issue a warning.

This happens because the stream time incoming from Decklink should be
really constant and without gaps. If there is a gap, it means that
something went wrong, e.g. the internal buffer pool is empty (too many
buffers queued up downstream).

https://bugzilla.gnome.org/show_bug.cgi?id=781776
2018-01-04 15:43:17 +02:00
Vivia Nikolaidou
42a03a8124 Revert "WIP: Revert "Revert "decklink: Detect gaps on incoming stream times, issue warnings"""
This reverts commit 8dceeb5ccd.
2018-01-04 15:41:51 +02:00
Vivia Nikolaidou
c7a60ed909 Revert "WIP: Revert "Revert "debugutils: Added new jitterer element"""
This reverts commit a401cb9a61.
2018-01-04 15:41:50 +02:00
Vivia Nikolaidou
f042e57d4e Revert "WIP: Revert "Revert "timecodestamper: LTC from audio"""
This reverts commit e0be05dc70.
2018-01-04 15:41:49 +02:00
Vivia Nikolaidou
7ecf3347d1 Revert "WIP: Revert "Revert "timecodestamper: Modify ltc-add to tc-add"""
This reverts commit 2f9da0ab59.
2018-01-04 15:41:48 +02:00
Vivia Nikolaidou
8ee1534b80 Revert "decklinkaudiosrc: Extrapolate stream/hw reference timestamps when video frame is missing"
This reverts commit 6af863916a.
2018-01-04 15:41:44 +02:00
Vivia Nikolaidou
6af863916a decklinkaudiosrc: Extrapolate stream/hw reference timestamps when video frame is missing
Sometimes we might get an audio packet without a corresponding video
frame. In these cases, the stream and hardware reference timestamps
would be missing, because they're called on the video frame. Instead of
potentially breaking stuff downstream that might depend on these, we now
extrapolate them.

https://bugzilla.gnome.org/show_bug.cgi?id=792042
2018-01-04 13:54:37 +02:00
Vivia Nikolaidou
2f9da0ab59 WIP: Revert "Revert "timecodestamper: Modify ltc-add to tc-add""
This reverts commit 05426d9298.
2018-01-04 13:54:37 +02:00
Vivia Nikolaidou
e0be05dc70 WIP: Revert "Revert "timecodestamper: LTC from audio""
This reverts commit 1998ccf1fb.
2018-01-04 13:54:37 +02:00
Vivia Nikolaidou
a401cb9a61 WIP: Revert "Revert "debugutils: Added new jitterer element""
This reverts commit ccc1624d09.
2018-01-04 13:54:37 +02:00
Vivia Nikolaidou
8dceeb5ccd WIP: Revert "Revert "decklink: Detect gaps on incoming stream times, issue warnings""
This reverts commit 07819afda4.
2018-01-04 13:54:37 +02:00
Edward Hervey
80b17c179a openh264dec: Remove useless check
We are sure to have a frame at this point

CID #1427138
2018-01-03 16:07:24 +01:00
Edward Hervey
c4b0bdb556 hlssink2: Remove useless if statement
message will always be present

CID #1409853
2018-01-03 15:15:25 +01:00
Edward Hervey
203d5867ea kateenc: Fix memory leak in error cases
CID #1427096
CID #1427114
2018-01-03 12:15:01 +01:00
Justin Kim
1da40cdc0f srt: Remove platform dependent socket headers
SRT modules entrust `gnetworking.h` with finding right headers
for the platforms.

https://bugzilla.gnome.org/show_bug.cgi?id=792123
2018-01-03 10:41:45 +00:00
Edward Hervey
7ecb3dc917 nalutils: Fix Exponential-Golomb 'ue' parsing
The algorithm we use only supports up to a maximum exponent of 31
(for a maximum resulting of 2**32 -1)

CID #1427097
2018-01-02 15:37:32 +01:00
Tim-Philipp Müller
e6fe51a3ac opencv: allow all future 3.4.x versions
Fix-up for previous patch which I modified incorrectly.

https://bugzilla.gnome.org/show_bug.cgi?id=792114
2018-01-02 11:43:39 +00:00
Nicola Murino
a30247a4ff opencv: allow compilation against 3.4.x
https://bugzilla.gnome.org/show_bug.cgi?id=792114
2018-01-02 11:30:17 +00:00
Philippe Normand
13363f2388 player: transfer ownership of info properties
The previous code would emit GObject critical warnings when the info properties
are NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=791982
2017-12-27 15:28:44 +00:00
Justin Kim
17121ebc57 srtp: get ssrc for Application-Defined RTCP Packet
Application-defined RTCP(204) packets also have a ssrc in their header.
To find a valid stream from the packet, the ssrc should be used.

https://bugzilla.gnome.org/show_bug.cgi?id=791955
2017-12-27 09:16:08 -06:00
Tim-Philipp Müller
ef557b5667 meson: skip translations if gettext is not available 2017-12-26 13:52:18 +01:00
Tim-Philipp Müller
0ecac8f68a Fix typo in gstreamer-bad-audio-1.0.pc
https://bugzilla.gnome.org/show_bug.cgi?id=791910
2017-12-24 11:36:01 +01:00
Tim-Philipp Müller
88c89d2f63 gl: local libs should come first in Makefile.am
And keep consistent order in CFLAGS and LIBS.
2017-12-23 12:53:39 +01:00
Mark Nauwelaerts
f7f694837e gl: arrange for finding headers and libs that have moved to -base
In file included from ../../../gst-plugins-bad/ext/gl/gstopengl.c:47:0:
../../../gst-plugins-bad/ext/gl/gstglmixerbin.h:25:29: fatal error: gst/video/video.h: No such file or directory
2017-12-23 12:29:03 +01:00
Nicolas Dufresne
191c8742d3 festival: Don't forward all queries
This fixes issues where wavparse would query the file size upstream
and assert because the file size is way smaller then what the WAVE
header says. This patch disable or cane a handful of queries that
make no sense to forward.

https://bugzilla.gnome.org/show_bug.cgi?id=791811
2017-12-20 14:01:56 -05:00
Edward Hervey
12f8410cd2 audioaggregator: Don't leak pads
all audioaggregator subclasses were leaking the first sink pad :)
2017-12-20 15:03:44 +01:00
Jun Xie
26cd1f108e adaptivedemux: fix pending_segment log
pending_segment shall be logged as GST_PTR_FORMAT, it's an event

https://bugzilla.gnome.org/show_bug.cgi?id=791813
2017-12-20 14:20:55 +02:00
Olivier Crête
e19e02db93 shmsink: Block in preroll_wait on unlock
The correct behaviour of anything stuck in the ->render() function
between ->unlock() and ->unlock_stop() is to call
gst_base_sink_wait_preroll() and only return an error if this returns an
error, otherwise, it must continue where it left off!

https://bugzilla.gnome.org/show_bug.cgi?id=774950
2017-12-19 17:41:43 -05:00
Mathieu Duponchelle
536cb12577 audioaggregator: implement input conversion
https://bugzilla.gnome.org/show_bug.cgi?id=786344
2017-12-19 23:39:37 +01:00
Marcin Lewandowski
9a128603c9 smhsink: Check return values of functions working on memory
https://bugzilla.gnome.org/show_bug.cgi?id=768530
2017-12-19 17:32:19 -05:00
Tim-Philipp Müller
f4b9d8c299 applemedia: don't include private cocoa gl header 2017-12-19 21:35:31 +00:00
Olivier Crête
599dd8c72c gtk example: Fix cflags in Makefile.am 2017-12-19 16:22:52 -05:00
Tim-Philipp Müller
17b95aad48 gl: enable openglmixers plugin in autotools again too 2017-12-19 19:23:43 +00:00