Commit graph

112784 commits

Author SHA1 Message Date
Jordan Petridis
5c536f2601 docker/windows: build rust image in the ci
This makes it a bit harder to build an image locally with the script,
as now the rust image requires to pass it the base image tag as a
--build-arg. This way though we don't need to duplicate and keep
the string of the image in sync.

Another thing is that now the docker windows image build is properly
passing/replacing build args and we can build non-master versions
of the image too.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/405>
2021-09-08 04:47:36 +00:00
Jordan Petridis
9c21b05d1b docker/windows: create a rust image for gst-rs
Based on the build image for the existing windows jobs,
add an image with rust toolchain and a (stable) gstreamer
install for the bindings to build against.

See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/701

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/405>
2021-09-08 04:47:36 +00:00
Jordan Petridis
37c0ee7280 docker/windows: install vcredist140 explicitly
We depend on it for GStreamer builds and it was gettings pulled
transiently by python3 install.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/405>
2021-09-08 04:47:36 +00:00
Ludvig Rappe
92338e3d80 pbutils: Add mjpg to MIME codecs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1270>
2021-09-07 14:49:52 +00:00
Matthew Waters
abe89db32d cerbero: fix cross-macos universal building all of cerbero
When building outside of cerbero, we only want to build the gst modules
as necessary.

