platform/upstream/gstreamer.git
6 years agovideoaggregator: Remove custom get_next_time implementation
Olivier Crête [Mon, 23 Apr 2018 17:30:38 +0000 (13:30 -0400)]
videoaggregator: Remove custom get_next_time implementation

GstAggregator now has the same thing in the simple implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=795486

6 years agomsdk: Add conditional build for vp9 decoder
Sreerenj Balachandran [Wed, 16 May 2018 00:33:00 +0000 (16:33 -0800)]
msdk: Add conditional build for vp9 decoder

https://bugzilla.gnome.org/show_bug.cgi?id=796119

6 years agomsdk: dec: Add VP9 decoder
Sreerenj Balachandran [Wed, 16 May 2018 00:32:22 +0000 (16:32 -0800)]
msdk: dec: Add VP9 decoder

https://bugzilla.gnome.org/show_bug.cgi?id=796119

6 years agomsdk: allow building against open sourced msdk
Sreerenj Balachandran [Wed, 16 May 2018 00:31:02 +0000 (16:31 -0800)]
msdk: allow building against open sourced msdk

Building against mfx_dispatcher is used to search for
headers in PREFIX/include/mfx/ only (commit: 62f04e801bd7e247102ac67df889bee33ab74ff7),
but it is just PREFIX/include with open source msdk version.

https://bugzilla.gnome.org/show_bug.cgi?id=796118

6 years agodashdemux: Fix sync of updated manifest from previous one
Seungha Yang [Fri, 11 May 2018 06:49:05 +0000 (15:49 +0900)]
dashdemux: Fix sync of updated manifest from previous one

_get_next_fragment_timestamp() returns relative timestamp to period start.
But gst_mpd_client_stream_seek() uses absolute MPD timeline.

https://bugzilla.gnome.org/show_bug.cgi?id=781183

6 years agoadaptivedemux: Support period change in live playlist
Seungha Yang [Thu, 10 May 2018 14:08:10 +0000 (23:08 +0900)]
adaptivedemux: Support period change in live playlist

Regardless of LIVE or VOD, "a manifest has next period but
currently EOSed" state is meaning that it's time to advance period.

Previous behavior of adpativedemux, however, was able to period
advancing only for VOD case, since the adaptivedemux tried to
update and wait new manifest without respecting existence of the next period.

https://bugzilla.gnome.org/show_bug.cgi?id=781183

6 years agosrtp: Add "roc" caps field to the gst-launch example
Olivier Crête [Fri, 11 May 2018 18:54:35 +0000 (20:54 +0200)]
srtp: Add "roc" caps field to the gst-launch example

The currrent example was broken since 1.8.3 it seems.

https://bugzilla.gnome.org/show_bug.cgi?id=786304

6 years agodecklink: Fix crash with closed-captions signal and 10-bit input
Vivia Nikolaidou [Fri, 11 May 2018 14:39:35 +0000 (17:39 +0300)]
decklink: Fix crash with closed-captions signal and 10-bit input

Only free the parser if there is one. If the format hadn't changed but
had always been 10-bit, there might genuinely be no parser.

https://bugzilla.gnome.org/show_bug.cgi?id=796030

6 years agodecklinkvideosrc: Don't check for closed captions when there's no signal
Vivia Nikolaidou [Fri, 11 May 2018 09:30:35 +0000 (12:30 +0300)]
decklinkvideosrc: Don't check for closed captions when there's no signal

Otherwise the gst_decklink_video_format_from_type() call spams the logs
with one "Unknown pixel format 0x0" line per frame.

6 years agoopencv: Fix memcpy within C++
Edward Hervey [Fri, 11 May 2018 07:54:22 +0000 (09:54 +0200)]
opencv: Fix memcpy within C++

Explicitly cast to void* because GCC 8 is (rightfully) upset that this is
"writing to an object of type ‘...’ with no trivial copy-assignment".

Caused by the new "class-memaccess" warning

6 years agowebrtcbin: implement support for FEC and RTX
Mathieu Duponchelle [Wed, 29 Nov 2017 16:57:52 +0000 (17:57 +0100)]
webrtcbin: implement support for FEC and RTX

https://bugzilla.gnome.org/show_bug.cgi?id=795044

6 years agomsdk:dec: Add new propery to dump frames in decoded order
Sreerenj Balachandran [Mon, 7 May 2018 22:12:10 +0000 (14:12 -0800)]
msdk:dec: Add new propery to dump frames in decoded order

The new property "output-order" can be set to either "display" order
which is the default where frames will be outputting in display order,
or "decoded-order" which will be outputting the frames in decoded order.

The "decoded order" output is generally useful for debugging. But there
are few
customers who use it for low-latency streaming. For eg if the customer
already knows that the stream doesn't have b-frames (which means no
algorithm requires for display order calculation), then they can use
"decoded-order"
output to skip some of the DPB logic to avoid the frame accumulation at
start-up.

