He Junyan
5aa2239c4b
codecs: AV1: Ensure current picture and frame to NULL before return
...
The current code fails to clear the current picture and frame pointer if
some flow error such as EOS happens. This causes the double free issue in
gst_av1_decoder_reset().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5104 >
2023-07-26 16:27:43 +08:00
Mengkejiergeli Ba
8846400b83
msdkh264enc: Set profile as unknown when not specified by downstream
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5039 >
2023-07-26 02:01:31 +00:00
He Junyan
4e47a73ddf
fakevideosink: Add DMA_DRM format into sink template caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5094 >
2023-07-25 19:34:58 +00:00
He Junyan
5299c34452
video: Add GST_VIDEO_FORMATS_STR to declare all video formats as a string
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5094 >
2023-07-25 19:34:58 +00:00
Fabian Orccon
216f9d66a0
h265parser: Write Unregistered User Data
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5070 >
2023-07-25 18:28:26 +00:00
Fabian Orccon
dd47fa53d8
h265parse: Parse SEI unregistered user data
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5070 >
2023-07-25 18:28:26 +00:00
Guillaume Desmottes
6b339b5d39
videoflip: fix concurrent access when modifying the tag list
...
We were checking if the tag list is writable, but it may actually be
shared through the same event (tee upstream or multiple consumers).
Fix a bug where multiple branches have a videoflip element checking the
taglist. The first one was changing the orientation back to rotate-0
which was resetting the other instances.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5097 >
2023-07-25 15:18:05 +02:00
Xabier Rodriguez Calvar
5114fb4170
qtdemux: attach cbcs crypt info at the right moment
...
Before it was always added but that can cause issues when the stream begins
unencrypted.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5085 >
2023-07-25 10:06:48 +00:00
Piotr Brzeziński
dc494d9edb
vtenc: Move output loop to a separate thread
...
vtenc has an async output queue, which we only iterate over after another frame is enqueued.
At the very least it means we're always a frame behind the fastest possible output.
In edge cases it's also bug-prone - for example if we only have 1 frame, the downstream caps negotiation
will never happen.
This commit adds a separate task running on the source pad, which only iterates over the output queue
and pushes frames out as soon as they're put there. The queue length is limited to ensure we don't encode
too far ahead compared to what downstream can consume. Any failures that occur when pushing data downstream
will be signalled in self->downstream_ret so that other parts of code can act accordingly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4967 >
2023-07-21 13:05:26 +00:00
Andoni Morales Alastruey
bfd4b20fe3
ci: disable introspection with msys2 builds
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1584 >
2023-07-21 06:37:45 +00:00
Andoni Morales Alastruey
3683cd9052
gst-python: fix build and usage in Windows
...
Windows require the python module to be linked to GStreamer.
With msvc and /FORCE:UNUSED, links succeeds but it failes to
load the library at runtime.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1584 >
2023-07-21 06:37:45 +00:00
Andoni Morales Alastruey
84c558b25c
libffi: fix wrap file to provide the libffi dependency
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1584 >
2023-07-21 06:37:45 +00:00
Andoni Morales Alastruey
f03a43e814
gi: build introspection in the CI
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1584 >
2023-07-21 06:37:45 +00:00
Andoni Morales Alastruey
2ae4aa2384
win: add new win-pkgconfig subproject
...
This subprojects provides the pkg-config.exe binary on Windows
required by g-ir-scanner to build introspection GIR's
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1584 >
2023-07-21 06:37:45 +00:00
Andoni Morales Alastruey
4172b0152f
gi: add support for introspection with subprojects
...
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3505
https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/363
https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/412
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1584 >
2023-07-21 06:37:45 +00:00
Seungha Yang
792eb0cf48
tests: compositor: Fix race in buffer unref
...
Don't assume that compositor will output only single buffer
for single input buffer. If buffer's running time is not completly
aligned to output buffer running time or duration, compositor
can generate multiple buffers. If that happens, two threads,
one is aggregator output thread and main thread were trying
to modify buffer in this test. Clear the buffer after
shutting down pipeline to avoid the race.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2836
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5081 >
2023-07-21 00:59:59 +09:00
Seungha Yang
3a5978def1
tests: compositor: Remove whitespace
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5081 >
2023-07-21 00:46:55 +09:00
Nirbheek Chauhan
8277e0b30b
ci: Bump windows job timeout to 90m from 45m
...
Sometimes the runners are slower, and 45m is too low:
https://gitlab.freedesktop.org/slomo/gstreamer/-/jobs/45761500
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5060 >
2023-07-20 11:00:36 +00:00
Nirbheek Chauhan
cb32918d22
meson: Use tarball for graphene instead of git
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5060 >
2023-07-20 11:00:35 +00:00
Nirbheek Chauhan
fcf590a86e
git-hooks: Not all OSes ship Python 3 under "python"
...
macOS doesn't, for instance. Use a shell script to detect which python
to run, which is always available on all OSes due to how git is
packaged on Windows.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5060 >
2023-07-20 11:00:35 +00:00
Nirbheek Chauhan
5943f9d669
meson: Add a native file for macOS x86_64/arm64
...
This also supports Homebrew and Qt5
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5060 >
2023-07-20 11:00:35 +00:00
Nirbheek Chauhan
ecee3a9e7d
meson: Provide fontconfig dep from the subproject
...
The wrap was doing nothing, because nothing in it was providing the
dep.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5060 >
2023-07-20 11:00:35 +00:00
Nirbheek Chauhan
8813982430
meson: Bump required version to 0.63 for diff_files support
...
Fixes a warning.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5060 >
2023-07-20 11:00:35 +00:00
Nirbheek Chauhan
5621b1030a
meson: Fix pixman build on ARM64 macOS
...
https://gitlab.freedesktop.org/pixman/pixman/-/merge_requests/71
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5060 >
2023-07-20 11:00:35 +00:00
Nirbheek Chauhan
b7e2b24945
meson: Force pcre2 to be provided by a subproject on macOS
...
Newer macOS provides /usr/lib/pkgconfig/libpcre2-8.pc which is broken
because it says headers are in /usr/include but that directory doesn't
exist. It can only be used to find the library, which only exists on
newer macOS at /usr/lib/libpcre2-8.dylib, so it's also unusable.
So, force usage of the subproject for glib.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5060 >
2023-07-20 11:00:35 +00:00
He Junyan
a61ba1b7e1
vaapi: delete the unused dma caps variable when ensuring src pad caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5078 >
2023-07-20 11:02:14 +08:00
Jordan Petridis
9fdf3dbc7f
docs: Port toolkit integration tutorial to gtksink
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4789 >
2023-07-20 00:27:37 +00:00
Jakub Adam
f7b719ae91
av1parse: calculate framerate from AV1 timing info
...
When framerate info isn't provided by upstream elements, try to extract
it from AV1 timing info, if present.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5041 >
2023-07-19 20:45:05 +00:00
Roman Lebedev
dfe67ba7c6
volume: print actual produced values, not bytes
...
`map.data` is a pointer to a byte array,
we need to first cast it to the pointer to the expected element type,
otherwise we will get not what we are expecting.
I have stumbled into this in https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5063#note_2007447
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5075 >
2023-07-19 19:54:38 +00:00
Sebastian Dröge
67e38cf47b
rmdemux: Check for integer overflow when calculation audio packet size
...
Fixes ZDI-CAN-21444
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2782
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5072 >
2023-07-19 19:01:36 +00:00
Sebastian Dröge
d8d83ad435
rmdemux: Use GST_LOG_OBJECT instead of GST_LOG
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5072 >
2023-07-19 19:01:36 +00:00
Sebastian Dröge
aca056b01d
rmdemux: Check that enough SIPR audio data is available when copying
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5072 >
2023-07-19 19:01:36 +00:00
Sebastian Dröge
b268b27cd8
rmdemux: Check for integer overflows when calculating the size of SIPR audio buffers
...
Fixes ZDI-CAN-21443
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2782
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5072 >
2023-07-19 19:01:36 +00:00
Sebastian Dröge
763d2bb43c
rmdemux: Use GST_LOG_OBJECT instead of GST_LOG
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5072 >
2023-07-19 19:01:36 +00:00
Philippe Normand
0d5f6f3d47
decodebin3: Prevent a critical warning when reassigning output slots
...
Do not attempt to send a streams-selected message when reassigning
an output slot in case upstream signalled that it is handling stream selection.
In this case decodebin3 doesn't keep track of stream
collections (`dbin->collection` is NULL).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5059 >
2023-07-19 15:17:46 +00:00
Nirbheek Chauhan
d7d5d1ba93
webrtcbin: Fix support for glib older than 2.74
...
G_CONNECT_DEFAULT was added in 2.74, and passing `0` in older versions
gets the same behaviour.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5045 >
2023-07-19 13:01:49 +00:00
Nirbheek Chauhan
89c82cfa55
gitignore: Ignore abseil-cpp wrap redirect
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5045 >
2023-07-19 13:01:49 +00:00
Nirbheek Chauhan
b0dbc09ea2
webrtcrenego: Use payload type correctly for the dynamic stream
...
All streams were using pt=96 which is incorrect. In some cases that
can cause EOS to be sent to both branches of the receiver.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5045 >
2023-07-19 13:01:49 +00:00
Nirbheek Chauhan
76b5178260
webrtcrenego: Fix incorrect release of non-request pad
...
GStreamer-CRITICAL **: 16:39:23.230: gst_element_release_request_pad:
assertion 'GST_PAD_PAD_TEMPLATE (pad) == NULL ||
GST_PAD_TEMPLATE_PRESENCE (GST_PAD_PAD_TEMPLATE (pad)) ==
GST_PAD_REQUEST' failed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5045 >
2023-07-19 13:01:49 +00:00
Nirbheek Chauhan
fb406b7a56
webrtcrenego: Port to updated mechanism for doing renegotiation
...
Sending an EOS event is actually really bad because rtpbin doesn't
handle that very well. It was only being used as a way to notify
webrtcbin to check if re-negotiation is needed.
We don't need that anymore, since changing the direction is enough to
notify webrtcbin to check for re-negotiation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5045 >
2023-07-19 13:01:49 +00:00
Matthew Waters
6af8b3dd80
webrtcbin: don't hold the webrtc lock over on-new-transceiver emission
...
Could potentially produce a deadlock if the direction is changed in the
callback.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5045 >
2023-07-19 13:01:49 +00:00
Matthew Waters
77e01571c8
webrtc: don't disallow transceiver direction changes
...
Initial testing seems to suggest that we support them reasonably well
(at least for BUNDLEd streams).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5045 >
2023-07-19 13:01:49 +00:00
Matthew Waters
13f4066580
webrtc: add check for negotiation on transceiver direction changes
...
As required by the webrtc specification.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5045 >
2023-07-19 13:01:49 +00:00
Nirbheek Chauhan
639f8a24ae
webrtc/js: Support renegotiation during a call correctly
...
When a video track is muted, hide the video element to differentiate
it from a track that is stuck because we stopped receiving RTP data.
Show it again when it is unmuted.
When a video track is removed, remove the video element. It will be
re-added on renegotiation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5045 >
2023-07-19 13:01:49 +00:00
Nirbheek Chauhan
57b6c743ef
webrtc/js: Remove obsolete mozilla stun server
...
Mozilla's public stun server is gone. Remove it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5045 >
2023-07-19 13:01:49 +00:00
Nirbheek Chauhan
80603746af
webrtc/js: Support pressing "enter" to connect
...
I press "enter" every time which doesn't work and then I click
"Connect", so let's fix that.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5045 >
2023-07-19 13:01:49 +00:00
He Junyan
5a3b31108d
Doc: Dmabuf: Set drm caps' format field to DMA_DRM
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4981 >
2023-07-19 09:57:50 +00:00
He Junyan
e14d4e08c1
test: Update all video related tests because of adding DMA_DRM format
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4981 >
2023-07-19 09:57:50 +00:00
Víctor Manuel Jáquez Leal
8b38614173
video: add GST_VIDEO_DMA_DRM_CAPS_MAKE
...
It is requried this macro because it doesn't define format field, neither
drm-format which is suppossed to be generated in run-time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4981 >
2023-07-19 09:57:50 +00:00
He Junyan
bc48588818
video: dma: Set DMA caps' format field to DMA_DRM
...
The current way of dma caps uses the drm-format to replace the orginal
format field. The absence of format field means it can accept all formats.
It causes problems when clipping with other old DMA or video/x-raw(ANY)
caps, the result will contain both format field and drm-format field,
which is not valid DMA caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4981 >
2023-07-19 09:57:50 +00:00