Regression introduced by 03c5f1db29d751f8ccbe6062d8046c307c92a60d

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/413>
2021-09-07 22:50:54 +10:00
Seungha Yang
2c69544d0c jpegdec: Fix crash when interlaced field height is not DCT block size aligned
In case of interlaced JPEG file, we are doubling stride.
The scratch scan line should take account of it as well.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1042>
2021-09-07 12:15:34 +00:00
Jan Schmidt
640aad2b46 mpeg2enc: Only allow 1 pending frame for encoding
Having an unlimited input queue is very bad if the
encoder can't run at real-time. Eventually it will
consume all RAM. I don't really see any reason to
have more than 1 outstanding encoded frame, so
remove the queue and limit things to 1 pending frame.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2499>
2021-09-06 14:14:50 +00:00
Jan Schmidt
5eba408071 multiqueue: Use running time of gap events for wakeups.
Use gap events to update the next_time of a queue the same
as buffers or segment events. Fixes problems where a group
consisting only of sparse streams primarily driven by
gap events would stall with a full multiqueue because
unlinked streams in the group were not being woken to
push data.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/879>
2021-09-06 01:43:57 +10:00
Thibault Saunier
cd3aa029d6 wpe: Fix race condition on teardown
There was a race when going to PAUSED while pushing a buffer to the
pipeline process (where we weren't even cancelling anything).

This rework base all the cancellation around the GCancellable
"cancelled" signal trying to ensure that the streaming thread will not
block once a cancel operation happens.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2504>
2021-09-03 15:56:31 +00:00
Thibault Saunier
f7cbbb5d9a wpe: Use the new element.get_current_running_time API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2504>
2021-09-03 15:56:31 +00:00
Thibault Saunier
0531eebf51 wpe: Mark first buffer as starting at 0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2504>
2021-09-03 15:56:31 +00:00
Mathieu Duponchelle
f5cdb2d002 decodebin3: fix unblocking on input gap events
Initial gap events should not be discarded on the input streams,
but instead cause unblocking just as buffers do.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1239>
2021-09-03 13:46:19 +00:00
Thibault Saunier
aff2b3ea0a launch: Make enabling validate opt-in
Instead of opt-out.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/264>
2021-09-02 22:34:09 +00:00
Philippe Normand
8ad1ea0297 parsebin: Guess subtitle/ caps as text streams
The subtitles in ogg/kate are identified using subtitle/ caps names.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1213>
2021-09-02 17:29:51 +00:00
Seungha Yang
f2fa75accb videoparseutils: Fix for wrong CEA708 minimum size check
The minimum possible size of valid CEA708 data is 3 bytes, not 7 bytes

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2505>
2021-09-02 23:17:58 +09:00
Sebastian Dröge
fedd6c2a28 avidemux: Also detect 0x000001 as H264 byte-stream start code in codec_data
This works around some AVI files storing byte-stream data in the
codec_data. The previous workaround was only checking for
0x00000001 (4 bytes) instead of 0x000001 (3 bytes).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1072>
2021-09-02 12:07:52 +00:00
Philippe Normand
cfc80e5168 wpevideosrc: Uniformise default value for draw-background property
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2498>
2021-08-31 17:59:06 +00:00
Philippe Normand
2b6f0404a7 wpevideosrc: Implement basic heuristic for raw caps negotiation
Before this patch raw caps could be negotiated already with a capsfilter, but in
cases where wpesrc is being auto-plugged this approach can't be used.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2498>
2021-08-31 17:59:06 +00:00
Philippe Normand
edc04df13c wpevideosrc: Ensure debug category is set
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2498>
2021-08-31 17:59:06 +00:00
Jordan Petridis
f75713f070 git-update: dump output in case subproject download fails
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/261>
2021-08-31 20:21:32 +03:00
Philippe Normand
ab6cb4c2c7 qt: Fix build for Qt 5.9
The QQuickItem::size() method was introduced in 5.10, so use direct width() and
height() access instead.

Fixes #908

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1069>
2021-08-31 11:15:24 +00:00
Matthew Waters
e43bbaf3d9 rtp: add some additional rtcp sdes values
Matches the current list at
https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-5
as of 2021-September.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1267>
2021-08-31 06:09:47 +00:00
Mathieu Duponchelle
20483c3449 cccombiner: fix scheduling with interlaced video buffers
The initial code was written with the misunderstanding that
IS_TOP_FIELD indicated that an interlaced buffer contained
a top field, not that it contained only a top field

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2413>
2021-08-30 21:27:44 +00:00
Olivier Crête
aa3d2c3369 rtphdrext-rfc6464: Add test for inserting in payloader using the API
This makes it clearer how to use the plugin in an API driven application.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1058>
2021-08-30 17:01:15 +00:00
Olivier Crête
f70ccd6d86 rtphdrext-rfc6464: Put max level if the audio is beyond it
Otherwise, it just fails to add the extension, which makes no
sense. And our level element produces levels higher than 127 in some
cases.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1058>
2021-08-30 17:01:15 +00:00
Olivier Crête
23d07f3c7b rtphdrext-rfc6464: Add example pipeline
This makes it a bit easier to understand how to use it in an application.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1058>
2021-08-30 17:01:15 +00:00
Olivier Crête
9ff052d5be rtphdrext-rfc6464: Add test for inserting it based on caps
Tests adding the extension based on the caps.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1058>
2021-08-30 17:01:15 +00:00
Nirbheek Chauhan
c99e3b312a meson: Don't use add_global_arguments when a subproject
This is the correct fix for https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/236

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/259>
2021-08-30 17:23:05 +05:30
Nirbheek Chauhan
06869815fd Revert "Meson: Avoid using add_global_arguments() when gst-build is a subproject"
This reverts commit ebcca1e5ea.

/utf-8 is needed to deal with subprojects that we do not control.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/259>
2021-08-30 17:21:44 +05:30
Ludvig Rappe
75c44583ee pbutils: Add function to convert caps to MIME codec
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1265>
2021-08-30 08:49:33 +00:00
Ludvig Rappe
4a1d8eac31 pbutils: Add function for parsing H.264 extradata
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1265>
2021-08-30 08:49:33 +00:00
Nirbheek Chauhan
a31e9dcf43 gst-env: Don't set DYLD_LIBRARY_PATH on macOS
This is not actually needed because everything we build is using
@rpath already, and setting it causes dynamic linker path priority
issues with macOS internals causing *all* programs to fail to run
inside gst-env:

```
$ vim
dyld: Symbol not found: __cg_jpeg_resync_to_restart
  Referenced from: /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
  Expected in: /Users/nirbheek/projects/repos/gst-build/_build_macos/subprojects/libjpeg-turbo-2.1.0/libJPEG.dylib
 in /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
Abort trap: 6
```

In this case it is caused by libjpeg.dylib, but it can happen with
other dylibs that conflict with dylibs used by macOS internally.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/257>
2021-08-28 23:44:52 +05:30
Nirbheek Chauhan
80621a3f07 libopenjp2.wrap: Update to v6 to fix macOS build
https://github.com/mesonbuild/wrapdb/pull/138

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/257>
2021-08-28 23:44:52 +05:30
Nirbheek Chauhan
afd11f3383 New subproject macos-bison-binary to provide bison on macOS
The version of bison that ships with macOS is too old, so we need to
provide our own version of it.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-build/-/issues/174

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/257>
2021-08-28 23:44:52 +05:30
Nicolas Dufresne
52fff41aae Revert "kmssink: Fix fallback path for driver not able to scale scenario"
This reverts commit d2a7b763be.

After this change, non-scaled rendered were not centred as expected.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2496>
2021-08-27 19:54:52 +00:00
Mengkejiergeli Ba
702e69e841 codecs: av1dec: Fix to output frame with highest spatial layer
During the output process, if there are multiple frames in a TU (i.e. multi-spatial
layers case), only one frame with the highest spatial layer id should be selected
according to av1 spec. The highest spatial layer id is obtained from idc value of
the operating point.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2475>
2021-08-27 15:27:31 +00:00
Olivier Crete
879126a31c Allow running gst-uninstalled when gst-build is a subproject
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/222>
2021-08-27 12:44:25 +00:00
Edward Hervey
1fe15bb61c qtdemux: Force stream-start push when re-using EOS'd streams
When re-using streams, we *do* need to push a `stream-start` event downstream if
we previously were EOS'd. Failure to do that would never remove the EOS status
on all downstream elements and cause weird issues.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1067>
2021-08-27 14:40:02 +02:00
Alex Ashley
fd1e75900d dashdemux: copy ContentProtection element including xml namespaces
Commit bc09d8cc changed gstmpdparser to put the entire
<ContentProtection> element in the "value" field, so that DRMs
other than PlayReady could make use of the data inside this
element.

However, the data in the "value" field does not include any
XML namespace declarations that are used within the element. This
causes problems for a namespace aware XML parser that wants to
make use of this data.

This commit modifies the way the XML is converted to a string
so that XML namespaces are preserved in the output.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2487>
2021-08-27 10:47:06 +00:00
Vivia Nikolaidou
43199bc883 errorignore: Add ignore-eos mode
It's otherwise very complicated to ignore GST_FLOW_EOS without a
ghostpad's chain function to rewrite.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2492>
2021-08-27 09:40:50 +00:00
Brad Hards
dee294809f gsth264parser: fix typo in debug message
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2493>
2021-08-27 17:43:44 +10:00
Brad Smith
7db1040346 deinterlace: Use proper ASM output format for *BSD OS
FreeBSD/NetBSD/OpenBSD amd64 use the ELF binary format.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1066>
2021-08-27 06:41:41 +00:00
Matthew Waters
c906ccb79f element: NULL the lists of contexts in dispose()
If dispose() is called more than once, we may double unref the list of
GstContext's.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/875>
2021-08-27 05:40:55 +00:00
Matthew Waters
50661c1aa9 qmlgl: don't critical on input events before input format has been set
Accessing the unset GstVideoInfo would result in criticals

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1065>
2021-08-27 13:34:01 +10:00
Jay Douglass
395407483c Use the default formatting for git show in case the user has set a pretty format
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/258>
2021-08-27 03:21:52 +00:00
Mathieu Duponchelle
5bd31b8cce timecodestamper: add support for closedcaption input
Some closedcaption elements like sccenc except input buffers
to have timecode metas. The original use case is to serialize
closed captions extracted from a video stream, in that case
ccextractor copies the video time code metas to the closed
caption buffers, but no such mechanism exists when creating
a CC stream ex nihilo.

Remedy that by having timecodestamper accept closedcaption
input caps, as long as they have a framerate.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2490>
2021-08-26 16:03:23 +00:00
Jordan Petridis
747e62aed8 libsoup: update to 2.74.0
With an extra commit on top to fix the windows build.

See https://gitlab.gnome.org/GNOME/libsoup/-/merge_requests/249

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/252>
2021-08-26 15:59:08 +03:00
Matthew Waters
5c4cc517f0 webrtc/janus/rust: update to latest GStreamer rust bindings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-examples/-/merge_requests/42>
2021-08-26 17:41:06 +10:00
Zhang Yuankun
bd8c0b33e7 vaapi: decoder: modify the condition to judge whether dma buffer is supported
It seems "GST_VAAPI_PLUGIN_BASE_SRC_PAD_CAN_DMABUF (decode)" will
return false even if this platform support the mem_type dma buffer.
And media-driver will return GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF2
on Gen12(such as TGL).
Without this patch, The command such as:
gst-launch-1.0 videotestsrc num-buffers=100 ! video/x-raw, format=I420 ! \
x264enc ! h264parse ! vaapih264dec ! video/x-raw\(memory:DMABuf\) ! fakesink
will return not-negotiated.

Signed-off-by: Zhang Yuankun <yuankunx.zhang@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/437>
2021-08-26 15:06:53 +08:00
Aaron Boxer
5cf4dc2b82 aes: add aes encryption and decryption elements
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1505>
2021-08-25 21:16:09 -04:00