The root cause of the above issue is a bit of unclarity in h264 spec +
lazy implementation of many H264 encoders; This is well handled in
gstreamer-vaapi using "low-latency" property:
https://bugzilla.gnome.org/show_bug.cgi?id=762509

https://bugzilla.gnome.org/show_bug.cgi?id=795783

6 years agomsdk: dec: inform msdk if the buffer contains a complete frame
Sreerenj Balachandran [Mon, 7 May 2018 22:11:34 +0000 (14:11 -0800)]
msdk: dec: inform msdk if the buffer contains a complete frame

For packetized input, inform the msdk that the buffer has
a complete frame or complementary field pairs. For decoding,
this means that the decoder can proceed with this buffer without
waiting for the start of the next frame, which effectively reduces
decoding latency.

https://bugzilla.gnome.org/show_bug.cgi?id=795783

6 years agomsdk: dec: reset async depth to one
Sreerenj Balachandran [Mon, 7 May 2018 22:11:14 +0000 (14:11 -0800)]
msdk: dec: reset async depth to one

Currently we use an async depth of 4 as default (based on
recommendations
in msdk apps), which indicates how many asynchronous operations an
application performs
before the application explicitly synchronizes the result. As a result,
we
queue four frames in decoder which might not be good approach for
live streaming.

This patch reset the async-depth to 1 as default so that we do sync for
each frame we decode without queuing. Customer can play with already
exposed "async-depth" property for other use cases

https://bugzilla.gnome.org/show_bug.cgi?id=795783

6 years agovideoaggregator: Set video-meta option on buffer pool configuration correctly
Sebastian Dröge [Mon, 7 May 2018 14:53:32 +0000 (17:53 +0300)]
videoaggregator: Set video-meta option on buffer pool configuration correctly

CID 1435451

6 years agovideoaggregator: First override set/get_property vfuncs, then install properties
Sebastian Dröge [Mon, 7 May 2018 07:17:16 +0000 (09:17 +0200)]
videoaggregator: First override set/get_property vfuncs, then install properties

Gives assertions otherwise.

6 years agogdp: ignore timestamp of event
Kyrylo Polezhaiev [Tue, 2 Feb 2016 17:18:26 +0000 (19:18 +0200)]
gdp: ignore timestamp of event

This field is not used and will be removed in 2.0 API.

https://bugzilla.gnome.org/show_bug.cgi?id=761462

6 years agovideoaggregator: Some more documentation fixes
Sebastian Dröge [Sun, 6 May 2018 14:49:43 +0000 (16:49 +0200)]
videoaggregator: Some more documentation fixes

6 years agovideoaggregator: expose converter-config on convert pads
Mathieu Duponchelle [Sun, 6 May 2018 14:44:47 +0000 (16:44 +0200)]
videoaggregator: expose converter-config on convert pads

This in order to allow users control over the conversion
process, for example the scaling method.

6 years agovideoaggregator: Fix up documentation some more
Sebastian Dröge [Sun, 6 May 2018 14:43:32 +0000 (16:43 +0200)]
videoaggregator: Fix up documentation some more

6 years agovideoaggregator: Clean up header and update docs a bit
Sebastian Dröge [Sun, 6 May 2018 14:22:01 +0000 (16:22 +0200)]
videoaggregator: Clean up header and update docs a bit

6 years agovideoaggregator: Rename get_output_buffer() to create_output_buffer()
Sebastian Dröge [Sun, 6 May 2018 14:05:28 +0000 (16:05 +0200)]
videoaggregator: Rename get_output_buffer() to create_output_buffer()

For consistency with GstAudioAggregator.

6 years agovideoaggregator: Validate pool configuration and create a new pool if it just does...
Sebastian Dröge [Sun, 6 May 2018 13:49:36 +0000 (15:49 +0200)]
videoaggregator: Validate pool configuration and create a new pool if it just does not work

Also pass the given allocator to the pool if one is set.

6 years agovideoaggregator: Switch to a GstVideoAggregatorConvertPad subclass
Sebastian Dröge [Sun, 6 May 2018 13:21:24 +0000 (15:21 +0200)]
videoaggregator: Switch to a GstVideoAggregatorConvertPad subclass

This moves all the conversion related code to a single place, allows
less code-duplication inside compositor and makes the glmixer code less
awkward. It's also the same pattern as used by GstAudioAggregator.

6 years agowaylandsink: support fullscreen
Fabien Dessenne [Thu, 23 Feb 2017 10:48:13 +0000 (11:48 +0100)]
waylandsink: support fullscreen

Add the fullscreen property that makes the sink displayed all across
the output.

https://bugzilla.gnome.org/show_bug.cgi?id=688190

