platform/upstream/gstreamer.git
5 years agotests: Enable unit test 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.

5 years agokmssink: Accept underscore in property
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.

5 years agokmssink: fix tmp_kmsmem leaks
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.

5 years agoRemove acmmp3dec and acmenc plugins
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

5 years agomeson: fix opencv=disabled case if opencv is available on the system
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".

5 years agomeson: wildmidi detection fixes
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

5 years agocurlhttpsink: free content type before assigning it
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.

5 years agocurlbasesink: cleanup transfer immediately when done
Jonathan Karlsson [Mon, 17 Dec 2018 07:07:26 +0000 (08:07 +0100)]
curlbasesink: cleanup transfer immediately when done

5 years agofdkaac: Syntax tweaks to increase readability
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.

5 years agofdkaacdec: Enable 8-channel playback
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

5 years agofdkaacenc: Add support for v2.0.0 and its configurations
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.

5 years agofdkaacenc: Add support for MPEG configuration 7
Jan Alexander Steffens (heftig) [Tue, 4 Dec 2018 17:04:28 +0000 (18:04 +0100)]
fdkaacenc: Add support for MPEG configuration 7

5 years agofdkaacenc: Add a description of each configuration
Jan Alexander Steffens (heftig) [Tue, 4 Dec 2018 17:04:06 +0000 (18:04 +0100)]
fdkaacenc: Add a description of each configuration

5 years agofdkaacenc: Prefer REAR for surround channels
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.

5 years agoRemove daala plugin
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

5 years agomeson: Add libsinc to the CFLAGS
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.

5 years agomeson: build openni2 plugin
Tim-Philipp Müller [Mon, 17 Dec 2018 00:26:47 +0000 (00:26 +0000)]
meson: build openni2 plugin

5 years agomeson: build openmpt plugin
Tim-Philipp Müller [Mon, 17 Dec 2018 00:19:37 +0000 (00:19 +0000)]
meson: build openmpt plugin

5 years agomeson: build openexr plugin
Tim-Philipp Müller [Mon, 17 Dec 2018 00:11:16 +0000 (00:11 +0000)]
meson: build openexr plugin

5 years agomeson: build openal plugin
Tim-Philipp Müller [Mon, 17 Dec 2018 00:00:11 +0000 (00:00 +0000)]
meson: build openal plugin

5 years agomeson: build sndfile plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 20:27:56 +0000 (20:27 +0000)]
meson: build sndfile plugin

5 years agomeson: install freeverb preset file
Tim-Philipp Müller [Sun, 16 Dec 2018 20:18:11 +0000 (20:18 +0000)]
meson: install freeverb preset file

5 years agomeson: build voamrwbenc plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 20:13:08 +0000 (20:13 +0000)]
meson: build voamrwbenc plugin

5 years agomeson: build teletext plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 20:02:07 +0000 (20:02 +0000)]
meson: build teletext plugin

5 years agomeson: build modplug plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 18:45:53 +0000 (18:45 +0000)]
meson: build modplug plugin

5 years agomeson: build wildmidi plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 18:07:48 +0000 (18:07 +0000)]
meson: build wildmidi plugin

5 years agomeson: build dc1394 plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 17:35:58 +0000 (17:35 +0000)]
meson: build dc1394 plugin

5 years agomeson: build ofa plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 01:05:25 +0000 (01:05 +0000)]
meson: build ofa plugin

5 years agomeson: build gme plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 00:56:50 +0000 (00:56 +0000)]
meson: build gme plugin

5 years agomeson: build vdpau plugin
Tim-Philipp Müller [Sun, 16 Dec 2018 00:41:23 +0000 (00:41 +0000)]
meson: build vdpau plugin

5 years agomeson: build tinyalsa plugin
Tim-Philipp Müller [Sat, 15 Dec 2018 20:02:48 +0000 (20:02 +0000)]
meson: build tinyalsa plugin

5 years agomeson: build vcdsrc plugin
Tim-Philipp Müller [Sat, 15 Dec 2018 18:24:11 +0000 (18:24 +0000)]
meson: build vcdsrc plugin

5 years agoRemove spc 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

5 years agoclosedcaption: Use new API for converting GstVideoCaptionType from/to GstCaps
Sebastian Dröge [Tue, 11 Dec 2018 12:12:13 +0000 (14:12 +0200)]
closedcaption: Use new API for converting GstVideoCaptionType from/to GstCaps

