Commit graph

3087 commits

Author SHA1 Message Date
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
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
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
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
Tim-Philipp Müller
3010afa976 applemedia: fix build after gl move to -base 2017-12-19 17:57:22 +00:00
Tim-Philipp Müller
06e4403fdb gl: update plugins to use GstGL from -base 2017-12-19 12:02:31 +00:00
Sebastian Dröge
2b8f82f929 decklinkaudiosink: Start audio pre-rolling if the output is not started yet in render()
This seems to allow to schedule audio samples correctly at their right
times already.

https://bugzilla.gnome.org/show_bug.cgi?id=790114
2017-12-14 10:37:20 +02:00
Sebastian Dröge
011649790d decklinkvideosink: Only start if both sinks are set to PLAYING already
Not only if the video sink is set to PLAYING so far. Also give more
useful debug output about why we don't start, and don't start if already
started.

Also refactor the function to early-return instead of having a huge
if-else block over the whole function.

https://bugzilla.gnome.org/show_bug.cgi?id=790114
2017-12-14 10:37:20 +02:00
Sebastian Dröge
a38cf7d8a9 decklinkaudiosink: Include final flow return in debug output
https://bugzilla.gnome.org/show_bug.cgi?id=790114
2017-12-14 10:37:20 +02:00
Sebastian Dröge
3e70f00209 decklinkaudiosink: Check also against the clock if we run ahead of the clock too much
The buffer level as reported by the Decklink driver is completely
unreliable, and we could otherwise easily run ahead >1s if we're
unlucky.

https://bugzilla.gnome.org/show_bug.cgi?id=790114
2017-12-14 10:37:20 +02:00
Sebastian Dröge
118b2967e7 decklinkaudiosink: Implement resampling/buffer reversing for trick-modes
https://bugzilla.gnome.org/show_bug.cgi?id=790114
2017-12-14 10:37:20 +02:00
Sebastian Dröge
86888d9918 decklinkaudiosink: Re-implement around GstBaseSink instead of GstAudioBaseSink
The Decklink and GstAudioBaseSink APIs don't fit very well together,
which causes various problems due to inaccuracies in the clock
calculations and the actual ringbuffer and GStreamer's copy getting of
sync.

Problems are audio drop-outs and A/V sync getting wrong after
pausing/seeking.

https://bugzilla.gnome.org/show_bug.cgi?id=790114
2017-12-14 10:37:20 +02:00
Josep Torra
5676005235 vtenc: fix a warning when building in MacOS 10.12
vtenc.c:564:20: error: incompatible pointer types passing 'GstVTEnc *' (aka 'struct _GstVTEnc *')
to parameter of type 'GstVideoEncoder *' (aka 'struct _GstVideoEncoder *')
2017-12-12 08:40:33 +01:00
Nicolas Dufresne
44dabe21d9 kmssink: Fix CropMeta support
We copy the meta's from the original buffer to the wrapper or copied
buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=790473
2017-12-06 13:34:19 -05:00
Nicolas Dufresne
d33aff0fa0 kmssink: Enforce pixel aspect ratio when we cannot scale
When we cannot scale, we need to enforce the pixel aspect ratio.
This was partly implemented in the previous patch. Doing this
simplify some of the code.

https://bugzilla.gnome.org/show_bug.cgi?id=784599
2017-12-06 13:34:19 -05:00
Sebastian Dröge
02e4d92cbf decklinkvideosink: Wait until scheduled playback is actually stopped before continuing
Otherwise we might "start" again, just to get finally stopped and then
getting errors all over the place.

https://bugzilla.gnome.org/show_bug.cgi?id=790114
2017-12-06 19:38:55 +02:00
Ursula Maplehurst
236398ee3f androidmedia: when flushing, better handle IllegalStateException received from getOutputBuffer
1. Similar to 880f3d8, don't consider not getting an output buffer as
   an error during flushing. I've seen the following sometimes when
   encoding:

   W GStreamer+amcvideoenc: java.lang.IllegalStateException
   W GStreamer+amcvideoenc:         at android.media.MediaCodec.getBuffer(Native Method)
   W GStreamer+amcvideoenc:         at android.media.MediaCodec.getOutputBuffer(MediaCodec.java:2886)

2. For amcvideodec/enc, call _find_nearest_frame (which grabs a fresh
   reference on a GstVideoCodecFrame) after we have an output buffer,
   so as to not leak the reference, in case getting an output buffer
   fails.

   Otherwise, if we get an error grabbing the output buffer, we leak
   the reference to the frame. This can cause issues with a
   v4l2bufferpool feeding the encoder not being able to clean itself
   up properly due to buffers still being marked as in-use.

https://bugzilla.gnome.org/show_bug.cgi?id=791258
2017-12-06 10:32:02 +02:00
Nicolas Dufresne
737067e793 kmssink: Add display-width/height properties
This is to be used with gst_video_overlay_set_render_rectangle()
so the application can calculate a rectangle that fits inside
the display. The property changes are notify in a way that you
can watch either notify::display-width or notify::display-height
and both will be up-to-data when this is called back. Before the
element is started, the size will be 0x0.

https://bugzilla.gnome.org/show_bug.cgi?id=784599
2017-12-01 12:01:59 -05:00
Haihua Hu
b24bb73101 kmssink: support videooverlay interface
Implement videooverlay interface in kmssink, divided into two cases:
when driver supports scale, then we do refresh in show_frame(); if
not, send a reconfigure event to upstream and re-negotiate, using the
new size.

https://bugzilla.gnome.org/show_bug.cgi?id=784599
2017-12-01 09:44:47 -05:00
Haihua Hu
ff9a4390cb kmssink: add can-scale property
https://bugzilla.gnome.org/show_bug.cgi?id=784599
2017-12-01 09:44:47 -05:00
Edward Hervey
c9acaae376 uvch264src: Check return values of all xu_query calls
And use warnings/returns like for other calls

CID #1373414
CID #1373417
2017-11-24 08:06:52 +01:00
Hyunjun Ko
3301dd34b5 msdkdec: keep draining even if a finish_task fails
Should continue draining so that it could try to
discard the rest of pending frames even if a finish_task fails.

https://bugzilla.gnome.org/show_bug.cgi?id=790312
2017-11-23 10:08:13 +02:00
Edward Hervey
6c2b9a4fae dvb: Fix previous commit
strlen on strings (and not sizeof) *sigh*
2017-11-23 08:14:06 +01:00
Edward Hervey
e12a86995e dvb: Fix sock_addr usage (for real)
It was great checking that the string was not too big ... but
it's better if we actually copy the proper amount of bytes :)

CID #206004
2017-11-23 08:12:03 +01:00
Edward Hervey
5706178d54 ipcpipeline: Don't leak structure
CID #1416131
2017-11-23 08:09:36 +01:00
Edward Hervey
39cd2bf8fe ipcpipeline: Simplify usage of g_cond_wait_until()
It will return FALSE if a timeout happened. So don't check if we
timed out afterwards, just use the return value.