6 years agodocs: plugins: update
Tim-Philipp Müller [Sat, 5 May 2018 15:55:58 +0000 (17:55 +0200)]
docs: plugins: update

6 years agoglmixer: Include string.h for memset()
Sebastian Dröge [Sat, 5 May 2018 15:47:55 +0000 (17:47 +0200)]
glmixer: Include string.h for memset()

gstglmixer.c:143:5: error: implicit declaration of function ‘memset’ [-Werror=implicit-function-declaration]
     memset (prepared_frame, 0, sizeof (GstVideoFrame));
     ^~~~~~
gstglmixer.c:143:5: error: incompatible implicit declaration of built-in function ‘memset’ [-Werror]

6 years agomeson: Update option names to omit disable_ and with- prefixes
Nirbheek Chauhan [Sat, 5 May 2018 14:00:42 +0000 (19:30 +0530)]
meson: Update option names to omit disable_ and with- prefixes

Also yield common options to the outer project (gst-build in our case)
so that they don't have to be set manually.

6 years agowaylandsink: Only build if gtk-3.0 was built with wayland target
Jan Schmidt [Sat, 5 May 2018 14:32:59 +0000 (14:32 +0000)]
waylandsink: Only build if gtk-3.0 was built with wayland target

Check in configure if the gtk-3.0 has wayland support, and don't
build the waylandsink example if it doesn't.

6 years agovideoaggregator: Remove sink_non_alpha_caps class field
Sebastian Dröge [Sat, 5 May 2018 14:31:13 +0000 (16:31 +0200)]
videoaggregator: Remove sink_non_alpha_caps class field

This is only used for caching reasons and should never actually be in
the public API. If this is ever a bottleneck later, caching around a
class private struct could be implemented.

6 years agovideoaggregator: Move needs_alpha pad field to the private struct
Sebastian Dröge [Sat, 5 May 2018 14:14:14 +0000 (16:14 +0200)]
videoaggregator: Move needs_alpha pad field to the private struct

And also trigger renegotiation if the value has changed.

https://bugzilla.gnome.org/show_bug.cgi?id=795836

6 years agovideoaggregator: Move aggregated_frame and the pad buffer into the private struct
Sebastian Dröge [Sat, 5 May 2018 13:49:17 +0000 (15:49 +0200)]
videoaggregator: Move aggregated_frame and the pad buffer into the private struct

The aggregated_frame is now called prepared_frame and passed to the
prepare_frame and cleanup_frame virtual methods directly. For the
currently queued buffer there is a method on the video aggregator pad
now.

6 years agomeson: Add a subproject fallback for libnice in webrtc
Nirbheek Chauhan [Sat, 5 May 2018 13:18:13 +0000 (18:48 +0530)]
meson: Add a subproject fallback for libnice in webrtc

6 years agoglmixer: Move frame/texture mapping/unmapping into prepare/clean_frame
Sebastian Dröge [Sat, 5 May 2018 10:16:35 +0000 (12:16 +0200)]
glmixer: Move frame/texture mapping/unmapping into prepare/clean_frame

Previously we assumed that the texture ID is going to be valid even
after unmapping the frame, as it was immediately unmapped before even
being used. Now we only unmap once we're done with the texture.

6 years agonvdec: Add support VP8/VP9 decoding
Seungha Yang [Sat, 5 May 2018 05:37:06 +0000 (14:37 +0900)]
nvdec: Add support VP8/VP9 decoding

NVIDIA video decoder supports VP8 and VP9 decoding

https://bugzilla.gnome.org/show_bug.cgi?id=795823

6 years agosrtpenc: Handle session object disappearing
Jan Schmidt [Fri, 4 May 2018 15:59:53 +0000 (01:59 +1000)]
srtpenc: Handle session object disappearing

During element shutdown, the srtp encryption session
object can be cleaned up. In that case, return GST_FLOW_FLUSHING
from the chain function. Also properly return GST_FLOW_ERROR
upstream during actual errors.

https://bugzilla.gnome.org/show_bug.cgi?id=790508

6 years agovideoaggregator: Move property storage to private pad struct
Sebastian Dröge [Fri, 4 May 2018 15:18:12 +0000 (17:18 +0200)]
videoaggregator: Move property storage to private pad struct

6 years agovideoaggregator: Rename ignore-eos pad property to repeat-after-eos
Sebastian Dröge [Fri, 4 May 2018 14:46:00 +0000 (16:46 +0200)]
videoaggregator: Rename ignore-eos pad property to repeat-after-eos

What it does is to repeat the last frame forever after EOS, it does not
literally ignore EOS.

6 years agovideoaggregator: Move GstChildProxy implementations into leaf classes
Sebastian Dröge [Fri, 4 May 2018 14:13:16 +0000 (16:13 +0200)]
videoaggregator: Move GstChildProxy implementations into leaf classes

Not every subclass will want to expose the pads via the interface.