5 years agoclosedcaption: Replace GST_VIDEO_CAPTION_TYPE_CEA608_IN_CEA708_RAW with CEA608_S334_1A
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).

5 years agoline21dec: If CCs are not found at the previous line, reset and search from the begin...
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

5 years agoline21dec: Don't read more lines than the height of the frame
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

5 years agoremovesilence: add libm to meson.build
Nicola Murino [Fri, 14 Dec 2018 18:55:32 +0000 (19:55 +0100)]
removesilence: add libm to meson.build

5 years agoremovesilence: reset filter on start and on segment events
Nicola Murino [Fri, 14 Dec 2018 16:09:01 +0000 (17:09 +0100)]
removesilence: reset filter on start and on segment events

5 years agoremovesilence: improve documentation
Nicola Murino [Fri, 14 Dec 2018 14:48:09 +0000 (15:48 +0100)]
removesilence: improve documentation

5 years agoremovesilence: add threshold property
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

5 years agoremovesilence: add properties to detect silence only after minimum silence time/buffers
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

5 years agoremovesilence: add silent property to control bus message notifications
Nicola Murino [Mon, 26 Nov 2018 15:38:37 +0000 (16:38 +0100)]
removesilence: add silent property to control bus message notifications

Closes #63

5 years agoremovesilence: post bus messages when silence is detected/finished
Nicola Murino [Mon, 26 Nov 2018 15:37:40 +0000 (16:37 +0100)]
removesilence: post bus messages when silence is detected/finished

Closes #63

5 years agoremovesilence: add squash property
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

5 years agosys: applemedia: meson: Add dependencies by using appleframeworks
Justin Kim [Fri, 14 Dec 2018 03:22:51 +0000 (12:22 +0900)]
sys: applemedia: meson: Add dependencies by using appleframeworks

gst-build#13

5 years agowaylandsink: Avoid race condition on multi-threaded client
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.

5 years agoexamples/wayland: Add wayland multi-thread client example
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.

5 years agoh26{4,5}parse: Don't confuse nal of codec_data with frame
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

5 years agonvdec: Rely on upstream's value for interlace-mode with hevc
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

5 years agomsdk: change the wait time for encoder and vpp
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

5 years agomsdk: correct the error message
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

5 years agomsdk: check the created context against NULL pointer
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

5 years agomsdk: decrease the reference count of object
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

5 years agomsdk: assign the returned value to status variable
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

5 years agomsdkh265enc: output main-10 bitstream if the input is P010_10LE
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

5 years agomsdkh265enc: add P010_10LE to the sink pad template
Xiang, Haihao [Tue, 27 Nov 2018 11:22:16 +0000 (19:22 +0800)]
msdkh265enc: add P010_10LE to the sink pad template

5 years agomsdkh265enc: re-add 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

5 years agomsdkenc: handle P010_10LE input format
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

5 years agomsdkenc: use macro GST_VIDEO_INFO_FORMAT if possible
Xiang, Haihao [Tue, 27 Nov 2018 07:52:56 +0000 (15:52 +0800)]
msdkenc: use macro GST_VIDEO_INFO_FORMAT if possible

5 years agodecklink: calculate the decklink output time from the internal clock
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

5 years agotests: mpegvideoparse: add unit test for CEA-708 closed captions extraction
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

5 years agompegvideoparse: extract CEA-708 closed captions
Tim-Philipp Müller [Wed, 28 Nov 2018 17:05:33 +0000 (17:05 +0000)]
mpegvideoparse: extract CEA-708 closed captions

5 years agompegtsmux: Change unit test to not generate zero-sized buffers ever
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

5 years agompegtsmux: Handle zero-sized buffers correctly without going into an infinite loop
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

5 years agoplayer: Don't crash if playbin is not available but kill the process cleanly
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

5 years agoandroidmedia: also install java sources
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

5 years agoccextractor: Copy over timecode meta from the input buffers to the outgoing caption...
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.

5 years agoccextractor: Include framerate in the closedcaption caps
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.

5 years agocurlbasesink: Rename curl transfer thread
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

5 years agowpe: Add a source element acting as a Web Browser based on WebKit WPE
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.

5 years agocurlhttpsink: Enable content type changes
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

5 years agofdkaacdec: Use WAV channel mapping instead of interleave setting
Jan Alexander Steffens (heftig) [Wed, 5 Dec 2018 09:10:39 +0000 (10:10 +0100)]
fdkaacdec: Use WAV channel mapping instead of interleave setting

