Tim-Philipp Müller [Tue, 13 Mar 2018 19:22:10 +0000 (19:22 +0000)]
Release 1.13.91
Tim-Philipp Müller [Tue, 13 Mar 2018 19:22:10 +0000 (19:22 +0000)]
Update docs
Tim-Philipp Müller [Tue, 13 Mar 2018 13:14:58 +0000 (13:14 +0000)]
docs: update api decorators to ignore
Tim-Philipp Müller [Tue, 13 Mar 2018 13:11:17 +0000 (13:11 +0000)]
webrtc: GST_EXPORT -> GST_WEBRTC_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
Tim-Philipp Müller [Tue, 13 Mar 2018 13:09:28 +0000 (13:09 +0000)]
wayland: GST_EXPORT -> GST_WAYLAND_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
Tim-Philipp Müller [Tue, 13 Mar 2018 13:07:52 +0000 (13:07 +0000)]
video: GST_EXPORT -> GST_URI_VIDEO_BAD_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
Tim-Philipp Müller [Tue, 13 Mar 2018 13:05:45 +0000 (13:05 +0000)]
uridownloader: GST_EXPORT -> GST_URI_DOWNLOADER_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
Tim-Philipp Müller [Tue, 13 Mar 2018 13:02:54 +0000 (13:02 +0000)]
player: GST_EXPORT -> GST_PLAYER_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
Tim-Philipp Müller [Tue, 13 Mar 2018 12:57:56 +0000 (12:57 +0000)]
opencv: GST_EXPORT -> GST_OPENCV_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
Tim-Philipp Müller [Tue, 13 Mar 2018 12:47:03 +0000 (12:47 +0000)]
mpegts: GST_EXPORT -> GST_MPEGTS_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
Tim-Philipp Müller [Tue, 13 Mar 2018 12:43:00 +0000 (12:43 +0000)]
isoff: GST_EXPORT -> GST_ISOFF_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
Tim-Philipp Müller [Tue, 13 Mar 2018 12:41:42 +0000 (12:41 +0000)]
photography: GST_EXPORT -> GST_PHOTOGRAPHY_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
Tim-Philipp Müller [Tue, 13 Mar 2018 12:36:26 +0000 (12:36 +0000)]
insertbin: GST_EXPORT -> GST_INSERT_BIN_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
Tim-Philipp Müller [Tue, 13 Mar 2018 12:34:24 +0000 (12:34 +0000)]
codecparsers: GST_EXPORT -> GST_CODEC_PARSERS_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
Tim-Philipp Müller [Tue, 13 Mar 2018 12:29:08 +0000 (12:29 +0000)]
basecamerabinsrc: GST_EXPORT -> GST_BASE_CAMERA_BIN_SRC_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
Tim-Philipp Müller [Tue, 13 Mar 2018 12:21:39 +0000 (12:21 +0000)]
audio: GST_EXPORT -> GST_AUDIO_BAD_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
Tim-Philipp Müller [Tue, 13 Mar 2018 12:17:50 +0000 (12:17 +0000)]
adaptivedemux: GST_EXPORT -> GST_ADAPTIVE_DEMUX_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
Tim-Philipp Müller [Mon, 12 Mar 2018 20:10:02 +0000 (20:10 +0000)]
docs: plugins: add some more elements and plugins
Nirbheek Chauhan [Sat, 10 Mar 2018 13:21:14 +0000 (18:51 +0530)]
wasapi: Minor fixes for debug logging
Nirbheek Chauhan [Sat, 10 Mar 2018 13:19:59 +0000 (18:49 +0530)]
meson: Add deviceprovider changes to directsoundsrc
These were missed when they were added to Makefile.am
Nirbheek Chauhan [Fri, 9 Mar 2018 16:35:49 +0000 (22:05 +0530)]
wasapi: Guard IAudioClient2 structs and enums
These are already defined in the audioclient.h provided by the latest
MinGW headers, and the existing #ifndef were obviously wrong.
https://bugzilla.gnome.org/show_bug.cgi?id=794197
Tim-Philipp Müller [Sat, 10 Mar 2018 11:41:54 +0000 (11:41 +0000)]
docs: add wasapi elements
Tim-Philipp Müller [Fri, 9 Mar 2018 23:59:16 +0000 (23:59 +0000)]
meson: fix build when msdk is not found
Wang,Fei [Fri, 9 Mar 2018 19:48:11 +0000 (10:48 -0900)]
tests: add msdkh264enc element unit test
https://bugzilla.gnome.org/show_bug.cgi?id=793236
Sreerenj Balachandran [Fri, 9 Mar 2018 19:32:40 +0000 (10:32 -0900)]
msdk: Fix the misspelled file name in meson build
Emilio Pozuelo Monfort [Fri, 9 Mar 2018 10:11:40 +0000 (11:11 +0100)]
wasapi: ship audioclient3 header in tarballs
https://bugzilla.gnome.org/show_bug.cgi?id=794197
Hyunjun Ko [Thu, 8 Mar 2018 20:39:25 +0000 (11:39 -0900)]
msdk: enc: fix missing some frames to be encoded
There was not handling the end of encoding sequence in encoder.
This patch does drain any remaining internal streams while decoder
already does this.
Document says:
"To mark the end of the encoding sequence, call this function with a
NULL surface
pointer. Repeat the call to drain any remaining internally cached
bitstreams—one
frame at a time—until MFX_ERR_MORE_DATA is returned."
https://bugzilla.gnome.org/show_bug.cgi?id=793236
Hyunjun Ko [Thu, 8 Mar 2018 20:38:52 +0000 (11:38 -0900)]
msdk: dec: fix leaks when flushing
https://bugzilla.gnome.org/show_bug.cgi?id=793708
Hyunjun Ko [Thu, 8 Mar 2018 20:38:30 +0000 (11:38 -0900)]
msdk: manage child sessions on parent GstMsdkContext
Sometimes parent context is released before its children get released.
In this case MFXClose of parent session fails.
To make sure that child sessions are closed before closing a parent
session,
Parent context needs to manage child sessions and close them first when
it's released.
https://bugzilla.gnome.org/show_bug.cgi?id=793412
Hyunjun Ko [Thu, 8 Mar 2018 20:37:52 +0000 (11:37 -0900)]
msdk: dec: remove code to manage buffers with locked surface
https://bugzilla.gnome.org/show_bug.cgi?id=793413
Hyunjun Ko [Thu, 8 Mar 2018 20:37:12 +0000 (11:37 -0900)]
msdk: manage MSDK surfaces seperately
Currently a gst buffer has one mfxFrameSurface when it's allocated and
can't be changed.
This is based on that the life of gst buffer and mfxFrameSurface would
be same.
But it's not true. Sometimes even if a gst buffer of a frame is finished
on downstream,
mfxFramesurface coupled with the gst buffer is still locked, which means
it's still being used in the driver.
So this patch does this.
Every time a gst buffer is acquired from the pool, it confirms if the
surface coupled with the buffer is unlocked.
If not, replace it with new unlocked one.
In this way, user(decoder or encoder) doesn't need to manage gst buffers
including locked surface.
To do that, this patch includes the following:
1. GstMsdkContext
- Manages MSDK surfaces available, used, locked respectively as the
following:
1\ surfaces_avail : surfaces which are free and unused anywhere
2\ surfaces_used : surfaces coupled with a gst buffer and being used
now.
3\ surfaces_locked : surfaces still locked even after the gst buffer
is released.
- Provide an api to get MSDK surface available.
- Provide an api to release MSDK surface.
2. GstMsdkVideoMemory
- Gets a surface available when it's allocated.
- Provide an api to get an available surface with new unlocked one.
- Provide an api to release surface in the msdk video memory.
3. GstMsdkBufferPool
- In acquire_buffer, every time a gst buffer is acquired, get new
available surface from the list.
- In release_buffer, it confirms if the buffer's surface is unlocked or
not.
- If unlocked, it is put to the available list.
- If still locked, it is put to the locked list.
This also fixes bug #793525.
https://bugzilla.gnome.org/show_bug.cgi?id=793413
https://bugzilla.gnome.org/show_bug.cgi?id=793525
Michael Tretter [Thu, 8 Mar 2018 09:12:16 +0000 (10:12 +0100)]
configure.ac: enable largefile support if possible
https://bugzilla.gnome.org/show_bug.cgi?id=793103
Tim-Philipp Müller [Mon, 5 Mar 2018 19:37:06 +0000 (19:37 +0000)]
tests: player: disable broken test_play_media_info test
Until someone can be bothered to debug + fix it.
https://bugzilla.gnome.org/show_bug.cgi?id=787372
https://bugzilla.gnome.org/show_bug.cgi?id=787374
Guillaume Desmottes [Mon, 5 Mar 2018 13:21:14 +0000 (14:21 +0100)]
h265parser: allow partial matching on range extension profile
Best to return a valid profiles rather than no profile if bitstream uses
a not standard profile.
https://bugzilla.gnome.org/show_bug.cgi?id=793876
Guillaume Desmottes [Mon, 26 Feb 2018 16:26:07 +0000 (17:26 +0100)]
h265parse: add support for 'Format range extensions profiles'
Those profiles have been introduced in version 2 of the HEVC spec
(A.3.5).
https://bugzilla.gnome.org/show_bug.cgi?id=793876
Guillaume Desmottes [Tue, 27 Feb 2018 10:30:15 +0000 (11:30 +0100)]
h265parser: parse extra profile fields
Those fields have been introduced in version 2 and later to define new
profiles like the format range extensions profiles (A.3.5).
NOTE: This patch breaks the parser ABI, rebuild needed.
https://bugzilla.gnome.org/show_bug.cgi?id=793876
Guillaume Desmottes [Thu, 1 Mar 2018 10:08:44 +0000 (11:08 +0100)]
h265parser: decouple GstH265Profile and GstH265ProfileIDC
We used to have the same enum to represent H265 profiles and idc values.
Those are no longer the same with extension profiles defined from
version 2 of the spec.
Split those enums so the semantic of each is clearer and we'll be able
to add extension profiles to GstH265Profile.
Also add gst_h265_profile_tier_level_get_profile() to retrieve the
GstH265Profile from the GstH265ProfileTierLevel. It will be used to
implement the detection of extension profiles.
https://bugzilla.gnome.org/show_bug.cgi?id=793876
Tim-Philipp Müller [Sat, 3 Mar 2018 22:39:27 +0000 (22:39 +0000)]
Release 1.13.90
Tim-Philipp Müller [Sat, 3 Mar 2018 22:39:27 +0000 (22:39 +0000)]
Update docs
Sebastian Dröge [Fri, 2 Mar 2018 19:53:47 +0000 (21:53 +0200)]
iqa: Fix build with latest aggregator API changes
Nicolas Dufresne [Fri, 2 Mar 2018 15:37:53 +0000 (10:37 -0500)]
Revert "h265parse: early set src caps when input not byte-stream"
This reverts commit
93d29e80300f566b7a8e7d86beecb578fe03821c.
Nicolas Dufresne [Fri, 2 Mar 2018 15:37:45 +0000 (10:37 -0500)]
Revert "h264parse: early set src caps when input is avc"
This reverts commit
5ac886d85aab4b919f84fb80e2d1ef36dc8e647d.
Mathieu Duponchelle [Thu, 1 Mar 2018 17:44:13 +0000 (18:44 +0100)]
meson: enable more warnings
Tim-Philipp Müller [Thu, 1 Mar 2018 15:24:39 +0000 (15:24 +0000)]
Remove schroedinger plugin
No upstream (website disappeared), no maintainer, and
pretty much a fringe format anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=776215
Mathieu Duponchelle [Wed, 28 Feb 2018 23:34:40 +0000 (00:34 +0100)]
Port to latest GstAggregator segment API
The aggregator segment is now exposed on the src pad
https://bugzilla.gnome.org/show_bug.cgi?id=793946
Nirbheek Chauhan [Thu, 1 Mar 2018 09:59:27 +0000 (15:29 +0530)]
wasapi: Increase rank to prefer over directsoundsrc
Directsoundsrc/sink have multiple issues, most of which cannot be
fixed at all because the API is deprecated and is implemented as a
compatibility wrapper around WASAPI since Vista.
Users and developers should now use the wasapisrc/sink elements, and
future development efforts should go towards that.
Mathieu Duponchelle [Wed, 28 Feb 2018 22:46:32 +0000 (23:46 +0100)]
mxfmux: instantiate adapter at the correct place
Tim-Philipp Müller [Wed, 28 Feb 2018 00:06:41 +0000 (00:06 +0000)]
docs: add new audiolatency element to docs and update docs for git
Nirbheek Chauhan [Tue, 27 Feb 2018 19:26:38 +0000 (00:56 +0530)]
audiolatency: Fix string format specifier and use microseconds everywhere
Should fix warnings or build errors on 32-bit platforms and on Windows.
Also clarify in logging that all timestamps are in microseconds.
Nirbheek Chauhan [Tue, 27 Feb 2018 19:10:21 +0000 (00:40 +0530)]
audiolatency: Fix cerbero build failure
Average latency is a 64-bit integer.
https://ci.gstreamer.net/job/GStreamer-master/9962/
Alicia Boya García [Tue, 27 Feb 2018 14:47:40 +0000 (15:47 +0100)]
x265enc: Add format example for option-string
https://bugzilla.gnome.org/show_bug.cgi?id=793881
Nirbheek Chauhan [Mon, 26 Feb 2018 13:08:58 +0000 (18:38 +0530)]
audiolatency: New plugin for measuring audio latency
Measures the audio latency between the source pad and the sink pad by
outputting period ticks on the source pad and measuring how long they
take to arrive on the sink pad.
Very useful for quantifying latency improvements in audio pipelines.
This plugin was particularly useful during development of the
low-latency features of the wasapi plugin.
https://bugzilla.gnome.org/show_bug.cgi?id=793839
Chris Bass [Tue, 27 Feb 2018 10:07:18 +0000 (10:07 +0000)]
ttml: Add support for IMSC 1.0.1 fillLineGap attribute
Strictly speaking, the TTML spec requires that text backgrounds extend
only to the font height of the related text, rather than to the vertical
distance between lines. The result of this is that there will typically
be vertical gaps between line backgrounds through which moving video can
be seen. Since this was unnacceptable to some content providers, v1.0.1
of the IMSC spec (which profiles TTML) adds a new attribute,
itts:fillLineGap[1], that allows content authors to specify that clients
should extend text backgrounds such that there are no gaps between
lines. This attribute is also going to be included in the next release
of EBU-TT-D.
This patch adds support for fillLineGap to ttmlparse and ttmlrender.
[1] https://www.w3.org/TR/ttml-imsc1.0.1/#itts-fillLineGap
https://bugzilla.gnome.org/show_bug.cgi?id=787071
Tim-Philipp Müller [Mon, 26 Feb 2018 11:20:51 +0000 (11:20 +0000)]
docs: plugins: add some more elements
Many will still be missing corresponding doc
sections in the source code though.
Nirbheek Chauhan [Mon, 26 Feb 2018 10:38:28 +0000 (16:08 +0530)]
wasapi: Clarify usage of low-latency property, add myself as author
The low-latency property is *always* safe to enable, so applications
that do realtime communication should set it, and the elements will
automatically configure WASAPI to use the lowest possible device
period, and the audioringbuffer in audiobasesink will also be
configured accordingly.
Applications can also use exclusive mode during capture and playback
for the lowest possible latency if they know that the device will not
be used by any other application.
In this mode, the latency-time and buffer-time properties will be
completely ignored.
Nirbheek Chauhan [Mon, 26 Feb 2018 10:25:19 +0000 (15:55 +0530)]
wasapi: Add a property for trying the AudioClient3 API
The AudioClient3 API is only available on Windows 10, and we will
automatically detect when it is available and use it.
However, using it for capturing audio with low latency and without
glitches seems to require setting the realtime priority of the entire
pipeline to "critical", which we cannot do from inside the element.
Hence, we can only enable that by default for wasapisink since
apps should be able to safely set the low-latency property to TRUE if
they need low-latency capture or playback.
Nirbheek Chauhan [Wed, 14 Feb 2018 14:42:07 +0000 (20:12 +0530)]
wasapi: Set realtime thread priority at runtime
Use LoadLibrary() to set the thread characteristics at runtime so it
works automagically regardless of where or how the plugin was built.
Nirbheek Chauhan [Wed, 14 Feb 2018 06:43:36 +0000 (12:13 +0530)]
wasapi: Use IAudioClient3 interface when available
This allows us to request ultra-low-latency device periods even in
shared mode. However, this requires good drivers and Windows 10, so
we only enable this when we detect that we are running on Windows 10
at runtime.
You can forcibly disable this feature on Windows 10 by setting
GST_WASAPI_DISABLE_AUDIOCLIENT3=1 in the environment.
Nirbheek Chauhan [Wed, 14 Feb 2018 06:26:45 +0000 (11:56 +0530)]
wasapi: __uuidof is simply not available in C
Fix comment, and don't try to use it at all.
Nirbheek Chauhan [Wed, 14 Feb 2018 06:17:14 +0000 (11:47 +0530)]
wasapi: Set a default category for util functions
Without this, they all go to the default category where they can be
missed
Nirbheek Chauhan [Wed, 14 Feb 2018 03:57:31 +0000 (09:27 +0530)]
wasapi: Use a macro for HRESULT failure paths
Saves a lot of boilerplate across all files.
Sreerenj Balachandran [Fri, 23 Feb 2018 23:08:32 +0000 (14:08 -0900)]
checksumsink: remove src pad template from sink element
https://bugzilla.gnome.org/show_bug.cgi?id=793774
Hyunjun Ko [Fri, 23 Feb 2018 23:30:56 +0000 (14:30 -0900)]
msdk: remove unused code
There's unused code remaining since MSDK bufferpool patches landed.
https://bugzilla.gnome.org/show_bug.cgi?id=793741
Jan Alexander Steffens (heftig) [Fri, 16 Feb 2018 08:17:40 +0000 (09:17 +0100)]
srt: Add support for streamheaders to sinks
https://bugzilla.gnome.org/show_bug.cgi?id=793503
Jan Alexander Steffens (heftig) [Fri, 16 Feb 2018 08:16:12 +0000 (09:16 +0100)]
srt: Refactor gst_srt_*_sink_send_buffer, extract send
https://bugzilla.gnome.org/show_bug.cgi?id=793503
Jan Alexander Steffens (heftig) [Fri, 16 Feb 2018 08:12:51 +0000 (09:12 +0100)]
srt: Add gst_srt_base_sink_stop
https://bugzilla.gnome.org/show_bug.cgi?id=793503
Jan Alexander Steffens (heftig) [Thu, 15 Feb 2018 11:07:32 +0000 (12:07 +0100)]
srt: Remove unused queued_buffers field
https://bugzilla.gnome.org/show_bug.cgi?id=793503
Sreerenj Balachandran [Thu, 22 Feb 2018 21:32:45 +0000 (12:32 -0900)]
msdkenc: remove unnecessary memset
https://bugzilla.gnome.org/show_bug.cgi?id=791479
Sreerenj Balachandran [Thu, 22 Feb 2018 21:32:20 +0000 (12:32 -0900)]
msdk: enc: Support force-key-unit events
https://bugzilla.gnome.org/show_bug.cgi?id=791479
Nicolas Dufresne [Wed, 7 Feb 2018 21:29:59 +0000 (16:29 -0500)]
h264parser: Expose framerate even if fixed_frame_rate flag isn't set
There is nothing in the spec that state that framerate is not valid in
that case. This aligns GStreamer with FFMPEG behaviour for similar
streams.
https://bugzilla.gnome.org/show_bug.cgi?id=793284
Tim-Philipp Müller [Wed, 21 Feb 2018 19:45:33 +0000 (19:45 +0000)]
meson: simplify GST_DISABLE_GST_DEBUG check and don't use add_global_*
add_global_arguments() can't be used in subprojects. It's
entirely possible that -bad is a subproject but gstreamer
is picked up from an installed location, so we should
really use add_project_arguments() in both cases.
Nicolas Dufresne [Wed, 21 Feb 2018 16:41:40 +0000 (11:41 -0500)]
doc: Add section for fakevideosink
https://bugzilla.gnome.org/show_bug.cgi?id=793624
Nicolas Dufresne [Tue, 20 Feb 2018 03:02:14 +0000 (22:02 -0500)]
Add fakevideosink element
This is a wrapper around fakesink that will advertise GstVideoMeta
and other meta API in order to achieve zero-copy whenever possible.
his new element is useful when doing performance testing with
video stream and don't want the sink capability to change the
upstream behaviour.
https://bugzilla.gnome.org/show_bug.cgi?id=793624
Nicolas Dufresne [Tue, 20 Feb 2018 02:52:43 +0000 (21:52 -0500)]
meson: Remove unused header list
https://bugzilla.gnome.org/show_bug.cgi?id=793624
Nicolas Dufresne [Mon, 19 Feb 2018 19:52:30 +0000 (14:52 -0500)]
Fix SRT Library package config name
Justin Kim [Mon, 19 Feb 2018 06:45:36 +0000 (15:45 +0900)]
meson: Use .dylib suffix if darwin
For Mac OS, GST_EXTRA_MODULE_SUFFIX should be set as '.dylib'.
https://bugzilla.gnome.org/show_bug.cgi?id=793585
Sreerenj Balachandran [Wed, 21 Feb 2018 02:22:35 +0000 (17:22 -0900)]
msdk: enc: Fix typo
Sreerenj Balachandran [Thu, 15 Feb 2018 19:00:04 +0000 (19:00 +0000)]
msdk: h264_enc: Enable B-pyramid prediction support
Since there is already an "adaptive-B" option, just
use boolean property for B-pyramid enabling.
Fixme: Not sure whether this can be supported in vp8 and vp9.
It could be possible through GPB (b without backward ref) but
can't verify currently. We can move this as common property
once verified with vp8 and vp9 without breaking any backward
compatibility.
https://bugzilla.gnome.org/show_bug.cgi?id=791637
Sreerenj Balachandran [Thu, 15 Feb 2018 17:29:13 +0000 (17:29 +0000)]
msdk: Add more tuning options
Added tuning options for mb level bitrate control,
adaptive I-frame insertion, and adaptive B-frame insertion.
https://bugzilla.gnome.org/show_bug.cgi?id=791637
Sreerenj Balachandran [Thu, 15 Feb 2018 16:31:56 +0000 (16:31 +0000)]
msdk: h264_enc: Add slice size tuning option
According to spec, it is a general property. But based on
testing it only works for h264 encoder.
Let's keep it as h264 specific for now.
https://bugzilla.gnome.org/show_bug.cgi?id=791637
Sreerenj Balachandran [Thu, 15 Feb 2018 15:59:08 +0000 (15:59 +0000)]
msdk: move enum definitions to separte file
Move enum value defintions which are (or in future) supported
by more than one codec into a common file.
https://bugzilla.gnome.org/show_bug.cgi?id=791637
Sreerenj Balachandran [Thu, 15 Feb 2018 15:05:10 +0000 (15:05 +0000)]
msdk: encoder: h264: Enable trellis quantization tuning
Add a new property "trellis" to enable trellis quantization.
Keeping trellis as a flag value (which is boolean for gst x264 enc element)
since it is possible to enable/disable this seperately for
I,P and B frames through MediaSDK ext option headers.
The subclass implementations always need to inform base-encoder
if it requires the inclusion of Extend Header buffers (mfxExtCodingOption2
and mfxExtCodingOption3).
https://bugzilla.gnome.org/show_bug.cgi?id=791637
Sreerenj Balachandran [Thu, 15 Feb 2018 12:19:48 +0000 (12:19 +0000)]
msdk: h264_enc: Add LookaheadDownsampling support
This option controls down sampling in look ahead bitrate
control mode. According to spec it is only supported in AVC.
Fixme: Probably HEVC also have support for this in recent
MSDK versions. We could move the enumeration types to common
header usable for multiple codecs.
https://bugzilla.gnome.org/show_bug.cgi?id=791637
Sreerenj Balachandran [Wed, 14 Feb 2018 17:01:38 +0000 (17:01 +0000)]
msdk: encode: Add more rate control options
MediaSDK has support for a number of rate control algorithms.
Adding all possible options to the property rate-control.
Fixme1: In case of failure, currently we don't have a proper method
to show which rate-control has been failed. It could be better
to add some extensive validation on EncQuery output in case of error.
Unfortunately, not all ratecontrol methods are supported by every codecs
and we don't have the dynamic detection of supported ratecontrol methods yet.
https://bugzilla.gnome.org/show_bug.cgi?id=791637
Sreerenj Balachandran [Wed, 14 Feb 2018 16:27:47 +0000 (16:27 +0000)]
msdk: encode: Add property to set slice/partitioning
Adding a new property num-slices to set the number of
slices/partitions per frame. Adding it as a general
property for all codecs (except jpeg).
https://bugzilla.gnome.org/show_bug.cgi?id=791637
Sreerenj Balachandran [Wed, 14 Feb 2018 14:29:57 +0000 (14:29 +0000)]
msdk: encoder: h265: generalize the behavior of "i-frames" property
We have the property "i-frames" to set the IDR interval in a
gop. Unfortunately MSDK HEVC encoder behaves bit differently
for IdrInterval field, IdrInteval == 1 indicate every
I-frame should be an IDR (which is IdrInterval == 0 for other codecs),
IdrInteval == 2 means every other I-frame is an IDR
(which is IdrInterval == 1 for other codecs) etc.
So we generalize the behaviour of property "i-frames" by
incrementing the value by one in each case (only for HEVC).
https://bugzilla.gnome.org/show_bug.cgi?id=791637
Sreerenj Balachandran [Wed, 14 Feb 2018 11:42:55 +0000 (11:42 +0000)]
msdk: encoder: register only the required properties
The base encoder common properties are not valid for
mjpeg encoder where there is no motion compensation or rate control.
Delaying the property installation on the base gobject
untill the subclass class_init get invoked.
https://bugzilla.gnome.org/show_bug.cgi?id=791637
Víctor Manuel Jáquez Leal [Sun, 18 Feb 2018 13:46:52 +0000 (14:46 +0100)]
msdk: add missing files for dist target
https://bugzilla.gnome.org/show_bug.cgi?id=793563
Sebastian Dröge [Sun, 18 Feb 2018 10:01:07 +0000 (12:01 +0200)]
colormanagement: Link to libgstbase for basetransform
Sebastian Dröge [Sun, 18 Feb 2018 09:49:25 +0000 (11:49 +0200)]
gl: GL_LIBS does not exist anymore but X11_LIBS does and is needed
In case of X11 we have to call XInitThreads().
Sebastian Dröge [Sun, 18 Feb 2018 09:37:18 +0000 (11:37 +0200)]
configure: Add configure check for gmodule-no-export-2.0
This is needed for all code using the g_module_*() API.
Sebastian Dröge [Fri, 16 Feb 2018 15:36:04 +0000 (17:36 +0200)]
webrtc: We need at least libnice 0.1.14
meson.build already required that, let's do the same for configure.ac
Tim-Philipp Müller [Thu, 15 Feb 2018 19:44:23 +0000 (19:44 +0000)]
Back to development
Tim-Philipp Müller [Thu, 15 Feb 2018 17:13:06 +0000 (17:13 +0000)]
Release 1.13.1
Tim-Philipp Müller [Thu, 15 Feb 2018 18:50:51 +0000 (18:50 +0000)]
Dist compositor crossfade example and pythons script for meson build
And add to autotools build so it gets disted.
Tim-Philipp Müller [Thu, 15 Feb 2018 15:07:26 +0000 (15:07 +0000)]
configure: fix build with --disable-external
Tim-Philipp Müller [Thu, 15 Feb 2018 14:59:35 +0000 (14:59 +0000)]
po: update translations
Tim-Philipp Müller [Thu, 15 Feb 2018 14:57:00 +0000 (14:57 +0000)]
docs: update plugin docs
Edward Hervey [Wed, 14 Feb 2018 14:57:48 +0000 (15:57 +0100)]
decklink: Fix array of devices usage
We need to allocate actual Device structures since we are going
to be setting callbacks with address to that structure
https://bugzilla.gnome.org/show_bug.cgi?id=777239
Edward Hervey [Wed, 14 Feb 2018 13:36:00 +0000 (14:36 +0100)]
Update ORC fallback disted code