diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3884505969..574a3682ca 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -24,7 +24,7 @@ variables: # 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. ### - FEDORA_TAG: '2022-09-02.0' + FEDORA_TAG: '2022-09-14.0' INDENT_TAG: '2022-03-07.1' WINDOWS_TAG: "2022-09-02.0" @@ -658,25 +658,28 @@ valgrind ges: # ---- Integration ----- # .documentation: - image: $FEDORA_DOCS_IMAGE - extends: - - '.build_ccache_vars' + extends: '.build fedora x86_64' variables: 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 MESON_GST_WERROR: '' CI_ARTIFACTS_URL: "${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/" script: - # FIXME: should rebuild the image with newer versions! - - pip3 install --upgrade hotdoc - - pip3 install --upgrade meson - - *build + - export PATH=/usr/local/cargo/bin/:/usr/local/bin/:$PATH + - export RUSTUP_HOME='/usr/local/rustup' + + - 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 # Ignore modifications to wrap files made by meson - git checkout subprojects/*.wrap - ./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/ artifacts: @@ -694,7 +697,8 @@ documentation: stage: integrate extends: - '.documentation' - needs: [] + needs: + - "fedora amd64 docker" rules: - if: '$CI_PROJECT_NAMESPACE == "gstreamer" && $CI_COMMIT_BRANCH == "main"' @@ -707,7 +711,7 @@ build documentation: - '.documentation' stage: build needs: - - "trigger" + - "fedora amd64 docker" rules: # Never run post merge, we have the `documentation` always running for that - if: '$CI_PROJECT_NAMESPACE == "gstreamer" && $CI_COMMIT_BRANCH == $GST_UPSTREAM_BRANCH' diff --git a/ci/docker/fedora/prepare.sh b/ci/docker/fedora/prepare.sh index 0ed4cb6e27..1070d78c57 100644 --- a/ci/docker/fedora/prepare.sh +++ b/ci/docker/fedora/prepare.sh @@ -4,7 +4,7 @@ set -eux # We need them to cleanly build our doc. 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 git config --global user.email "gstreamer@gstreamer.net" @@ -41,6 +41,8 @@ dnf install -y \ glslc \ gtk3 \ gtk3-devel \ + gtk4 \ + gtk4-devel \ gtest \ gtest-devel \ graphene \ @@ -202,7 +204,10 @@ dnf builddep -y gstreamer1 \ python3-gstreamer1 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 @@ -210,13 +215,13 @@ dnf remove -y "gstreamer1*devel" # FIXME: Why does installing directly with dnf doesn't actually install # 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 rm -f *.rpm # Install Rust -RUSTUP_VERSION=1.24.3 -RUST_VERSION=1.55.0 +RUSTUP_VERSION=1.25.1 +RUST_VERSION=1.63.0 RUST_ARCH="x86_64-unknown-linux-gnu" dnf install -y wget @@ -233,6 +238,7 @@ chmod +x rustup-init; rm rustup-init; chmod -R a+w $RUSTUP_HOME $CARGO_HOME +cargo install cargo-c --version 0.9.12+cargo-0.64 rustup --version cargo --version rustc --version diff --git a/subprojects/gst-libav/docs/gst_plugins_cache.json b/subprojects/gst-libav/docs/gst_plugins_cache.json index 5b35a0d9a7..1e8438d495 100644 --- a/subprojects/gst-libav/docs/gst_plugins_cache.json +++ b/subprojects/gst-libav/docs/gst_plugins_cache.json @@ -44016,7 +44016,7 @@ "long-name": "libav Avid 1:1 10-bit RGB Packer encoder", "pad-templates": { "sink": { - "caps": "video/x-raw:\n", + "caps": "video/x-raw:\n format: GBR_10LE\n", "direction": "sink", "presence": "always" }, @@ -64983,7 +64983,7 @@ "construct": false, "construct-only": false, "controllable": false, - "default": "128000", + "default": "6300", "max": "2147483647", "min": "0", "mutable": "null", @@ -100948,7 +100948,7 @@ "long-name": "libav Apple ProRes encoder", "pad-templates": { "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", "presence": "always" }, @@ -102118,7 +102118,7 @@ "long-name": "libav Apple ProRes encoder", "pad-templates": { "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", "presence": "always" }, @@ -105682,7 +105682,7 @@ "long-name": "libav AJA Kona 10-bit RGB Codec encoder", "pad-templates": { "sink": { - "caps": "video/x-raw:\n", + "caps": "video/x-raw:\n format: GBR_10LE\n", "direction": "sink", "presence": "always" }, @@ -134070,7 +134070,7 @@ "long-name": "libav Zip Motion Blocks Video encoder", "pad-templates": { "sink": { - "caps": "video/x-raw:\n format: RGB8P\n", + "caps": "video/x-raw:\n format: { RGB8P, RGB15, RGB16, BGRx }\n", "direction": "sink", "presence": "always" }, @@ -141543,6 +141543,11 @@ "name": "qpel", "value": "0x00000010" }, + { + "desc": "Drop frames whose parameters differ from first decoded frame", + "name": "drop_changed", + "value": "0x00000020" + }, { "desc": "use loop filter", "name": "loop", diff --git a/subprojects/gst-plugins-bad/docs/plugins/gst_plugins_cache.json b/subprojects/gst-plugins-bad/docs/plugins/gst_plugins_cache.json index e9a2e341cc..786addb02f 100644 --- a/subprojects/gst-plugins-bad/docs/plugins/gst_plugins_cache.json +++ b/subprojects/gst-plugins-bad/docs/plugins/gst_plugins_cache.json @@ -221367,6 +221367,17 @@ "tracers": {}, "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": { "description": "Removes silence from an audio stream", "elements": { diff --git a/subprojects/gst-plugins-bad/sys/qsv/plugin.cpp b/subprojects/gst-plugins-bad/sys/qsv/plugin.cpp index ad9175bdc6..18211d0e35 100644 --- a/subprojects/gst-plugins-bad/sys/qsv/plugin.cpp +++ b/subprojects/gst-plugins-bad/sys/qsv/plugin.cpp @@ -21,6 +21,12 @@ #include "config.h" #endif +/** + * plugin-qsv: + * + * Since: 1.22 + */ + #include #include #include "gstqsvav1enc.h" diff --git a/subprojects/gstreamer/gst/gstelement.c b/subprojects/gstreamer/gst/gstelement.c index 346ea67258..f3d119dfe8 100644 --- a/subprojects/gstreamer/gst/gstelement.c +++ b/subprojects/gstreamer/gst/gstelement.c @@ -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 * 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 - * > #GInstanceInitFunc here. + * > GInstanceInitFunc here. * * Returns: (transfer none) (element-type Gst.PadTemplate): the #GList of * pad templates. @@ -1801,9 +1801,9 @@ gst_element_get_pad_template_list (GstElement * element) * @name: the name of the #GstPadTemplate to get. * * 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 - * > #GInstanceInitFunc here. + * > GInstanceInitFunc here. * * Returns: (transfer none) (nullable): the #GstPadTemplate with the * given name, or %NULL if none was found. No unreferencing is