The latter is going away in libfdk-aac 2.0.0. Instead, MPEG-style output
is always non-interleaved and WAV-style output is always interleaved.
Earlier libfdk-aac also defaults interleaving accordingly.

Since our reordering looks at the associated PCE indices instead of the
actual channel order, we're agnostic to the mapping.

For https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/825

5 years agofdkaacenc: Remove MODE_2_1
Jan Alexander Steffens (heftig) [Tue, 4 Dec 2018 16:54:42 +0000 (17:54 +0100)]
fdkaacenc: Remove MODE_2_1

This is not a standard mode and no longer supported by fdk-aac 2.0.0.

For https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/825

5 years agoAutomatic update of common submodule
Thibault Saunier [Wed, 5 Dec 2018 20:24:20 +0000 (17:24 -0300)]
Automatic update of common submodule

From cd1dee0 to 59cb678

5 years agomeson: Add missing gio dep to webrtcbin plugin
Nirbheek Chauhan [Wed, 5 Dec 2018 14:28:44 +0000 (19:58 +0530)]
meson: Add missing gio dep to webrtcbin plugin

It's usually pulled in implicitly through gstsdp_dep, but it's
actually a private dependency there. Fixes a build failure on Windows
with newer Meson.

5 years agokmssink: Avoiding get_property to take ownership of object members
Naveen Cherukuri [Tue, 4 Dec 2018 10:45:22 +0000 (16:15 +0530)]
kmssink: Avoiding get_property to take ownership of object members

Double free will happen if application frees string retuned by _get_property

5 years agomsdk: add missing breaks
Xiang, Haihao [Wed, 28 Nov 2018 04:39:58 +0000 (12:39 +0800)]
msdk: add missing breaks

5 years agomsdk: fix the wrong operator
Xiang, Haihao [Wed, 28 Nov 2018 03:15:28 +0000 (11:15 +0800)]
msdk: fix the wrong operator

The condition is for video memory only, so the operator should be
& instead of |

5 years agoh265parse: process SEI recovery point
Guillaume Desmottes [Thu, 27 Sep 2018 13:33:32 +0000 (15:33 +0200)]
h265parse: process SEI recovery point

Similar change as the on I did in h264parse. We want to process SEI
recovery point as keyframe so muxers will mark them as seek points and
decoders will be able to start decoding from them rather than waiting
for an IDR.

https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/790

5 years agoh265parser: parse SEI recovery point
Guillaume Desmottes [Thu, 27 Sep 2018 13:33:32 +0000 (15:33 +0200)]
h265parser: parse SEI recovery point

Copied the implementation from h264parser and adapted it to the HEVC
syntax.

https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/790

5 years agoh265parse: parse SEI messages
Guillaume Desmottes [Wed, 19 Sep 2018 07:07:10 +0000 (09:07 +0200)]
h265parse: parse SEI messages

Don't do anything with them yet. I just copied the parsing and
processing logic from h264parse.

https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/790

5 years agoh264parse: mark SEI Recovery Point as keyframes
Guillaume Desmottes [Wed, 19 Sep 2018 08:06:15 +0000 (10:06 +0200)]
h264parse: mark SEI Recovery Point as keyframes

The spec states that "recovery point SEI message assists a decoder in
determining when the decoding process will produce acceptable
pictures for display after the decoder initiates random access or after the
encoder indicates a broken link in the coded video sequence."

Mark those as keyframes so muxers will mark them as seek points and
decoders will be able to start decoding from them rather than waiting
for an IDR.

https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/790

5 years agoh265parse: Don't duplicate VPS/SPS/PPS per config-interval if exists
Seungha Yang [Fri, 23 Nov 2018 02:51:04 +0000 (11:51 +0900)]
h265parse: Don't duplicate VPS/SPS/PPS per config-interval if exists

Don't need to manually insert VPS/SPS/PPS since inband data could be useable.

Also fixes #824

5 years agoh264parse: Don't duplicate SPS/PPS per config-interval if exists
Seungha Yang [Fri, 23 Nov 2018 02:28:44 +0000 (11:28 +0900)]
h264parse: Don't duplicate SPS/PPS per config-interval if exists

Don't need to manually insert SPS/PPS since inband data could be useable.

Fixes #824

