mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-25 19:21:06 +00:00
Build documentation for rust plugins
- Update the docker image we use, starting using the standard one adding `gtk4-doc` as required by rust plugins - Update the plugins_doc_caches as required, some more plugins are built with the new image - Install ninja from pip as the version from F31 is too old - Avoid buildings all GSreamer plugins when building the doc as it takes time and resources for no good reason - Stop linking to `GInstanceInitFunc` as it is not present in latest GLib documentation, leading to warnings in hotdoc. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2954>
This commit is contained in:
parent
a75f74d2cd
commit
339e5916c6
6 changed files with 59 additions and 27 deletions
|
@ -24,7 +24,7 @@ variables:
|
||||||
# If you are hacking on them or need a them to rebuild, its enough
|
# If you are hacking on them or need a them to rebuild, its enough
|
||||||
# to change any part of the string of the image you want.
|
# to change any part of the string of the image you want.
|
||||||
###
|
###
|
||||||
FEDORA_TAG: '2022-09-02.0'
|
FEDORA_TAG: '2022-09-14.0'
|
||||||
INDENT_TAG: '2022-03-07.1'
|
INDENT_TAG: '2022-03-07.1'
|
||||||
WINDOWS_TAG: "2022-09-02.0"
|
WINDOWS_TAG: "2022-09-02.0"
|
||||||
|
|
||||||
|
@ -658,25 +658,28 @@ valgrind ges:
|
||||||
# ---- Integration ----- #
|
# ---- Integration ----- #
|
||||||
|
|
||||||
.documentation:
|
.documentation:
|
||||||
image: $FEDORA_DOCS_IMAGE
|
extends: '.build fedora x86_64'
|
||||||
extends:
|
|
||||||
- '.build_ccache_vars'
|
|
||||||
variables:
|
variables:
|
||||||
MESON_ARGS: *simple_build
|
MESON_ARGS: *simple_build
|
||||||
MESON_BUILDTYPE_ARGS: "-Ddoc=enabled -Drs=enabled"
|
MESON_BUILDTYPE_ARGS: "-Ddoc=enabled -Drs=enabled -Dgst-docs:fatal_warnings=true"
|
||||||
# Disable werror for the docs build, we don't need it
|
# Disable werror for the docs build, we don't need it
|
||||||
MESON_GST_WERROR: ''
|
MESON_GST_WERROR: ''
|
||||||
CI_ARTIFACTS_URL: "${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/"
|
CI_ARTIFACTS_URL: "${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/"
|
||||||
script:
|
script:
|
||||||
# FIXME: should rebuild the image with newer versions!
|
- export PATH=/usr/local/cargo/bin/:/usr/local/bin/:$PATH
|
||||||
- pip3 install --upgrade hotdoc
|
- export RUSTUP_HOME='/usr/local/rustup'
|
||||||
- pip3 install --upgrade meson
|
|
||||||
- *build
|
- ci/scripts/handle-subprojects-cache.py subprojects/
|
||||||
|
- echo $MESON_ARGS
|
||||||
|
- meson build/ $MESON_ARGS
|
||||||
|
- ccache --show-stats
|
||||||
|
|
||||||
- ./gst-env.py ninja -C build/ plugins_doc_caches
|
- ./gst-env.py ninja -C build/ plugins_doc_caches
|
||||||
# Ignore modifications to wrap files made by meson
|
# Ignore modifications to wrap files made by meson
|
||||||
- git checkout subprojects/*.wrap
|
- git checkout subprojects/*.wrap
|
||||||
- ./ci/scripts/check-documentation-diff.py
|
- ./ci/scripts/check-documentation-diff.py
|
||||||
- ./gst-env.py hotdoc run --conf-file=build/subprojects/gst-docs/GStreamer-doc.json --fatal-warnings
|
|
||||||
|
- ./gst-env.py ninja -C build subprojects/gst-docs/GStreamer-doc
|
||||||
- mv build/subprojects/gst-docs/GStreamer-doc/html documentation/
|
- mv build/subprojects/gst-docs/GStreamer-doc/html documentation/
|
||||||
|
|
||||||
artifacts:
|
artifacts:
|
||||||
|
@ -694,7 +697,8 @@ documentation:
|
||||||
stage: integrate
|
stage: integrate
|
||||||
extends:
|
extends:
|
||||||
- '.documentation'
|
- '.documentation'
|
||||||
needs: []
|
needs:
|
||||||
|
- "fedora amd64 docker"
|
||||||
rules:
|
rules:
|
||||||
- if: '$CI_PROJECT_NAMESPACE == "gstreamer" && $CI_COMMIT_BRANCH == "main"'
|
- if: '$CI_PROJECT_NAMESPACE == "gstreamer" && $CI_COMMIT_BRANCH == "main"'
|
||||||
|
|
||||||
|
@ -707,7 +711,7 @@ build documentation:
|
||||||
- '.documentation'
|
- '.documentation'
|
||||||
stage: build
|
stage: build
|
||||||
needs:
|
needs:
|
||||||
- "trigger"
|
- "fedora amd64 docker"
|
||||||
rules:
|
rules:
|
||||||
# Never run post merge, we have the `documentation` always running for that
|
# Never run post merge, we have the `documentation` always running for that
|
||||||
- if: '$CI_PROJECT_NAMESPACE == "gstreamer" && $CI_COMMIT_BRANCH == $GST_UPSTREAM_BRANCH'
|
- if: '$CI_PROJECT_NAMESPACE == "gstreamer" && $CI_COMMIT_BRANCH == $GST_UPSTREAM_BRANCH'
|
||||||
|
|
|
@ -4,7 +4,7 @@ set -eux
|
||||||
# We need them to cleanly build our doc.
|
# We need them to cleanly build our doc.
|
||||||
sed -i "s/tsflags=nodocs//g" /etc/dnf/dnf.conf
|
sed -i "s/tsflags=nodocs//g" /etc/dnf/dnf.conf
|
||||||
|
|
||||||
dnf install -y git-core ninja-build dnf-plugins-core python3-pip
|
dnf install -y git-core dnf-plugins-core python3-pip
|
||||||
|
|
||||||
# Configure git for various usage
|
# Configure git for various usage
|
||||||
git config --global user.email "gstreamer@gstreamer.net"
|
git config --global user.email "gstreamer@gstreamer.net"
|
||||||
|
@ -41,6 +41,8 @@ dnf install -y \
|
||||||
glslc \
|
glslc \
|
||||||
gtk3 \
|
gtk3 \
|
||||||
gtk3-devel \
|
gtk3-devel \
|
||||||
|
gtk4 \
|
||||||
|
gtk4-devel \
|
||||||
gtest \
|
gtest \
|
||||||
gtest-devel \
|
gtest-devel \
|
||||||
graphene \
|
graphene \
|
||||||
|
@ -202,7 +204,10 @@ dnf builddep -y gstreamer1 \
|
||||||
python3-gstreamer1
|
python3-gstreamer1
|
||||||
|
|
||||||
dnf remove -y meson
|
dnf remove -y meson
|
||||||
pip3 install meson==0.60.3 hotdoc python-gitlab
|
# FIXME: Install ninja from rpm when we update our base image as we fail building
|
||||||
|
# documentation with rust plugins as we the version from F31 we hit:
|
||||||
|
# `ninja: error: build.ninja:26557: multiple outputs aren't (yet?) supported by depslog; bring this up on the mailing list if it affects you
|
||||||
|
pip3 install meson==0.60.3 hotdoc python-gitlab ninja tomli
|
||||||
|
|
||||||
|
|
||||||
# Remove gst-devel packages installed by builddep above
|
# Remove gst-devel packages installed by builddep above
|
||||||
|
@ -210,13 +215,13 @@ dnf remove -y "gstreamer1*devel"
|
||||||
|
|
||||||
# FIXME: Why does installing directly with dnf doesn't actually install
|
# FIXME: Why does installing directly with dnf doesn't actually install
|
||||||
# the documentation files?
|
# the documentation files?
|
||||||
dnf download glib2-doc gdk-pixbuf2-devel*x86_64* gtk3-devel-docs
|
dnf download glib2-doc gdk-pixbuf2-devel*x86_64* gtk3-devel-docs gtk4-devel-docs
|
||||||
rpm -i --reinstall *.rpm
|
rpm -i --reinstall *.rpm
|
||||||
rm -f *.rpm
|
rm -f *.rpm
|
||||||
|
|
||||||
# Install Rust
|
# Install Rust
|
||||||
RUSTUP_VERSION=1.24.3
|
RUSTUP_VERSION=1.25.1
|
||||||
RUST_VERSION=1.55.0
|
RUST_VERSION=1.63.0
|
||||||
RUST_ARCH="x86_64-unknown-linux-gnu"
|
RUST_ARCH="x86_64-unknown-linux-gnu"
|
||||||
|
|
||||||
dnf install -y wget
|
dnf install -y wget
|
||||||
|
@ -233,6 +238,7 @@ chmod +x rustup-init;
|
||||||
rm rustup-init;
|
rm rustup-init;
|
||||||
chmod -R a+w $RUSTUP_HOME $CARGO_HOME
|
chmod -R a+w $RUSTUP_HOME $CARGO_HOME
|
||||||
|
|
||||||
|
cargo install cargo-c --version 0.9.12+cargo-0.64
|
||||||
rustup --version
|
rustup --version
|
||||||
cargo --version
|
cargo --version
|
||||||
rustc --version
|
rustc --version
|
||||||
|
|
|
@ -44016,7 +44016,7 @@
|
||||||
"long-name": "libav Avid 1:1 10-bit RGB Packer encoder",
|
"long-name": "libav Avid 1:1 10-bit RGB Packer encoder",
|
||||||
"pad-templates": {
|
"pad-templates": {
|
||||||
"sink": {
|
"sink": {
|
||||||
"caps": "video/x-raw:\n",
|
"caps": "video/x-raw:\n format: GBR_10LE\n",
|
||||||
"direction": "sink",
|
"direction": "sink",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
},
|
},
|
||||||
|
@ -64983,7 +64983,7 @@
|
||||||
"construct": false,
|
"construct": false,
|
||||||
"construct-only": false,
|
"construct-only": false,
|
||||||
"controllable": false,
|
"controllable": false,
|
||||||
"default": "128000",
|
"default": "6300",
|
||||||
"max": "2147483647",
|
"max": "2147483647",
|
||||||
"min": "0",
|
"min": "0",
|
||||||
"mutable": "null",
|
"mutable": "null",
|
||||||
|
@ -100948,7 +100948,7 @@
|
||||||
"long-name": "libav Apple ProRes encoder",
|
"long-name": "libav Apple ProRes encoder",
|
||||||
"pad-templates": {
|
"pad-templates": {
|
||||||
"sink": {
|
"sink": {
|
||||||
"caps": "video/x-raw:\n format: { I422_10LE, Y444_10LE }\n",
|
"caps": "video/x-raw:\n format: { I422_10LE, Y444_10LE, A444_10LE }\n",
|
||||||
"direction": "sink",
|
"direction": "sink",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
},
|
},
|
||||||
|
@ -102118,7 +102118,7 @@
|
||||||
"long-name": "libav Apple ProRes encoder",
|
"long-name": "libav Apple ProRes encoder",
|
||||||
"pad-templates": {
|
"pad-templates": {
|
||||||
"sink": {
|
"sink": {
|
||||||
"caps": "video/x-raw:\n format: { I422_10LE, Y444_10LE }\n",
|
"caps": "video/x-raw:\n format: { I422_10LE, Y444_10LE, A444_10LE }\n",
|
||||||
"direction": "sink",
|
"direction": "sink",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
},
|
},
|
||||||
|
@ -105682,7 +105682,7 @@
|
||||||
"long-name": "libav AJA Kona 10-bit RGB Codec encoder",
|
"long-name": "libav AJA Kona 10-bit RGB Codec encoder",
|
||||||
"pad-templates": {
|
"pad-templates": {
|
||||||
"sink": {
|
"sink": {
|
||||||
"caps": "video/x-raw:\n",
|
"caps": "video/x-raw:\n format: GBR_10LE\n",
|
||||||
"direction": "sink",
|
"direction": "sink",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
},
|
},
|
||||||
|
@ -134070,7 +134070,7 @@
|
||||||
"long-name": "libav Zip Motion Blocks Video encoder",
|
"long-name": "libav Zip Motion Blocks Video encoder",
|
||||||
"pad-templates": {
|
"pad-templates": {
|
||||||
"sink": {
|
"sink": {
|
||||||
"caps": "video/x-raw:\n format: RGB8P\n",
|
"caps": "video/x-raw:\n format: { RGB8P, RGB15, RGB16, BGRx }\n",
|
||||||
"direction": "sink",
|
"direction": "sink",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
},
|
},
|
||||||
|
@ -141543,6 +141543,11 @@
|
||||||
"name": "qpel",
|
"name": "qpel",
|
||||||
"value": "0x00000010"
|
"value": "0x00000010"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc": "Drop frames whose parameters differ from first decoded frame",
|
||||||
|
"name": "drop_changed",
|
||||||
|
"value": "0x00000020"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc": "use loop filter",
|
"desc": "use loop filter",
|
||||||
"name": "loop",
|
"name": "loop",
|
||||||
|
|
|
@ -221367,6 +221367,17 @@
|
||||||
"tracers": {},
|
"tracers": {},
|
||||||
"url": "Unknown package origin"
|
"url": "Unknown package origin"
|
||||||
},
|
},
|
||||||
|
"qsv": {
|
||||||
|
"description": "Intel Quick Sync Video plugin",
|
||||||
|
"elements": {},
|
||||||
|
"filename": "gstqsv",
|
||||||
|
"license": "LGPL",
|
||||||
|
"other-types": {},
|
||||||
|
"package": "GStreamer Bad Plug-ins",
|
||||||
|
"source": "gst-plugins-bad",
|
||||||
|
"tracers": {},
|
||||||
|
"url": "Unknown package origin"
|
||||||
|
},
|
||||||
"removesilence": {
|
"removesilence": {
|
||||||
"description": "Removes silence from an audio stream",
|
"description": "Removes silence from an audio stream",
|
||||||
"elements": {
|
"elements": {
|
||||||
|
|
|
@ -21,6 +21,12 @@
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* plugin-qsv:
|
||||||
|
*
|
||||||
|
* Since: 1.22
|
||||||
|
*/
|
||||||
|
|
||||||
#include <gst/gst.h>
|
#include <gst/gst.h>
|
||||||
#include <mfx.h>
|
#include <mfx.h>
|
||||||
#include "gstqsvav1enc.h"
|
#include "gstqsvav1enc.h"
|
||||||
|
|
|
@ -1759,9 +1759,9 @@ gst_element_get_metadata (GstElement * element, const gchar * key)
|
||||||
*
|
*
|
||||||
* Retrieves a list of the pad templates associated with @element_class. The
|
* Retrieves a list of the pad templates associated with @element_class. The
|
||||||
* list must not be modified by the calling code.
|
* list must not be modified by the calling code.
|
||||||
* > If you use this function in the #GInstanceInitFunc of an object class
|
* > If you use this function in the GInstanceInitFunc of an object class
|
||||||
* > that has subclasses, make sure to pass the g_class parameter of the
|
* > that has subclasses, make sure to pass the g_class parameter of the
|
||||||
* > #GInstanceInitFunc here.
|
* > GInstanceInitFunc here.
|
||||||
*
|
*
|
||||||
* Returns: (transfer none) (element-type Gst.PadTemplate): the #GList of
|
* Returns: (transfer none) (element-type Gst.PadTemplate): the #GList of
|
||||||
* pad templates.
|
* pad templates.
|
||||||
|
@ -1801,9 +1801,9 @@ gst_element_get_pad_template_list (GstElement * element)
|
||||||
* @name: the name of the #GstPadTemplate to get.
|
* @name: the name of the #GstPadTemplate to get.
|
||||||
*
|
*
|
||||||
* Retrieves a padtemplate from @element_class with the given name.
|
* Retrieves a padtemplate from @element_class with the given name.
|
||||||
* > If you use this function in the #GInstanceInitFunc of an object class
|
* > If you use this function in the GInstanceInitFunc of an object class
|
||||||
* > that has subclasses, make sure to pass the g_class parameter of the
|
* > that has subclasses, make sure to pass the g_class parameter of the
|
||||||
* > #GInstanceInitFunc here.
|
* > GInstanceInitFunc here.
|
||||||
*
|
*
|
||||||
* Returns: (transfer none) (nullable): the #GstPadTemplate with the
|
* Returns: (transfer none) (nullable): the #GstPadTemplate with the
|
||||||
* given name, or %NULL if none was found. No unreferencing is
|
* given name, or %NULL if none was found. No unreferencing is
|
||||||
|
|
Loading…
Reference in a new issue