Commit graph

1874 commits

Author SHA1 Message Date
Vivia Nikolaidou a2c6e2b64a timecodestamper: New element to attach SMPTE timecode to buffers
The timecodestamper element attaches a SMPTE timecode to each video buffer.
This timecode corresponds to the current stream time.

https://bugzilla.gnome.org/show_bug.cgi?id=766419
2016-08-04 19:08:27 +03:00
Matthew Waters 2ae16c2f68 gl/build: fix configure when --enable-cocoa is passed on OS X
https://bugzilla.gnome.org/show_bug.cgi?id=768553
2016-07-11 11:29:07 +10:00
Stefan Sauer 13d963fbf0 lv2: keep working with older versions
Provide a fallback impl. for the only new function we were using from 0.22.
Fixes #768595
2016-07-10 20:44:19 +02:00
Nicolas Dufresne c57d4f3e5e configure.ac: Cleanup unused variable
We only check for a header, no need for overriding LDFLAGS.
2016-07-07 13:22:47 -04:00
Nicolas Dufresne 4d6a21926e webrtcdsp: Relax C++11 check
The library does not require any STL C++11 specific headers.
This fixes our OSX build as we target a SDK version that does not
support C++11 STL.
2016-07-07 12:31:20 -04:00
Nicolas Dufresne 928dcd93ef webrtcdsp: Add Android GNUSTL support 2016-07-07 12:31:03 -04:00
Nicolas Dufresne 17e8533064 webrtcdsp: Set USE_WEBRTCDSP when disabled 2016-07-07 12:27:24 -04:00
Sebastian Dröge 2aaeb061c4 webrtcdsp: Also allow webrtc-audio-processing 0.3
It seems to work and is the version available in Debian.
2016-07-06 14:29:47 +03:00
Sebastian Dröge 0122fec530 Back to development 2016-07-06 13:51:06 +03:00
Sebastian Dröge e06dd97007 Release 1.9.1 2016-07-06 13:07:21 +03:00
Nicolas Dufresne 640100fdb6 configure.ac: Add missing double quotes
That affectation was ignored. This worked on recent GCC as C++11 is
enabled by default now.
2016-07-04 15:23:08 -04:00
Wim Taymans 6b511fdcd1 musepackdec: port to 1.0 2016-07-04 16:54:53 +02:00
Tim-Philipp Müller 013eaee06b qt: fix build some more when QPA is not available
Compiler would complain about include directory that didn't
exist because QPA_INCLUDE_PATH gets subst-ed regardless
(and if it didn't we'd have just an empty -I argument).

https://bugzilla.gnome.org/show_bug.cgi?id=767553
2016-07-01 19:29:49 +01:00
Haihua Hu d60b071474 qmlglsink: Fix build error when don't have QPA installed.
Check header file existance and wrap the header file include
in the necessary #ifdef to avoid build error.

https://bugzilla.gnome.org/show_bug.cgi?id=767553
2016-06-27 22:44:56 +10:00
Nirbheek Chauhan 539c032345 configure: Need to add -DGST_STATIC_COMPILATION when building only statically
https://bugzilla.gnome.org/show_bug.cgi?id=767463
2016-06-24 01:15:11 +01:00
Nicolas Dufresne 398f7059fc webrtcdsp: Add WebRTC Audio Processing support
This DSP library can be used to enhance voice signal for real time
communication call. In implements multiple filters like noise reduction,
high pass filter, echo cancellation, automatic gain control, etc.

The webrtcdsp element can be used along, or with the help of the
webrtcechoprobe if echo cancellation is enabled. The echo probe should
be placed as close as possible to the audio sink, while the DSP is
generally place close to the audio capture. For local testing, one can
use an echo loop pipeline like the following:

  autoaudiosrc ! webrtcdsp ! webrtcechoprobe ! autoaudiosink

This pipeline should produce a single echo rather then repeated echo.
Those elements works if they are placed in the same top level pipeline.

https://bugzilla.gnome.org/show_bug.cgi?id=767800
2016-06-21 13:46:00 -04:00
Sergey Borovkov 180405714c qml: Enable qmlglsink for eglfs
https://bugzilla.gnome.org/show_bug.cgi?id=763044
2016-06-16 01:49:16 +10:00
Haihua Hu 3903406304 qmlglsink: Add Wayland support
Don't use gstgldisplay to get wayland display. Should use QPA on wayland
to get wayland display for QT.

