- Feb 05, 2022
-
-
Nirbheek Chauhan authored
Also fix typo in trigger variable that was causing triggered cerbero pipelines to run deps builds and upload cache. Part-of: <gstreamer/gstreamer!1641>
-
- Feb 04, 2022
-
-
Part-of: <!1635>
-
Nirbheek Chauhan authored
This commit is required for proper functioning of the following cerbero merge request: gstreamer/cerbero!800 Part-of: <gstreamer/gstreamer!1638>
-
- Feb 03, 2022
-
-
Tim-Philipp Müller authored
-
Tim-Philipp Müller authored
-
Tim-Philipp Müller authored
... in order to make older g-i happy (~1.60) which doesn't like freeform descriptions in the value_name field. Which in turn then makes hotdoc happy instead of erroring out when we bump the symbol index version. We usually only (ab)use the name field for description strings for private plugin enums, not for public API visible to bindings. This lets glib-mkenum generate the _get_type() function for the enum again, which in turn will generate the expected value names to match the enums. We might be able to add this back later once we can upgrade the g-i version requirement (and the documentation job image). This reverts most of commit b0aab48c
-
Provides a relocatable directory structure for running GStreamer applications as used in GStreamer.framework. Part-of: <!1627>
-
- Feb 02, 2022
-
-
Stéphane Cerveau authored
Remove max-files mention in the command line test Fix some typos Use mpegtsdemux instead of tsdemux in the pipeline description Part-of: <!1624>
-
- Feb 01, 2022
-
-
Part-of: <!1619>
-
There's a race condition in gsttagdemux.c between typefinding and the end-of-stream event. If TYPE_FIND_MAX_SIZE is exceeded, demux->priv->collect is set to NULL and an error is returned. However, the end-of-stream event causes one last attempt at typefinding to occur. This leads to gst_tag_demux_trim_buffer() being called with the NULL demux->priv->collect buffer which it attempts to dereference, resulting in a segfault. The malicious MP3 can be created by: printf "\x49\x44\x33\x04\x00\x00\x00\x00\x00\x00%s", \ "$(dd if=/dev/urandom bs=1K count=200)" > malicious.mp3 This creates a valid ID3 header which gets us as far as typefinding. The crash can then be reproduced with the following pipeline: gst-launch-1.0 -e filesrc location=malicious.mp3 ! queue ! decodebin ! audioconvert ! vorbisenc ! oggmux ! filesink location=malicious.ogg Fixes #967 Part-of: <!1620>
-
Display resolution should be cropped rect, not coded resolution. Otherwise decoded output from NVDEC might be wrong. Part-of: <!1617>
-
The kCVPixelFormatType_64RGBALE enum is only available on macOS Big Sur (11.3) and newer. We also cannot use that while configuring the encoder or decoder on older macOS. Define the symbol unconditionally, but only use it when we're running on Big Sur with __builtin_available(). Part-of: <!1613>
-
Part-of: <!1613>
-
Part-of: <!1597>
-
- Jan 31, 2022
-
-
Nirbheek Chauhan authored
Hotdoc should be able to extract and parse comments out of these. Just need to be careful to only add the glob in directories that actually contain *.m (objc) and *.mm (objcpp) files. Also fix some doc comments and remove redundant ones. Part-of: <!1614>
-
Platform wise, is not possible, as far as I known, to have Wayland without kernel's DRM. Though, it's possible to configure gstreamer-vaapi without DRM but Wayland support, with the enhanced handling of dmabuf in vaapisink for Wayland, vaapisink will always fail. Given both issues, configuration with no DRM but Wayland, makes things more complex, and a simpler approach is to refuse that configuration. This patch disables Wayland support if there isn't DRM support. Also, it disables the display test for Wayland, relying only on DRM and X11. Part-of: <!1606>
-
Formats map is instantiated at the end of the display instantiation. The problem is the Wayland display which looks for a format in a callback, before the map is populated. If user compiles gstreamer-vaapi with DRM support, the map is populated with a DRM display at GStreamer plugin registration. But if not, or a VA driver is not available, the plugin will try with a Wayland driver, which cause the NULL de-reference. Nevertheless, in the case of no DRM support, and if the Wayland display doesn't get a reply from the format conversion is not a problem. So the solution is the trivial one, check if the format map is already populated before de-reference it. Fixes: #977 Part-of: <!1606>
-
Instead of error out, warn user that the platform does not support the version script. Part-of: <!1191>
-
Part-of: <!1522>
-
- Jan 30, 2022
-
-
Nirbheek Chauhan authored
No one uses the term "Mac OS X" anymore, it's "macOS". "OS X" is even worse, because people will usually start the search with "mac". Part-of: <!1607>
-
- Jan 29, 2022
-
-
Nirbheek Chauhan authored
This is listed as a public interface implemented by osxaudio, so we need to mark it as a plugin API so that it's listed in the documentation correctly. This is an ancient symbol, so add it to the symbol index too. Part-of: <!1601>
-
Nirbheek Chauhan authored
Also preserve-alpha property should only be exposed on the vtenc_prores element since h264 does not support transparency. Fixes gst-docs#94 Part-of: <!1601>
-
Nirbheek Chauhan authored
These symbols from macOS plugins osxaudio, osxvideo, and applemedia have been present for a very long time but were never documented. This allows us to document these, and also add Since: markers for new features (symbols) there were added in 1.20 Part-of: <!1601>
-
Otherwise this causes a reference cycle between the session, the logger and the logging object (i.e. the sink element or session wrapper). Part-of: <!1603>
-
And wait until there are no pending GSources on the main context anymore afterwards. Part-of: <!1603>
-
This simplifies the code and especially the locking a bit, and makes sure we only export the session after it is fully set up. Part-of: <!1603>
-
This moves the ABI check to the registration, so we don't expose decoders with the wrong ABI or that are just broken somehow. It also makes few enhancement: - Handle missing, but required controls - Prints the controls macro name instead of id This should fix RK3399 support with a currently release minor regression in the Hantro driver that cause errors. Part-of: <!1599>
-
The error codes not complying with the spec are now notified with the GST_WEBRTC_ERROR_INTERNAL_FAILURE code. Part-of: <!1485>
-
- Jan 28, 2022
-
-
Seungha Yang authored
s/elemenet/element/g Part-of: <!1598>
-
Tim-Philipp Müller authored
-
Tim-Philipp Müller authored
-
Sebastian Dröge authored
Part-of: <!1594>
-
Sebastian Dröge authored
The source element might be gone already if the session is shared with other source elements. As a consequence, do all logging via the session object instead of using the source element. Part-of: <!1594>
-
Sebastian Dröge authored
souphttpsrc: Don't abort all pending operations on the session if shutting down a source with a shared session Only do it for a non-shared session. Other sources would otherwise get their requests cancelled unexpectedly. Part-of: <!1594>
-
Sebastian Dröge authored
Part-of: <!1594>
-
Sebastian Dröge authored
So don't check for it. Part-of: <!1594>
-
... in addition to all the other issues that were ignored for them already. At least the reverse playback test regularly times out, waiting for a download to finish that has already finished successfully. Part-of: <!1593>
-
Since the split of elements, the debug category was default for autodetect. Part-of: <!1590>
-
Starting with libsoup3, there is no attempt to handle thread safety inside the library, and it was never considered fully safe before either. Therefore, move all session handling into its own thread. The libsoup thread has its own context and main loop. When some request is made or a response needs to be read, an idle source is created to issue that; the gstreamer thread issuing that waits for that to be complete. There is a per-src condition variable to deal with that. Since the thread/loop needs to be longer-lived than the soup session itself, a wrapper object is provided to contain them. The soup session only has a single reference, owned by the wrapper object. It is no longer possible to force an external session, since this does not seem to be used anywhere within gstreamer and would be tricky to implement; this is because one would not have to provide just a session, but also the complete thread arrangement made in the same way as the system currently does internally, in order to be safe. Messages are still built gstreamer-side. It is safe to do so until the message is sent on the session. Headers are also processed on the gstreamer side, which should likewise be safe. All requests as well as reads on the libsoup thread are issued asynchronously. That allows libsoup to schedule things with as little blocking as possible, and means that concurrent access to the session is possible, when sharing the session. Fixes #947 Part-of: <!1555>
-