Haihao Xiang [Wed, 19 Dec 2018 02:44:50 +0000 (10:44 +0800)]
msdkvpp: don't update pads' info if nothing have changed
U. Artie Eoff [Fri, 4 Jan 2019 19:57:52 +0000 (11:57 -0800)]
msdkenc: break out of flush frames loop on error
In general, we should assume any unhandled error is
non-recoverable.
In the flush frames loop, some error states can cause us
to never increment the task and therefore we get stuck
in an infinite loop and generate GST_ELEMENT_ERROR
over and over again. This eventually consumes all
system memory and triggers OOM. Thus, assume the worst
and break out of the loop upon the first "unhandled" error.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/859
Nirbheek Chauhan [Fri, 4 Jan 2019 13:06:43 +0000 (18:36 +0530)]
wasapi: Fix double call to Start when resetting the element
When either the source or sink goes from PLAYING -> NULL -> PLAYING,
we call _reset() which sets client_needs_restart, and then we call
prepare() which calls IAudioClient_Start(), so we don't need to call
it again in src_read() or sink_write(). Unlike when we're just going
PLAYING -> PAUSED -> PLAYING.
Sebastian Dröge [Thu, 3 Jan 2019 13:49:26 +0000 (15:49 +0200)]
wasapisink: Don't call CoUninitialize() twice in unprepare()
It has to be symmetric with CoInitialize(), otherwise everything else
will fail.
Sebastian Dröge [Wed, 2 Jan 2019 15:18:58 +0000 (17:18 +0200)]
decklinkvideosink: Don't forget to unref clock after usage
And don't unref a clock that is potentially NULL.
Tim-Philipp Müller [Mon, 31 Dec 2018 12:09:42 +0000 (12:09 +0000)]
webrtc: include stdlib.h for atoi()
Fixes #857
Seungha Yang [Sun, 30 Dec 2018 13:31:39 +0000 (22:31 +0900)]
tests: Enable more tests on Windows
Seungha Yang [Sun, 30 Dec 2018 13:33:03 +0000 (22:33 +0900)]
tests: Remove compositor test
It's moved to -base and no more part of -bad
Seungha Yang [Sun, 30 Dec 2018 13:31:02 +0000 (22:31 +0900)]
tests: Remove pointless unistd include
Tim-Philipp Müller [Thu, 27 Dec 2018 16:52:47 +0000 (17:52 +0100)]
Remove openglmixers plugin, moved to -base
Merged into the existing opengl plugin in -base.
Tim-Philipp Müller [Thu, 27 Dec 2018 12:41:05 +0000 (13:41 +0100)]
Remove compositor plugin which was moved to -base
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/138
Tim-Philipp Müller [Wed, 26 Dec 2018 16:54:21 +0000 (17:54 +0100)]
Remove GstVideoAggregator, moved into libgstvideo in -base
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/137
Tim-Philipp Müller [Tue, 25 Dec 2018 13:16:36 +0000 (14:16 +0100)]
opencv: fix disting of new header files
Fixes distcheck.
Tim-Philipp Müller [Mon, 8 Oct 2018 22:45:28 +0000 (23:45 +0100)]
stereo: remove plugin which has been merged into audiofx in -good
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/457
Seungha Yang [Tue, 25 Dec 2018 07:10:57 +0000 (16:10 +0900)]
msdk: Fix invalid return type build warning
void function cannot have return value
gst-plugins-bad/sys/msdk/gstmsdkbufferpool.c(332): warning C4098:
'gst_msdk_buffer_pool_release_buffer': ...
Justin Kim [Mon, 24 Dec 2018 14:05:55 +0000 (23:05 +0900)]
openal: Fix AL header path for Mac OS X
OpenAL.framework doesn't provide 'alext.h'.
Thus, openal is enabled only if the dependency
is set by pkg-config.
fixes: #852
Philippe Normand [Sat, 22 Dec 2018 17:39:44 +0000 (18:39 +0100)]
player: Logging fix for updated audio info
Bitrate was logged a second time instead of the max_bitrate.
Sebastian Dröge [Thu, 20 Dec 2018 08:12:42 +0000 (10:12 +0200)]
timecodestamper: Don't use deprecated API
Matthew Waters [Tue, 18 Dec 2018 02:50:43 +0000 (13:50 +1100)]
webrtc/receive-bin: block pads before dtlssrtpdec:
Fixes SSL errors in fast-start scenarios and whenever media stream may
be received before an answer is set.
Matthew Waters [Tue, 18 Dec 2018 02:32:02 +0000 (13:32 +1100)]
webrtcbin: only change the receive state after setting the dtls-client
Doing so before will cause SSL errors with fast-start implementations
like Chrome or if media data arrives before an answer.
Matthew Waters [Tue, 18 Dec 2018 02:31:00 +0000 (13:31 +1100)]
webrtc: A couple of documentation fixes
set-*-description only takes the combined GstWebRTCSessionDescription
object
Sebastian Dröge [Sun, 16 Dec 2018 09:02:50 +0000 (11:02 +0200)]
decklinkvideosink: Fix support for raw CEA608 input and add support for raw CEA708 input
The former was only considering the first byte pair, for the latter we
have to convert raw CEA708 cc_data into CDP.
Sebastian Dröge [Thu, 13 Dec 2018 12:27:25 +0000 (14:27 +0200)]
ccconverter: Add unit test
Sebastian Dröge [Wed, 12 Dec 2018 12:59:50 +0000 (14:59 +0200)]
closedcaption: Add ccconverter element that can convert between different types of Closed Caption formats
Xavier Claessens [Tue, 18 Dec 2018 20:25:58 +0000 (15:25 -0500)]
Fix build when we have tinyalsa but not its header
Seungha Yang [Tue, 18 Dec 2018 13:07:48 +0000 (22:07 +0900)]
tests: Re-enable isoff test on Windows
... and drop libxml2 dependency since it never be used by
both test and gstisoff.
Seungha Yang [Sun, 16 Dec 2018 13:46:02 +0000 (22:46 +0900)]
tests: Fix build with MSVC
Seungha Yang [Tue, 18 Dec 2018 12:16:43 +0000 (21:16 +0900)]
meson: Prefer to use join_paths() over '/'
... to avoid mixing '/' and '\' in a path string on Windows.
Seungha Yang [Fri, 7 Dec 2018 14:22:08 +0000 (23:22 +0900)]
tests: Enable unit test on Windows
Allow run some unit tests on Windows.
* Add dependency explicitly for some test cases, otherwise plugins couldn't be
loaded on uninstalled environment of Windows.
* Add missing GST_PLUGIN_LOADING_WHITELIST on meson build.
Nicolas Dufresne [Tue, 6 Nov 2018 22:07:52 +0000 (22:07 +0000)]
kmssink: Accept underscore in property
Otherwise sdi_mode and similar properties would be canonicalised to
sdi-mode.
Guillaume Desmottes [Tue, 18 Dec 2018 14:41:09 +0000 (15:41 +0100)]
kmssink: fix tmp_kmsmem leaks
configure_mode_setting() keeps a ref on tmp_kmsmem which is released in
gst_kms_sink_show_frame().
But if for some reason configure_mode_setting() is re-called before
showing a frame or if none is showed this memory was leaked.
Tim-Philipp Müller [Tue, 18 Dec 2018 00:34:44 +0000 (00:34 +0000)]
Remove acmmp3dec and acmenc plugins
ACM is an ancient legacy API, and there's no point in
keeping it around for a licensed mp3 decoder now that
mp3 patents have expired and we have a decoder in -good.
We didn't ship this in cerbero anyway. If there's a good
case for the AAC encoder (which is LC only anyway) someone
should write a new plugin based on current APIs, that can
actually be built out of the box.
Fixes #850
Tim-Philipp Müller [Mon, 17 Dec 2018 18:58:52 +0000 (18:58 +0000)]
meson: fix opencv=disabled case if opencv is available on the system
ext/opencv/meson.build:103:2: ERROR: Unknown variable "gstopencv_dep".
Tim-Philipp Müller [Mon, 17 Dec 2018 11:18:06 +0000 (11:18 +0000)]
meson: wildmidi detection fixes
Need at least 0.4.2 apparently.
ext/wildmidi/meson.build:11:2: ERROR: String '' cannot be converted to int
Jonathan Karlsson [Mon, 17 Dec 2018 07:43:57 +0000 (08:43 +0100)]
curlhttpsink: free content type before assigning it
Not doing this would result in a memory leak.
Jonathan Karlsson [Mon, 17 Dec 2018 07:07:26 +0000 (08:07 +0100)]
curlbasesink: cleanup transfer immediately when done
Jan Alexander Steffens (heftig) [Wed, 5 Dec 2018 00:29:18 +0000 (01:29 +0100)]
fdkaac: Syntax tweaks to increase readability
Mostly move some assignments out of conditionals that gst-indent
completely destroys.
Jan Alexander Steffens (heftig) [Tue, 4 Dec 2018 17:33:09 +0000 (18:33 +0100)]
fdkaacdec: Enable 8-channel playback
The decoder seems to default to 6 channels max, downmixing 7.1 to 5.1.
Disable the channel limit to expose all channels to GStreamer.
In addition, none of the standard configurations use ACT_SIDE channels.
The rear channels of the 7.1 configuration have to be taken from
ACT_BACK. See the table in aacenc_lib.h, reproduced here:
----------------------------------------------------------------------------------------
ChannelMode | ChCfg | Height | front_El | side_El | back_El | lfe_El
-----------------------+-------+--------+---------------+----------+----------+---------
MODE_1 | 1 | NORM | SCE | | |
MODE_2 | 2 | NORM | CPE | | |
MODE_1_2 | 3 | NORM | SCE, CPE | | |
MODE_1_2_1 | 4 | NORM | SCE, CPE | | SCE |
MODE_1_2_2 | 5 | NORM | SCE, CPE | | CPE |
MODE_1_2_2_1 | 6 | NORM | SCE, CPE | | CPE | LFE
MODE_1_2_2_2_1 | 7 | NORM | SCE, CPE, CPE | | CPE | LFE
MODE_6_1 | 11 | NORM | SCE, CPE | | CPE, SCE | LFE
MODE_7_1_BACK | 12 | NORM | SCE, CPE | | CPE, CPE | LFE
-----------------------+-------+--------+---------------+----------+----------+---------
MODE_7_1_TOP_FRONT | 14 | NORM | SCE, CPE | | CPE | LFE
| | TOP | CPE | | |
-----------------------+-------+--------+---------------+----------+----------+---------
MODE_7_1_REAR_SURROUND | 0 | NORM | SCE, CPE | | CPE, CPE | LFE
MODE_7_1_FRONT_CENTER | 0 | NORM | SCE, CPE, CPE | | CPE | LFE
----------------------------------------------------------------------------------------
- NORM: Normal Height Layer. - TOP: Top Height Layer. - BTM: Bottom Height Layer.
- SCE: Single Channel Element. - CPE: Channel Pair. - LFE: Low Frequency Element.
Restores 8 channels to
https://www2.iis.fraunhofer.de/AAC/7.1auditionOutLeader_v2_rtb.mp4
Jan Alexander Steffens (heftig) [Tue, 4 Dec 2018 17:06:26 +0000 (18:06 +0100)]
fdkaacenc: Add support for v2.0.0 and its configurations
These are MPEG-standard configurations so should be checked first,
before the PCE clones added by v0.1.4.
Jan Alexander Steffens (heftig) [Tue, 4 Dec 2018 17:04:28 +0000 (18:04 +0100)]
fdkaacenc: Add support for MPEG configuration 7
Jan Alexander Steffens (heftig) [Tue, 4 Dec 2018 17:04:06 +0000 (18:04 +0100)]
fdkaacenc: Add a description of each configuration
Jan Alexander Steffens (heftig) [Tue, 4 Dec 2018 16:57:15 +0000 (17:57 +0100)]
fdkaacenc: Prefer REAR for surround channels
We (currently?) prefer to use the REAR positions for what MPEG calls
"surround" channels.
Tim-Philipp Müller [Sun, 16 Dec 2018 23:45:32 +0000 (23:45 +0000)]
Remove daala plugin
Not so useful now that all effort is focused on AV1 instead.
Was only ever enabled with --enable-experimental anyway.
Fixes #848
Sebastian Dröge [Mon, 17 Dec 2018 10:30:27 +0000 (12:30 +0200)]
meson: Add libsinc to the CFLAGS
Otherwise gst-i18n-plugin.h can't be found.
Tim-Philipp Müller [Mon, 17 Dec 2018 00:26:47 +0000 (00:26 +0000)]
meson: build openni2 plugin
Tim-Philipp Müller [Mon, 17 Dec 2018 00:19:37 +0000 (00:19 +0000)]
meson: build openmpt plugin
Tim-Philipp Müller [Mon, 17 Dec 2018 00:11:16 +0000 (00:11 +0000)]
meson: build openexr plugin
Tim-Philipp Müller [Mon, 17 Dec 2018 00:00:11 +0000 (00:00 +0000)]
meson: build openal plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 20:27:56 +0000 (20:27 +0000)]
meson: build sndfile plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 20:18:11 +0000 (20:18 +0000)]
meson: install freeverb preset file
Tim-Philipp Müller [Sun, 16 Dec 2018 20:13:08 +0000 (20:13 +0000)]
meson: build voamrwbenc plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 20:02:07 +0000 (20:02 +0000)]
meson: build teletext plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 18:45:53 +0000 (18:45 +0000)]
meson: build modplug plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 18:07:48 +0000 (18:07 +0000)]
meson: build wildmidi plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 17:35:58 +0000 (17:35 +0000)]
meson: build dc1394 plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 01:05:25 +0000 (01:05 +0000)]
meson: build ofa plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 00:56:50 +0000 (00:56 +0000)]
meson: build gme plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 00:41:23 +0000 (00:41 +0000)]
meson: build vdpau plugin
Tim-Philipp Müller [Sat, 15 Dec 2018 20:02:48 +0000 (20:02 +0000)]
meson: build tinyalsa plugin
Tim-Philipp Müller [Sat, 15 Dec 2018 18:24:11 +0000 (18:24 +0000)]
meson: build vcdsrc plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 23:35:58 +0000 (23:35 +0000)]
Remove spc plugin
Replaced by gme plugin. Fixes #467
Sebastian Dröge [Tue, 11 Dec 2018 12:12:13 +0000 (14:12 +0200)]
closedcaption: Use new API for converting GstVideoCaptionType from/to GstCaps
Sebastian Dröge [Mon, 10 Dec 2018 13:54:49 +0000 (15:54 +0200)]
closedcaption: Replace GST_VIDEO_CAPTION_TYPE_CEA608_IN_CEA708_RAW with CEA608_S334_1A
As a side-effect we can now actually store the line offset in the
line21dec element, and have to perform fewer transformations in the
decklink elements (which were also buggy as they assumed a single byte
triplet per meta).
Sebastian Dröge [Mon, 10 Dec 2018 13:43:19 +0000 (15:43 +0200)]
line21dec: If CCs are not found at the previous line, reset and search from the beginning again
Sebastian Dröge [Mon, 10 Dec 2018 13:42:04 +0000 (15:42 +0200)]
line21dec: Don't read more lines than the height of the frame
Nicola Murino [Fri, 14 Dec 2018 18:55:32 +0000 (19:55 +0100)]
removesilence: add libm to meson.build
Nicola Murino [Fri, 14 Dec 2018 16:09:01 +0000 (17:09 +0100)]
removesilence: reset filter on start and on segment events
Nicola Murino [Fri, 14 Dec 2018 14:48:09 +0000 (15:48 +0100)]
removesilence: improve documentation
Nicola Murino [Mon, 26 Nov 2018 15:40:01 +0000 (16:40 +0100)]
removesilence: add threshold property
silence thresold was hardcoded to -60 dB, now it is configurable
using this new property
Closes #63
Nicola Murino [Mon, 26 Nov 2018 15:39:16 +0000 (16:39 +0100)]
removesilence: add properties to detect silence only after minimum silence time/buffers
Closes #63
Nicola Murino [Mon, 26 Nov 2018 15:38:37 +0000 (16:38 +0100)]
removesilence: add silent property to control bus message notifications
Closes #63
Nicola Murino [Mon, 26 Nov 2018 15:37:40 +0000 (16:37 +0100)]
removesilence: post bus messages when silence is detected/finished
Closes #63
Nicola Murino [Mon, 26 Nov 2018 15:36:18 +0000 (16:36 +0100)]
removesilence: add squash property
allows to output buffers without timestamp gap when silence is removed
Closes #63
Justin Kim [Fri, 14 Dec 2018 03:22:51 +0000 (12:22 +0900)]
sys: applemedia: meson: Add dependencies by using appleframeworks
gst-build#13
Wonchul Lee [Mon, 3 Dec 2018 07:18:32 +0000 (16:18 +0900)]
waylandsink: Avoid race condition on multi-threaded client
When waylandsink is used on some other thread than the main wayland
client thread, the waylandsink implementation is vulnerable to a
condition related to registry and surface events which handled in
seperated event queue.
The race that may happen is that after a proxy is created, but
before the queue is set, events meant to be emitted via the yet to
set queue may already have been queued on the wrong queue.
Wayland 1.11 introduced new API that allows creating a proxy
wrappper which can help to avoid this race condition.
Wonchul Lee [Mon, 3 Dec 2018 02:59:46 +0000 (11:59 +0900)]
examples/wayland: Add wayland multi-thread client example
This is for testing race condition with multi-thread wayland client
environment. The race condition will be resolved with wayland proxy
wrapper API when handling event queue.
Seungha Yang [Sat, 1 Dec 2018 13:42:53 +0000 (22:42 +0900)]
h26{4,5}parse: Don't confuse nal of codec_data with frame
vps/sps/pps in codec_data shouldn't be considered as inband data.
Otherwise, h26{4,5}parse never insert them to nal when transform
(packetized to byte-stream) use case
Matthew Waters [Tue, 20 Nov 2018 10:09:52 +0000 (04:09 -0600)]
nvdec: Rely on upstream's value for interlace-mode with hevc
The nvdec API doesn't seem to produce interlacing information with hevc
streams so rely on upstreams value for interlace-mode
Haihao Xiang [Wed, 12 Dec 2018 07:24:18 +0000 (15:24 +0800)]
msdk: change the wait time for encoder and vpp
In MSDK samples, the wait time for encoder, decoder and vpp is
300000. Let's set the wait time to the same value in msdk plugin
Haihao Xiang [Wed, 12 Dec 2018 05:45:34 +0000 (13:45 +0800)]
msdk: correct the error message
It is VPP session instead of Encoder session
Haihao Xiang [Wed, 12 Dec 2018 04:52:46 +0000 (12:52 +0800)]
msdk: check the created context against NULL pointer
gst_msdk_context_new_with_parent() may return NULL
Haihao Xiang [Tue, 11 Dec 2018 07:54:51 +0000 (15:54 +0800)]
msdk: decrease the reference count of object
Otherwise there are reference leaks if failed to clone or join a
mfx session
Haihao Xiang [Tue, 11 Dec 2018 07:04:12 +0000 (15:04 +0800)]
msdk: assign the returned value to status variable
Othervise the subsequent check will use the stale value of status
variable
Xiang, Haihao [Tue, 27 Nov 2018 07:56:03 +0000 (15:56 +0800)]
msdkh265enc: output main-10 bitstream if the input is P010_10LE
Tested on KBL using the following command:
gst-launch-1.0 videotestsrc num_buffers=100 ! video/x-raw,format=P010_10LE ! \
msdkh265enc ! filesink location=a.hevc
This fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/829
Xiang, Haihao [Tue, 27 Nov 2018 11:22:16 +0000 (19:22 +0800)]
msdkh265enc: add P010_10LE to the sink pad template
Xiang, Haihao [Tue, 27 Nov 2018 07:55:51 +0000 (15:55 +0800)]
msdkh265enc: re-add the sink pad template
We will add more profiles in the sink caps of msdkh265enc, so let
msdkh265enc re-add the sink pad template. Note this change doesn't
impact any capability
Xiang, Haihao [Tue, 27 Nov 2018 08:08:42 +0000 (16:08 +0800)]
msdkenc: handle P010_10LE input format
Note it is up to each codec to support P010_10LE format
Xiang, Haihao [Tue, 27 Nov 2018 07:52:56 +0000 (15:52 +0800)]
msdkenc: use macro GST_VIDEO_INFO_FORMAT if possible
Matthew Waters [Wed, 28 Nov 2018 04:28:15 +0000 (22:28 -0600)]
decklink: calculate the decklink output time from the internal clock
Fixes the time calculations when dealing with a slaved clock (as
will occur with more than one decklink video sink), when performing
flushing seeks causing stalls in the output timeline, pausing.
Tighten up the calculations by relying solely on the internal time
(from the internal clock) for determining when to schedule display
frames instead attempting to track pause lengths from the external
clock and converting to internal time. This results in a much easier
offset calculation for choosing the output time and ensures that the
clock is always advancing when we need it to.
This is fixup to the 'monotonically increasing output timestamps' goal
in:
bf849e9a69442f7a6f9d4f0a1ef30d5a8009f689
Tim-Philipp Müller [Thu, 29 Nov 2018 19:22:51 +0000 (19:22 +0000)]
tests: mpegvideoparse: add unit test for CEA-708 closed captions extraction
Tim-Philipp Müller [Wed, 28 Nov 2018 17:05:33 +0000 (17:05 +0000)]
mpegvideoparse: extract CEA-708 closed captions
Sebastian Dröge [Mon, 10 Dec 2018 14:14:07 +0000 (16:14 +0200)]
mpegtsmux: Change unit test to not generate zero-sized buffers ever
Sebastian Dröge [Mon, 10 Dec 2018 14:13:37 +0000 (16:13 +0200)]
mpegtsmux: Handle zero-sized buffers correctly without going into an infinite loop
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/844
Sebastian Dröge [Thu, 29 Nov 2018 11:49:04 +0000 (13:49 +0200)]
player: Don't crash if playbin is not available but kill the process cleanly
Matthew Waters [Fri, 7 Dec 2018 05:52:39 +0000 (16:52 +1100)]
androidmedia: also install java sources
As needed by our ndk-build integration
Sebastian Dröge [Wed, 5 Dec 2018 17:01:40 +0000 (19:01 +0200)]
ccextractor: Copy over timecode meta from the input buffers to the outgoing caption buffers
Formats like SCC and MCC work based on timecodes so ideally we pass
through the timecodes when writing them.
Sebastian Dröge [Wed, 5 Dec 2018 16:46:52 +0000 (18:46 +0200)]
ccextractor: Include framerate in the closedcaption caps
It depends on the framerate how many cc_data byte pairs are allowed per
frame, and the framerate is also needed for converting into the CDP or
MCC format as the framerate is part of the header metadata.
Patricia Muscalu [Wed, 5 Dec 2018 16:55:14 +0000 (17:55 +0100)]
curlbasesink: Rename curl transfer thread
Some systems restrict the length of thread names to 16 bytes.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/838
Philippe Normand [Wed, 5 Dec 2018 13:10:11 +0000 (13:10 +0000)]
wpe: Add a source element acting as a Web Browser based on WebKit WPE
The wpe element is used to produce a video texture representing a web page
rendered off-screen by WPE. This element can be used to overlay HTML on top of
another video stream for instance.
Jonathan Karlsson [Mon, 19 Nov 2018 10:39:50 +0000 (11:39 +0100)]
curlhttpsink: Enable content type changes
Makes it possible to change content type without having to
reinitialize the element, typically after reset.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/merge_requests/41