https://bugzilla.gnome.org/show_bug.cgi?id=767553
2016-06-16 01:49:16 +10:00
Joan Pau Beltran e28b123608 dc1394src: port to 1.X
The dc1394src is a PushSrc element for IIDC cameras based on libdc1394.
The implementation from the 0.x series is deffective:
caps negotiation does not work, and some video formats
provided by the camera are not supported.

Refactor the code to port it to 1.X and enhance the support
for the full set of video options of IIDC cameras:

  - The IIDC specification includes a set of camera video modes
    (video format, frame size, and frame rates).
    They do not map perfectly to Gstreamer formats, but those that
    do not match are very rare (if used at all by any camera).
    In addition, although the specification includes a raw format,
    some cameras use mono video formats to capture in Bayer format.
    Map corresponding video modes to Gstreamer formats in capabilities,
    allowing both gray raw and Bayer video formats for mono video modes.

  - The specification includes scalable video modes (Format7),
    where the frame size and rate can be set to arbitrary values
    (within the limits of the camera and the bus transport).
    Allow the use of such mode, using the frame size and rate
    from the negotiatied caps, and set the camera frame rate
    adjusting the packet size as in:
    <http://damien.douxchamps.net/ieee1394/libdc1394/faq/#How_do_I_set_the_frame_rate>

    The scalable modes also allow for a custom ROI offset.
    Support for it can be easily added later using properties.

  - Camera operation using libdc1394 is as follows:

      1. Enumerate cameras on the system and open the camera
         identified the enumeration index or by a GUID (64bit hex code).

      2. Query the video formats supported by the camera.

      3. Configure the camera for the desired video format.

      4. Setup the capture resources for the configured video format
         and start the camera transmission.

      5. Capture frames from the camera and release them when not used.

      6. Stop the camera transmission and clear the capture resources.

      7. Close the camera freeing its resources.

    Do steps 2 and 3 when getting and setting the caps respectively.
    Ideally 4 and 6 would be done when going from PAUSED to PLAYING
    and viceversa, but since caps might not be set yet, the video mode
    is not properly configured leaving the camera in a broken state.
    Hence, setup capture and start transmission in the set caps method,
    and consequently clear the capture and stop the transmission
    when going from PAUSED to READY (instead of PLAYING to PAUSED).
    Symmetrycally, open the camera when going from READY to PAUSED,
    allowing to probe the camera caps in the negotiation stage.
    Implement that using the `start` and `stop` methods of `GstBaseSrc`,
    instead of the `change-state` method of `GstElement`.
    Stop the camera before setting new caps and restarting it again
    to handle caps reconfiguration while in PLAYING (it has no effect
    if the camera is not started).

  - Create buffers copying the bytes of the captured frames.
    Alternatively, the buffers could just wrap the bytes of the frames,
    releasing the frame in the buffer's destroy notify function,
    if all buffers were destroyed before going from PLAYING to PAUSED.

  - No timestamp nor offset is set when creating buffers.
    Timestamping is delegated to the parent class BaseSrc,
    setting `gst_base_src_set_live` TRUE, `gst_base_src_set_format`
    with GST_FORMAT_TIME and `gst_base_src_set_do_timestamp`.
    Captured frames have a timestamp field with the system time
    at the completion of the transmission of the frame,
    but it is not sure that this comes from a monotonic clock,
    and it seems to be left NULL in Windows.

  - Use GUID and unit properties to select the camera to operate on.
    The camera number used in version 0.X does not uniquely identify
    the device (it depends on the set of cameras currently detected).
    Since the GUID is 64bit identifier (same as MAC address),
    handle it with a string property with its hexadecimal representation.
    For practicality, operate on the first camera available if the GUID
    is null (default) and match any camera unit number if unit is -1.
    Alternatively, the GUID could be handed with an unsigned 64 bit
    integer type property, using `0xffffffffffffffff` as default value
    to select the first camera available (it is not a valid GUID value).

  - Keep name `GstDc1394` and prefix `gst_dc1394` as in version 0.X,
    although `GstDC1394Src` and `gst_dc1394_src` are more descriptive.

  - Adjust build files to reenable the compilation of the plugin.

    Remove dc1394 from the list of unported plugins in configure.ac.

    Add the missing flags and libraries to Makefile.
    Use `$()` for variable substitution, as many plugins do,
    although other plugins use `@@` instead.