https://bugzilla.gnome.org/show_bug.cgi?id=739011

6 years agovideoaggregator: Get rid of separate header for the aggregator pad
Sebastian Dröge [Fri, 4 May 2018 12:53:21 +0000 (14:53 +0200)]
videoaggregator: Get rid of separate header for the aggregator pad

6 years agotsdemux: ignore sparse stream when checking for initial timestamp
Aurélien Zanelli [Mon, 16 Mar 2015 15:20:44 +0000 (16:20 +0100)]
tsdemux: ignore sparse stream when checking for initial timestamp

Unless we only have sparse streams. In this case we will consider them.
It fixes a bug happening when first observed timestamp comes from a
sparse stream and other streams don't have a valid timestamp, yet. Thus
leading the timestamp from sparse stream to be the start of the
following segment. In this case, if the timestamp is really bigger than
non-sparse stream (audio/video), it will lead the pipeline to clip
samples from the non-parse stream.

https://bugzilla.gnome.org/show_bug.cgi?id=744469

6 years agoresindvsrc: Don't use the GST_EVENT_TIMESTAMP
Jan Schmidt [Fri, 4 May 2018 12:24:18 +0000 (22:24 +1000)]
resindvsrc: Don't use the GST_EVENT_TIMESTAMP

Store a PTS of a highlight event directly into the event structure,
rather than the GST_EVENT_TIMESTAMP that will probably be removed
in GStreamer 2.0, and is hardly used.

https://bugzilla.gnome.org/show_bug.cgi?id=761477

6 years agoscenechange: improve detection algorithm
Vineeth T M [Mon, 27 Oct 2014 04:11:51 +0000 (09:41 +0530)]
scenechange: improve detection algorithm

Scene detection determines, how many scenes have changed in a video.

It compared the previous frame with present frame to find out the score and a
threshold is calculated for the same.

I have added an intermediate condition which helps in improving the positive
detections.

https://bugzilla.gnome.org/show_bug.cgi?id=735094

6 years agomsdk: enc: Add dmabuf-export support
Sreerenj Balachandran [Wed, 2 May 2018 22:52:24 +0000 (14:52 -0800)]
msdk: enc: Add dmabuf-export support