5 years agomeson: build opencv and ipcpipeline examples
Tim-Philipp Müller [Mon, 26 Nov 2018 00:58:16 +0000 (00:58 +0000)]
meson: build opencv and ipcpipeline examples

https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/576

5 years agocc708overlay: fix deadlock
Tim-Philipp Müller [Thu, 29 Nov 2018 11:24:39 +0000 (11:24 +0000)]
cc708overlay: fix deadlock

We would forget to unlock when a caption data buffer is deemed
out of segment, which makes everything lock up next time buffers
are received.

5 years agoRun gst-indent through the files
Jordan Petridis [Wed, 28 Nov 2018 11:35:35 +0000 (13:35 +0200)]
Run gst-indent through the files

This is required before we enabled an indent test in the CI.

https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33

5 years agowebrtc: Remove duplicate declarations
Maciej Wolny [Tue, 20 Nov 2018 10:37:47 +0000 (10:37 +0000)]
webrtc: Remove duplicate declarations

This causes 'redefinition of typedef ...' errors on GCC 4.5.3

5 years agohlssink2: Fix string leak
Seungha Yang [Tue, 27 Nov 2018 07:06:53 +0000 (16:06 +0900)]
hlssink2: Fix string leak

Need to free allocated string memory on _finalize()

5 years agomsdk: remove unnecessary assignment
Xiang, Haihao [Fri, 16 Nov 2018 05:58:22 +0000 (13:58 +0800)]
msdk: remove unnecessary assignment

CodecProfile will be set in MFXVideoDECODE_DecodeHeader() to match
the input stream. Setting the hard-coded profile here will mislead
user that msdkh265dec supports a special profile only.

5 years agomsdk: update the sink and src caps of msdkh265dec
Xiang, Haihao [Fri, 16 Nov 2018 00:56:34 +0000 (08:56 +0800)]
msdk: update the sink and src caps of msdkh265dec

Now hevc 10bit video can be decoded correctly, so update the sink
and src caps accordingly.

This fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/720

5 years agomsdk: set right BitDepth and Shift for P010 mfx frame
Xiang, Haihao [Mon, 19 Nov 2018 14:24:33 +0000 (22:24 +0800)]
msdk: set right BitDepth and Shift for P010 mfx frame

BitDepth is 10 and Shitf must be set to 1 when creating P010 mfx
frame in MSDK

5 years agomsdk: don't use hard-coded video format
Xiang, Haihao [Mon, 19 Nov 2018 07:34:38 +0000 (15:34 +0800)]
msdk: don't use hard-coded video format

Some codecs may support varied formats, e.g. HEVC may support NV12
and P010_10LE etc

5 years agomsdk: adjust the RT format for P010 surface
Xiang, Haihao [Fri, 16 Nov 2018 12:01:52 +0000 (20:01 +0800)]
msdk: adjust the RT format for P010 surface

According to VA API, VA_RT_FORMAT_YUV420_10 is expected for P010
surface

5 years agomsdk: create VA_FOURCC_P010 surface from dmabuf
Xiang, Haihao [Fri, 16 Nov 2018 06:36:31 +0000 (14:36 +0800)]
msdk: create VA_FOURCC_P010 surface from dmabuf

5 years agomsdk: VA_FOURCC_P010 frame lock
Xiang, Haihao [Fri, 16 Nov 2018 06:32:29 +0000 (14:32 +0800)]
msdk: VA_FOURCC_P010 frame lock

P010 and NV12 have the same layout, so we may reuse the code in
gst_msdk_frame_lock()

5 years agomsdk: map MFX_FOURCC_P010 to VA_FOURCC_P010
Xiang, Haihao [Fri, 16 Nov 2018 08:42:43 +0000 (16:42 +0800)]
msdk: map MFX_FOURCC_P010 to VA_FOURCC_P010

5 years agomsdk: make sure the surface data is set for GST_VIDEO_FORMAT_P010_10LE
Xiang, Haihao [Fri, 16 Nov 2018 06:18:36 +0000 (14:18 +0800)]
msdk: make sure the surface data is set for GST_VIDEO_FORMAT_P010_10LE

P010_10LE and NV12 have the same layout, so we may reuse the code.

5 years agomsdk: map GST_VIDEO_FORMAT_P010_10LE to MFX_FOURCC_P010
Haihao Xiang [Fri, 19 Oct 2018 08:23:21 +0000 (16:23 +0800)]
msdk: map GST_VIDEO_FORMAT_P010_10LE to MFX_FOURCC_P010