Thibault Saunier [Fri, 24 Sep 2021 19:15:07 +0000 (16:15 -0300)]
Merging gst-libav
Thibault Saunier [Fri, 24 Sep 2021 19:15:01 +0000 (16:15 -0300)]
Move files from gst-omx into the "subprojects/gst-omx/" subdir
Thibault Saunier [Fri, 24 Sep 2021 19:14:59 +0000 (16:14 -0300)]
Merging gst-omx
Thibault Saunier [Fri, 24 Sep 2021 19:14:54 +0000 (16:14 -0300)]
Move files from gstreamer-vaapi into the "subprojects/gstreamer-vaapi/" subdir
Thibault Saunier [Fri, 24 Sep 2021 19:14:50 +0000 (16:14 -0300)]
Merging gstreamer-vaapi
Thibault Saunier [Fri, 24 Sep 2021 19:14:45 +0000 (16:14 -0300)]
Move files from gst-plugins-ugly into the "subprojects/gst-plugins-ugly/" subdir
Thibault Saunier [Fri, 24 Sep 2021 19:14:42 +0000 (16:14 -0300)]
Merging gst-plugins-ugly
Thibault Saunier [Fri, 24 Sep 2021 19:14:36 +0000 (16:14 -0300)]
Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir
Thibault Saunier [Fri, 24 Sep 2021 19:14:03 +0000 (16:14 -0300)]
Merging gst-plugins-bad
Thibault Saunier [Fri, 24 Sep 2021 19:13:50 +0000 (16:13 -0300)]
Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir
Thibault Saunier [Fri, 24 Sep 2021 19:13:37 +0000 (16:13 -0300)]
Merging gst-plugins-good
Thibault Saunier [Fri, 24 Sep 2021 19:13:26 +0000 (16:13 -0300)]
Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir
Thibault Saunier [Fri, 24 Sep 2021 19:13:17 +0000 (16:13 -0300)]
Merging gst-plugins-base
Thibault Saunier [Fri, 24 Sep 2021 19:13:07 +0000 (16:13 -0300)]
Move files from gstreamer into the "subprojects/gstreamer/" subdir
Tim-Philipp Müller [Thu, 23 Sep 2021 00:36:02 +0000 (01:36 +0100)]
Release 1.19.2
Tim-Philipp Müller [Thu, 23 Sep 2021 00:35:54 +0000 (01:35 +0100)]
Release 1.19.2
Tim-Philipp Müller [Thu, 23 Sep 2021 00:35:17 +0000 (01:35 +0100)]
Release 1.19.2
Tim-Philipp Müller [Thu, 23 Sep 2021 00:34:47 +0000 (01:34 +0100)]
Release 1.19.2
Tim-Philipp Müller [Thu, 23 Sep 2021 00:34:00 +0000 (01:34 +0100)]
Release 1.19.2
Tim-Philipp Müller [Thu, 23 Sep 2021 00:33:39 +0000 (01:33 +0100)]
Release 1.19.2
Tim-Philipp Müller [Thu, 23 Sep 2021 00:33:08 +0000 (01:33 +0100)]
Release 1.19.2
Tim-Philipp Müller [Thu, 23 Sep 2021 00:32:32 +0000 (01:32 +0100)]
Release 1.19.2
Nicolas Dufresne [Wed, 22 Sep 2021 18:17:35 +0000 (14:17 -0400)]
audiobuffersplit: Remove unneeded buffer_clip wrapper
This is just a small cleanup noticed while reading.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2544>
Vivek R [Fri, 10 Jul 2020 14:01:13 +0000 (19:31 +0530)]
opencv: cvtracker: add draw property
This property controls the drawing of rectangle around the tracked object.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2454>
Vivek R [Sun, 24 May 2020 18:07:25 +0000 (23:37 +0530)]
opencv: add cvtracker plugin
This adds an object tracker plugin.
Tracker implementations from https://docs.opencv.org/3.4/d0/d0a/classcv_1_1Tracker.html
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2454>
Vivek R [Mon, 25 May 2020 05:05:30 +0000 (10:35 +0530)]
opencv: patch to ensure headers are detected
This patch is used to ensure opencv headers are detected.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2454>
Tim-Philipp Müller [Wed, 22 Sep 2021 13:03:57 +0000 (14:03 +0100)]
rtph263pdepay: flag keyframes on output buffers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1091>
Sebastian Dröge [Wed, 23 Jun 2021 13:41:20 +0000 (16:41 +0300)]
clocksync: Add some debug output to the clock waiting code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/841>
Tim-Philipp Müller [Sun, 19 Sep 2021 00:18:00 +0000 (01:18 +0100)]
mpegtsmux, mpegpsmux: remove GPL from choice of licenses and add SPDX license identifiers
Some people need to avoid inclusion of GPL code for their use cases and thus
get easily spooked by GPL license headers. This code is actually licensed
under different licenses, only one of which is GPL, and it's already possible
to just upgrade from LGPL to GPL anyway so having the GPL listed explicitly
as one of the choices doesn't really add anything. So remove GPL from the list
and also add SPDX license identifiers while we're at it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2539>
Tim-Philipp Müller [Tue, 21 Sep 2021 21:39:46 +0000 (22:39 +0100)]
pbutils: codec-utils: fix g-ir-scanner warning
Warning: GstPbutils: gst_codec_utils_h264_get_profile_flags_level:
unknown parameter 'codec_data' in documentation comment, should be 'codecs_data
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1279>
Seungha Yang [Mon, 23 Aug 2021 18:54:27 +0000 (03:54 +0900)]
wasapideviceprovider: Add support for dynamic device add/remove
Adding IMMDeviceEnumerator::RegisterEndpointNotificationCallback
in order to support device monitoring.
On OnDeviceAdded(), OnDeviceRemoved(), and OnDefaultDeviceChanged()
callback, wasapi device provider implementation will enumerate
devices again and will notify newly added and removed device
via GstDeviceProvider API.
As a bonus point, this IMMDeviceEnumerator abstraction object
will spawn a dedicated internal COM thread, so various COM thread
related issues of WASAPI plugin can be resolved by this commit.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1649
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1110
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2484>
Jan Alexander Steffens (heftig) [Tue, 21 Sep 2021 13:05:58 +0000 (15:05 +0200)]
x264enc: Strip trailing whitespace from x264's log messages
x264 has linebreaks at the end of its log messages that we should
ignore.
Add G_GNUC_PRINTF to the callback to make sure GCC lets us forward the
format string to another function marked as printf (g_strdup_vprintf)
without triggering -Wformat-nonliteral.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/merge_requests/85>
Jan Alexander Steffens (heftig) [Tue, 21 Sep 2021 12:57:29 +0000 (14:57 +0200)]
x264enc: Add the func/line info to the log callback
It looks awkward when it's missing. At least point us at the callback
function.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/merge_requests/85>
Jan Alexander Steffens (heftig) [Tue, 21 Sep 2021 12:56:23 +0000 (14:56 +0200)]
x264enc: Reduce log spam about bit depth support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/merge_requests/85>
Nicolas Dufresne [Tue, 24 Aug 2021 19:27:32 +0000 (15:27 -0400)]
alsasink: Allow stop() function to happen during failing writes
In ALSA, there is possible temporary failures that may require a retry,
though in certain situation, this may leak to the write() function
holding on a lock forever preventing the pipeline from going to pause
or stop. Fix this by shortly dropping the lock between retries.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1261>
Nicolas Dufresne [Tue, 24 Aug 2021 19:26:12 +0000 (15:26 -0400)]
alsasink: Improve logging in write() function
This moves the "written X frames" lower so that we don't trace
confusing negative values on errors and add the error code in the
"Write error" log.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1261>
Stéphane Cerveau [Mon, 1 Feb 2021 15:21:59 +0000 (16:21 +0100)]
openjpeg: add unit test
Test various format supported with subframes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
Stéphane Cerveau [Fri, 22 Jan 2021 09:39:56 +0000 (10:39 +0100)]
jpeg2000parse + openjpeg: Switch striped mode to its own caps
It's not compatible with any other element that use the non-striped
mode. In addition, in this mode, we require that every frame have the
same number of stripes or that the MARKER bit be present, which is
different from the other
formats too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
Stéphane Cerveau [Wed, 23 Dec 2020 10:03:34 +0000 (11:03 +0100)]
openjpegdec: Fix crash with AYUV64 in subframe mode
Remove useless generic fill_frame methods to use
the packed one for AYUV and AYUV64.
Fix gst-launch-1.0 -v videotestsrc !
video/x-raw,width=640,height=480,format=AYUV64 ! openjpegenc
num-stripes=8 ! openjpegdec max-threads=8 ! videoconvert !
autovideosink sync=false
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
Stéphane Cerveau [Fri, 24 Apr 2020 14:15:42 +0000 (16:15 +0200)]
openjpegdec: support for a multithreaded decoding.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
Aaron Boxer [Mon, 13 Jan 2020 19:02:39 +0000 (14:02 -0500)]
openjpegdec: enable sub frame mode
Rebuild output frame from multiple stripes input.
Keep the first frame and fill it with the following stripes to finish
a complete frame only once.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
Olivier Crête [Tue, 22 Dec 2020 23:19:40 +0000 (18:19 -0500)]
mpegtsmux: Require frame alignment for JPEG 2000
We have yet to implement stripe alignment with the required descriptor.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
Olivier Crête [Tue, 22 Dec 2020 23:15:52 +0000 (18:15 -0500)]
openjpegdec: Reject stripes for now
They're not implemented.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
Olivier Crête [Tue, 22 Dec 2020 23:20:35 +0000 (18:20 -0500)]
openjpegenc: Only allow stripe with image/x-jpc format
It's the only format that our MPEG-TS muxer allows and the carriage of
JPEG 2000 stripes is only defined for MPEG-TS as far as I know.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
Stéphane Cerveau [Tue, 21 Apr 2020 18:56:03 +0000 (20:56 +0200)]
openjpegenc: support for a multithreaded encoding.
This commit introduces a multithreaded encoder allowing
to encode mulitple stripes or subframes in separated threads.
This feature aims to enhance the overall latency of a codec
pipeline.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
Philippe Normand [Sat, 18 Sep 2021 11:02:15 +0000 (12:02 +0100)]
wpe: context thread dispatch fixes
Use dedicated mutex/cond/flag for jobs being dispatched in the context thread.
The previous code was signalling the thread startup condition, which is wrong.
When WPEContextThread::dispatch() is invoked it means the thread has already
correctly been started up.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2533>
Philippe Normand [Sat, 18 Sep 2021 11:01:39 +0000 (12:01 +0100)]
wpe: Properly wait on context thread startup condition
Fixes #1661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2533>
Nicolas Dufresne [Mon, 20 Sep 2021 13:41:32 +0000 (09:41 -0400)]
doc: Update kmssink caps cache
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2530>
Nicolas Dufresne [Fri, 17 Sep 2021 20:21:39 +0000 (16:21 -0400)]
kmssink: Add RGB16/BGR16 support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2530>
Nicolas Dufresne [Fri, 17 Sep 2021 20:14:36 +0000 (16:14 -0400)]
kmssink: Sort format according to GST_VIDEO_FORMATS_ALL
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2530>
Nicolas Dufresne [Fri, 17 Sep 2021 19:42:25 +0000 (15:42 -0400)]
kmssink: Remove big endian format inversion
This has been a bad interpretation of the DRM docuemntation. The formats are
fixed regardless the CPU, but for some formats, they expressed in the opposite
order as GStreamer. Same change was done in waylandsink 2 years ago.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/commit/
b393b650ab9bfb9654fc116163ab331907216d74
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2530>
Nicolas Dufresne [Fri, 17 Sep 2021 19:41:41 +0000 (15:41 -0400)]
kmssink: Add NV61 support
This identically handled to NV16, so no reason not to inclue it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2530>
Nicolas Dufresne [Fri, 17 Sep 2021 19:39:54 +0000 (15:39 -0400)]
kmssink: Add NV24 support
This was tested on RK3566 platform, using vendor DRM driver.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2530>
Seungha Yang [Fri, 17 Sep 2021 15:33:12 +0000 (00:33 +0900)]
codecs: av1decoder: Use GstFlowReturn everywhere
The same modification as that of VP8 decoder
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2528>
Seungha Yang [Fri, 17 Sep 2021 15:09:24 +0000 (00:09 +0900)]
codecs: vp9decoder: Use GstFlowReturn everywhere
The same modification as that of VP8 decoder
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2528>
Seungha Yang [Fri, 17 Sep 2021 14:23:06 +0000 (23:23 +0900)]
codecs: vp8decoder: Use GstFlowReturn everywhere
boolean return value is not sufficient for representing the reason
of error in most cases. For instance, any errors around new_sequence()
would mean negotiation error, not just *ERROR*.
And some subclasses will allocate buffer/memory/surface on new_picture()
but it could be failed because of expected error, likely flushing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2528>
Sebastian Dröge [Mon, 20 Sep 2021 10:12:12 +0000 (13:12 +0300)]
gst: Initialize optional event/message fields when parsing
These might not exist inside the structure and then we would potentially
keep around uninitialized memory from the caller in the out parameter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/887>
Sebastian Dröge [Fri, 10 Sep 2021 12:10:46 +0000 (15:10 +0300)]
videodecoder: Add properties to automatically request sync points and vfunc to allow subclasses to handle packet loss / missing data
Subclasses could use the new vfunc to activate packet loss concealment,
for example.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1274>
Vivia Nikolaidou [Mon, 16 Aug 2021 15:15:42 +0000 (18:15 +0300)]
mpegtspacketizer: memcmp potentially seen_before data
Theoretically the version number is incremented every time there's a new
section, but in a world of streaming we can't easily make that
assumption.
An example of a broken use case is when we're cat-ing two mpeg-ts files
together, which is equivalent of capturing a DVB stream while switching
channels. A set-top box would know that we switched the channels and
reset the demuxer, but in practice this might not happen.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2468>
Sebastian Dröge [Mon, 20 Sep 2021 08:35:51 +0000 (11:35 +0300)]
player: Fix/add various annotations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2538>
Seungha Yang [Sat, 18 Sep 2021 09:07:43 +0000 (18:07 +0900)]
meson: va: Make AV1 support always optional
Otherwise meson configure with -Dva=enabled will be failed
when installed libva version is < 1.8
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2532>
Víctor Manuel Jáquez Leal [Sat, 18 Sep 2021 09:03:16 +0000 (11:03 +0200)]
va: caps: Don't use image formats for decoded frames.
Initially we tried to use the internal color conversion used in i965
and Gallium drivers when decoding. But this approach has showed
limitations and problems.
This patch removes completely the possible color conversion at
decoding, since it show problems with deinterlacing, for example:
gst-launch-1.0 filesrc location=interlaced.mpg2 ! parsebin ! vampeg2dec ! vadeinterlace ! xvimagesink
Allowing only the surface formats when decoding is more stable.
For color conversion is better to do it explicitly with vapostproc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2531>
He Junyan [Sun, 19 Sep 2021 13:01:21 +0000 (21:01 +0800)]
test: bitwriter: Add a test for reset_and_get_data when not byte unaligned.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/886>
He Junyan [Sun, 19 Sep 2021 14:39:09 +0000 (22:39 +0800)]
bitwriter: Fix a memory leak in reset_and_get_buffer.
We should record the ownership of the data before we reset the bitwriter.
Or we will always dup the buffer data and leak the memory.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/886>
He Junyan [Sat, 18 Sep 2021 16:19:43 +0000 (00:19 +0800)]
bitwriter: Fix the trailing bits lost when getting its data.
In reset_and_get_data and reset_and_get_buffer, it fails to include
the trailing bits less than 8. So, when the bit_size is not byte
aligned, the trailing bits are lost in the return buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/886>
Marijn Suijten [Tue, 27 Apr 2021 09:59:15 +0000 (11:59 +0200)]
player: Add missing nullable annotations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2197>
Marijn Suijten [Tue, 27 Apr 2021 09:58:58 +0000 (11:58 +0200)]
play: Add missing nullable annotations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2197>
Fabian Orccon [Sat, 18 Sep 2021 12:29:25 +0000 (14:29 +0200)]
sys: shm: Define shm_enable and shm_deps before escape meson subdir
Fixes meson configure in tests if the shm plugin is disabled
Fixes #1664
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2534>
Seungha Yang [Fri, 17 Sep 2021 17:27:51 +0000 (02:27 +0900)]
d3d11videosink: Display title of content if possible
Update title text of window (currently it's always "Direct3D11 renderer")
when we are rendering on internal HWND, not external HWND.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2529>
Seungha Yang [Fri, 17 Sep 2021 16:32:11 +0000 (01:32 +0900)]
d3d11videosink: Remove unused enum value
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2529>
Mengkejiergeli Ba [Wed, 15 Sep 2021 05:59:17 +0000 (13:59 +0800)]
msdkenc: Pass color properties to MediaSDK for encoding
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2523>
Sebastian Dröge [Sat, 18 Sep 2021 08:51:03 +0000 (11:51 +0300)]
avcodecmap: Add support for GBRA_10LE/BE
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/142>
Mengkejiergeli Ba [Wed, 15 Sep 2021 08:32:02 +0000 (16:32 +0800)]
msdkh265enc: Add profile main10 still picture for hevc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2524>
Nicolas Dufresne [Thu, 16 Sep 2021 21:12:58 +0000 (17:12 -0400)]
waylandsink: Fix double render check
Our code does not support rendering twice the same wl_buffer in a row, so it
tries to skip that case, but for this it relied on the GstBuffer pointer,
while the cache actually works at the GstMemory level now. To avoid this
compare the GstWlBuffer instead.
This fixes crash when use in zero-copy with videorate element.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2526>
Víctor Manuel Jáquez Leal [Tue, 7 Sep 2021 07:45:54 +0000 (09:45 +0200)]
codecs: mpeg2decoder: Use tsg framerate for latency.
Latency setting relies on src pad caps, but they aren't set when the
function is called, and latency is never updated.
In order to fix it, this patch uses TSG framerate first, and if it's
not set yet, sinkpad caps are used to get the framerate.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2514>
Seungha Yang [Wed, 15 Sep 2021 15:59:37 +0000 (00:59 +0900)]
d3d11decoder: Refactor for more unified decoding flow
... and various code cleanup.
* Move spreaded decoding API calls into one method
Previously, decoding flow of most codecs are
- Call DecoderBeginFrame() on start_picture()
- Call {Get,Release}DecoderBuffer() on decode_slice()
- Call SubmitDecoderBuffers() and DecoderEndFrame() on end_picture()
Such spreaded API calls make it hard to keep track of status
of decoding. Now it will be done at once in a new method.
* Drop a code for non-zero wBadSliceChopping
When bitstream buffer provided by driver is not sufficient
to write compressed bitstream data, host decoder needs to make use
of wBadSliceChopping so that driver can understand there are
multiple bitstream buffer. But it's a bit unrealistic and
not tested. Since FFMpeg's DXVA implemetaion doesn't support it,
we might be able to ignore the case for now.
* Make code more portable
Consider common logic of GstCodecs -> DXVA translation for all D3D APIs
(i,e., D3D9, D3D11, and D3D12).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2525>
Seungha Yang [Wed, 15 Sep 2021 14:41:39 +0000 (23:41 +0900)]
d3d11decoder: Remove duplicated class_init and property related code
Move them into the decoder helper code to remove duplication
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2525>
Seungha Yang [Fri, 10 Sep 2021 15:43:26 +0000 (00:43 +0900)]
d3d11: Get rid of "extern "C"" wrapping for GST_DEBUG_CATEGORY_EXTERN
Instead, change the file defining debug category to cpp
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2525>
Havard Graff [Fri, 10 Sep 2021 14:12:51 +0000 (16:12 +0200)]
videodecoder: Fix min-force-key-unit-interval logic and logging
The new keyframe is needed when the deadline of the buffer has exeeded
the waiting time, not while it is within it.
Also, since we look at the deadline of the frame, log that instead of PTS.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1278>
U. Artie Eoff [Tue, 30 Jun 2020 18:15:43 +0000 (11:15 -0700)]
tests: skip cc tests if plugin is disabled
Skip the closedcaption element tests if the
closedcaption option is disabled at compile
time (i.e. -Dclosedcaption=disabled).
v2: rename pangocairo_dep to avoid conflict
with later definition in ext/ttml/meson.build
as suggested by @tpm.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1388>
Olivier Crête [Wed, 18 Aug 2021 23:47:40 +0000 (19:47 -0400)]
rtphdrhext-twcc: Return failure on map failure
This feels like exactly like a case that should fail.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1059>
Olivier Crête [Wed, 18 Aug 2021 23:46:25 +0000 (19:46 -0400)]
rtphdrext: Update write() API to return a signed value
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1059>
Olivier Crête [Wed, 18 Aug 2021 23:40:55 +0000 (19:40 -0400)]
rtphdrext: Make write function return a signed value
Since the return value is documented to possibly be smaller than 0,
then it needs to be signed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1258>
Olivier Crête [Wed, 16 Jun 2021 19:07:13 +0000 (15:07 -0400)]
videorate: Add unit test for closing a segment and opening a separate one
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/767>
Olivier Crête [Wed, 16 Jun 2021 19:06:57 +0000 (15:06 -0400)]
videorate: Drop incoming buffers that are outside of the segment
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/767>
Olivier Crête [Fri, 24 Jul 2020 21:41:57 +0000 (17:41 -0400)]
videorate: Only "close" the segment if it is discontinous
Otherwise, it will drop valid buffers on a simple segment update
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/767>
Olivier Crête [Fri, 24 Jul 2020 21:38:58 +0000 (17:38 -0400)]
videorate: Add test for segment update
Continue as-is on segment update.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/767>
Olivier Crête [Fri, 24 Jul 2020 20:35:04 +0000 (16:35 -0400)]
videorate: Update the base time on segment updates
Dropping it to 0 makes videorate push buffers from timestamp 0 again.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/767>
He Junyan [Tue, 31 Aug 2021 09:16:05 +0000 (17:16 +0800)]
codecs: h264dec: Check bumping again after inserting current picture.
In order to get the lowest latency, we can add another bumping check after
inserting the current picture into the DPB immediately. That can avoid
waiting for another decoding circle of the next frame and so the latency
is lower.
Fix: #1628
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2501>
He Junyan [Tue, 31 Aug 2021 09:37:11 +0000 (17:37 +0800)]
codecs: h264: Add protection to to_insert picture in bump check.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2501>
He Junyan [Tue, 31 Aug 2021 08:39:06 +0000 (16:39 +0800)]
codecs: h264dec: Improve the policy to infer max_num_reorder_frames.
The max_num_reorder_frames number can change the way we bumping the
pictures in the DPB. The smaller it is, the lower latency we will
get. So it is important for live mode streams, but it is not given
in VUI parameters sometimes. We now improve the policy to infer it:
1. Never guess it in the "strict" compliance.
2. For baseline and constrained baseline profiles, which do not have
B frames, set it to 0.
3. For -intra only profiles, set it to 0.
4. Otherwise, not guess it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2501>
U. Artie Eoff [Wed, 15 Sep 2021 03:57:30 +0000 (20:57 -0700)]
tests: skip aes test if elements not built
In ext/aes/meson.build, the aes_dep will return
not-found if -Daes=disabled, regardless of whether
openssl is found or not. Thus, we don't need a
separate check for the option. This will also
ensure that aes_dep is always defined and we can
use it in the tests/check/meson.build unit.
Fixes #1660
v2: handle -Daes=disabled, too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2522>
Seungha Yang [Tue, 14 Sep 2021 08:26:27 +0000 (17:26 +0900)]
qtdemux: Try to build AAC codec-data whenever it's possible
AAC codec_data is a just collection of AAC profile, samplerate, and
channels. We can know samplerate and channels from parsed
SampleEntry data. Although the AAC profile is unknown there,
let's assume it as AAC-LC like we've been doing for the version 1
atom.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1082>
Philippe Normand [Tue, 31 Aug 2021 16:33:02 +0000 (17:33 +0100)]
wpe: Add support for web:// URIs
The CEF source already supports this. No good reason for wpesrc not too ;)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2503>
Mathieu Duponchelle [Thu, 9 Sep 2021 23:43:18 +0000 (01:43 +0200)]
multiqueue: fix obsolete comment re initial flow status
The initial single queue srcresult is OK, it hasn't been
NOT_LINKED since 2007.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/885>
Mathieu Duponchelle [Thu, 9 Sep 2021 18:25:25 +0000 (20:25 +0200)]
multiqueue: never consider a queue that is not waiting
.. when computing the high id.
After a flush for instance, sq->srcresult is reset to OK,
yet it doesn't make sense to pick a non-existing position
id as the high id when a queue doesn't contain any items
in that situation either.
It is in any case completely OK to let the not-linked stream
get consumed without throttling at this stage, as any
first packet arriving on other single queues will get assigned
a higher position id.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/885>
He Junyan [Fri, 23 Jul 2021 15:38:22 +0000 (23:38 +0800)]
va: h264dec: Try to use ConstrainedBaseline or Main to decode BaseLine.
In the h264, the Baseline profile is widely misused. A lot of streams declare
that they are the Baseline, but in fact they just conform to ConstrainedBaseline.
The features such as FMO and ASO are not used at all.
If the decoder does not strictly conforms to the SPEC, we can just use Baseline
or Main profile to decode it to avoid lots of streams failure.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2428>
Vivienne Watermeier [Tue, 7 Sep 2021 20:23:01 +0000 (22:23 +0200)]
flv: fix seqnum handling for seeks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1078>
Matthew Waters [Mon, 18 Jan 2021 05:06:27 +0000 (16:06 +1100)]
isomp4: also allow muxing different h264/5 profiles/levels/etc
All of that is advertised through the codec_data itself so can change
just fine within isomp4.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1071>
Sebastian Dröge [Sat, 11 Sep 2021 06:24:35 +0000 (09:24 +0300)]
matroska: Add support for muxing/demuxing ffv1
Previously only demuxing when stored via the RIFF/AVI mapping was
supported.
See https://github.com/FFmpeg/FFV1/blob/master/ffv1.md#matroska-file-format
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/923
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1080>