CID #1416347
2017-11-23 08:05:48 +01:00
Edward Hervey
00cfa72085 ipcpipeline: Check the proper value
The code is meant to check the *peer* state change return value
(and not the sink's one).

CID #1416128
2017-11-23 08:02:58 +01:00
Hyunjun Ko
0933b8b45a msdkdec: fix buffer leaks during drain and a leak of videobufferpool
https://bugzilla.gnome.org/show_bug.cgi?id=790312
2017-11-22 17:30:07 +02:00
Hyunjun Ko
ddd9355767 msdkenc: handle the MORE_DATA case
If the driver requires more data, just unref the frame at the moment
then retreive/finish the frame after encoding is finished.

This also fixes a memory leak.

https://bugzilla.gnome.org/show_bug.cgi?id=790312
2017-11-22 17:30:07 +02:00
Sebastian Dröge
e2c8afa261 decklinkvideosink: Print "Starting" instead of "Stopping" when starting 2017-11-22 17:22:03 +02:00
Matthew Waters
4e422bec4f nvdec: implement flush/drain
Fixes outputted frame sequence when performing a seek

i.e. when seeking backwards, the first frame after the seek was a frame
from the future.  This would result in GstVideoDecoder essentially
marking all the timestamps as essentially bogus and the base class would
attempt to compensate.  A visible indication of this was 'decreasing timestamp'
warning after a seek.

https://bugzilla.gnome.org/show_bug.cgi?id=790478
2017-11-22 14:34:33 +11:00
Nicolas Dufresne
72eebe7f53 kmssink: Add Raspberry Pi (vc4) support 2017-11-21 12:04:58 -05:00
Sebastian Dröge
538aae2404 msdkh264enc: Implement frame-packing SEI insertion for side-by-side and top-bottom
Ideally this would be supported directly in the Intel MediaSDK but
that's not the case nowadays.

https://bugzilla.gnome.org/show_bug.cgi?id=774920
2017-11-20 14:39:03 +02:00
Hyunjun Ko
3c611da315 msdkenc: Fix handling of YUY2, UYVY, BGRA surfaces
https://bugzilla.gnome.org/show_bug.cgi?id=789847
2017-11-20 14:38:34 +02:00
Sebastian Dröge
d3eeb98f0c msdkenc: Add support for YV12, YUY2, UYVY and BGRA
By doing conversion with VPP to NV12 before the actual encoding.

https://bugzilla.gnome.org/show_bug.cgi?id=789847
2017-11-20 14:38:25 +02:00
Vivia Nikolaidou
71bfbce84d decklink: Remove unused "bflags" variable
We are ignoring all its flags anyway, so let's remove it altogether.
2017-11-09 12:08:35 +02:00
Vivia Nikolaidou
5ab660c4e2 decklink: Ignore some driver-set timecode flags
The "fields" flag is ignored because currently GStreamer doesn't support
having only top or only bottom fields inside a frame. The "drop frame"
flag is ignored because some occurrences have been spotted where it
wasn't set while it should have been. In practice, when we have 29.97 or
59.94 FPS, it's always drop-frame.

https://bugzilla.gnome.org/show_bug.cgi?id=790112
2017-11-09 11:55:13 +02:00
Vivia Nikolaidou
bae9427dc1 decklink: Don't crash when getting hw serial number doesn't return OK
If the return value isn't OK, it means we might be getting data that
points to an invalid memory address. That shouldn't make us crash.
2017-11-09 00:19:42 +02:00
Vivia Nikolaidou
07819afda4 Revert "decklink: Detect gaps on incoming stream times, issue warnings"
This reverts commit c1294e10f9.

Was not ready to be pushed yet.
2017-11-07 21:12:42 +02:00
Vivia Nikolaidou
c1294e10f9 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
2017-11-07 16:45:52 +02:00
Hyunjun Ko
66d2bce8ff msdk: fix to build msdkvp8dec with mfx_dispatch
https://bugzilla.gnome.org/show_bug.cgi?id=789751
2017-11-04 11:14:50 +02:00
Edward Hervey
b9e8ffb4be dvb: Fix sockaddr_un usage
The sun_path field needs to be NULL-terminated

CID #206004
2017-11-04 07:51:14 +01:00
Hyunjun Ko
cd2dca6275 msdk: adds msdkvp8dec
https://bugzilla.gnome.org/show_bug.cgi?id=789751
2017-11-01 11:33:50 +02:00
Sebastian Dröge
62f04e801b msdk: Allow building against mfx_dispatcher
E.g. from https://github.com/lu-zero/mfx_dispatch
2017-10-30 18:20:23 +02:00
Matthew Waters
dc6c4ea5c2 vtdec: destroy and create the GL context on start()/stop()
Removes a reference count loop
2017-10-30 17:19:40 +11:00
Nicola Murino
6165e07b62 vtdec: flush decoder on stop
fix a memory leak if the decoder shut down before EOS

https://bugzilla.gnome.org/show_bug.cgi?id=787311
2017-10-30 17:16:49 +11:00
Nicola Murino
889e735675 vtenc: flush encoder on stop
https://bugzilla.gnome.org/show_bug.cgi?id=787311
2017-10-30 17:16:29 +11:00
Nicola Murino
c808b4dd11 vtenc: fix memory leak
finish encoding and clean buffers queue on flush. This avoid a memory leak
if the element shuts down before EOS

https://bugzilla.gnome.org/show_bug.cgi?id=787311
2017-10-20 01:49:22 +11:00
Sebastian Dröge
a563cbbc1c decklink: Add read-only property to read the device serial number
https://bugzilla.gnome.org/show_bug.cgi?id=788510
2017-10-18 12:33:28 +02:00
Ponnam Srinivas
53ea2f82ae nvbaseenc: Fix Memory leak in error case
https://bugzilla.gnome.org/show_bug.cgi?id=788243
2017-10-13 18:43:01 +03:00
Vivia Nikolaidou
0355bb7c34 decklink: Print one "dropped N old frames" message, not one per frame
If we drop many frames at once, printing one message per video frame and
one per audio packet would cause a lot of disk IO. Just print a total at
the end.

https://bugzilla.gnome.org/show_bug.cgi?id=788780
2017-10-11 19:29:26 +03:00
Nicolas Dufresne
f272ddf9c7 kmssink: Fix crash on NULL dmabuf allocator pointer
Now that we are doing lazy allocation, we may endup calling _stop()
before the allocator was created. As a side effect, we need to nul-check
the pointer before calling it's method (_clear_cache()).

https://bugzilla.gnome.org/show_bug.cgi?id=787593
2017-10-06 15:10:26 -04:00
U. Artie Eoff
ddba9e40f2 kms: Fix compilation error when libdrm < 2.4.68
DRM_RDWR was not defined until libdrm 2.4.68.  However,
in configure.ac we only require libdrm >= 2.4.55.

Seems silly to to bump minimum libdrm version for a simple
define.  Thus, define DRM_RDWR if it's not defined.

This fixes compilation error introduced in:

commit 922031b0f9
Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date:   Tue Sep 12 12:07:13 2017 -0400

    kms: Export DMABuf from Dumb buffer when possible

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

Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
2017-10-05 20:50:37 -04:00
Nicolas Dufresne
2057a36d04 kmsallocator: Update GstVideoInfo.size when extrapolating
When we guess the strides, we need to also update the GstVideoInfo.size
otherwise the memory size will be set to something smaller then needed.
This was causing crash with the DMABuf exportation, since we would not
mmap() a large enough buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=787593
2017-10-05 16:19:15 -04:00
Nicolas Dufresne
922031b0f9 kms: Export DMABuf from Dumb buffer when possible
https://bugzilla.gnome.org/show_bug.cgi?id=787593
2017-10-05 16:16:16 -04:00
Nicolas Dufresne
9d5a524547 kmssink: Move the mem cache into the allocator
No functional change, the cache will be later reused by the buffer
pool to keep track of the kmssink memory when exporting dmabuf.

https://bugzilla.gnome.org/show_bug.cgi?id=787593
2017-10-05 16:16:16 -04:00
Nicolas Dufresne
119294f3fc kmsbufferpool: Don't check allocator pointer twice
https://bugzilla.gnome.org/show_bug.cgi?id=787593
2017-10-05 16:16:16 -04:00
Nicolas Dufresne
0a25ca893d kmsbufferpool: Removed unused member fd
https://bugzilla.gnome.org/show_bug.cgi?id=787593
2017-10-05 16:16:16 -04:00
Nicolas Dufresne
045a91922c kmssink: Check if we can prime export
This will be used later to decide if a DMABuf allocator should be
exposed.

https://bugzilla.gnome.org/show_bug.cgi?id=787593
2017-10-05 16:16:16 -04:00
Sebastian Dröge
350c56dab4 decklinkaudio/videosrc: Put hardware reference timestamp in a reference timestamp meta
This can be useful to know on multi-channel cards which frames from
different channels were captured at the same time.
2017-09-28 13:55:18 +03:00
Sebastian Dröge
980ddfdfb7 decklink: Free the correct memory in our own buffer pool
The buffer itself is 128 bytes into the allocated memory area, to be
able to store the size and other metadata before it. Freeing the buffer
directly will make malloc moderately unhappy.
2017-09-21 14:40:06 +03:00
Per-Erik Brodin
650adc43a9 nvdec: Correctly set the discontinuity flag
Instead of clearing the "valid timestamp" flag, which would result in a
timestamp mismatch after a discontinuity.

https://bugzilla.gnome.org/show_bug.cgi?id=787926
2017-09-20 11:22:15 +10:00
Nicolas Dufresne
ee021c0418 kmssink: Don't leak the dumb buffer on drain 2017-09-08 10:16:12 -04:00
Nicolas Dufresne
22ce257f1c kmssink: Don't assume buffer pool won't touch buf pointer
Just for extra safety, let's not assume that gst_buffer_pool_acquire()
won't ever touch the buf pointer.
2017-09-08 09:28:19 -04:00
Guillaume Desmottes
7e38fb5422 kms: fix crash if bo allocation failed when copying to dumb buffer
If bo allocation failed we destroy the buffer and return GST_FLOW_ERROR,
but the @buffer pointer was still pointing to the address of the
destroyed buffer. gst_kms_sink_copy_to_dumb_buffer() was then trying to
unref it when bailing out causing a crash.

Leave @buffer untouched if allocation failed to fix the crash.
Also remove the check on *buffer being not NULL as gst_buffer_new()
will abort if it failed.

https://bugzilla.gnome.org/show_bug.cgi?id=787442
2017-09-08 09:26:21 -04:00
Nicolas Dufresne
9b2e28d91d Request minimum buffer even if need_pool is FALSE
When tee is used, it will not request a pool, but still it wants to
know how many buffers are required.

https://bugzilla.gnome.org/show_bug.cgi?id=730758
2017-09-06 14:19:37 -04:00
Matthew Waters
4d2382fb27 amc: actually use the provided application class loader
For the camera and sensor

Fixes a couple of ClassNotFound java exceptions when initializing GStreamer
off the main thread.
2017-09-05 21:16:33 +10:00
George Kiagiadakis
83883a5c18 ipcpipeline: cleanup header includes
We are only using read(), write(), memcpy(), strlen() and errno
in ipcpipelinecomm.c. Everything else is glib/gstreamer.
2017-09-04 16:03:17 +03:00
George Kiagiadakis
15927b6511 ipcpipeline: use GstPoll instead of select() to watch for socket activity
... and make that code more readable in the process

https://bugzilla.gnome.org/show_bug.cgi?id=787208
2017-09-04 15:52:03 +03:00
Per-Erik Brodin
f267451751 nvdec: fix build after GL/gl.h no longer included
GL headers are no longer included in public gstgl headers, except for
gstglfuncs.h so make sure to include that one.

https://bugzilla.gnome.org/show_bug.cgi?id=786993
2017-08-30 09:37:14 +03:00
Matthew Waters
63c582d685 gl: fix build for ios/win32/android after 2fd84a6c
Some missing GL includes.
2017-08-28 12:57:47 +10:00
Philippe Normand
157a255c43 applemedia: fix build after commit 2fd84a6c 2017-08-22 16:19:39 +01:00
Jan Alexander Steffens (heftig)
f338621446 sys: Convert source files to UTF-8
Otherwise we have problems with the new gtk-doc
ported to python. But it's a good thing to do
anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=786364
2017-08-16 13:05:05 +01:00
Dave Johnstone
0cd1bf13e8 decklinkvideosink: Add support for Decklink hardware keying
Add two properties (keyer-mode and keyer-level) to control the built-in hardware keyer of Decklink cards.

https://bugzilla.gnome.org/show_bug.cgi?id=773660
2017-08-15 11:09:37 +03:00
Nicolas Dufresne
a5229c3098 kmssink: Add bus-id property
https://bugzilla.gnome.org/show_bug.cgi?id=786112
2017-08-11 09:32:08 -04:00
Nicolas Dufresne
b7b7948e5f kmssink: Free devname before setting it
This avoids leaking the devname if the property is set twice.
2017-08-09 15:00:17 -04:00
Nicola Murino
f5d8304724 vtenc: assume 25 fps for unknown framerate
This is better than reporting no latency at
all and then later failing in live pipelines.

https://bugzilla.gnome.org/show_bug.cgi?id=786036
2017-08-09 12:38:05 +03:00
Nicolas Dufresne
1ec081f96d Revert "kmssink: support videooverlay interface"
This is causing hard failure for non-squared pixel. The fix isn't
trivial so taking offline by reverting.

This reverts commit db07f4507d.
2017-08-07 16:00:59 -04:00
Sebastian Dröge
571c8bc1ff decklink: Fix indentation 2017-08-02 19:07:35 +03:00
George Kiagiadakis
58e2b2ef1c ipcpipeline: don't use g_steal_pointer; it's not in the current required version of GLib
We depend on GLib 2.40, g_steal_pointer was introduced in 2.44.

https://bugzilla.gnome.org/show_bug.cgi?id=785698
2017-08-02 10:46:46 +03:00
George Kiagiadakis
30f5abc32c ipcpipeline: move to sys/ and make it dependent on platform support for unix sockets 2017-08-02 10:40:24 +03:00
Georg Lippitsch
a205338082 decklinksrc: Raise limit of devices to 16
https://bugzilla.gnome.org/show_bug.cgi?id=785694
2017-08-01 10:22:58 -04:00
Haihua Hu
db07f4507d kmssink: support videooverlay interface
Implement videooverlay interface in kmssink, divided into two cases:
when driver supports scale, then we do refresh in show_frame(); if
not, send a reconfigure event to upstream and re-negotiate, using the
new size.

https://bugzilla.gnome.org/show_bug.cgi?id=784599
2017-07-31 20:04:15 +02:00
Guillaume Desmottes
2d67189073 kmsallocator: add driver pitch support for planar formats
We used to to handle the driver pitch only for single plan video format.
Add support for multi planes format by re-using the extrapolate function
from the v4l2 element.
Also use this pitch to calculate the proper offsets.

Prevent DRM drivers to pick a slow path if the pitches/offsets don't
match the ones it reported.

https://bugzilla.gnome.org/show_bug.cgi?id=785029
2017-07-25 09:21:16 -04:00
Guillaume Desmottes
f9379b51b6 kmsallocator: inline gst_kms_allocator_alloc_empty()
No semantic change, just renamed the 'tmp' variable to a more meaningful
name and to use the same structure as in gst_kms_allocator_bo_alloc().

Needed as I'm going to move the gst_memory_init() call after the
allocation of the DUMB buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=785029
2017-07-25 09:21:16 -04:00
Nicolas Dufresne
3e0db49f5b d3dsinkwrapper: Make the DLL name match the plugin name
Otherwise, since 1.12, the plugin gets blacklisted.

https://bugzilla.gnome.org/show_bug.cgi?id=785168
2017-07-20 10:45:32 -04:00
Nirbheek Chauhan
a163dff91d decklink: Fix building with MSYS2's MinGW
Reported and tested by Philippe Renon.

https://bugzilla.gnome.org/show_bug.cgi?id=784943
2017-07-20 19:18:28 +05:30
Alessandro Decina
6e3f493a96 meson: fix potentially undefined shm_deps variable 2017-07-20 18:52:19 +10:00
Nirbheek Chauhan
ca8c63080f decklink: Fix format specifier warnings in logging v2
HRESULT is unsigned long on Windows, but the Decklink headers define
it to 'int' on Linux. Confusingly, the defines that talk about the
possible return values for it use long constants. The easy fix would
be to change the linux/LinuxCOM.h header, but that's copied from the
decklink SDK.

Change the logging to always upcast to unsigned long while printing
HRESULT for consistency across platforms.
2017-07-19 04:19:34 +05:30
Nirbheek Chauhan
3fd4249a1d decklink: Fix CI failure due to missing WINAPI definition
WINAPI is for the windows calling convention to use, and should expand
to nothing on Linux.

https://build.gnome.org/continuous/buildmaster/builds/2017/07/18/76/build/log-gst-plugins-bad.txt
2017-07-19 04:14:13 +05:30
Nirbheek Chauhan
2fac6fa6a6 decklink: Fix format specifier warnings in logging
gstdecklinkvideosrc.cpp:425:7: warning: format '%x' expects argument of type 'unsigned int', but argument 8 has type 'HRESULT {aka long int}' [-Wformat]

[and so on]
2017-07-19 02:27:48 +05:30
Nirbheek Chauhan
0084bfccc9 decklink: Fix build on mingw32 by adding missing WINAPI
gstdecklinkaudiosink.cpp:155:19: error: conflicting type attributes specified for 'virtual HRESULT GStreamerAudioOutputCallback::QueryInterface(const IID&, void**)'
In file included from /var/lib/jenkins/workspace/cerbero-cross-mingw32/workdir/mingw/w32/bin/../lib/gcc/i686-w64-mingw32/4.7.3/../../../../i686-w64-mingw32/include/objbase.h:153:0,
                 from /var/lib/jenkins/workspace/cerbero-cross-mingw32/workdir/mingw/w32/bin/../lib/gcc/i686-w64-mingw32/4.7.3/../../../../i686-w64-mingw32/include/ole2.h:16,
                 from /var/lib/jenkins/workspace/cerbero-cross-mingw32/workdir/mingw/w32/bin/../lib/gcc/i686-w64-mingw32/4.7.3/../../../../i686-w64-mingw32/include/windows.h:94,
                 from /var/lib/jenkins/workspace/cerbero-cross-mingw32/workdir/mingw/w32/bin/../lib/gcc/i686-w64-mingw32/4.7.3/../../../../i686-w64-mingw32/include/rpc.h:16,
                 from win/DeckLinkAPI.h:27,
                 from gstdecklink.h:35,
                 from gstdecklinkaudiosink.h:27,
                 from gstdecklinkaudiosink.cpp:25:
/var/lib/jenkins/workspace/cerbero-cross-mingw32/workdir/mingw/w32/bin/../lib/gcc/i686-w64-mingw32/4.7.3/../../../../i686-w64-mingw32/include/unknwn.h:67:25: error:   overriding 'virtual HRESULT IUnknown::QueryInterface(const IID&, void**)'

(and many more)

https://ci.gstreamer.net/job/cerbero-cross-mingw32/6407/console
2017-07-19 02:27:29 +05:30
Reynaldo H. Verdejo Pinochet
43335d31c6 dvb: src: consolidate tuning stats gathering
Additionally: drop unneeded fe_fd variable.
2017-07-14 14:16:46 -07:00
Nirbheek Chauhan
528ae2c15d decklink: Add autotools support on Windows
Also add a missing windows file to EXTRA_DIST

https://bugzilla.gnome.org/show_bug.cgi?id=784943
2017-07-14 17:21:13 +05:30
Georg Lippitsch
f0c7fbb371 decklinkvideosrc: Add custom memory allocator
The default memory allocator of the decklink library allocates
a fixed pool of buffers, and the number of buffers is unknown.
This makes it impossible do useful queuing downstream. The new
memory allocator can create an unlimited number of buffers,
giving all queuing features one would expect from a live source.

https://bugzilla.gnome.org/show_bug.cgi?id=782556
2017-07-11 14:26:31 +03:00
Philippe Renon
db36718ee4 directsoundsrc: Properly pass pLockedBuffer by reference when calling IDirectSoundCaptureBuffer_Lock
https://bugzilla.gnome.org/show_bug.cgi?id=784755
2017-07-11 09:12:48 +03:00
Víctor Manuel Jáquez Leal
c538942b0d kmssink: initialize variable
Otherwise clang complains:

gstkmssink.c:1192:7: warning: variable 'buf' is used uninitialized
whenever 'if' condition is true [-Wsometimes-uninitialized]
2017-07-10 13:32:49 +02:00
Nicolas Dufresne
0a0bc8ab94 kmssink: Track cached kmsmem and clear them on drain
In this patch we keep track of the cached kmsmem in a way
that we can clear the cache during the drain process. This
release the framebuffer before waiting for the next vblank,
hence add support for DRM driver (like Intel one) that release
the associated DMABuf reference asynchronously.

https://bugzilla.gnome.org/show_bug.cgi?id=782774
2017-07-07 14:36:38 -04:00
Nicolas Dufresne
98b91d09c2 kmssink: Move kmsmem cache code higher
This will be needed as this API will be used elsewhere to clear
the cache.

https://bugzilla.gnome.org/show_bug.cgi?id=782774
2017-07-07 14:36:38 -04:00
Nicolas Dufresne
b8c5a4c9ed kmssink: drop last rendered buffer on ALLOCATION and DRAIN queries
kmssink keeps a reference on the last rendered buffer. If this buffer
refers to an upstream buffer, it should be should be released on DRAIN
and ALLOCATION queries so all upstream buffers can be returned to the
pool if needed. As the buffer may be used for scanout, we copy this
buffer into a dumb buffer prior to let it go.

Based on patch from Guillaume Desmottes <guillaume.desmottes@collabora.com>

https://bugzilla.gnome.org/show_bug.cgi?id=782774
2017-07-07 14:36:38 -04:00
Nicolas Dufresne
cfadd5a936 kmssink: Don't leak GEM primed from DMABuf
This otherwise breaks DMABuf reclaiming. This is not visible from
userspace, but inside the kernel, the DRM driver will hold a ref to the
DMABuf object. With a V4L2 driver allocating those DMABuf, it then
prevent changing the resolution and re-allocation new buffers.

https://bugzilla.gnome.org/show_bug.cgi?id=782774
2017-07-07 14:36:38 -04:00
Nicolas Dufresne
6e3fe4eaab kmssink: Factor out copying to dump buffer
This will be used to copy any upstream memory in order to return it on
resolution change, allocation query or drain query.

https://bugzilla.gnome.org/show_bug.cgi?id=782774
2017-07-07 14:36:38 -04:00
Tim-Philipp Müller
c29843dc94 meson: msdk: use python3 from python3 module 2017-07-07 12:28:14 +01:00
Reynaldo H. Verdejo Pinochet
2d511343cb dvb: src: use correct unit in tuning-timeout prop description
Milliseconds was wrong and made use of this timeout quite
confusing. The code uses the value as microsenconds so
any meaningful number was off by orders of magnitude.
2017-06-28 16:40:50 -07:00
Per-Erik Brodin
3223d605bf nvdec: Use qdata on memory instead of buffer meta
Using a meta can be problematic since the memory contained in the buffer
can be transferred to a new buffer in which case the meta would be lost.

https://bugzilla.gnome.org/show_bug.cgi?id=784235
2017-06-28 10:15:52 +03:00
Per-Erik Brodin
ab9d87f168 nvdec: New plugin for NVIDIA hardware video decode
https://bugzilla.gnome.org/show_bug.cgi?id=781537
2017-06-27 08:59:59 +03:00
Nicolas Dufresne
eab6cd8d6d meson: Enable shm unit test 2017-06-21 15:15:37 -04:00
Nicolas Dufresne
af338de2b8 meson: Enable building shm plugin 2017-06-21 13:45:04 -04:00
Nicolas Dufresne
809d313493 shmpipe: Should not use glib type without ifdef
The shmpipe should build without GLIB.
2017-06-21 13:42:31 -04:00
Reynaldo H. Verdejo Pinochet
b09b17365d dvb: src: fix use of wrong array index for tune signal
Erroneous value made "TUNE" overwrite "TUNNING_FAIL" ....
2017-06-16 13:57:49 -07:00
Reynaldo H. Verdejo Pinochet
5ad88a0352 dvb: src: issue warning on failed delsys-vs-parameter issues
Aids in understanding misses with the delsys auto-detection logic
2017-06-16 13:56:40 -07:00
Scott D Phillips
dcd9032d95 msdk: enc: set pts and dts, fix inverted sync_point flag
Set the pts and dts on the frame that we receive from the msdk.
Also fix the inverted logic in setting sync points, previously we
were marking all frames as sync points except IDRs.

https://bugzilla.gnome.org/show_bug.cgi?id=782801
2017-06-07 19:23:28 +03:00
Sebastian Dröge
f0b1b97b25 decklink: Make timestamp reference specifier driver specific 2017-06-07 17:50:09 +03:00
Guillaume Desmottes
d373c4478b kmssink: Add xilinx_drm to the list of drivers
This prevent having to set the driver-name explicitly when running on
Zynq UltraScale+ boards.

https://bugzilla.gnome.org/show_bug.cgi?id=783188
2017-06-05 12:56:03 +02:00
Jan Schmidt
47abc9a09c uvch264src: Apply timestamps to outgoing aux buffers
When extracting an aux buffer from an MJPG carrier, at
*least* put the original timestamp on it, even if we
fail to apply any other timestamp (which we always do
at the moment, because the timestamp calculating code
was never finished). Apply a DTS using the camera
supplied delay value as well, assuming that there's
no re-ordering going on (there isn't in the C920,
which is really the only extant camera doing this
stuff) and a warning if that turns out not to be true.
2017-05-18 17:49:46 +02:00
Sebastian Dröge
732012a78e amcvideodec: Unref downstream caps after usage
https://bugzilla.gnome.org/show_bug.cgi?id=782771
2017-05-18 14:34:46 +03:00
Tim-Philipp Müller
80d66dfec8 Fix up package name and origin in some plugins 2017-05-18 10:58:20 +01:00
Sebastian Dröge
634cd87c76 gst: Clear floating flag in constructor of all GstObject subclasses that are not owned by any parent
https://bugzilla.gnome.org/show_bug.cgi?id=743062
2017-05-17 10:40:23 +03:00
Sebastian Dröge
c40b8a894d decklink: Sink the clock reference in the constructor
This is now needed as GstClock does not do that internally anymore,
because that broke bindings.

https://bugzilla.gnome.org/show_bug.cgi?id=743062
2017-05-17 10:40:23 +03:00
Nicolas Dufresne
4261692187 Remove plugin specific static build option
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:05:52 -04:00
Sebastian Dröge
7d64bb7513 decklinkvideosink: Copy min(gstreamer_stride, decklink_stride) per line
Instead of just bpp * width, which might be more than we can copy.
2017-05-15 16:38:51 +03:00
Sebastian Dröge
5dc1039937 decklinkvideo/audiosrc: Add GstReferenceTimestampMeta with the stream time to each buffer
This is basically a frame counter provided by the driver and it's
advancing at the speed of the HDMI/SDI input. Having this available on
each buffer allows to know what constant-framerate-based timestamp each
frame is corresponding to and can be used e.g. to write out files
accordingly without having the local pipeline clock timestamps used.

https://bugzilla.gnome.org/show_bug.cgi?id=779213
2017-05-12 11:42:00 +02:00
Sebastian Dröge
4df6be45f0 decklinkaudiosrc: Consistently pass stream_time and stream_duration to audio/video src
It's the same value now, pass it consistently.
2017-05-12 11:36:27 +02:00
Nirbheek Chauhan
8494f1e709 directsoundsrc: Use a GstClockID to wait instead of Sleep()
The main advantage is that our sleeps can be interrupted in case of
an src_reset(). Earlier, we would need to wait for a read to complete
before we could do a reset, which could take a long time.

https://bugzilla.gnome.org/show_bug.cgi?id=781249
2017-05-12 14:51:10 +05:30
Scott D Phillips
b2663e12e4 msdk: Declare libmfx.a as a C++ static library
This lets meson know that the overall plugin needs built with C++
linking.

https://bugzilla.gnome.org/show_bug.cgi?id=781561
2017-05-11 07:17:09 +01:00
Sebastian Dröge
28a16b5e94 decklink: Always use the video stream time for audio too
The audio packet times can be completely unrelated to the video stream
time, depending on the card. While this looks like a bug in the driver,
just always using the video stream time (which is correct) works as a
workaround for now.
2017-05-10 17:02:28 +02:00
Nirbheek Chauhan
1a8610f8f8 directsoundsrc: Use latency-time and buffer-time settings
Earlier, the plugin was ignoring those settings and blindly setting
buffer-time to 2 seconds and latency-time to 200ms, which forced all
pipelines to have a minimum latency of 200ms + sink latency.

The values of segsize and segtotal were also not derived correctly.
Now we obey these values, and you can get close to the previous
behaviour by setting buffer-time and latency-time manually. Note that
they are set in microseconds.

As a consequence, when we haven't received enough data from the
device, we now sleep for a time proportional to the data remaining.
However, Directsound is a deprecated API so it maintains its own
software ringbuffer which updates at arbitrary intervals. Hence we
might have to wait a full segsize to get the last 10% of data. To
avoid tight loops, we clamp our sleep floor at 10ms.

In my testing, this keeps the wakeups not-too-high (proportional to
the latency-time set on the source). Further improvements should be
made by fixing the WASAPI audio source plugin instead of this.
Directsound is deprecated and as the comments explain, it is
impossible to get low latency, decent quality, or good performance
from it.

Based on a patch by Sebastian Dröge <sebastian@centricular.com>

https://bugzilla.gnome.org/show_bug.cgi?id=781249
2017-05-08 16:13:20 +02:00
Nirbheek Chauhan
b63fb59a11 Revert "decklink: Fix debug logging warnings on Windows"
This reverts commit 845832263b.

The commit broke cross-mingw CI:
https://ci.gstreamer.net/job/GStreamer-master/8659/console

It seems that cross-mingw on Autotools and native-mingw on Meson
disagree about the size of HRESULT. Revert for now till I can
investigate the Meson side of things some more.
2017-05-05 18:52:24 +05:30
Nirbheek Chauhan
8865b440d9 decklink: Fix linking on MinGW
MinGW does not provide comsupp.lib, so there's no implementation of
_com_util::ConvertBSTRToString. Use a fallback implementation that
uses wcstombs() instead.

On MinGW we also truncate the name to 100 chars which should be fine.
2017-05-05 17:49:22 +05:30
Nirbheek Chauhan
3d4c428e41 decklink: Fix building on Windows
BSTR is already a pointer to a string
2017-05-05 17:49:22 +05:30
Nirbheek Chauhan
845832263b decklink: Fix debug logging warnings on Windows
HRESULT is unsigned long int, not unsigned int
2017-05-05 17:49:22 +05:30
Nirbheek Chauhan
e8e639081a meson: Fix decklink building on Windows
Needs comsuppw, and does not need libdl or pthread.
2017-05-05 17:49:21 +05:30
Josep Torra
367b4a353f qtkit: drop the qtkitvideosrc element
The QTKit framework had been deprecated for long in favour of AVFundation
framework and we already have avfvideosrc that provides the same
functionality.

https://bugzilla.gnome.org/show_bug.cgi?id=782078
2017-05-03 13:21:42 +02:00
shakin chou
febbaaddcf amcvideodec/enc: Correctly check for no PTS on input buffers
MediaCodec gives us a presentation timestamp of 0 if it does not know
anything, but GStreamer gives us GST_CLOCK_TIME_NONE. Don't mix up these
two.

https://bugzilla.gnome.org/show_bug.cgi?id=780190
2017-04-26 13:40:28 +03:00
Nicolas Dufresne
99755badbe kmssink: Add msm to the list of drivers
This prevent having to set the driver-name explicitly when running on
Qualcomm/MSM boards.
2017-04-21 21:30:10 -04:00
Sebastian Dröge
0a4717ea20 Revert "decklinkvideo/audiosrc: Add GstReferenceTimestampMeta with the stream time to each buffer"
This reverts commit d5684d5b14.

This shouldn't have been merged before 1.12.
2017-04-19 19:08:41 +01:00
Sebastian Dröge
d5684d5b14 decklinkvideo/audiosrc: Add GstReferenceTimestampMeta with the stream time to each buffer
This is basically a frame counter provided by the driver and it's
advancing at the speed of the HDMI/SDI input. Having this available on
each buffer allows to know what constant-framerate-based timestamp each
frame is corresponding to and can be used e.g. to write out files
accordingly without having the local pipeline clock timestamps used.

https://bugzilla.gnome.org/show_bug.cgi?id=779213
2017-04-19 19:06:37 +01:00
Ole André Vadla Ravnås
cb28314013 nvenc: Stop bitstream thread in ::stop()
Otherwise we are likely to crash if EOS didn't happen yet.

https://bugzilla.gnome.org/show_bug.cgi?id=781410
2017-04-19 11:51:57 +01:00
Ole André Vadla Ravnås
70ac63a97c nvenc: Update to the current gstreamer-gl API
https://bugzilla.gnome.org/show_bug.cgi?id=781410
2017-04-19 11:51:55 +01:00
Philipp Zabel
9ed9c14eb5 kmssink: if the plane can not scale, retry without scaling and remember
Retry the drmModeSetPlane call without scaling if the first try fails,
and remember not to scale anymore.

https://bugzilla.gnome.org/show_bug.cgi?id=781188
2017-04-12 19:31:47 +02:00
Thibault Saunier
78022a6e0c docs: Port all docstring to gtk-doc markdown 2017-04-12 12:57:57 -03:00
Sebastian Dröge
244a80787d Revert "directsoundsrc: Correctly calculate segsize and segtotal"
This reverts commit 6d256d9908.

It was configuring the period/buffer size in a way that often causes
drop-outs or complete underruns. Needs further investigation.
2017-04-12 13:18:18 +03:00
Tim-Philipp Müller
0ded4c1356 meson: decklink: fix meson configure error on macOS
"meson encountered an error in file
sys/decklink/meson.build, line 33, column 2:
Invalid use of addition: must be str, not list"

Also remove nonsensical linker flags on windows.

https://bugzilla.gnome.org/show_bug.cgi?id=781156
2017-04-11 09:43:53 +01:00
Sebastian Dröge
6d256d9908 directsoundsrc: Correctly calculate segsize and segtotal
segsize should be based on latency-time, and must be a multiple of the
frame size. segtotal should be based on buffer-time and segsize.

This prevents errors caused by outputting buffers that are not a
multiple of the frame size, and actually makes the buffer-time and
latency-time properties do what they're supposed to do.
2017-04-06 16:15:28 +03:00
Sebastian Dröge
d53da45886 decklink: Use GstQueueArray instead of GQueue
Let's save two allocations and frees per frame.
2017-03-24 14:26:39 +02:00
Sebastian Dröge
40a2deef80 kmssink: Fix compiler warning with gcc 7
gstkmssink.c: In function ‘gst_kms_sink_get_input_buffer’:
gstkmssink.c:1102:29: error: ‘mems[0]’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
   kmsmem = (GstKMSMemory *) get_cached_kmsmem (mems[0]);
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
2017-03-22 17:38:37 +02:00
Georg Lippitsch
7ee593e493 decklinkvideosrc: Add read-only "signal" property
https://bugzilla.gnome.org/show_bug.cgi?id=780367
2017-03-22 15:17:30 +02:00
Reynaldo H. Verdejo Pinochet
b1434d1f1c dvb: camutils: drop macro disabling glib deprecation warnings
No longer needed.
2017-03-21 11:28:02 -07:00
Tim-Philipp Müller
1d34c9e0bf dvb: fix distcheck
Apparently automake automatically dists README files,
but can't handle when they disappear.
2017-03-20 19:57:32 +00:00
Tim-Philipp Müller
24ee608947 Update for 'mad' mp3 decoder removal
https://bugzilla.gnome.org/show_bug.cgi?id=776140
2017-03-20 17:15:54 +00:00
George Kiagiadakis
4757ec8860 kmssink: adjust memory offset calculation for dmabuf buffers
The data in the dmabuf fd may not start from byte 0, therefore
we need to inform DRM about this additional offset.

https://bugzilla.gnome.org/show_bug.cgi?id=779790
2017-03-14 17:07:41 +02:00
Matthew Waters
b01ae6e5e6 applemedia/iosurfacememory: Fix missing variable name change
956c4d0bde missed a variable name change.
Fix that.
2017-03-14 11:39:23 +11:00
Matthew Waters
956c4d0bde gl/format: use our own GL format enum's instead of gstvideo's
They can describe in more detail (such as component sizes) the requested format.
2017-03-13 21:10:58 +11:00
Samuel Maroy
1e77971dff shmsink: continue polling after EINTR
https://bugzilla.gnome.org/show_bug.cgi?id=779856
2017-03-10 15:51:11 -05:00
Sebastian Dröge
2bcd155a6a avfvideosrc: Use AVCaptureDeviceTypeBuiltInDuoCamera instead of DualCamera for now
The former is deprecated in 10.2 but we don't require that SDK yet.
2017-03-09 10:10:37 +02:00
Nicolas Dufresne
eb2dae8fd6 Rename plugin filesnames to match plugin names
- libgstgtksink.so -> libgstgtk.so
- libgstteletextdec.so -> libgstteletex.so
- libgstcamerabin2.so -> libgstcamerabin.so
- libgstonvif.so -> libgstrtponvif.so (meson only)
- sdp -> sdpelem (avoid clash with libgstsdp)
- gstsiren -> siren
- libgstkmssink.so -> libgstkms.so

https://bugzilla.gnome.org/show_bug.cgi?id=779344
2017-03-08 20:04:23 -05:00
Nick Kallen
82c132aa50 applemedia/gl: Fix compile issues for OSX
https://bugzilla.gnome.org/show_bug.cgi?id=778333
2017-03-08 15:23:42 +02:00
Nick Kallen
0968bad8a4 applemedia: avfvideosrc supports position, device-type, and orientation
Avfvideosrc represents an iphone camera or, on mac, a screencapture session.
The old API allowed you to select an input device by device index only. The new
API adds the ability to select the position (front or back facing) and
device-type (wide angle, telephoto, etc.). Furthermore, you can now specify
the orientation (portrait, landscape, etc.) of the videostream.

https://bugzilla.gnome.org/show_bug.cgi?id=778333
2017-03-07 13:39:19 +02:00
Nick Kallen
46bbc60d24 applemedia/gl: Update code to use ARC
All code interacting with Objective-C objects should now use Automated
Reference Counting rather than manual memory management or Garbage
Collection. Because ARC prohibits C-structs from containing
references to Objective-C objects, all such fields are now typed
'gpointer'. Setting and gettings Objective-C fields on such a
struct now uses explicit __bridge_* calls to tell ARC about
object lifetimes.

https://bugzilla.gnome.org/show_bug.cgi?id=777847
2017-03-07 13:37:07 +02:00
Nick Kallen
6e4354600d applemedia: Fix video texture cache build issue on MacOS
https://bugzilla.gnome.org/show_bug.cgi?id=779247
2017-03-04 17:35:23 +02:00
Nick Kallen
e557e93f3b applemedia: ensure all textures are released before texturecache is released
It was previously possible for videotexturecache to be finalized before all of
its textures. Finalizing outstanding textures in this circumstance leads
to a crash. This patch ensure resources are freed in the proper order.

https://bugzilla.gnome.org/show_bug.cgi?id=779247
2017-03-04 11:59:57 +02:00
Sebastian Dröge
ce4df5311b decklinkvideosink: Don't error out if displaying the preroll frame fails
This seems to happen sometimes on some hardware, and is not really
critical as long as the scheduling of the normal frames works fine.

Only post a warning message for this case.
2017-03-01 12:08:58 +02:00
Arun Raghavan
962d747c3a bluez: Chain up to basesrc query instead of override pad query function
Overriding the pad query function completely overrides all the default
query handling implemented in basesrc, including caps etc. The correct
thing to do is just override the basesrc query vfunc and then chain up
for the queries we don't handle.
2017-02-23 00:36:33 +05:30
Nick Kallen
2f676d61a7 Builds for MacOS
https://bugzilla.gnome.org/show_bug.cgi?id=778434
2017-02-14 14:50:34 +01:00
Nick Kallen
487e57f1b7 applemedia: free videotexturecache texture in gl thread
The cached texture was treated as user_data passed to GstGLBaseMemory
and freed with a GDestroyNotify function. However, this data must
be treated specially: it must be destroyed in the GL thread.

https://bugzilla.gnome.org/show_bug.cgi?id=778434
2017-02-14 12:25:55 +02:00
Sebastian Dröge
0102caf06d shm: Change example pipelines to something that actually works
Enforce exactly the same raw video format on both sides, include a
videoconvert and queue before the video sink and make the shm area a
little bit bigger so that things don't get stuck.
2017-02-13 13:32:14 +02:00
Sebastian Dröge
aca89aeeaa amcvideoenc: Encoder output is generally not properly parsed
Don't claim it is and let h264parse and other parsers do their job.

https://bugzilla.gnome.org/show_bug.cgi?id=774772
2017-02-08 00:05:47 +02:00
Sebastian Dröge
7817f85759 amcvideoenc: Set timestamps on header buffers too
https://bugzilla.gnome.org/show_bug.cgi?id=774772
2017-02-08 00:05:47 +02:00
Sebastian Dröge
c27091d67f amcvideoenc: Encoded H264 is generally not AU aligned
Claiming that it is, can cause h264parse to skip some parsing steps and
the output stays unaligned.

https://bugzilla.gnome.org/show_bug.cgi?id=774772
2017-02-08 00:05:47 +02:00
Sebastian Dröge
2ab19144be decklinkvideosink: Show video frames synchronously in PAUSED
Otherwise we will only show the preroll frame once PLAYING is reached,
which is rather suboptimal for e.g. seeking in PAUSED.
2017-02-01 17:11:37 +02:00
Sebastian Dröge
8d723c5fe1 decklinkvideosink: Do nothing if set_caps() is called with basically the same caps again
and error out here already otherwise. We currently don't support
reconfiguration here and it can't happen really either unless the auto
mode is selected.
2017-02-01 16:45:53 +02:00
Vivia Nikolaidou
21a9a89851 decklinkaudiosrc: Fix get_caps returning EMPTY
If get_caps is called before negotiation, channels_found will be 0 and
therefore won't intersect with the template caps.

https://bugzilla.gnome.org/show_bug.cgi?id=778028
2017-02-01 15:17:33 +02:00
Sebastian Dröge
dd4f14fd68 decklink: Add to the meson Windows build 2017-01-31 14:56:34 +02:00
Sebastian Dröge
4cdd234add decklink: Fix indentation 2017-01-31 14:56:34 +02:00
Sebastian Dröge
861cb49895 decklink: Fix compilation on Windows by properly using COM strings there 2017-01-31 14:56:34 +02:00
Axel Menzel
f784fda162 decklink: Fix compilation with MSVC 2017-01-31 14:56:34 +02:00
Sebastian Dröge
97be9446f5 decklink: Include stdint.h for int32_t, etc as needed by the Decklink headers 2017-01-31 14:56:34 +02:00
Sebastian Dröge
858e7b28d3 decklink: Add "extern C" forward declaration for CreateDeckLinkIteratorInstance() 2017-01-31 14:56:34 +02:00
Axel Menzel
dcacb99aaf decklink: Update Windows SDK to a newer version 2017-01-31 14:56:34 +02:00
Sebastian Dröge
01c60e664d applemedia: Fix some compiler warnings on iOS 2017-01-27 18:11:15 +02:00
Sebastian Dröge
81b20f15fc decklinkaudiosrc: Fix compilation on OSX
15:18:47 gstdecklinkaudiosrc.cpp:745:45: error: cannot initialize a parameter of type 'int64_t *' (aka 'long long *') with an rvalue of type 'gint64 *' (aka 'long *')
15:18:47           (BMDDeckLinkMaximumAudioChannels, &self->channels_found);
15:18:47                                             ^~~~~~~~~~~~~~~~~~~~~
15:18:47 ./linux/DeckLinkAPI.h:970:87: note: passing argument to parameter 'value' here
15:18:47     virtual HRESULT GetInt (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ int64_t *value) = 0;
15:18:47                                                                                       ^
2017-01-27 17:24:20 +02:00
Vivia Nikolaidou
f23277e55d decklinkaudiosrc: Option to use max channels supported by device
Query the device for the maximum number of channels supported and have
an option to use that. Default is still 2.

https://bugzilla.gnome.org/show_bug.cgi?id=777458
2017-01-26 16:18:57 +02:00
Sebastian Dröge
926c9a243d applemedia: Fail cleanly instead of crashing if obtaining a GL display failed
https://bugzilla.gnome.org/show_bug.cgi?id=777742
2017-01-26 15:35:53 +02:00
Sebastian Dröge
d6b75e5233 decklink: Fix compiler warning with clang
gstdecklink.cpp:821:11: warning: variable 'dtc' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
      if (m_input->videosrc) {
          ^~~~~~~~~~~~~~~~~
gstdecklink.cpp:837:41: note: uninitialized use occurs here
          stream_time, stream_duration, dtc, no_signal);
                                        ^~~
gstdecklink.cpp:821:7: note: remove the 'if' if its condition is always true
      if (m_input->videosrc) {
      ^~~~~~~~~~~~~~~~~~~~~~~
gstdecklink.cpp:810:29: note: initialize the variable 'dtc' to silence this warning
      IDeckLinkTimecode *dtc;
                            ^
                             = NULL
2017-01-25 20:48:58 +02:00
Scott D Phillips
732a157cb7 msdk: Propagate GstFlowReturn values
In some places a GST_FLOW_FLUSHING result was return as a FALSE
gboolean and then returned from a parent function as
GST_FLOW_ERROR. This prevented seeking from working.

https://bugzilla.gnome.org/show_bug.cgi?id=776360
2017-01-20 11:11:50 -08:00
Edward Hervey
e99e69843a androidmedia: Use proper instance name 2017-01-13 14:46:36 +01:00
Matthew Waters
ed03fd6d3f amcvideodec: fix build error from change in libgstgl
gstamcvideodec.c: In function 'gst_amc_video_dec_src_query':
gstamcvideodec.c:2412:55: error: 'self' undeclared (first use in this function)
       if (gst_gl_handle_context_query ((GstElement *) self, query,
2017-01-13 21:17:33 +11:00
Matthew Waters
03b539bdfc gl: update sys dependants for function removals
4315a4b54d forgot to change the androidmedia/videotoolbox/caopengllayer
sources as required.
2017-01-13 13:01:28 +11:00
Vivia Nikolaidou
3cb43f35b8 decklinkvideosrc: Do not append a zero timecode if none is found on the source
If the source doesn't give us timecode information, do not append a zero
timecode to the frames.

https://bugzilla.gnome.org/show_bug.cgi?id=776900
2017-01-09 18:37:50 +02:00
Tim-Philipp Müller
aceb64a21c meson: decklink: fix plugin filename 2017-01-05 20:45:15 +00:00
Tim-Philipp Müller
3ecf1d8fd1 meson: build decklink plugin 2017-01-05 20:34:14 +00:00
Sebastian Dröge
9988ad9c42 androidmedia: Add support for Opus in the decoder 2017-01-05 15:05:42 +02:00
Sebastian Dröge
8b46e1b95a androidmedia: Silently skip COLOR_FormatAndroidOpaque when converting to caps
This is special and handled in the decoder when doing rendering to a
surface. Printing a warning for this is just unnecessary noise
2017-01-05 15:05:42 +02:00
Sebastian Dröge
5619690ae1 androidmedia: Add support for VP9 2017-01-04 20:59:39 +02:00
Sebastian Dröge
eca6c35601 androidmedia: Actively request the Java VM from the application
This is more consistent with how we already request the application
class loader and other application resources elsewhere.
2017-01-03 18:53:39 +02:00
Sebastian Dröge
e31714691a decklink: Fix indentation 2017-01-03 17:31:03 +02:00
Sebastian Dröge
e8e531ee12 decklinkaudiosrc: Add support for 8/16 channels via property
These are unpositioned channel layouts.
2017-01-03 17:30:07 +02:00
Garima Gaur
81b0a14d69 Fix some caps leaks in pad template creation code
gst_pad_template_new() does not take ownership of
the caps passed to it, so we need to unref the caps.

https://bugzilla.gnome.org/show_bug.cgi?id=776790
https://bugzilla.gnome.org/show_bug.cgi?id=776787
2017-01-03 10:02:58 +00:00
Arun Raghavan
b70ef1de49 uvch264src: Add meson build support 2017-01-02 19:58:06 +05:30
Arun Raghavan
4f282f6068 uvch264src: Fix wrong argument order to force-key-unit event
CID 1373421
2017-01-02 19:58:06 +05:30
Ursula Maplehurst
d741c9ecc3 androidmedia: some files are missing in the release tarball
https://bugzilla.gnome.org/show_bug.cgi?id=776591
2016-12-30 07:37:23 +01:00
Reynaldo H. Verdejo Pinochet
3e519937a1 dvb: move adapter number set-up by way of environment to dvbsrc
This logic did not belong to the channel configuration
parser (only used by dvbbasebin) but to dvbsrc, which
is the element directly using this value and honoring
the "adapter" property.

Allows previously non-working cases like this to work:

GST_DVB_ADAPTER=1 gst-launch-1.0 dvbsrc delsys=11 modulation=7 frequency=689000000 ! fakesink
2016-12-22 16:39:24 -08:00
Reynaldo H. Verdejo Pinochet
61b7b1856e dvb: parsechannels: replace missleadign error message
Possible failure cases also include not finding the
requested channel.
2016-12-22 13:42:59 -08:00
Reynaldo H. Verdejo Pinochet
6c0d9ecc35 dvbsrc: add DTV_STREAM_ID to the >= v8 (minor) group
Drop redundant comment while at it.
2016-12-22 13:06:21 -08:00
Sebastian Dröge
9b5de05399 Remove various unported plugins
If they were not ported after 4+ years it seems unlikely that anybody is
ever going to need them again. They're still in the GIT history if
needed.

https://bugzilla.gnome.org/show_bug.cgi?id=774530
2016-12-21 11:17:11 +02:00
Garima Gaur
0fdd4e2539 gst: Fix memory leaks in usage of gst_element_get_request_pad() API
The return value has to be unreffed at some point.

https://bugzilla.gnome.org/show_bug.cgi?id=776334
2016-12-21 10:28:12 +02:00
Sebastian Dröge
3357ddb0e1 amcaudiodec: Set "is-adts" to 1 for ADTS AAC
Otherwise it fails to decode.

https://bugzilla.gnome.org/show_bug.cgi?id=740101
2016-12-15 14:09:25 +02:00
Garima Gaur
9be02ccb2a sys: Fix caps memory leak from pad template creation
https://bugzilla.gnome.org/show_bug.cgi?id=776076
2016-12-14 10:21:39 +02:00
Sebastian Dröge
5c99f9cf37 gst: Don't declare variables inside the for loop header
This is a C99 feature.
2016-12-13 22:39:01 +02:00
Scott D Phillips
fbf7e905f0 msdk: add mjpeg decoder
https://bugzilla.gnome.org/show_bug.cgi?id=774793
2016-12-13 00:06:42 +01:00
Scott D Phillips
1a4db8846f msdk: add mjpeg encoder
https://bugzilla.gnome.org/show_bug.cgi?id=774793
2016-12-13 00:06:42 +01:00
Scott D Phillips
1f6903bf3e msdk: Add H.265 decoder
https://bugzilla.gnome.org/show_bug.cgi?id=775726
2016-12-12 23:48:46 +01:00
Scott D Phillips
83774c3eb9 msdk: Add H.264 decoder
The decoder only supports system memory output presently.

https://bugzilla.gnome.org/show_bug.cgi?id=774587
2016-12-12 23:16:11 +01:00
Reynaldo H. Verdejo Pinochet
1172b4df5a dvbsrc: fix unconditional use of FEC 2/5
It is not defined for < v5 minor 7
2016-12-08 12:16:28 -08:00
Reynaldo H. Verdejo Pinochet
9d94b15310 dvbsrc: add delivery system to missing modulation check message
A tuning operation can spawn multiple checks. Being
able to differentiate between them makes debugging
easier.
2016-12-08 12:13:48 -08:00
Reynaldo H. Verdejo Pinochet
a8d3f4d785 dvb/parsechannels: drop trailing whitespace 2016-12-08 11:30:42 -08:00
Reynaldo H. Verdejo Pinochet
b00cdd944b dvbsrc: drop needless wrapper around DVB API's dvb_diseqc_master_cmd
Its only purpose was to hold a wait time that was always 0
2016-12-05 23:38:53 -08:00
Reynaldo H. Verdejo Pinochet
ff9cc21933 dvbsrc: drop supperfluous wait in diseqc_send_msg()
It is always zero.
2016-12-05 23:18:38 -08:00
Reynaldo H. Verdejo Pinochet
1dbbd4c91e dvbsrc: fix unconditional use of SYS_DVBC_ANNEX_C
It is not defined for < v5 minor 6
2016-12-05 16:18:54 -08:00
Reynaldo H. Verdejo Pinochet
43aa0462f4 dvbsrc: fix value for DVB-C annex B field in adapter structure 2016-12-05 16:18:05 -08:00
Víctor Manuel Jáquez Leal
4b3baab40a kmssink: post error message if start() fails
It is expected to post an error message in the bus if the device cannot
be started.
2016-11-30 20:13:55 +01:00
Michael Tretter
649364b923 kmssink: configure display mode during set_caps
Configure the display mode when setting the negotiated caps instead of
during showing the first frame.

A framebuffer is required to set the mode. Allocate a buffer object
according to the negotiated caps and use it to set the mode. This buffer
object cannot be freed until another page flip happened on the crtc
(i.e., until the first frame is rendered).

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

Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2016-11-30 20:13:55 +01:00
Michael Tretter
dff77fd15f kmssink: add parameter force-modesetting
The force-modesetting parameter forces the kmssink to ignore already
configured display modes, to configure the display mode itself and use
the base plane for output.

https://bugzilla.gnome.org/show_bug.cgi?id=773473
2016-11-30 20:13:55 +01:00
Michael Tretter
3d0c5dd58e kmssink: allow only supported resolutions
If the input buffers have a different size than the display, the frames
would have to be scaled or positioned on the display. The kmssink cannot
decide which behaviour would be appropriate for which use case.

In order to avoid scaling or positioning of the input stream, allow only
the supported connector resolutions in the sink caps.

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

Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2016-11-30 20:13:55 +01:00
Michael Tretter
ca96cc6083 kmssink: set mode based on framebuffer configuration
Displays usually support multiple modes. Therefore, the kmssink should
not only support the preferred mode, but any mode that is supported by
the display.

https://bugzilla.gnome.org/show_bug.cgi?id=773473
2016-11-30 20:13:55 +01:00
Michael Tretter
f52baadd1e kmssink: add mode setting and base plane rendering
The kmssink assumed that the mode was already set by another application
and used an overlay plane for displaying the frames.

Use the preferred mode of the monitor and render to the base plane if
the crtc does not have a valid mode.

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

Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2016-11-30 20:13:55 +01:00
Sebastian Dröge
5725bad218 decklink: Fix compiler warning
gstdecklink.cpp: In member function ‘virtual HRESULT GStreamerDecklinkInputCallback::VideoInputFrameArrived(IDeckLinkVideoInputFrame*, IDeckLinkAudioInputPacket*)’:
gstdecklink.cpp:766:34: error: ‘base_time’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
         capture_time -= base_time;
                                  ^
2016-11-29 15:35:09 +02:00
Sebastian Dröge
fdf1a57953 decklink: Correctly set top-field-first/bottom-field-first
First of all, all the HD and UHD modes should be top-field-first, as
also returned by the Decklink mode iterator API.

Then we should include the caps field "field-order" in the caps of the
source (not the sink due to negotiation problems with optional fields).

And finally we should set the TFF flag on interlaced buffers that are
top-field-first.
2016-11-28 17:19:26 +02:00
Sebastian Dröge
aec46143bb decklinksrc: Add property to drop frames that are marked as having no input signal
https://bugzilla.gnome.org/show_bug.cgi?id=774850
2016-11-28 14:27:51 +02:00
Sebastian Dröge
331b2af050 decklinksrc: Add property to skip the first N seconds of capture
On some hardware the first few frames are bogus and not very useful.
Their timestamps are off, they have no timecodes, or there are spurious
black frames / no-signal frames. After a few frames this stabilizes
though.

https://bugzilla.gnome.org/show_bug.cgi?id=774850
2016-11-28 14:27:51 +02:00
Sebastian Dröge
cf224a9990 decklinksrc: Set GAP flag on buffers that are captured without signal
https://bugzilla.gnome.org/show_bug.cgi?id=774850
2016-11-28 14:27:51 +02:00
Sebastian Dröge
09dd64bb4f decklinksrc: Keep track of a window of capture/stream time mappings and calculate relationship
Based on this we calculate the actual capture time, which should get us
rid of any capturing jitter by averaging it out.

Also add a output-stream-time property which forces the elements to
output the stream time directly instead of doing any conversion to the
pipeline clock. Use with care.

https://bugzilla.gnome.org/show_bug.cgi?id=774850
2016-11-28 14:27:51 +02:00
Sebastian Dröge
881a08671e decklinksrc: Stop using the "hardware" timestamps and directly use the pipeline clock
The hardware timestamps have no relation to when frames were produced,
only when frames arrived somewhere in the hardware. Especially there is
no guarantee that audio and video will have the same hardware timestamps
although they belong together, and even more important: the rate with
which the hardware timestamps increase is completely unrelated to the
rate with which the frames are captured!

As such we can as well use the pipeline clock directly and stop doing
complicated calculations. Also as a side effect this allows now running
without any pipeline clock, by directly making use of the stream times
as reported by the driver.

https://bugzilla.gnome.org/show_bug.cgi?id=774850
2016-11-28 14:27:51 +02:00
Sebastian Dröge
2a66653bdc decklinkvideosrc: Free timecodes when done with a frame 2016-11-24 14:48:52 +02:00
Víctor Manuel Jáquez Leal
88dbae3ab9 kmssink: include drm.h after stdlib.h
As drm.h is internal to libdrm, it expects to have already included
stdlib.h.
2016-11-23 20:13:59 +01:00
Víctor Manuel Jáquez Leal
79cd4bb44b kms: include stdlib.h
drm.h does not include all what it needs to compile, in particular
stdlib.h which defines size_t
2016-11-23 19:44:49 +01:00
Michael Tretter
12e82aac28 kmssink: remove dependency on libkms
libkms should not be used, because it imposes limitations on the DRM
API, especially regarding bpp and stride. Instead the DRM IOCTL should
be used directly.

Switch from libkms to the IOCTL interface. Set bpp and height for
framebuffer allocation to properly handle planar video formats.

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

Signed-off-by: Víctor Jáquez <vjaquez@igalia.com>
2016-11-23 16:43:28 +01:00
Sebastian Dröge
279fb3d99f vtdec: Mark pad as needing reconfiguration again if it failed
And return FLUSHING instead of NOT_NEGOTIATED on flushing pads.

https://bugzilla.gnome.org/show_bug.cgi?id=774623
2016-11-18 12:22:44 +02:00
Vivia Nikolaidou
85ef4166a2 decklinkvideosrc: Issue "no signal" warnings
When a frame is found to not have an associated input source (cable
unplugged, wrong mode selected), an element warning will be issued. When
the next frame in the stream is found to have an input source selected
(e.g. cable replugged), an element info will be issued.

https://bugzilla.gnome.org/show_bug.cgi?id=774629
2016-11-17 18:40:42 +02:00
Matthew Waters
ba805938e3 applemedia: error out if the uri property is not set
Fixes:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** +[NSString stringWithUTF8String:]: NULL cString

in the state change test.
2016-11-17 17:30:54 +11:00
Philippe Renon
dcc7ab25f3 gdiscreencapsrc: remove empty gst_gdiscreencapsrc_stop vfunc
https://bugzilla.gnome.org/show_bug.cgi?id=774400
2016-11-14 21:02:24 +02:00
Arun Raghavan
2121e99dc8 fbdevsink: Add to meson build 2016-11-14 23:15:34 +05:30
Arun Raghavan
3e1a230337 kmssink: Trivial naming fix in meson for consistency 2016-11-14 23:11:11 +05:30
Arun Raghavan
9f6ffdf348 kmssink: Enable in meson build 2016-11-14 22:35:10 +05:30
Scott D Phillips
71df82db63 msdk: Initial windows build support
https://bugzilla.gnome.org/show_bug.cgi?id=770990
2016-11-14 15:17:41 +01:00
Scott D Phillips
8949c12aaf meson: add build files for msdk
https://bugzilla.gnome.org/show_bug.cgi?id=770990
2016-11-14 15:17:30 +01:00
Scott D Phillips
35f76fc33a msdk: load plugins in h265 and vp8 init
https://bugzilla.gnome.org/show_bug.cgi?id=770990
2016-11-14 15:17:19 +01:00
Scott D Phillips
2905a7e33e msdk: Width and Height need to be integer multiples of 32
https://bugzilla.gnome.org/show_bug.cgi?id=770990
2016-11-14 15:17:09 +01:00
Scott D Phillips
22551a42cc msdk: add to build
https://bugzilla.gnome.org/show_bug.cgi?id=770990
2016-11-14 15:17:01 +01:00
Josep Torra
7d68d40239 msdk: Create plugin for Intel's Media SDK
[scott.d.phillips@intel.com: gst-indent *.c *.h]
[scott.d.phillips@intel.com: link with libva at build time]
[scott.d.phillips@intel.com: remove unused includes]
[scott.d.phillips@intel.com: Update README]

https://bugzilla.gnome.org/show_bug.cgi?id=770990
2016-11-14 15:16:45 +01:00
Scott D Phillips
83d8f1eb20 winks: undef windows SDK macros before redefining them
Redefining an already defined macro causes a warning from the msvc
preprocessor

https://bugzilla.gnome.org/show_bug.cgi?id=774293
2016-11-12 10:53:02 +02:00
Scott D Phillips
c7ee3b5d5f Remove 'return' from void functions
https://bugzilla.gnome.org/show_bug.cgi?id=774293
2016-11-12 10:53:02 +02:00
Philipp Zabel
4f19d5d20a kmssink: do not get kms bo pitch for planar formats
The API is ill defined for planar formats in case of dumb BOs,
do not use the reported stride in those cases.

https://bugzilla.gnome.org/show_bug.cgi?id=773473
2016-11-10 15:57:24 +01:00
Michael Tretter
b52c39e1c7 kmssink: remove custom gst_kms_sink_get_times
The default get_times() function of the base sink is just fine.

Remove the custom get_times() function, because the default function
already reads the timestamps from the buffers.

Signed-off-by: Michael Tretter <m.tretter@pengutronix.de>

https://bugzilla.gnome.org/show_bug.cgi?id=773473
2016-11-10 15:57:24 +01:00
Sebastian Dröge
e6651a733b amc: Allow registering codecs, camera or sensors if any of the others failed
https://bugzilla.gnome.org/show_bug.cgi?id=774048
2016-11-08 13:52:17 +02:00
Sebastian Dröge
56ee6c4cee ahs: Don't assert on deinit if initialization failed before
Initialization failure is handled correctly by just not registering the
ahssrc element.

https://bugzilla.gnome.org/show_bug.cgi?id=774048
2016-11-08 13:45:17 +02:00
Gaurav Gupta
fd2fed4844 vdpsink: fix Memory leak due to Xlib API usage
https://bugzilla.gnome.org/show_bug.cgi?id=773932
2016-11-05 11:40:02 +00:00
Tim-Philipp Müller
bdcc9d1704 kms: rename variable used
Since this includes kms.
2016-11-04 09:27:06 +00:00
Matthew Waters
41a6448918 gl: GST_GL_TYPE -> GST_TYPE_GL
Some deprecated symbols are kept for backwards compatibility
2016-11-03 16:16:12 +11:00
Sebastian Dröge
33a93a66c8 decklinkvideosink: Also stop scheduled playback when gst_element_lost_state() is called
Unfortunately this does not go through the normal state change
machinery, so we don't get notified about this in change_state().
However we need to stop scheduled playback, so that once PLAYING is
reached again we can start scheduled playback with the correct time.

Without this, flushing seeks in PLAYING will not work correctly:
decklinkvideosink will wait before showing the new frames for the amount
of time the pipeline was in PLAYING before.
2016-11-02 16:12:42 +02:00
Sebastian Dröge
ac37bdb9ac decklink: Use gst_clock_adjust_with_calibration() and unadjust_with_calibration()
Instead of hand-crafted versions of the same calculation. These
calculations are still too complicated though.
2016-11-02 15:00:36 +02:00
Florian Zwoch
8960debc24 dx9screencapsrc: add "cursor" option to draw the cursor
Drawing is done via the GDI drawing functions. The cursor is
converted to a monochrome version before drawing. This is because
the GDI drawing functions seem to have undefined behavior with
cursor images including an alpha channel.

I could not find any other reliable way to draw these alpha
channel cursors without producing unwanted artifacts. These type
of cursors were introduced with Window Vista when run with it's
Aero theme.

Also adjust the cursor coordinates when capturing non-primary
screens via the "monitor" option.

https://bugzilla.gnome.org/show_bug.cgi?id=760172
2016-11-02 10:38:59 +02:00
Vivia Nikolaidou
ab991db7ed decklinkaudiosrc: Ignore channel-mask when checking set_caps compatibility
channel-mask doesn't matter in decklinkaudiosrc, and differences in it
can cause caps negotiations to fail without a real reason.

https://bugzilla.gnome.org/show_bug.cgi?id=773313
2016-11-01 19:39:36 +02:00
Artem Martynovich
bd2fcc9571 directsoundsrc: Correctly cast mixer to uintptr
https://bugzilla.gnome.org/show_bug.cgi?id=773720
2016-10-31 16:06:49 +02:00
Reynaldo H. Verdejo Pinochet
86e75e5c90 dvb/parsechannels: collapse notes on channel_name encoding conflict 2016-10-23 22:13:33 -07:00
Reynaldo H. Verdejo Pinochet
6e0eb266bd dvb/parsechannels: rename ZAP parser for clarity
This function only does ZAP parsing. Additionally, remove redundant
comment while at it.
2016-10-23 22:00:30 -07:00
Reynaldo H. Verdejo Pinochet
3551d61af5 dvb: fix gtk-doc syntax for wrongly formatted comments 2016-10-23 21:46:27 -07:00
Scott D Phillips
2ea67f0da2 meson: directsound: Add ole32 library dependency
https://bugzilla.gnome.org/show_bug.cgi?id=773114
2016-10-21 06:05:27 -03:00
Scott D Phillips
3f93d7c3d3 meson: winscreencap depends on gstvideo
https://bugzilla.gnome.org/show_bug.cgi?id=773114
2016-10-21 06:05:23 -03:00
Reynaldo H. Verdejo Pinochet
dbdb84c2d3 dvbsrc: fix 'delivery system'-related messages
* Rephrase tune error to be delsys-neutral
* Refer to the actual check in the 'missing sanity check' warnings
* Use "Delivery system" instead of 'delsys'. The
  latter is OK as a shorthand in the code but not
  even a real word
2016-10-14 15:55:18 -07:00
Reynaldo H. Verdejo Pinochet
7dd42aee5b dvb/parsechannels: parse guard interval as a fraction
Fixes wrong default failover when parsing libdvbv5 formatted
channel configuration files.
2016-10-09 08:06:45 -07:00
Reynaldo H. Verdejo Pinochet
5d1b62ccda dvb/parsechannels: add prototypes and reorganize for clarity 2016-10-09 08:06:45 -07:00
Reynaldo H. Verdejo Pinochet
6f4d40ded3 Update my email address 2016-10-09 08:06:45 -07:00
Reynaldo H. Verdejo Pinochet
408b3a87fd dvb: drop trailing whitespace and c&p leftovers 2016-10-09 08:06:45 -07:00
Reynaldo H. Verdejo Pinochet
572c9154db dvb/parsechannels: parse DVB-T hierarchy from v5 config file
Avoids relying on the H/W default when the information
can be extracted from the configuration file.
2016-10-09 08:06:00 -07:00
Reynaldo H. Verdejo Pinochet
fd96f42ac4 dvb/parsechannels: parse DVB-T lp and hp code rates 2016-10-09 04:33:03 -07:00
Reynaldo H. Verdejo Pinochet
5771e6a066 dvb/parsechannels: make parsing errors delsys-neutral
DVB is a group of delivery standards but we support
several others. While at this, make message formating
more congruent.
2016-09-30 15:03:22 -07:00
Arun Raghavan
a07bc92319 a2dpsink: Drop some dead-code
Left over from the last cleanup.

CID: 1373418
2016-09-29 21:46:56 +05:30
Tim-Philipp Müller
80f3bf7ac2 meson: bluez: fix build 2016-09-26 16:30:02 +01:00
Sebastian Dröge
82edbde1fc decklink: Update to SDK 10.8
OSX and Linux only, Windows needs someone on Windows to convert the .idl
files to C source code.
2016-09-26 16:39:18 +03:00
Tim-Philipp Müller
4b4b306795 bluez: dist new header file
Fixes distcheck.
2016-09-25 17:38:15 +01:00
Arun Raghavan
7e22db6542 a2dpsink: Don't try to set device caps on avdtpsink
We can't actually configure the transport, so we should only be working
with whatever we get.
2016-09-24 23:24:28 +05:30
Arun Raghavan
b2ed98d0a3 avdtpsink: Chain event handling up to basesink 2016-09-24 23:24:28 +05:30
Arun Raghavan
5a70912a50 bluez: Clean up and make a2dpsink functional again
Was crashing, and had a lot of cruft (like a capsfilter and a fakesink)
that was no longer required.
2016-09-24 23:24:28 +05:30
Arun Raghavan
967046d3a5 avdtpsrc: Add support for AVRCP metadata
Metadata from AVRCP is emitted as tags, and the duration from AVRCP is
used in queries by avdtpsrc.
2016-09-24 23:24:28 +05:30
Florian Zwoch
1489e73df4 dx9screencapsrc: throw error for invalid screen index
Currently dx9screencapsrc prints a verbose warning in case the screen
index is out of range for the current number of detected monitors. This
value is then dropped.

However there is no initial indication (beside the console print) if it
worked or not. This may result in capturing an unwanted screen as it
would capture the last set index that was not rejected.

This patch sets the index regardless. Instead, the element throws an
error when it tries to run or getting caps for an invalid index.

https://bugzilla.gnome.org/show_bug.cgi?id=771817
2016-09-22 09:52:37 -04:00
Sebastian Dröge
f9a8b843df decklink: Print the Decklink API error return values in debug output in all places 2016-09-21 09:31:41 -04:00
Sebastian Dröge
95eb492c32 Revert "decklinkvideosink: Scale down scheduled frame times to milliseconds"
This reverts commit 3b7e0d7de3.

It was a bug in the driver and is supposed to be fixed with 10.8 and newer.
2016-09-12 12:20:01 +02:00
Nicolas Dufresne
753c423784 kmssink: Scale up to the screen dimension
In most display sink, the logic is to use as much as possible
of the given window. In this case, the window is the screen,
hence it's logical to scale up.

https://bugzilla.gnome.org/show_bug.cgi?id=767422
2016-09-08 13:23:35 -04:00
Nicolas Dufresne
37c670e235 kmssink: Fix selection of source region
The source region was scaled for display before being passed
to drmModeSetPlane, which resulted in a portion of the video
being cropped. While when crop meta was present, the rectangle
was not centered since we where using unscaled width/height.

https://bugzilla.gnome.org/show_bug.cgi?id=767422
2016-09-08 13:23:35 -04:00
Víctor Manuel Jáquez Leal
c117165f7b kmssink: override stride if defined in driver
Some kms drivers demands specific pitches over the ones calculated by
GstVideoInfo. For example, intel driver demands strides round up 64.

This patch queries the driver for the prefered pitch and overwrites it
in the pool's GstVideoInfo structure.

https://bugzilla.gnome.org/show_bug.cgi?id=768446
2016-09-07 16:18:48 +02:00
Sebastian Dröge
fcea134ec4 decklink: Fix-up last commit that was not meant to be pushed yet 2016-09-01 14:25:58 +03:00
Sebastian Dröge
8be08ee7fd decklink: Fix indentation 2016-09-01 14:18:33 +03:00
Sebastian Dröge
d8327b397d decklink: Require a clock when going from PAUSED_TO_PLAYING and don't crash if there is none
Also when going from PLAYING_TO_PAUSED, the clock might've been unset in the
meantime, e.g. because the element was removed from its surrounding bin.
2016-09-01 14:17:48 +03:00
Sebastian Dröge
807b0322c5 applemedia: Conditionally compile qtkitvideosrc
The API was deprecated in 10.9 and apparently does not exist in the SDK for
macOS Sierra anymore.

https://bugzilla.gnome.org/show_bug.cgi?id=770587
2016-08-31 10:03:15 +03:00
Thibault Saunier
2fb716409c Use the new API to post flow ERROR messages on the bus
https://bugzilla.gnome.org/show_bug.cgi?id=770158
2016-08-26 19:23:31 -03:00
Sebastian Dröge
1da1a3afc9 decklinkaudiosink: Fix compiler warning on OS X
While gint64 and int64_t are always the same, clang does not agree with that.

/Applications/Xcode.app/Contents/Developer/usr/bin/make -C decklink
  CXX      libgstdecklink_la-gstdecklinkaudiosink.lo
gstdecklinkaudiosink.cpp:675:79: error: cannot initialize a parameter of type 'int64_t *' (aka 'long long *') with an rvalue of type 'gint64 *' (aka 'long *')
      ret = buf->output->attributes->GetInt (BMDDeckLinkMaximumAudioChannels, &max_channels);
                                                                              ^~~~~~~~~~~~~
./linux/DeckLinkAPI.h:692:87: note: passing argument to parameter 'value' here
    virtual HRESULT GetInt (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ int64_t *value) = 0;
                                                                                      ^
2016-08-26 16:05:11 +03:00
Alessandro Decina
8a05102747 applemedia: fix compiler warning 2016-08-26 22:52:41 +10:00
Sebastian Dröge
3b7e0d7de3 decklinkvideosink: Scale down scheduled frame times to milliseconds
Scale down to milliseconds, otherwise at least some hardware has problems
scheduling the frames (or schedules them too slow) and we run out of available
frames.

https://bugzilla.gnome.org/show_bug.cgi?id=770282
2016-08-26 15:49:40 +03:00