https://bugzilla.gnome.org/show_bug.cgi?id=763026
2016-06-09 21:47:58 +01:00
Alex-P. Natsios a865f6545a configure: check for shm_open() in OpenBSD
In OpenBSD there is no "actual" librt that programs can link with,
instead the system/base libc provides the functions one would
customarily find there.

https://bugzilla.gnome.org/show_bug.cgi?id=766441
2016-05-14 17:10:27 +03:00
Nirbheek Chauhan 1536f30cc2 openjpeg: Port to 2.1 and require a pkg-config file for 2.0 and 2.1
The port was trivial, and according to the NEWS file nothing else has changed,
but it is possible that other API was changed without proper notification.

OpenJPEG upstream has shipped a pkg-config file for the past 4 years, and all
distros should be shipping it by now.

https://bugzilla.gnome.org/show_bug.cgi?id=766213
2016-05-10 14:03:33 +03:00
Matthew Waters 344e7db975 gl: fix gles3 header usage for older platforms
Some platforms provide an old version of GLES2/gl2.h and GLES2/gl2ext.h that
will fail when including GLES3/gl3.h due to missing typedef's.

Seen on the RPi.
2016-05-03 20:02:34 +10:00
Víctor Manuel Jáquez Leal c419d17dbf kmssink: add dmabuf support
This patch will enable the import of dmabufs into a KMS buffer using
the PRIME kernel interface.

If the driver does not support prime import, the method is skipped.

It has been tested with a Freescale I.MX6 board.

https://bugzilla.gnome.org/show_bug.cgi?id=761059
2016-04-11 19:57:48 +02:00
Víctor Manuel Jáquez Leal 620e1d2fcd kmssink: add plugin and sink element
This is simple video sink that use libdrm/libkms API to render frames.

The element uses planes to render through drmModeSetPlane().

It has been tested in an Exynos4412 board and in a Freescale I.MX6 board.

https://bugzilla.gnome.org/show_bug.cgi?id=761059
2016-04-11 19:57:48 +02:00
Matthew Waters 65770c2af9 vulkan: add a wayland winsys implementation 2016-04-11 14:18:47 +10:00
Matthew Waters 8fe5b198be gl/examples: remove duplicated videooverlay example
filtervideooverlay proved the exact same example (only with a extra glfiltercube).
2016-03-31 20:53:18 +11:00
Matthew Waters 9e40dd7d40 gl: add support for building against GLES3 headers
with a fallback to GLES2 headers if available.
2016-03-31 20:53:18 +11:00
Vanessa Chipirras Navalon b37c759e52 opencv: Ported to OpenCV version 3.1 OpenCV
configure.ac was changed to work with new versions of OpenCV 3.X.
A new include is added gstopencvutils.cpp because it contains
the previous. This keeps compatibility with 2.4.

https://bugzilla.gnome.org/show_bug.cgi?id=760473
2016-03-30 22:10:58 +01:00
Thibault Saunier c32e74fd8a lv2: Port filters to GStreamer 1.0 and use lilv instead of slv2
Properly separate files as we will not have only one single base class
for all elements as we used to with 0.10, but the same way it is done
with ladspa, we subclass GstAudioFilter, GstBaseSource etc...