Current implementation is only supporting dmabuf-export
through DMABufCapsfeatures.
MSDK dmabuf fds are not mappable and dmabuf-import
is not yet supported too (#794817).

https://bugzilla.gnome.org/show_bug.cgi?id=795707

6 years agomsdkvpp: Disable passthrough if memory capsfeature changes
Sreerenj Balachandran [Mon, 30 Apr 2018 20:40:32 +0000 (12:40 -0800)]
msdkvpp: Disable passthrough if memory capsfeature changes

So far msdk produced dmabuf fds are non-mappable.
If user wants to download the content of underlined surfaces,
dmabufcapsfeature negotiated pipeline will fail. So if the input surface
is dmabuf and downstream doesn't have support for dmabuf capsfeatures,
we do the vpp (no passthrough) and produce the mappable videomemory
buffers.

https://bugzilla.gnome.org/show_bug.cgi?id=794946

6 years agomsdk: vpp: Add dmabuf-export support
Sreerenj Balachandran [Mon, 30 Apr 2018 20:39:52 +0000 (12:39 -0800)]
msdk: vpp: Add dmabuf-export support

Currenly, the dmabuf buffer pool can be negotiated
only through DMABuf capsfeatures.
This will not allow to negotiate dmabuf support with
v4l2src (v4l2src ! msdkvpp) where v4l2src always export
the dmabuf based memory with out using the DMABuf capsfeatures.
So it requires fix based on:
https://bugzilla.gnome.org/show_bug.cgi?id=794817

https://bugzilla.gnome.org/show_bug.cgi?id=794946

6 years agonvdec: Add colorimetry info to the caps
Jan Schmidt [Fri, 27 Apr 2018 15:15:44 +0000 (01:15 +1000)]
nvdec: Add colorimetry info to the caps

Output any colorimetry information extracted from the stream
into the caps.

6 years agonvdec: Use gst_video_info_to_caps to build caps.
Jan Schmidt [Fri, 27 Apr 2018 04:41:14 +0000 (14:41 +1000)]
nvdec: Use gst_video_info_to_caps to build caps.

Don't build caps directly, as that won't add any GstVideoInfo
newer fields (such as colorimetry) automatically.

6 years agokmssink: Add 24bit RGB support
Nicolas Dufresne [Thu, 8 Mar 2018 20:23:05 +0000 (20:23 +0000)]
kmssink: Add 24bit RGB support

https://bugzilla.gnome.org/show_bug.cgi?id=794186

6 years agomsdk: vpp: Add YV12, YUY2 and BGRx formats to template
Sreerenj Balachandran [Wed, 25 Apr 2018 20:26:43 +0000 (12:26 -0800)]
msdk: vpp: Add YV12, YUY2 and BGRx formats to template

6 years agomsdk: Add more video format mapping
Sreerenj Balachandran [Wed, 25 Apr 2018 00:46:20 +0000 (16:46 -0800)]
msdk: Add more video format mapping

BGRx format can be supported with Msdk's RGB4

6 years agomsdk: vpp: Allocation query fixes
Sreerenj Balachandran [Wed, 25 Apr 2018 00:45:24 +0000 (16:45 -0800)]
msdk: vpp: Allocation query fixes

prpose_allocation:
-- always instantiate a pool for for upstream
-- use async_depth + 1 as min buffer count

decide_allocation:
-- always create a new bufferpool for source pad.
Each of the msdk element has to create it's own mfxsurfacepool
which is an msdk contraint. For eg: Each Msdk component (vpp, dec and
enc)
will invoke the external Frame allocator for video-memory usage
So sharing the pool between gst-msdk elements might not be a good idea.

https://bugzilla.gnome.org/show_bug.cgi?id=793705

6 years agorfbsrc: Fix decide_allocation to support NULL pool
Nicolas Dufresne [Wed, 25 Apr 2018 19:05:38 +0000 (15:05 -0400)]
rfbsrc: Fix decide_allocation to support NULL pool

We were assuming that NULL pool meant that downstream didn't reply.
Update the pool index 0 instead of adding at the end. Otherwise we ended
up letting basesrc decide, which would pick the blocksize as a size
(4096) instead of the image size.

https://bugzilla.gnome.org/show_bug.cgi?id=795327

6 years agorfbsrc: Fix support for applevncserver
Nicolas Dufresne [Wed, 25 Apr 2018 17:36:01 +0000 (13:36 -0400)]
rfbsrc: Fix support for applevncserver

This server uses an unknown 003.889 protocol version. This patch fixes
the version validation in order to simply fallback to 3.3 as suggested
by the spec.

6 years agoMeson: Generate pc file for all plugins in bad
Xavier Claessens [Tue, 24 Apr 2018 18:05:30 +0000 (14:05 -0400)]
Meson: Generate pc file for all plugins in bad

https://bugzilla.gnome.org/show_bug.cgi?id=794568

6 years agomeson: use -Wl,-Bsymbolic-functions where supported
Tim-Philipp Müller [Wed, 25 Apr 2018 10:00:00 +0000 (11:00 +0100)]
meson: use -Wl,-Bsymbolic-functions where supported

Just like the autotools build.

6 years agoh264parse: add constrained and progressive profiles
Guillaume Desmottes [Tue, 6 Mar 2018 14:18:46 +0000 (15:18 +0100)]
h264parse: add constrained and progressive profiles

Those profiles have been added in the version 2012-01
and 2011-06 of the AVC spec.

https://bugzilla.gnome.org/show_bug.cgi?id=794127

6 years agocurlhttpsrc: deadlock in multi-instance scenario
Jun Xie [Tue, 27 Feb 2018 02:51:07 +0000 (10:51 +0800)]
curlhttpsrc: deadlock in multi-instance scenario

Fixed queue iterator issue and set context state to
GSTCURL_MULTI_LOOP_STATE_RUNNING in case other
instance are in running state.

https://bugzilla.gnome.org/show_bug.cgi?id=793863

6 years agonvenc: Remove GST_USE_UNSTABLE_API defines
Jan Schmidt [Tue, 24 Apr 2018 16:43:26 +0000 (02:43 +1000)]
nvenc: Remove GST_USE_UNSTABLE_API defines

GstGL is no longer unstable API since moving to -base

6 years agoconfigure: Fix nvenc GL check
Jan Schmidt [Tue, 24 Apr 2018 16:25:16 +0000 (02:25 +1000)]
configure: Fix nvenc GL check

Make the nvenc OpenGL usage rely on the the same condition
that the automake USE_OPENGL conditional checks, as the
USE_OPENGL doesn't actually get set into the configure script,
so it can't check that

6 years agonvenc: Use the HAVE_NVENC_GST_GL define instead of HAVE_GST_GL
Jan Schmidt [Tue, 24 Apr 2018 16:42:43 +0000 (02:42 +1000)]
nvenc: Use the HAVE_NVENC_GST_GL define instead of HAVE_GST_GL

Fix compiling against the GL interop by gating includes
on the right header

6 years agonvh265enc: Add Nvidia GPU based HEVC encoder
Seungha Yang [Fri, 6 Apr 2018 14:22:26 +0000 (23:22 +0900)]
nvh265enc: Add Nvidia GPU based HEVC encoder

https://bugzilla.gnome.org/show_bug.cgi?id=795037

6 years agonvencbase: Define sinkpad template in subclass
Seungha Yang [Fri, 6 Apr 2018 15:05:46 +0000 (00:05 +0900)]
nvencbase: Define sinkpad template in subclass

https://bugzilla.gnome.org/show_bug.cgi?id=795037

6 years agonvenc: Add debug catagory for nvh264enc
Seungha Yang [Fri, 6 Apr 2018 14:49:12 +0000 (23:49 +0900)]
nvenc: Add debug catagory for nvh264enc

https://bugzilla.gnome.org/show_bug.cgi?id=795037

6 years agodocs: mpegts: add atsc docs
Stefan Ringel [Thu, 29 May 2014 14:54:59 +0000 (16:54 +0200)]
docs: mpegts: add atsc docs

https://bugzilla.gnome.org/show_bug.cgi?id=730940

6 years agodecklinkvideosrc: Add support for extracting Closed Caption
Edward Hervey [Fri, 9 Mar 2018 11:23:04 +0000 (12:23 +0100)]
decklinkvideosrc: Add support for extracting Closed Caption

If the "output-cc" property is set to TRUE and there is CC present
in the VBI Ancillary Data, they will be extracted and set on the
outgoing buffer as GstVideoCaptionMeta.

Only CDP packets are supported.

https://bugzilla.gnome.org/show_bug.cgi?id=773863

6 years agoconfigure: look for right version of plugins, not >= 0.11
Tim-Philipp Müller [Sun, 22 Apr 2018 17:28:13 +0000 (18:28 +0100)]
configure: look for right version of plugins, not >= 0.11

Well, just look for same version as we require for -base
which should be good enough. Also use plugins base req
for -base libs.

6 years agoFix code indentation
Tim-Philipp Müller [Sun, 22 Apr 2018 17:27:37 +0000 (18:27 +0100)]
Fix code indentation

6 years agodx9screenscapsrc: consolidate UNLOCK
Tim-Philipp Müller [Sun, 22 Apr 2018 17:25:34 +0000 (18:25 +0100)]
dx9screenscapsrc: consolidate UNLOCK

6 years agotestsrcbin: typo fixes
Tim-Philipp Müller [Sat, 21 Apr 2018 10:03:54 +0000 (11:03 +0100)]
testsrcbin: typo fixes

6 years agotestsrcbin: fix bug setting stream flags
Tim-Philipp Müller [Sat, 21 Apr 2018 10:00:58 +0000 (11:00 +0100)]
testsrcbin: fix bug setting stream flags

We would mark all streams with FLAG_UNSELECT as we would check
the pointer for non-NULLness not the dereferenced stream number
(and the pointer is always non-NULL). The intention here was
presumably to mark the first stream of each type as SELECT and
the others as UNSELECT by default.

CID 1434970.

6 years agotestsrcbin: fix memory leak
Tim-Philipp Müller [Sat, 21 Apr 2018 09:51:03 +0000 (10:51 +0100)]
testsrcbin: fix memory leak

CID 1434971

6 years agodssim: Add a dssim-error-threshold property
Thibault Saunier [Sat, 21 Apr 2018 00:51:34 +0000 (21:51 -0300)]
dssim: Add a dssim-error-threshold property

If that threshold is reached, `iqa` will emit an ERROR message on the
bus, stopping any processing.

This way we can do a simpler comparison with gst-validate and the
process will error out if the specified threshold is reached.

https://bugzilla.gnome.org/show_bug.cgi?id=795428

6 years agomeson: fbdev: fix 'invalid keyword argument' meson warnings
Tim-Philipp Müller [Fri, 20 Apr 2018 10:46:07 +0000 (11:46 +0100)]
meson: fbdev: fix 'invalid keyword argument' meson warnings

Required is not a valid kwarg for cc.has_header()

6 years agotestsrcbin: Do not use G_DECLARE_ as it requires GLib 2.44
Thibault Saunier [Thu, 19 Apr 2018 23:58:55 +0000 (20:58 -0300)]
testsrcbin: Do not use G_DECLARE_ as it requires GLib 2.44

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=795382

6 years agodebugutils: Add a testsrcbin element
Thibault Saunier [Wed, 18 Apr 2018 18:53:34 +0000 (15:53 -0300)]
debugutils: Add a testsrcbin element

This is a simple Bin that will expose audiotestsrc or videotestsrc
based on what is asked by the user either through the GstURIHandler
API or through the "stream-types" property.

This element also provides GstStream and GstStreamCollection
so it is nicely usable from playbin3.

https://bugzilla.gnome.org/show_bug.cgi?id=795366

6 years agokmssink: Add new entry for Xilinx DRM Driver
Devarsh Thakkar [Wed, 18 Apr 2018 10:43:57 +0000 (03:43 -0700)]
kmssink: Add new entry for Xilinx DRM Driver

This adds entry for new DRM driver from xilinx
called "xlnx" which supports atomic modesetting.

We have kept entry for older DRM driver "xilinx_drm"
for backward compatility with a note describing
deprecation.

Signed-off-by: Devarsh Thakkar <devarsht@xilinx.com>
https://bugzilla.gnome.org/show_bug.cgi?id=795228

6 years agowasapisrc: Don't provide a clock based on WASAPI's clock
Nirbheek Chauhan [Wed, 18 Apr 2018 09:33:19 +0000 (15:03 +0530)]
wasapisrc: Don't provide a clock based on WASAPI's clock

The clock seems to have a lot of drift (or we're using it incorrectly)
which causes buffers to be late on the sink and get dropped.

Disable till someone can investigate whether our usage of the API is
incorrect (it looked correct to me) or if something is wrong.

6 years agonvdec/nvenc: Support CUDA Toolkit 9
Snir Sheriber [Thu, 22 Mar 2018 08:18:57 +0000 (10:18 +0200)]
nvdec/nvenc: Support CUDA Toolkit 9

Since cuda-tools 9.0, nvcuvid.h is replaced by dynlink_nvcuvid.h.
This patch changes nvdec to use run-time dynamic linking if
cuda-tools version >= 9.
nvenc does not require any change since its necessary headers are
still available.

https://bugzilla.gnome.org/show_bug.cgi?id=791724

6 years agomsdk: jpegdec: Fix non-interleaved sample decode
Sreerenj Balachandran [Mon, 16 Apr 2018 22:37:21 +0000 (14:37 -0800)]
msdk: jpegdec: Fix non-interleaved sample decode

Using the default value (InterleavedDec == MFX_SCANTYPE_UNKNOWN)
causing issues with non-interleaved sample decode. Ideally the usage
of MFXVideoDECODE_DecodeHeader should fix these type of issue, but
it seems to be not. But hardcoding the InterleaveDec to
MFX_SCANTYPE_NONINTERLEAVED
is fixing the problem and fortunately msdk seems to be taking care of
Interleaved samples
too .So let's hardcode it for now.

https://bugzilla.gnome.org/show_bug.cgi?id=793787

6 years agojpegparse: Fix APP1 marker segment parsing
Sreerenj Balachandran [Mon, 16 Apr 2018 22:00:39 +0000 (14:00 -0800)]
jpegparse: Fix APP1 marker segment parsing

Reposition the bytereader for proper skipping of
APP1 marker segment if it is not Exif.

https://bugzilla.gnome.org/show_bug.cgi?id=795117

6 years agowasapi: Call CoIn/Uninitialize() around prepare()
Nirbheek Chauhan [Mon, 16 Apr 2018 14:05:07 +0000 (19:35 +0530)]
wasapi: Call CoIn/Uninitialize() around prepare()

Seems to be required for exclusive mode and also for all
initialization on Windows 7

https://bugzilla.gnome.org/show_bug.cgi?id=795274

6 years agoAutomatic update of common submodule
Tim-Philipp Müller [Mon, 16 Apr 2018 09:53:07 +0000 (10:53 +0100)]
Automatic update of common submodule

From f0c2dc9 to ed78bee

6 years agowebrtc: fix gtk-doc annotations
Víctor Manuel Jáquez Leal [Mon, 16 Apr 2018 08:44:10 +0000 (10:44 +0200)]
webrtc: fix gtk-doc annotations

6 years agopcapparse: bail out in case of fragmented packets
Antonio Ospite [Sun, 15 Apr 2018 08:06:46 +0000 (10:06 +0200)]
pcapparse: bail out in case of fragmented packets

pcapparse cannot parse fragmented IP packets correctly, in particular it
will get confused when trying to parsing fragments as standalone frames
in two ways:

  1. the first fragment will have the packet length greater than the
     frame size and will always be discarded;

  2. fragments with non-zero offsets will be interpreted as full packets
     and the first part of their raw payload data will be parsed as the
     transport protocol header, resulting in bogus values for addresses
     and ports, thus evading the properties filtering on those values.

This can make it difficult for users to see why the data does not get
downstream.

So be more explicit and just bail out when fragmented packets are
encountered.

https://bugzilla.gnome.org/show_bug.cgi?id=795284

6 years agopcapparse: add some comments about the pcap format headers
Antonio Ospite [Sat, 14 Apr 2018 18:14:35 +0000 (20:14 +0200)]
pcapparse: add some comments about the pcap format headers

Since the code is full of magic add at least some guidance for newbies.

https://bugzilla.gnome.org/show_bug.cgi?id=795284

6 years agoresindvd, uvch264src, dx9screencapsrc: fix clock ref leaks in error paths
Garima Gaur [Tue, 27 Dec 2016 05:44:00 +0000 (11:14 +0530)]
resindvd, uvch264src, dx9screencapsrc: fix clock ref leaks in error paths

https://bugzilla.gnome.org/show_bug.cgi?id=776376

6 years agobluez: avdtpsrc: fix caps leak in error code paths
Garima Gaur [Tue, 27 Dec 2016 08:15:49 +0000 (13:45 +0530)]
bluez: avdtpsrc: fix caps leak in error code paths

https://bugzilla.gnome.org/show_bug.cgi?id=776085

6 years agoh265parse: Make caps writable before modifying them
Seungha Yang [Fri, 6 Apr 2018 14:22:39 +0000 (23:22 +0900)]
h265parse: Make caps writable before modifying them

Fix following assertion failure
GStreamer-CRITICAL **: gst_structure_remove_field: assertion 'IS_MUTABLE (structure)' failed

https://bugzilla.gnome.org/show_bug.cgi?id=795032

6 years agofakevideosink: explicit type cast for max-lateness property setter
Philippe Normand [Tue, 10 Apr 2018 09:20:52 +0000 (10:20 +0100)]
fakevideosink: explicit type cast for max-lateness property setter

g_object_set() expects the parameters values to be the exact type of the
property being set.

6 years agowasapi: Handle return value of WaitForSingleObject
Nirbheek Chauhan [Mon, 9 Apr 2018 23:43:17 +0000 (05:13 +0530)]
wasapi: Handle return value of WaitForSingleObject

The wait could've failed for whatever reason, we should handle that.

6 years agowasapi: Call _Start if the client was _Reset
Nirbheek Chauhan [Mon, 9 Apr 2018 23:39:42 +0000 (05:09 +0530)]
wasapi: Call _Start if the client was _Reset

Otherwise we will wait forever in WaitForSingleObject because we forgot
to start the client again after _Stop is called in reset().

https://bugzilla.gnome.org/show_bug.cgi?id=795114

6 years agofakevideosink: request an extra buffer if enable-last-sample is enabled
Guillaume Desmottes [Mon, 9 Apr 2018 15:54:05 +0000 (17:54 +0200)]
fakevideosink: request an extra buffer if enable-last-sample is enabled

If the 'enable-last-sample' property is enabled, fakevideosink will keep
a reference on last rendered buffer which may lead to buffer starvation
in the pipeline.
Request one extra buffer in this case so we always have a buffer flying
in the pipeline.

https://bugzilla.gnome.org/show_bug.cgi?id=795109

6 years agowasapi: Don't open the device in get_caps()
Nirbheek Chauhan [Mon, 9 Apr 2018 11:46:38 +0000 (17:16 +0530)]
wasapi: Don't open the device in get_caps()

We can just return the template caps till the device is opened when
going from READY -> PAUSED. This fixes a CRITICAL when calling
ELEMENT_ERROR before the ringbuffer is allocated.

Also fixes a couple of leaks in error conditions.

https://bugzilla.gnome.org/show_bug.cgi?id=794611

6 years agowasapi: Only use audioclient3 when low-latency
Nirbheek Chauhan [Fri, 6 Apr 2018 17:31:36 +0000 (23:01 +0530)]
wasapi: Only use audioclient3 when low-latency

Causes glitches on very slow CPU machines or VMs, and our
out-of-the-box experience should be good.

https://bugzilla.gnome.org/show_bug.cgi?id=794497

6 years agowasapi: Don't derive device period from latency time
Nirbheek Chauhan [Wed, 21 Mar 2018 09:23:27 +0000 (14:53 +0530)]
wasapi: Don't derive device period from latency time

This seems to cause glitches on devices with low CPU availability,
such as virtual machines. Maybe even actual machines under high load.

https://bugzilla.gnome.org/show_bug.cgi?id=794497

6 years agomsdk: fix plugin load on implementations with only HW support
U. Artie Eoff [Thu, 5 Apr 2018 01:30:21 +0000 (17:30 -0800)]
msdk: fix plugin load on implementations with only HW support

We can't assume that MSDK always supports SW implementation
on all platforms.  Thus, msdk_is_available should check for
ANY implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=794991

6 years agowasapi: Squelch warning about %x and HRESULT
Nirbheek Chauhan [Wed, 4 Apr 2018 13:02:19 +0000 (18:32 +0530)]
wasapi: Squelch warning about %x and HRESULT

HRESULT is always a 32-bit value, as is guint.

6 years agowasapisrc: Implement loopback recording
Nirbheek Chauhan [Tue, 3 Apr 2018 19:37:14 +0000 (01:07 +0530)]
wasapisrc: Implement loopback recording

Now, when you set loopback=true on wasapisrc, the `device` property
should refer to a sink (render) device for loopback recording.

If the `device` property is not set, the default sink device is used.

6 years agoaudiolatency: Fix wave detection in buffers
Nirbheek Chauhan [Tue, 3 Apr 2018 18:24:41 +0000 (23:54 +0530)]
audiolatency: Fix wave detection in buffers

-1/1000 is 0, so we were *always* detecting a buffer.