aboutsummaryrefslogtreecommitdiffstats
path: root/python/servo/gstreamer.py
Commit message (Collapse)AuthorAgeFilesLines
* clippy: Fix a variety of clippy warnings in `fonts`, `layout_2020` and the ↵chickenleaf2024-10-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DOM code (#33894) * fixed some clippy warnings Signed-off-by: L Ashwin B <lashwinib@gmail.com> * Delete extra file Signed-off-by: chickenleaf <lashwinib@gmail.com> * preserved newline in compositionevent.rs Co-authored-by: Martin Robinson <mrobinson@igalia.com> Signed-off-by: chickenleaf <lashwinib@gmail.com> * removed the newline in PrototypeList Signed-off-by: L Ashwin B <lashwinib@gmail.com> * removed the trailing whitespace Signed-off-by: L Ashwin B <lashwinib@gmail.com> --------- Signed-off-by: L Ashwin B <lashwinib@gmail.com> Signed-off-by: chickenleaf <lashwinib@gmail.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* mach: introduce `BuildTarget` abstraction (#33114)Mukilan Thiyagarajan2024-08-261-2/+7
| | | | | | | | | | | | | | | | Introduce a new `BuildTarget` abstraction to centralize the code for supporting different ways of choosing the build target (e.g --android, --target x86_64-linux-android , --target aarch64-linux-ohos). This is currently handled in an adhoc fashion in different commands ( mach package, install, run) leading to a proliferation of keyword parameters for the commands and duplicated logic. The patch introduces a new `allow_target_configuration` decorator to do the validation and parsing of these parameters into the appropriate `BuildTarget` subclass, which is now stored as an instance attribute of the CommandBase class. All the code that previously relied on `self.cross_compile_target` has been switched to use the BuildTarget. Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* build: Fix a print statement when repackaging GStreamer (#32932)Martin Robinson2024-08-051-1/+1
| | | | | | I neglected to put make a string a formatted string, which means that the variable won't be included in the output properly. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* build: Speed up first run after build on macOS (#32928)Martin Robinson2024-08-041-6/+150
| | | | | | | | | | | | | | GStreamer has to process plugins each time they are added when initializing. When those files have changed, this triggers macOS security protections which can add many seconds to access time. This change eliminates that problem after the first packaging of libraries by skipping packaging if everything is up-to-date and not overwriting the dylibs everytime. In addition, it moves a lot of the code for packaging GStreamer libraries on macOS into the `gstreamer` module and adds type-safety and comments to the Python. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* Enabled WAV decoding support in gstreamer (#32924)Ben2024-08-031-0/+1
| | | Signed-off-by: Benjamin Vincent Schulenburg <bennyschulenburg@gmx.de>
* build: Combine and simplify GStreamer shared object lists (#31038)Martin Robinson2024-01-091-29/+74
| | | | | | | | Add documentation and simplify the way that GStreamer shared objects lists are stored. In addition, move the list of extra GStreamer DLL dependencies to to the `gstreamer.py` file. The conditional plugin logic is no longer required as we are having already increased our GStreamer version requirements.
* Upgrade media / GStreamer / GLib (#30750)Martin Robinson2024-01-051-4/+3
| | | | | | | | | | | | | | | | | | - Upgrade the version of GStreamer for Windows This upgrades the Windows build to use the most recent version of GStreamer. This is necessary to upgrade our GStreamer dependency. - Stop shipping GStreamer binaries on Linux The binary bundle of GStreamer that we package is not used to compile -- only to run layout tests. It's too old for the APIs that we are using (as evidenced by needed 1.18 for WebRTC) and nowadays Linux distributions carry a new version so it's unecessary for our build machines. No longer using this binary bundle will allow us to upgrade our GStreamer dependency -- which now has stricter checks that we are using at least version 1.18. - Upgrade media to use newer versions of GStreamer / GLib dependencies
* Remove UWP / Hololens supportMartin Robinson2023-07-051-28/+3
|
* Consume official GStreamer binaries on MacOSMukilan Thiyagarajan2023-05-121-16/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This PR re-enables support for the gstreamer mediastack in macOS by consuming the official binary '.pkg' files from gstreamer.freedesktop.org To maintain symmetry with other platforms, the '.pkg' files are uploaded to servo-build-deps and fetched from there using the new script 'etc/install_macos_gstreamer.sh'. Unlike the Homebrew version, the official GStreamer is distributed as a 'relocatable' framework i.e the dylibs all have @rpath-relative install names and also link to other dylibs using @rpath relative path. To address this difference the 'servo' binary needs to be patched with 'install_name_tool' to add an LC_RPATH command that sets the relative paths that the dynamic linker should search when trying to satify dependencies. In Servo's case, this will be a path relative to the 'servo' binary itself i.e '@executable_path/lib/' The additional 'lib' is due to a flaw in the gstreamer packaging where the install names of some of the dylibs have the prefix '@rpath/lib' and some of them just have '@rpath'. This PR also fixes a couple of issues present in the `mach build` process on MacOS: 1. `mach build` process was not copying transitive dependencies of servo binary but only the first level dylibs 2. `mach build` process didn't patch the links to dylibs in servo binary (and dependencies). This meant though (some) dylibs were copied to local path, the binary still loaded the dylibs from system GStreamer installation i.e homebrew instead of the copieds dylibs The build and runtime dependencies in etc/homebrew/Brewfile and etc/homebrew/Brewfile-build have also been removed in This PR. Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
* Conditionally use certain GStreamer pluginsMartin Robinson2023-02-161-97/+112
| | | | | | | | | | | In old versions of GStreamer gstvideoconvertscale was split into two plugins, gstvideoscale and gstvideoconvert. This change makes the use of these three plugins conditional on their existence and has Windows use the two plugins from the older version of GStreamer. In addition, it starts to clean up the gstreamer.py file which is responsible for managing GStreamer libraries and plugins. This is the first change in a series of changes that seek to clean up the way these libraries are managed during the build.
* Update gst plugin for videoconvert & videoscale elementsMukilan Thiyagarajan2023-02-111-2/+1
|
* feat: fix build error on apple m1zhengrenzhe2021-04-241-12/+12
|
* Fix gstreamer packaging on mac.Josh Matthews2020-11-131-3/+5
|
* Add more gstreamer plugins to nightly builds.Josh Matthews2020-07-271-4/+25
|
* Load explicit set of gstreamer plugins on macos, and include them in the ↵Josh Matthews2020-07-161-0/+144
nightly package.