https://bugzilla.gnome.org/show_bug.cgi?id=678207
2016-03-27 19:28:00 +02:00
Sebastian Dröge 795f63659c Back to development 2016-03-24 13:33:12 +02:00
Sebastian Dröge 740d3507ea Release 1.8.0 2016-03-24 12:33:19 +02:00
Matthew Waters dd42e1c467 gl/build: add GST_GL_HAVE_DMABUF to gstglconfig.h
it's exposed in public API so hiding it in an AC_DEFINE for config.h only
works when building libgstgl itself.  Attempting to use libgstgl (especially
on egl platforms) will throw a compilation error.
2016-03-22 23:29:51 +11:00
Sebastian Dröge 51047d6bdb Release 1.7.91 2016-03-15 12:13:17 +02:00
Sebastian Dröge 3ebfefd220 Release 1.7.90 2016-03-01 18:23:36 +02:00
Sebastian Dröge acdbbb92d8 Back to development 2016-02-19 12:38:31 +02:00
Sebastian Dröge 50ae46cc0f Release 1.7.2 2016-02-19 11:50:25 +02:00
Thiago Santos b5a4de197a configure: improve check for wayland-scanner binary
The plugin doesn't need the wayland-scanner package to be built
or run, it only needs the wayland-scanner program during compile time.

When cross-compiling, build systems might not have the wayland-scanner
package for the target system as it is a developer's tool, while it should
still be possible to use wayland-scanner from the host system.

This patch fixes it by not requiring the wayland-scanner package but
just the binary itself.

Note that the check is done outside of the PKG_CHECK_MODULES
as it doesn't work inside of it.

https://bugzilla.gnome.org/show_bug.cgi?id=752688
2016-02-16 12:23:45 -03:00
Matthew Waters 82748e9aff vulkan/build: search for the correct library
SDK 1.0.1 used libvulkan-1.so, 1.0.2 uses libvulkan.so
2016-02-17 01:13:43 +11:00
Matthew Waters 08fd5c2ae5 vulkan: update to release 1.0.1.1 2016-02-17 01:13:43 +11:00
Matthew Waters 5de6dd9f40 new vulkan based video sink
Currently xcb is the only winsys that is implemented and there's no redraws et
al
2016-02-17 01:13:43 +11:00
Tim-Philipp Müller 08d8aefcda mpg123: move plugin from -bad to -ugly
https://bugzilla.gnome.org/show_bug.cgi?id=719849
2016-02-16 11:00:55 +00:00
Tim-Philipp Müller f649e85bc9 rtp: move RTP H.265 payloader/depayloader to -good
https://bugzilla.gnome.org/show_bug.cgi?id=761606
2016-02-16 00:33:50 +00:00
Stian Selnes e3f9e854f0 netsim: Add netsim element
Resurrected from the Farstream repository and given an
overhaul to fix races, deadlocks etc.

https://bugzilla.gnome.org/show_bug.cgi?id=756252
2016-02-12 10:08:06 +00:00
Arun Raghavan c8bd74fa9a tinyalsa: Add a new sink plugin using tinyalsa
This uses the tinyalsa library to playback to an ALSA device. Future
work can include using the mmap interface.

https://bugzilla.gnome.org/show_bug.cgi?id=761230
2016-02-02 08:30:59 +05:30
Holger Kaelberer 0f865b316c qt: Fix build for android
https://bugzilla.gnome.org/show_bug.cgi?id=756082
2016-02-01 13:55:05 +11:00
Tim-Philipp Müller 1d4f136ac9 rsvg: bump requirement to 2.36.2
Which allows us to simplify the configure check and
some special-casing in the code, and is plenty old
in any case.
2016-02-01 00:50:46 +00:00
Tim-Philipp Müller 914291808a Remove gsettings plugin which was never ported
Don't think we need this any longer or want to
support it, and clearly no one has been missing
it all these years either, so let's just get rid
of it.
2016-01-31 19:07:46 +00:00
Tim-Philipp Müller 861ca5ab7b faad: simplify configure check and require faad >= 2.7
Just check whether LATM is defined which is only available
in 2.7 and later. Allows us to simplify the configure check
a little and we can get rid of some hackish workarounds for
problems with earlier version headers.
2016-01-31 14:42:21 +00:00
Sebastian Dröge 8a1fa31c67 audio: Move audioaggregator base class to a library
It's useful enough already to be used in other elements for audio aggregation,
let's give people the opportunity to use it and give it some API testing.

https://bugzilla.gnome.org/show_bug.cgi?id=760733
2016-01-22 12:39:48 +02:00
Matthew Waters 6b6b591370 gl: add compatibility definition of GLint64
e.g. anrdoid doesn't have it
2016-01-15 16:07:27 +11:00