Compare commits
14 Commits
main
...
OpenCL_acc
Author | SHA1 | Date | |
---|---|---|---|
0bc5e631d6 | |||
b43d2da209 | |||
31b9f03447 | |||
a4e00086b3 | |||
|
6377ebf568 | ||
|
62731c958c | ||
|
87b56fbf86 | ||
|
83d685054b | ||
|
e616f64152 | ||
|
df08833e27 | ||
|
01a504c310 | ||
|
62eeb7e008 | ||
|
244dd01b22 | ||
|
b7f964929c |
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -1,2 +1 @@
|
||||
subprojects/packagefiles/*/*.patch text eol=lf
|
||||
subprojects/gst-devtools/dots-viewer/static/dist/** binary
|
||||
|
8
.gitignore
vendored
8
.gitignore
vendored
@ -22,6 +22,7 @@ prefix/
|
||||
/gst-devtools
|
||||
/gst-integration-testsuites
|
||||
/gst-editing-services
|
||||
/gstreamer-vaapi
|
||||
/gstreamer-sharp
|
||||
/pygobject
|
||||
/gst-python
|
||||
@ -40,7 +41,6 @@ subprojects/abseil-cpp.wrap
|
||||
subprojects/sysprof.wrap
|
||||
|
||||
subprojects/*/
|
||||
subprojects/.wraplock
|
||||
!subprojects/gst-devtools
|
||||
!subprojects/gst-docs
|
||||
!subprojects/gst-editing-services
|
||||
@ -54,16 +54,12 @@ subprojects/.wraplock
|
||||
!subprojects/gst-python
|
||||
!subprojects/gstreamer
|
||||
!subprojects/gstreamer-sharp
|
||||
!subprojects/gstreamer-vaapi
|
||||
!subprojects/gst-rtsp-server
|
||||
!subprojects/macos-bison-binary
|
||||
!subprojects/win-flex-bison-binaries
|
||||
!subprojects/win-nasm
|
||||
!subprojects/win-pkgconfig
|
||||
!subprojects/packagefiles
|
||||
subprojects/*/*.zip
|
||||
subprojects/*/*.exe
|
||||
subprojects/*/*.tar.*
|
||||
subprojects/macos-bison-binary/bison*/
|
||||
|
||||
# VSCode integration
|
||||
# launch.json will be modified by users depending on the pipeline to test
|
||||
|
198
.gitlab-ci.yml
198
.gitlab-ci.yml
@ -1,9 +1,10 @@
|
||||
include:
|
||||
- project: 'freedesktop/ci-templates'
|
||||
ref: "e0b27048d7ba881e3bfec48f4f7cba6504a7472e"
|
||||
file:
|
||||
- '/templates/fedora.yml'
|
||||
- '/templates/debian.yml'
|
||||
ref: "3826695f80807d8a4d999f6b6efb3d405d708db9"
|
||||
file: '/templates/fedora.yml'
|
||||
- project: 'freedesktop/ci-templates'
|
||||
ref: "3826695f80807d8a4d999f6b6efb3d405d708db9"
|
||||
file: '/templates/debian.yml'
|
||||
###
|
||||
# IMPORTANT
|
||||
# These are the version tags for the docker images the CI runs against.
|
||||
@ -58,6 +59,7 @@ variables:
|
||||
-Ddevtools=enabled
|
||||
-Dges=enabled
|
||||
-Drtsp_server=enabled
|
||||
-Dvaapi=enabled
|
||||
-Dsharp=disabled
|
||||
-Drs=disabled
|
||||
-Dgpl=enabled
|
||||
@ -70,13 +72,6 @@ variables:
|
||||
-Dgstreamer-sharp:werror=false
|
||||
-Ddoc=disabled
|
||||
|
||||
# Our gitlab instance and runner are using a proxy and have
|
||||
# trouble with the normal fetch. git itself handles the proxy
|
||||
# more reliably.
|
||||
#
|
||||
# https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli
|
||||
CARGO_NET_GIT_FETCH_WITH_CLI: true
|
||||
|
||||
FF_TIMESTAMPS: true
|
||||
|
||||
# Can set this as part of a schedule pipeline to test the gtk4 build if desired
|
||||
@ -139,16 +134,14 @@ trigger:
|
||||
|
||||
.fedora image:
|
||||
variables:
|
||||
FDO_USER: 'containeruser'
|
||||
CCACHE_DIR: '/cache/gstreamer/gstreamer/ccache_fedora_containeruser/'
|
||||
CCACHE_DIR: '/cache/gstreamer/gstreamer/ccache/'
|
||||
FDO_DISTRIBUTION_VERSION: '40'
|
||||
FDO_REPO_SUFFIX: "$FEDORA_AMD64_SUFFIX"
|
||||
FDO_DISTRIBUTION_TAG: "$FEDORA_TAG-$GST_UPSTREAM_BRANCH"
|
||||
FDO_DISTRIBUTION_EXEC: 'bash ci/docker/fedora/prepare.sh'
|
||||
FDO_DISTRIBUTION_EXEC: 'GIT_BRANCH=$CI_COMMIT_REF_NAME GIT_URL=$CI_REPOSITORY_URL bash ci/docker/fedora/prepare.sh'
|
||||
|
||||
.fedora fluster image:
|
||||
variables:
|
||||
FDO_USER: 'containeruser'
|
||||
CCACHE_DIR: !reference [".fedora image", "variables", CCACHE_DIR]
|
||||
FDO_DISTRIBUTION_VERSION: !reference [".fedora image", "variables", FDO_DISTRIBUTION_VERSION]
|
||||
FDO_REPO_SUFFIX: !reference [".fedora image", "variables", FDO_REPO_SUFFIX]
|
||||
@ -163,8 +156,6 @@ fedora amd64 docker:
|
||||
- '.fdo.container-build@fedora'
|
||||
stage: 'preparation'
|
||||
needs: []
|
||||
variables:
|
||||
FDO_DISTRIBUTION_POST_EXEC: 'bash ci/scripts/build-toolbox-image.sh'
|
||||
# Note: assumption is that placeholder jobs run on a packet runner
|
||||
# (which has faster network connectivity to the registry).
|
||||
tags: [ 'kvm' ]
|
||||
@ -179,15 +170,29 @@ fedora amd64 docker fluster:
|
||||
# (which has faster network connectivity to the registry).
|
||||
tags: [ 'kvm' ]
|
||||
|
||||
# Build a toolbox specific image to workaround ci-templates
|
||||
fedora amd64 toolbox:
|
||||
image: quay.io/freedesktop.org/ci-templates:container-build-base-2024-01-31.0
|
||||
stage: 'preparation'
|
||||
needs: ["fedora amd64 docker"]
|
||||
# Note: assumption is that placeholder jobs run on a packet runner
|
||||
# (which has faster network connectivity to the registry).
|
||||
tags: [ 'kvm' ]
|
||||
variables:
|
||||
GST_CI_IMAGE: !reference [".build fedora x86_64", "variables", FDO_DISTRIBUTION_IMAGE]
|
||||
FDO_DISTRIBUTION_TAG: !reference [".fedora image", "variables", FDO_DISTRIBUTION_TAG]
|
||||
FDO_REPO_SUFFIX: !reference [".fedora image", "variables", FDO_REPO_SUFFIX]
|
||||
script:
|
||||
- bash ci/scripts/build-toolbox-image.sh $GST_CI_IMAGE $FDO_DISTRIBUTION_TAG $GST_UPSTREAM_BRANCH
|
||||
|
||||
.debian image:
|
||||
variables:
|
||||
CCACHE_DIR: '/cache/gstreamer/gstreamer/ccache_debian_containeruser/'
|
||||
FDO_USER: 'containeruser'
|
||||
CCACHE_DIR: '/cache/gstreamer/gstreamer/ccache_debian/'
|
||||
FDO_BASE_IMAGE: "quay.io/toolbx-images/debian-toolbox:12"
|
||||
FDO_DISTRIBUTION_VERSION: '12'
|
||||
FDO_REPO_SUFFIX: "$DEBIAN_AMD64_SUFFIX"
|
||||
FDO_DISTRIBUTION_TAG: "$DEBIAN_TAG-$GST_UPSTREAM_BRANCH"
|
||||
FDO_DISTRIBUTION_EXEC: 'bash ci/docker/debian/prepare.sh'
|
||||
FDO_DISTRIBUTION_EXEC: 'GIT_BRANCH=$CI_COMMIT_REF_NAME GIT_URL=$CI_REPOSITORY_URL bash ci/docker/debian/prepare.sh'
|
||||
|
||||
debian amd64 docker:
|
||||
extends:
|
||||
@ -248,13 +253,12 @@ windows amd64 docker:
|
||||
.abi-check image:
|
||||
variables:
|
||||
CCACHE_DIR: !reference [".fedora image", "variables", CCACHE_DIR]
|
||||
SUBPROJECTS_CACHE_DIR: !reference [".build", "variables", SUBPROJECTS_CACHE_DIR]
|
||||
FDO_DISTRIBUTION_VERSION: !reference [".fedora image", "variables", FDO_DISTRIBUTION_VERSION]
|
||||
FDO_REPO_SUFFIX: !reference [".fedora image", "variables", FDO_REPO_SUFFIX]
|
||||
FDO_BASE_IMAGE: '$CI_REGISTRY_IMAGE/$FDO_REPO_SUFFIX:$FEDORA_TAG-$GST_UPSTREAM_BRANCH'
|
||||
FDO_DISTRIBUTION_TAG: "abi-check-$ABI_CHECK_TAG-$GST_UPSTREAM_BRANCH"
|
||||
FDO_DISTRIBUTION_PACKAGES: 'libabigail'
|
||||
FDO_DISTRIBUTION_EXEC: 'bash ci/docker/abi-check/prepare.sh'
|
||||
FDO_DISTRIBUTION_EXEC: 'GIT_BRANCH=$CI_COMMIT_REF_NAME GIT_URL=$CI_REPOSITORY_URL bash ci/docker/abi-check/prepare.sh'
|
||||
ABI_CHECK_CACHE: '/abi-check-cache'
|
||||
|
||||
abi-check docker:
|
||||
@ -284,8 +288,8 @@ pre-commit checks:
|
||||
GIT_DEPTH: 100
|
||||
PRE_COMMIT_HOME: '/cache/${CI_PROJECT_NAMESPACE}/pre-commit'
|
||||
RUSTUP_HOME: '/usr/local/rustup'
|
||||
before_script:
|
||||
- git config --global --add safe.directory $CI_PROJECT_DIR
|
||||
before_script:
|
||||
git config --global --add safe.directory $CI_PROJECT_DIR
|
||||
script:
|
||||
- export PATH="/usr/local/cargo/bin:$PATH"
|
||||
- echo $CI_MERGE_REQUEST_DIFF_BASE_SHA
|
||||
@ -343,7 +347,7 @@ pre-commit checks:
|
||||
BUILD_GST_DEBUG: "-Dgstreamer:gst_debug=true"
|
||||
GST_WERROR: "true"
|
||||
MESON_ARGS: "${DEFAULT_MESON_ARGS}"
|
||||
SUBPROJECTS_CACHE_DIR: "/var/cache/subprojects"
|
||||
SUBPROJECTS_CACHE_DIR: "/subprojects"
|
||||
# Avoid weird issue about cross-device links
|
||||
# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3197
|
||||
GI_SCANNER_DISABLE_CACHE: "1"
|
||||
@ -363,6 +367,9 @@ pre-commit checks:
|
||||
- changes:
|
||||
paths:
|
||||
*modules_changes
|
||||
- changes:
|
||||
paths:
|
||||
- "subprojects/gstreamer-vaapi/**/*"
|
||||
|
||||
.build simple:
|
||||
extends:
|
||||
@ -371,6 +378,7 @@ pre-commit checks:
|
||||
variables:
|
||||
GST_WERROR: "true"
|
||||
MESON_ARGS: "${SIMPLE_BUILD}"
|
||||
SUBPROJECTS_CACHE_DIR: "/subprojects"
|
||||
script:
|
||||
- $CI_PROJECT_DIR/ci/scripts/build.sh build/
|
||||
- ./gst-env.py gst-inspect-1.0 --version
|
||||
@ -416,6 +424,9 @@ build fedora gcc:
|
||||
# https://github.com/mesonbuild/meson/issues/5214
|
||||
# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4281?commit_id=d1a687b61d8fbc5ae35b4bb62aa7fd1d091818f2#note_1875699
|
||||
#
|
||||
# VAAPI can't be build statically yet
|
||||
# subprojects/gstreamer-vaapi/meson.build:8:2: ERROR: Problem encountered: GStreamer-VAAPI plugin not supported with `static` builds yet.
|
||||
#
|
||||
# Disabling gstreamer-sharp tests because they download things as part of configure with
|
||||
# nuget which frequently fails on the CI (possibly because we're hammering the site)
|
||||
#
|
||||
@ -423,6 +434,7 @@ build fedora gcc:
|
||||
MESON_ARGS: >-
|
||||
${DEFAULT_MESON_ARGS}
|
||||
-Dgst-devtools:dots_viewer=enabled
|
||||
-Dvaapi=disabled
|
||||
-Dpython=auto
|
||||
-Dgst-editing-services:python=disabled
|
||||
-Dintrospection=disabled
|
||||
@ -444,12 +456,16 @@ build fedora clang:
|
||||
|
||||
- BUILD_TYPE: ["--default-library=static"]
|
||||
BUILD_GST_DEBUG: ["-Dgstreamer:gst_debug=true", "-Dgstreamer:gst_debug=false"]
|
||||
# VAAPI can't be build statically yet
|
||||
# subprojects/gstreamer-vaapi/meson.build:8:2: ERROR: Problem encountered: GStreamer-VAAPI plugin not supported with `static` builds yet.
|
||||
#
|
||||
# Disabling gstreamer-sharp tests because they download things as part of configure with
|
||||
# nuget which frequently fails on the CI (possibly because we're hammering the site)
|
||||
#
|
||||
# Disabling building both qt5 and qt6 when doing static builds since we can only link against one
|
||||
MESON_ARGS: >-
|
||||
${DEFAULT_MESON_ARGS}
|
||||
-Dvaapi=disabled
|
||||
-Dintrospection=disabled
|
||||
-Dpython=disabled
|
||||
-Ddoc=disabled
|
||||
@ -483,6 +499,7 @@ build debian x86_64:
|
||||
MESON_ARGS: >-
|
||||
${DEFAULT_MESON_ARGS}
|
||||
-Dlibav=disabled
|
||||
-Dvaapi=disabled
|
||||
-Dgst-plugins-base:pango=enabled
|
||||
-Dgst-plugins-good:cairo=enabled
|
||||
-Dgst-plugins-good:soup=enabled
|
||||
@ -515,17 +532,12 @@ build debian x86_64:
|
||||
when: "always"
|
||||
paths:
|
||||
- 'build/meson-logs/'
|
||||
- 'args.txt'
|
||||
|
||||
build vs2022 amd64:
|
||||
extends: '.build windows'
|
||||
script:
|
||||
- !reference [".build windows", "script"]
|
||||
# https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_character_encoding?view=powershell-7.5
|
||||
# Meson's response files must be in UTF-8
|
||||
# After updating to powershell >7.1, the shell in Dockerfile must be updated from Windows PS to PWSH
|
||||
- echo "$env:MESON_ARGS $env:GTK_ARGS" | Out-File -File args.txt -Encoding ASCII
|
||||
- .\ci\run_retry.ps1 meson setup --vsenv build '@args.txt'
|
||||
- .\ci\run_retry.ps1 meson setup --vsenv build $env:MESON_ARGS $env:GTK_ARGS
|
||||
- .\ci\run_retry.ps1 meson compile -C build --jobs $env:FDO_CI_CONCURRENT
|
||||
- .\gst-env.py gst-inspect-1.0.exe --version
|
||||
- .\gst-env.py gst-inspect-1.0.exe
|
||||
@ -535,9 +547,6 @@ build vs2022 amd64:
|
||||
variables:
|
||||
# FIXME: https://github.com/mesonbuild/meson/pull/11007
|
||||
PKG_CONFIG: ${CI_PROJECT_DIR}/subprojects/win-pkgconfig/pkg-config.exe
|
||||
# Work around Meson issues if this env var contains characters that
|
||||
# cannot be represented in the active code page (e.g. CP1252)
|
||||
CI_COMMIT_AUTHOR: null
|
||||
|
||||
build vs2022 amd64 full-static:
|
||||
extends: ".build windows"
|
||||
@ -554,9 +563,6 @@ build vs2022 amd64 full-static:
|
||||
-Dlibav=disabled
|
||||
-Ddoc=disabled
|
||||
-Dgst-full-target-type=static_library
|
||||
# Work around Meson issues if this env var contains characters that
|
||||
# cannot be represented in the active code page (e.g. CP1252)
|
||||
CI_COMMIT_AUTHOR: null
|
||||
|
||||
.build windows cross:
|
||||
extends: '.build windows'
|
||||
@ -636,9 +642,11 @@ build macos:
|
||||
- BUILD_TYPE: ["--default-library=both"]
|
||||
BUILD_GST_DEBUG: ["-Dgstreamer:gst_debug=true"]
|
||||
# FIXME: We currently don't have pkg-config required by gobject-introspection/pygobject/sharp
|
||||
# macos doesn't support vaapi
|
||||
MESON_ARGS: >-
|
||||
${SIMPLE_BUILD}
|
||||
-Dintrospection=disabled
|
||||
-Dvaapi=disabled
|
||||
-Dsharp=disabled
|
||||
-Dpython=disabled
|
||||
-Ddoc=disabled
|
||||
@ -677,7 +685,7 @@ abi-check:
|
||||
variables:
|
||||
GST_WERROR: "true"
|
||||
MESON_ARGS: "${SIMPLE_BUILD}"
|
||||
SUBPROJECTS_CACHE_DIR: !reference [".build", "variables", SUBPROJECTS_CACHE_DIR]
|
||||
SUBPROJECTS_CACHE_DIR: "/subprojects"
|
||||
|
||||
# Avoid weird issue about cross-device links
|
||||
# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3197
|
||||
@ -733,6 +741,9 @@ check fedora:
|
||||
- changes:
|
||||
paths:
|
||||
*modules_changes
|
||||
- changes:
|
||||
paths:
|
||||
- "subprojects/gstreamer-vaapi/**/*"
|
||||
|
||||
integration testsuites fedora:
|
||||
extends: '.test fedora x86_64'
|
||||
@ -741,6 +752,7 @@ integration testsuites fedora:
|
||||
MESON_ARGS: >-
|
||||
${SIMPLE_BUILD}
|
||||
-Dsharp=disabled
|
||||
-Dvaapi=disabled
|
||||
-Dexamples=disabled
|
||||
-Dgst-examples=disabled
|
||||
-Dtests=disabled
|
||||
@ -769,7 +781,7 @@ check video formats:
|
||||
MESON_ARGS: "${SIMPLE_BUILD}"
|
||||
BUILD_GST_DEBUG: "-Dgstreamer:gst_debug=true"
|
||||
GST_WERROR: "true"
|
||||
SUBPROJECTS_CACHE_DIR: !reference [".build", "variables", SUBPROJECTS_CACHE_DIR]
|
||||
SUBPROJECTS_CACHE_DIR: "/subprojects"
|
||||
VIDEO_TOKEN: "GST_VIDEO_FORMATS_ALL_STR"
|
||||
VIDEO_HEADER: "subprojects/gst-plugins-base/gst-libs/gst/video/video-format.h"
|
||||
WL_TOKEN: "GST_WL_VIDEO_FORMATS"
|
||||
@ -800,17 +812,11 @@ gstreamer-full static build:
|
||||
MESON_ARGS: >-
|
||||
-Ddoc=disabled
|
||||
-Dqt5=disabled -Dqt6=enabled
|
||||
|
||||
SUBPROJECTS_CACHE_DIR: "/subprojects"
|
||||
script:
|
||||
- $CI_PROJECT_DIR/ci/scripts/build.sh build/
|
||||
- meson test -C build -v test-gst-full
|
||||
rules:
|
||||
- !reference [.upstream-branch-rules, rules]
|
||||
- changes:
|
||||
paths:
|
||||
*modules_changes
|
||||
- changes:
|
||||
paths:
|
||||
- "scripts/generate_init_static_plugins.py"
|
||||
|
||||
gstreamer-full-minimal static build:
|
||||
extends: 'gstreamer-full static build'
|
||||
@ -832,6 +838,7 @@ gstreamer-full-minimal static build:
|
||||
-Dgst-full-typefind-functions=typefindfunctions:wav,flv
|
||||
-Dgst-full-device-providers=alsa:alsadeviceprovider
|
||||
-Dgst-full-dynamic-types=pbtypes:video_multiview_flagset
|
||||
SUBPROJECTS_CACHE_DIR: "/subprojects"
|
||||
|
||||
script:
|
||||
- $CI_PROJECT_DIR/ci/scripts/build.sh build/
|
||||
@ -873,6 +880,7 @@ fluster v4l2-stateless on visl:
|
||||
-Dgst-plugins-base:typefind=enabled
|
||||
-Dgst-plugins-base:playback=enabled
|
||||
-Dgst-plugins-good:matroska=enabled
|
||||
SUBPROJECTS_CACHE_DIR: "/subprojects"
|
||||
script:
|
||||
- $CI_PROJECT_DIR/ci/scripts/build.sh build/
|
||||
- meson test -C build -v --suite v4l2-stateless-decoders
|
||||
@ -903,6 +911,9 @@ fluster v4l2-stateless on visl:
|
||||
- changes:
|
||||
paths:
|
||||
*modules_changes
|
||||
- changes:
|
||||
paths:
|
||||
- "subprojects/gstreamer-vaapi/**/*"
|
||||
|
||||
valgrind core:
|
||||
extends: '.valgrind fedora x86_64'
|
||||
@ -1002,23 +1013,6 @@ valgrind ges:
|
||||
# as flaky. Until then, just ignore failures.
|
||||
allow_failure: true
|
||||
|
||||
valgrind rtsp-server:
|
||||
extends: '.valgrind fedora x86_64'
|
||||
variables:
|
||||
TEST_SUITE: "check.gst-rtsp-server\\..*"
|
||||
rules:
|
||||
- changes:
|
||||
paths:
|
||||
- "*"
|
||||
- "scripts/*"
|
||||
- "ci/**/*"
|
||||
- "subprojects/gst-devtools/**/*"
|
||||
- "subprojects/gstreamer/**/*"
|
||||
- "subprojects/gst-plugins-base/**/*"
|
||||
- "subprojects/gst-plugins-good/**/*"
|
||||
- "subprojects/gst-plugins-bad/**/*"
|
||||
- "subprojects/gst-rtsp-server/**/*"
|
||||
|
||||
# ---- Integration ----- #
|
||||
|
||||
.documentation:
|
||||
@ -1034,6 +1028,7 @@ valgrind rtsp-server:
|
||||
-Dgst-plugins-bad:svthevcenc=disabled
|
||||
# Disable werror for the docs build, we don't need it
|
||||
GST_WERROR: 'false'
|
||||
SUBPROJECTS_CACHE_DIR: "/subprojects"
|
||||
CI_ARTIFACTS_URL: "${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/"
|
||||
script:
|
||||
- $CI_PROJECT_DIR/ci/scripts/build-docs.sh build/
|
||||
@ -1043,14 +1038,6 @@ valgrind rtsp-server:
|
||||
paths:
|
||||
- documentation/
|
||||
- diffs/
|
||||
rules:
|
||||
- !reference [.upstream-branch-rules, rules]
|
||||
- changes:
|
||||
paths:
|
||||
*modules_changes
|
||||
- changes:
|
||||
paths:
|
||||
- "scripts/generate_plugins_path.py"
|
||||
|
||||
#
|
||||
# This jobs runs in gstreamer namespace when after the merge into main branch.
|
||||
@ -1095,55 +1082,40 @@ build documentation:
|
||||
- "subprojects/gst-plugins-good/**/*"
|
||||
- "subprojects/gst-plugins-ugly/**/*"
|
||||
- "subprojects/gstreamer/**/*"
|
||||
- "subprojects/gstreamer-vaapi/**/*"
|
||||
- "subprojects/gst-rtsp-server/**/*"
|
||||
|
||||
|
||||
# FIXME: We used to automatically run against matching user branch
|
||||
# whever that branch existed.
|
||||
# See ci/gitlab/trigger_cerbero_pipline.py.
|
||||
.cerbero trigger changes: &cerbero_trigger_changes
|
||||
changes:
|
||||
paths:
|
||||
- ".gitlab-ci.yml"
|
||||
- "ci/gitlab/*.py"
|
||||
- "subprojects/gst-devtools/**/*"
|
||||
- "subprojects/gst-editing-services/**/*"
|
||||
- "subprojects/gst-libav/**/*"
|
||||
- "subprojects/gst-plugins-bad/**/*"
|
||||
- "subprojects/gst-plugins-base/**/*"
|
||||
- "subprojects/gst-plugins-good/**/*"
|
||||
- "subprojects/gst-plugins-ugly/**/*"
|
||||
- "subprojects/gst-python/**/*"
|
||||
- "subprojects/gstreamer/**/*"
|
||||
- "subprojects/gst-rtsp-server/**/*"
|
||||
- "subprojects/gst-examples/**/*"
|
||||
|
||||
# FIXME: Using trigger: causes permission issues, workaround using old REST API.
|
||||
# https://gitlab.com/gitlab-org/gitlab/-/issues/341737
|
||||
cerbero trigger:
|
||||
stage: build
|
||||
trigger:
|
||||
project: gstreamer/cerbero
|
||||
branch: main
|
||||
strategy: depend
|
||||
timeout: '4h'
|
||||
tags:
|
||||
- placeholder-job
|
||||
image: python:alpine
|
||||
needs:
|
||||
- "trigger"
|
||||
variables:
|
||||
CI_GSTREAMER_PATH: '$CI_PROJECT_PATH'
|
||||
CI_GSTREAMER_REF_NAME: '$CI_COMMIT_REF_NAME'
|
||||
CI_GSTREAMER_TRIGGERED: 'true'
|
||||
inherit:
|
||||
# Inherit default (not predefined) variables used for the job in `rules:` and `variables:`
|
||||
variables:
|
||||
- MESON_COMMIT
|
||||
- GST_UPSTREAM_BRANCH
|
||||
script:
|
||||
- pip install python-gitlab
|
||||
- python ci/gitlab/trigger_cerbero_pipeline.py
|
||||
|
||||
rules:
|
||||
- if: '$MESON_COMMIT'
|
||||
# Never run post merge
|
||||
- if: '$CI_PROJECT_NAMESPACE == "gstreamer" && $CI_COMMIT_BRANCH == $GST_UPSTREAM_BRANCH'
|
||||
when: never
|
||||
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
||||
# For merge reqest, we want to test user branch
|
||||
<<: *cerbero_trigger_changes
|
||||
variables:
|
||||
CI_GSTREAMER_PATH: '$CI_MERGE_REQUEST_SOURCE_PROJECT_PATH'
|
||||
CI_GSTREAMER_REF_NAME: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME'
|
||||
- <<: *cerbero_trigger_changes
|
||||
- changes:
|
||||
paths:
|
||||
- ".gitlab-ci.yml"
|
||||
- "ci/gitlab/*.py"
|
||||
- "subprojects/gst-devtools/**/*"
|
||||
- "subprojects/gst-editing-services/**/*"
|
||||
- "subprojects/gst-libav/**/*"
|
||||
- "subprojects/gst-plugins-bad/**/*"
|
||||
- "subprojects/gst-plugins-base/**/*"
|
||||
- "subprojects/gst-plugins-good/**/*"
|
||||
- "subprojects/gst-plugins-ugly/**/*"
|
||||
- "subprojects/gst-python/**/*"
|
||||
- "subprojects/gstreamer/**/*"
|
||||
- "subprojects/gst-rtsp-server/**/*"
|
||||
- "subprojects/gst-examples/**/*"
|
||||
|
@ -5,12 +5,12 @@ 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: '2025-08-10.0-fluster-kernel'
|
||||
FEDORA_TAG: '2025-03-13.0'
|
||||
|
||||
DEBIAN_TAG: '2025-08-10.0'
|
||||
DEBIAN_TAG: '2025-02-23.0'
|
||||
|
||||
CHECKS_TAG: '2025-05-24.0'
|
||||
CHECKS_TAG: '2025-02-04.0'
|
||||
|
||||
ABI_CHECK_TAG: '2025-08-20.0'
|
||||
ABI_CHECK_TAG: '2025-04-01.0'
|
||||
|
||||
WINDOWS_TAG: '2025-08-10.0'
|
||||
WINDOWS_TAG: '2025-02-23.0'
|
||||
|
7
.ignore
7
.ignore
@ -1,7 +0,0 @@
|
||||
subprojects/gst-devtools/dots-viewer/static/dist/**
|
||||
macbuild/**
|
||||
builddir/**
|
||||
*.min.js
|
||||
*.min.css
|
||||
node_modules/
|
||||
|
@ -1,7 +1,6 @@
|
||||
subprojects/gst-plugins-bad/ext/nvcomp
|
||||
subprojects/gst-plugins-bad/ext/nvdswrapper
|
||||
subprojects/gst-plugins-bad/ext/qt6d3d11
|
||||
subprojects/gst-plugins-bad/ext/wpe2
|
||||
subprojects/gst-plugins-bad/gst-libs/gst/cuda
|
||||
subprojects/gst-plugins-bad/gst-libs/gst/d3d11
|
||||
subprojects/gst-plugins-bad/gst-libs/gst/d3d12
|
||||
@ -12,7 +11,6 @@ subprojects/gst-plugins-bad/sys/amfcodec
|
||||
subprojects/gst-plugins-bad/sys/d3d11
|
||||
subprojects/gst-plugins-bad/sys/d3d12
|
||||
subprojects/gst-plugins-bad/sys/dwrite
|
||||
subprojects/gst-plugins-bad/sys/hip
|
||||
subprojects/gst-plugins-bad/sys/mediafoundation
|
||||
subprojects/gst-plugins-bad/sys/nvcodec
|
||||
^(subprojects/gst-plugins-bad/sys/qsv/)+(\w)+([^/])+(cpp$)
|
||||
|
@ -1,10 +1,3 @@
|
||||
# Notes:
|
||||
# - Python commands must be prefixed with `python` because pre-commit refuses to
|
||||
# special-case shebangs on Windows where `python3` does not commonly exists.
|
||||
# Luckily, the `python` command exists in the virtualenv created by pre-commit
|
||||
# on all platforms. https://github.com/pre-commit/pre-commit/issues/3415,
|
||||
# https://github.com/pre-commit/pre-commit/issues/3468
|
||||
|
||||
fail_fast: false
|
||||
repos:
|
||||
- repo: https://github.com/jorisroovers/gitlint
|
||||
@ -23,7 +16,7 @@ repos:
|
||||
- id: gst-indent
|
||||
name: gst-indent
|
||||
language: python
|
||||
entry: python ./scripts/gst-indent-all.py
|
||||
entry: ./scripts/gst-indent-all.py
|
||||
pass_filenames: false
|
||||
types_or: ["c", "c++"]
|
||||
additional_dependencies: ["gst-indent==1.0.0"]
|
||||
@ -37,6 +30,6 @@ repos:
|
||||
- id: doc-checks
|
||||
name: doc-checks
|
||||
language: python
|
||||
entry: python ./scripts/git-hooks/pre-commit-python.hook
|
||||
entry: ./scripts/git-hooks/pre-commit-python.hook
|
||||
pass_filenames: false
|
||||
additional_dependencies: ["autopep8==2.3.2", "pycodestyle==2.12.1"]
|
||||
|
@ -8,6 +8,6 @@ install_prefix=/tmp/install
|
||||
MESON_ARGS="${meson_args} --prefix ${install_prefix} --optimization=g" ./ci/scripts/build.sh build/
|
||||
ninja -C build/ install
|
||||
|
||||
find ${install_prefix}/lib64 -type f -iname *libgst*.so.* -print0 | sudo xargs -0 -I '{}' bash ./ci/scripts/save-abi.sh {} ${ABI_CHECK_CACHE} ${install_prefix}/include/gstreamer-1.0
|
||||
find ${install_prefix}/lib64 -type f -iname *libgst*.so.* -print0 | xargs -0 -I '{}' bash ./ci/scripts/save-abi.sh {} ${ABI_CHECK_CACHE} ${install_prefix}/include/gstreamer-1.0
|
||||
|
||||
rm -rf $install_prefix
|
||||
|
@ -33,8 +33,8 @@ python3 -m pip install pre-commit==3.6.0
|
||||
python3 -m pip install gitlint
|
||||
|
||||
# Install Rust
|
||||
RUSTUP_VERSION=1.28.1
|
||||
RUST_VERSION=1.89.0
|
||||
RUSTUP_VERSION=1.27.1
|
||||
RUST_VERSION=1.85.0
|
||||
RUST_ARCH="x86_64-unknown-linux-gnu"
|
||||
|
||||
RUSTUP_URL=https://static.rust-lang.org/rustup/archive/$RUSTUP_VERSION/$RUST_ARCH/rustup-init
|
||||
@ -49,7 +49,7 @@ chmod +x rustup-init;
|
||||
rm rustup-init;
|
||||
chmod -R a+w $RUSTUP_HOME $CARGO_HOME
|
||||
|
||||
cargo install cargo-c --version 0.10.15+cargo-0.90.0 --locked
|
||||
cargo install cargo-c --version 0.10.11+cargo-0.86.0 --locked
|
||||
|
||||
rustup --version
|
||||
cargo --version
|
||||
|
@ -2,13 +2,11 @@
|
||||
|
||||
set -eux
|
||||
|
||||
sudo apt update -y && sudo apt full-upgrade -y
|
||||
sudo apt install -y $(<./ci/docker/debian/deps.txt)
|
||||
apt update -y && apt full-upgrade -y
|
||||
apt install -y $(<./ci/docker/debian/deps.txt)
|
||||
|
||||
# These get pulled by other deps
|
||||
sudo apt remove -y rustc cargo
|
||||
apt remove -y rustc cargo
|
||||
|
||||
sudo bash ./ci/scripts/create-pip-config.sh
|
||||
sudo pip3 install --break-system-packages meson==1.7.2 hotdoc python-gitlab tomli junitparser
|
||||
pip3 install --break-system-packages meson==1.5.2 hotdoc python-gitlab tomli junitparser
|
||||
|
||||
sudo apt clean all
|
||||
apt clean all
|
||||
|
@ -2,21 +2,12 @@
|
||||
|
||||
set -eux
|
||||
|
||||
apt update && apt install -y sudo passwd
|
||||
bash ./ci/scripts/create-container-user.sh
|
||||
bash ./ci/scripts/create-ci-identifier.sh
|
||||
bash ./ci/docker/debian/install-deps.sh
|
||||
|
||||
sudo -u containeruser bash ./ci/docker/debian/install-deps.sh
|
||||
sudo -u containeruser bash ./ci/scripts/install-rust.sh
|
||||
bash ./ci/scripts/install-rust.sh
|
||||
|
||||
# Configure git for various usage
|
||||
sudo -u containeruser git config --global user.email "gstreamer@gstreamer.net"
|
||||
sudo -u containeruser git config --global user.name "Gstbuild Runner"
|
||||
# /tmp/clone is where ci-templates cbuild clones the checkout
|
||||
sudo -u containeruser git config --global --add safe.directory /tmp/clone
|
||||
git config --global user.email "gstreamer@gstreamer.net"
|
||||
git config --global user.name "Gstbuild Runner"
|
||||
|
||||
sudo -u containeruser bash ./ci/scripts/create-subprojects-cache.sh
|
||||
|
||||
# leftover caches
|
||||
sudo rm -rf /root/
|
||||
sudo rm -rf /home/containeruser/.cache /home/containeruser/.npm
|
||||
bash ./ci/scripts/create-subprojects-cache.sh
|
||||
|
@ -4,33 +4,32 @@ set -eux
|
||||
|
||||
# Fedora base image disable installing documentation files. See https://pagure.io/atomic-wg/issue/308
|
||||
# We need them to cleanly build our doc.
|
||||
sudo sed -i '/tsflags=nodocs/d' /etc/dnf/dnf.conf
|
||||
sudo dnf -y swap coreutils-single coreutils-full
|
||||
sudo dnf -y swap glibc-minimal-langpack glibc-all-langpacks
|
||||
sed -i '/tsflags=nodocs/d' /etc/dnf/dnf.conf
|
||||
dnf -y swap coreutils-single coreutils-full
|
||||
dnf -y swap glibc-minimal-langpack glibc-all-langpacks
|
||||
|
||||
# Add rpm fusion repositories in order to access all of the gst plugins
|
||||
sudo dnf install -y \
|
||||
dnf install -y \
|
||||
"https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm" \
|
||||
"https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm"
|
||||
|
||||
# Enable the debuginfo repos so -debug packages are kept in sync
|
||||
sudo dnf install -y dnf-plugins-core
|
||||
sudo dnf config-manager --set-enabled '*-debuginfo'
|
||||
dnf install -y dnf-plugins-core
|
||||
dnf config-manager --set-enabled '*-debuginfo'
|
||||
|
||||
sudo dnf upgrade -y && sudo dnf distro-sync -y
|
||||
dnf upgrade -y && dnf distro-sync -y
|
||||
|
||||
# Install the dependencies of gstreamer
|
||||
sudo dnf install --setopt=install_weak_deps=false -y $(<./ci/docker/fedora/deps.txt)
|
||||
dnf install --setopt=install_weak_deps=false -y $(<./ci/docker/fedora/deps.txt)
|
||||
|
||||
# Install devhelp files for hotdoc
|
||||
sudo dnf install -y glib2-doc gdk-pixbuf2-devel gtk3-devel-docs gtk4-devel-docs libsoup-doc
|
||||
dnf install -y glib2-doc gdk-pixbuf2-devel gtk3-devel-docs gtk4-devel-docs libsoup-doc
|
||||
|
||||
# Make sure we don't end up installing these from some transient dependency
|
||||
sudo dnf remove -y "gstreamer1*-devel" rust cargo meson 'fdk-aac-free*'
|
||||
dnf remove -y "gstreamer1*-devel" rust cargo meson 'fdk-aac-free*'
|
||||
|
||||
sudo bash ./ci/scripts/create-pip-config.sh
|
||||
sudo pip3 install meson==1.7.2 python-gitlab tomli junitparser bs4
|
||||
sudo pip3 install git+https://github.com/hotdoc/hotdoc.git@8c1cc997f5bc16e068710a8a8121f79ac25cbcce
|
||||
pip3 install meson==1.5.2 python-gitlab tomli junitparser bs4
|
||||
pip3 install git+https://github.com/hotdoc/hotdoc.git@8c1cc997f5bc16e068710a8a8121f79ac25cbcce
|
||||
|
||||
# Install most debug symbols, except the big ones from things we use
|
||||
debug_packages=$(rpm -qa | grep -v -i \
|
||||
@ -97,9 +96,9 @@ debug_packages=$(rpm -qa | grep -v -i \
|
||||
-e xerces \
|
||||
-e xorg \
|
||||
)
|
||||
sudo dnf debuginfo-install -y --best --allowerasing --skip-broken $debug_packages
|
||||
dnf debuginfo-install -y --best --allowerasing --skip-broken $debug_packages
|
||||
|
||||
echo "Removing DNF cache"
|
||||
sudo dnf clean all
|
||||
dnf clean all
|
||||
|
||||
sudo rm -rf /var/cache/dnf /var/log/dnf*
|
||||
rm -rf /var/cache/dnf /var/log/dnf*
|
||||
|
@ -2,21 +2,12 @@
|
||||
|
||||
set -eux
|
||||
|
||||
dnf update && dnf install -y sudo shadow-utils
|
||||
bash ./ci/scripts/create-ci-identifier.sh
|
||||
bash ./ci/scripts/create-container-user.sh
|
||||
|
||||
sudo -u containeruser bash ./ci/docker/fedora/install-deps.sh
|
||||
sudo -u containeruser bash ./ci/scripts/install-rust.sh
|
||||
bash ./ci/docker/fedora/install-deps.sh
|
||||
|
||||
# Configure git for various usage
|
||||
sudo -u containeruser git config --global user.email "gstreamer@gstreamer.net"
|
||||
sudo -u containeruser git config --global user.name "Gstbuild Runner"
|
||||
# /tmp/clone is where ci-templates cbuild clones the checkout
|
||||
sudo -u containeruser git config --global --add safe.directory /tmp/clone
|
||||
git config --global user.email "gstreamer@gstreamer.net"
|
||||
git config --global user.name "Gstbuild Runner"
|
||||
|
||||
sudo -u containeruser bash ./ci/scripts/create-subprojects-cache.sh
|
||||
bash ./ci/scripts/install-rust.sh
|
||||
|
||||
# leftover caches
|
||||
sudo rm -rf /root/
|
||||
sudo rm -rf /home/containeruser/.cache /home/containeruser/.npm
|
||||
bash ./ci/scripts/create-subprojects-cache.sh
|
||||
|
@ -5,21 +5,16 @@ set -eux
|
||||
sudo dnf install -y bc
|
||||
|
||||
# Install virtme-ng
|
||||
pushd /tmp/
|
||||
git clone https://github.com/arighi/virtme-ng.git
|
||||
pushd virtme-ng
|
||||
git fetch --tags
|
||||
git checkout v1.8
|
||||
sudo ./setup.py install --prefix=/usr
|
||||
popd
|
||||
./setup.py install --prefix=/usr
|
||||
popd
|
||||
|
||||
# Install fluster
|
||||
pushd /opt/
|
||||
sudo mkdir ./fluster
|
||||
sudo chown containeruser:containeruser ./fluster/
|
||||
|
||||
git clone https://github.com/fluendo/fluster.git ./fluster
|
||||
git clone https://github.com/fluendo/fluster.git
|
||||
pushd fluster
|
||||
git checkout 303a6edfda1701c8bc351909fb1173a0958810c2
|
||||
./fluster.py download
|
||||
@ -29,7 +24,7 @@ popd
|
||||
# Build a linux image for virtme fluster tests
|
||||
bash ./ci/scripts/build-linux.sh \
|
||||
"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git" \
|
||||
"v6.6.93" \
|
||||
"v6.5.8" \
|
||||
/opt/linux/bzImage \
|
||||
'MEDIA_SUPPORT' \
|
||||
'MEDIA_TEST_SUPPORT' \
|
||||
|
@ -39,7 +39,8 @@ RUN choco install -y cmake --installargs 'ADD_CMAKE_TO_PATH=System'
|
||||
RUN choco install -y git --params '/NoAutoCrlf /NoCredentialManager /NoShellHereIntegration /NoGuiHereIntegration /NoShellIntegration'
|
||||
RUN choco install -y git-lfs
|
||||
RUN choco install -y 7zip
|
||||
RUN choco install -y python3 --installargs 'AssociateFiles=1 PrependPath=1 Include_pip=1 Include_dev=1'
|
||||
# See https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/427
|
||||
RUN choco install -y python3 --version=3.11.2 --installargs 'AssociateFiles=1 PrependPath=1 Include_pip=1 Include_dev=1'
|
||||
RUN choco install -y msys2 --params '/NoPath /NoUpdate /InstallDir:C:\\msys64'
|
||||
|
||||
# Install Wix v5 (complete install, no NuGet) from MSI
|
||||
@ -60,7 +61,7 @@ RUN C:\upgrade_msys2.ps1
|
||||
|
||||
RUN C:\msys64\msys2_shell.cmd -ucrt64 -defterm -here -no-start -use-full-path -lc 'pacman -S --noconfirm mingw-w64-ucrt-x86_64-toolchain ninja openssh'
|
||||
|
||||
RUN python -m pip install meson==1.7.2 python-gitlab setuptools wheel
|
||||
RUN python -m pip install meson==1.5.2 python-gitlab
|
||||
|
||||
RUN 'git config --global user.email "cirunner@gstreamer.freedesktop.org"; git config --global user.name "GStreamer CI system"'
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12;
|
||||
|
||||
$rust_version = '1.89.0'
|
||||
$rust_version = '1.85.0'
|
||||
$rustup_url = 'https://win.rustup.rs/x86_64'
|
||||
|
||||
Invoke-WebRequest -Uri $rustup_url -OutFile C:\rustup-init.exe
|
||||
|
@ -84,6 +84,7 @@ meson \
|
||||
-Dbad=disabled \
|
||||
-Dlibav=disabled \
|
||||
-Dges=disabled \
|
||||
-Dvaapi=disabled \
|
||||
-Dsharp=disabled \
|
||||
-Drs=disabled \
|
||||
-Dpython=disabled \
|
||||
|
@ -48,23 +48,16 @@ if __name__ == "__main__":
|
||||
return None
|
||||
|
||||
cerbero = None
|
||||
# Only look for user namespace cerbero branch when running in a merge request
|
||||
if "CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" in os.environ:
|
||||
print("GStreamer monorepo merge request")
|
||||
cerbero_branch = os.environ["CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"]
|
||||
user_project_path = os.environ["CI_MERGE_REQUEST_SOURCE_PROJECT_PATH"]
|
||||
user_ns = os.path.dirname(user_project_path)
|
||||
cerbero_name = f'{user_ns}/cerbero'
|
||||
# We do not want to run on (often out of date) user upstream branch
|
||||
if os.environ["CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"] != os.environ["GST_UPSTREAM_BRANCH"]:
|
||||
try:
|
||||
cerbero = get_matching_user_project(cerbero_name, cerbero_branch)
|
||||
except gitlab.exceptions.GitlabGetError as e:
|
||||
print("No matching user project found: " + str(e))
|
||||
pass
|
||||
# We do not want to run on (often out of date) user upstream branch
|
||||
if os.environ["CI_COMMIT_REF_NAME"] != os.environ['GST_UPSTREAM_BRANCH']:
|
||||
try:
|
||||
cerbero_name = f'{os.environ["CI_PROJECT_NAMESPACE"]}/cerbero'
|
||||
cerbero_branch = os.environ["CI_COMMIT_REF_NAME"]
|
||||
cerbero = get_matching_user_project(cerbero_name, cerbero_branch)
|
||||
except gitlab.exceptions.GitlabGetError:
|
||||
pass
|
||||
|
||||
if cerbero is None:
|
||||
print("Using gstreamer org namespace")
|
||||
cerbero_name = CERBERO_PROJECT
|
||||
cerbero_branch = os.environ["GST_UPSTREAM_BRANCH"]
|
||||
cerbero = gl.projects.get(cerbero_name)
|
||||
|
@ -34,5 +34,8 @@ werror = true
|
||||
[gst-python:built-in options]
|
||||
werror = true
|
||||
|
||||
[gstreamer-vaapi:built-in options]
|
||||
werror = true
|
||||
|
||||
[gstreamer-sharp:built-in options]
|
||||
werror = true
|
||||
|
@ -36,31 +36,5 @@ hotdoc run --conf-file "$builddir"/subprojects/gst-docs/GStreamer-doc.json
|
||||
|
||||
mv "$builddir/subprojects/gst-docs/GStreamer-doc/html" documentation/
|
||||
|
||||
# Check GES children properties documentation is up to date
|
||||
echo "Checking GES children properties documentation..."
|
||||
# Force building python extension modules to ensure the _gi_gst python module is built
|
||||
ninja -C "$builddir" gst-python@@gst-python-extensions
|
||||
./gst-env.py --builddir "$builddir" python3 subprojects/gst-editing-services/docs/libs/document-children-props.py
|
||||
|
||||
# Check if there are any changes in the markdown files
|
||||
if ! git diff --ignore-submodules --exit-code subprojects/gst-editing-services/docs/libs/*-children-props.md; then
|
||||
echo "ERROR: GES children properties documentation is out of date!"
|
||||
|
||||
# Create diff for download
|
||||
diffsdir='diffs'
|
||||
mkdir -p "$diffsdir"
|
||||
diffname="$diffsdir/ges_children_properties_documentation.diff"
|
||||
git diff --ignore-submodules subprojects/gst-editing-services/docs/libs/*-children-props.md > "$diffname"
|
||||
|
||||
echo ""
|
||||
echo "You can download and apply the changes with:"
|
||||
echo " \$ curl -L \${CI_ARTIFACTS_URL}/$diffname | git apply -"
|
||||
echo ""
|
||||
echo "(note that it might take a few minutes for artifacts to be available on the server)"
|
||||
|
||||
exit 1
|
||||
fi
|
||||
echo "GES children properties documentation is up to date"
|
||||
|
||||
pip3 install bs4
|
||||
python3 subprojects/gst-docs/scripts/rust_doc_unifier.py documentation/
|
||||
|
@ -55,14 +55,14 @@ if [ -d linux ]; then
|
||||
git fetch --depth=1 $REPO $BRANCH_OR_TAG
|
||||
git checkout FETCH_HEAD
|
||||
else
|
||||
sudo mkdir ./linux
|
||||
sudo chown containeruser:containeruser ./linux
|
||||
git clone --depth=1 --branch=$BRANCH_OR_TAG $REPO linux
|
||||
pushd linux
|
||||
fi
|
||||
|
||||
# Apply visl patches until they are upstreamed
|
||||
git apply ../ci/docker/fedora/patches/*.patch
|
||||
for patch in ../ci/docker/fedora/patches/*.patch; do
|
||||
patch -p1 < "${patch}"
|
||||
done
|
||||
|
||||
make defconfig
|
||||
sync
|
||||
@ -90,9 +90,7 @@ make -j8 WERROR=0
|
||||
popd
|
||||
|
||||
TARGET_DIR="$(dirname "$IMAGE")"
|
||||
sudo mkdir -p "$TARGET_DIR"
|
||||
sudo chown containeruser:containeruser --recursive "$TARGET_DIR"
|
||||
|
||||
mkdir -p "$TARGET_DIR"
|
||||
mv linux/arch/$SUBARCH/boot/bzImage "$IMAGE"
|
||||
mv linux/.config $TARGET_DIR/.config
|
||||
sudo rm -rf linux
|
||||
rm -rf linux
|
||||
|
@ -11,9 +11,15 @@ die() {
|
||||
exit 1
|
||||
}
|
||||
|
||||
check_image_base() {
|
||||
local base=$(
|
||||
skopeo inspect docker://$TOOLBOX_IMAGE 2>/dev/null |
|
||||
jq -r '.Labels["org.opencontainers.image.base.name"]')
|
||||
[[ "$base" == "$BASE_CI_IMAGE" ]]
|
||||
}
|
||||
|
||||
build_container() {
|
||||
local tmptag="localhost/rebuilt-tmp-tag"
|
||||
echo Rebuilding image: $BASE_CI_IMAGE
|
||||
echo Building $TOOLBOX_IMAGE from $BASE_CI_IMAGE
|
||||
|
||||
export BUILDAH_ISOLATION=chroot
|
||||
export BUILDAH_FORMAT=docker
|
||||
@ -89,59 +95,61 @@ build_container() {
|
||||
# glib2
|
||||
# )
|
||||
|
||||
buildah run $build_cntr sudo dnf install -y "${extra_packages[@]}"
|
||||
buildah run $build_cntr sudo dnf install -y "${our_extra_packages[@]}"
|
||||
buildah run $build_cntr dnf install -y "${extra_packages[@]}"
|
||||
buildah run $build_cntr dnf install -y "${our_extra_packages[@]}"
|
||||
# buildah run $build_cntr dnf debuginfo-install -y "${debug_packages[@]}"
|
||||
|
||||
buildah run $build_cntr sudo dnf clean all
|
||||
buildah run $build_cntr sudo rm -rf /var/lib/cache/dnf
|
||||
buildah run $build_cntr dnf clean all
|
||||
buildah run $build_cntr rm -rf /var/lib/cache/dnf
|
||||
|
||||
buildah config \
|
||||
--env RUSTUP_HOME="/usr/local/rustup" \
|
||||
--env CARGO_HOME="/usr/local/cargo/" \
|
||||
--env PATH="$PATH:/usr/local/cargo/bin/" \
|
||||
$build_cntr
|
||||
# random uid
|
||||
uid="10043"
|
||||
name="containeruser"
|
||||
buildah run $build_cntr -- groupadd $name -g $uid
|
||||
buildah run $build_cntr -- useradd -u $uid -g $uid -ms /bin/bash $name
|
||||
|
||||
buildah run $build_cntr -- usermod -aG wheel $name
|
||||
buildah run $build_cntr -- bash -c "echo $name ALL=\(ALL\) NOPASSWD:ALL > /etc/sudoers.d/$name"
|
||||
buildah run $build_cntr -- chmod 0440 /etc/sudoers.d/$name
|
||||
|
||||
# Remove the hardcoded HOME env var that ci-templates adds
|
||||
# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2433#note_2243222
|
||||
# Also add the OCI labels that toolbox expects, to advertize that the image is compatible
|
||||
# Also add the OCI labels that toolbox expects, to advertize that image is compatible
|
||||
# Additionally add a non-root default user
|
||||
buildah config --env HOME- \
|
||||
--user $name \
|
||||
--label com.github.containers.toolbox=true \
|
||||
--label org.opencontainers.image.base.name=$BASE_CI_IMAGE \
|
||||
$build_cntr
|
||||
|
||||
buildah commit $build_cntr $tmptag
|
||||
|
||||
# Retag the image to have the same tag as the base image
|
||||
buildah tag $tmptag $BASE_CI_IMAGE
|
||||
|
||||
# Unmount and remove the container
|
||||
buildah umount "$build_cntr"
|
||||
buildah rm "$build_cntr"
|
||||
buildah commit $build_cntr $TOOLBOX_IMAGE
|
||||
buildah tag $TOOLBOX_IMAGE $TOOLBOX_LATEST
|
||||
}
|
||||
|
||||
BASE_CI_IMAGE="$1"
|
||||
gstbranch="${GST_UPSTREAM_BRANCH:-main}"
|
||||
TOOLBOX_BRANCH="$2"
|
||||
GST_UPSTREAM_BRANCH="$3"
|
||||
|
||||
[[ -n "$BASE_CI_IMAGE" ]] ||
|
||||
die "Usage: $(basename $0) BASE_CI_IMAGE "
|
||||
TOOLBOX_IMAGE="$CI_REGISTRY_IMAGE/$FDO_REPO_SUFFIX:gst-toolbox-${TOOLBOX_BRANCH}"
|
||||
# push an unversioned tag to make it easier to use.
|
||||
# ex. pull foobar:toolbox-main
|
||||
TOOLBOX_LATEST="$CI_REGISTRY_IMAGE/$FDO_REPO_SUFFIX:gst-toolbox-${GST_UPSTREAM_BRANCH}"
|
||||
|
||||
[[ -n "$BASE_CI_IMAGE" && -n "$TOOLBOX_BRANCH" && -n "$GST_UPSTREAM_BRANCH" ]] ||
|
||||
die "Usage: $(basename $0) BASE_CI_IMAGE TOOLBOX TAG GST_UPSTREAM_BRANCH"
|
||||
|
||||
[[ -n "$CI_REGISTRY" && -n "$CI_REGISTRY_USER" && -n "$CI_REGISTRY_PASSWORD" ]] ||
|
||||
die "Insufficient information to log in."
|
||||
|
||||
podman login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
|
||||
build_container
|
||||
if ! check_image_base; then
|
||||
build_container
|
||||
|
||||
echo "Publishing $BASE_CI_IMAGE"
|
||||
podman push "$BASE_CI_IMAGE"
|
||||
|
||||
# Publish an unversioned ref as well that we can always fetch
|
||||
if [ "$CI_COMMIT_BRANCH" == "main" ] && [ "$CI_PROJECT_NAMESAPCE" == "gstreamer" ]; then
|
||||
latest="$CI_REGISTRY_IMAGE/$FDO_REPO_SUFFIX:gst-toolbox-main"
|
||||
podman tag "$BASE_CI_IMAGE" "$latest"
|
||||
podman push "$latest"
|
||||
podman push "$TOOLBOX_IMAGE"
|
||||
podman push "$TOOLBOX_LATEST"
|
||||
fi
|
||||
|
||||
echo "Create your toolbox with either of the following commands"
|
||||
echo " $ toolbox create gst-$gstbranch --image $BASE_CI_IMAGE"
|
||||
echo " $ toolbox create gst-toolbox --image $TOOLBOX_LATEST"
|
||||
echo " $ toolbox create gst-toolbox-$TOOLBOX_BRANCH --image $TOOLBOX_IMAGE"
|
||||
|
@ -22,7 +22,7 @@ if __name__ == "__main__":
|
||||
with open(diffname, 'w') as diff:
|
||||
subprocess.check_call(['git', 'diff'], stdout=diff)
|
||||
print(f'\033[91mYou have a diff in the {opts.name}. Please update with:\033[0m')
|
||||
print(' $ curl -L %s/%s | git apply -' %
|
||||
print(' $ curl %s/%s | git apply -' %
|
||||
(os.environ.get('CI_ARTIFACTS_URL', "NOT_RUNNING_ON_CI"), diffname.replace('../', '')))
|
||||
|
||||
if res != 0:
|
||||
|
@ -1,12 +0,0 @@
|
||||
#! /bin/bash
|
||||
|
||||
# Create a file we can check at runtime, and identify if the environment we
|
||||
# run against is one of our CI build images.
|
||||
# Useful mostly for our internal scripts so we can match against metadata
|
||||
# rather than heuristics, ex. if /subprojects exists
|
||||
#
|
||||
# Conceptually similar to /.flatpak-info
|
||||
# We can also later on add various metadata once we need to.
|
||||
# Preferebly in an .ini format
|
||||
touch /.gstreamer-ci-linux-image
|
||||
chmod 644 /.gstreamer-ci-linux-image
|
@ -1,12 +0,0 @@
|
||||
#! /bin/bash
|
||||
|
||||
set -eux
|
||||
|
||||
uid="10043"
|
||||
name="containeruser"
|
||||
groupadd $name -g $uid
|
||||
useradd -u $uid -g $uid -ms /bin/bash $name
|
||||
|
||||
usermod -aG wheel $name || usermod -aG sudo $name
|
||||
bash -c "echo $name ALL=\(ALL\) NOPASSWD:ALL > /etc/sudoers.d/$name"
|
||||
chmod 0440 /etc/sudoers.d/$name
|
@ -1,10 +0,0 @@
|
||||
# We are currently running pip as root which will cause it
|
||||
# to install into /root/.local cause it wants to do a user install
|
||||
# Set the user-base in the gloabl config, /etc/pip.conf, so pip will
|
||||
# both install there and subsequently look there if we invoke it
|
||||
# from any other user.
|
||||
# This makes pip install ofc require elevated permissions, as it
|
||||
# will be writting into /usr/local from now on
|
||||
python3 -m pip config --global set global.user-base /usr/local/
|
||||
# Disable the cache as we'd be removing it at the end of the image build anyway
|
||||
python3 -m pip config --global set global.no-cache-dir true
|
@ -2,17 +2,11 @@
|
||||
|
||||
set -eux
|
||||
|
||||
# Avoid the cache being owned by root
|
||||
# and make sure its readable to anyone
|
||||
sudo mkdir -p /var/cache/subprojects/
|
||||
sudo chown containeruser:containeruser --recursive /var/cache/subprojects/
|
||||
sudo chmod --recursive a+r /var/cache/subprojects/
|
||||
|
||||
# Path where cbuild checks out the repo
|
||||
cd /tmp/clone/
|
||||
sudo chmod --recursive a+r /tmp/clone
|
||||
sudo chown containeruser:containeruser --recursive /tmp/clone
|
||||
# get gstreamer and make all subprojects available
|
||||
git submodule update --init --depth=1
|
||||
meson subprojects download
|
||||
./ci/scripts/handle-subprojects-cache.py --build --cache-dir /var/cache/subprojects/ /tmp/clone/subprojects/
|
||||
git clone -b "${GIT_BRANCH}" "${GIT_URL}" /gstreamer
|
||||
git -C /gstreamer submodule update --init --depth=1
|
||||
meson subprojects download --sourcedir /gstreamer
|
||||
./ci/scripts/handle-subprojects-cache.py --build --cache-dir /subprojects /gstreamer/subprojects/
|
||||
|
||||
# Now remove the gstreamer clone
|
||||
rm -rf /gstreamer
|
||||
|
@ -12,7 +12,7 @@ import subprocess
|
||||
PARSER = argparse.ArgumentParser()
|
||||
PARSER.add_argument('subprojects_dir')
|
||||
PARSER.add_argument('--build', action="store_true", default=False)
|
||||
PARSER.add_argument('--cache-dir', default="/var/cache/subprojects/")
|
||||
PARSER.add_argument('--cache-dir', default="/subprojects")
|
||||
|
||||
|
||||
def create_cache_in_image(options):
|
||||
|
@ -3,30 +3,23 @@
|
||||
set -eux
|
||||
|
||||
# Install Rust
|
||||
RUSTUP_VERSION=1.28.1
|
||||
RUST_VERSION=1.89.0
|
||||
RUSTUP_VERSION=1.27.1
|
||||
RUST_VERSION=1.85.0
|
||||
RUST_ARCH="x86_64-unknown-linux-gnu"
|
||||
|
||||
RUSTUP_URL=https://static.rust-lang.org/rustup/archive/$RUSTUP_VERSION/$RUST_ARCH/rustup-init
|
||||
curl -o /tmp/rustup-init $RUSTUP_URL
|
||||
curl -o rustup-init $RUSTUP_URL
|
||||
|
||||
export RUSTUP_HOME="/usr/local/rustup"
|
||||
export CARGO_HOME="/usr/local/cargo"
|
||||
export PATH="/usr/local/cargo/bin:$PATH"
|
||||
|
||||
chmod +x /tmp/rustup-init;
|
||||
sudo --preserve-env=RUSTUP_HOME,CARGO_HOME,PATH /tmp/rustup-init -y --no-modify-path --default-toolchain $RUST_VERSION;
|
||||
rm /tmp/rustup-init;
|
||||
chmod +x rustup-init;
|
||||
./rustup-init -y --no-modify-path --default-toolchain $RUST_VERSION;
|
||||
rm rustup-init;
|
||||
chmod -R a+w $RUSTUP_HOME $CARGO_HOME
|
||||
|
||||
# We are root while creating the directory, but we want it to
|
||||
# be accessible to all users
|
||||
sudo mkdir -p $RUSTUP_HOME $CARGO_HOME
|
||||
sudo chmod -R a+w $RUSTUP_HOME $CARGO_HOME
|
||||
|
||||
cargo install --locked cargo-c --version 0.10.15+cargo-0.90.0
|
||||
# We don't need them in the build image and they occupy
|
||||
# 600mb of html files (athough they compress extremely well)
|
||||
rustup component remove rust-docs
|
||||
cargo install --locked cargo-c --version 0.10.11+cargo-0.86.0
|
||||
|
||||
rustup --version
|
||||
cargo --version
|
||||
|
@ -1,31 +1,12 @@
|
||||
#! /bin/bash
|
||||
|
||||
image_cache="${SUBPROJECTS_CACHE_DIR:-}"
|
||||
ci_image_info="/.gstreamer-ci-linux-image";
|
||||
|
||||
# Print useful metadata at the start of the build
|
||||
if [[ -e "/etc/os-release" ]]; then
|
||||
cat /etc/os-release
|
||||
fi
|
||||
|
||||
if [[ -e "$ci_image_info" && -n "${CI:-}" ]]; then
|
||||
if [[ -z "$image_cache" ]]; then
|
||||
echo "Running in CI but haven't defined SUBPROJECTS_CACHE_DIR"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
whoami
|
||||
id -u
|
||||
id -g
|
||||
date && date -u
|
||||
echo $SHELL
|
||||
echo $PATH
|
||||
|
||||
# On the CI image we install the rust toolcahin under this path
|
||||
# set the HOME and PATH variables and print the versions
|
||||
# If it exists set the HOME and PATH variables and print the versions
|
||||
# of what we have installed
|
||||
if [[ -e "$ci_image_info" ]]; then
|
||||
cargo_binary="/usr/local/cargo/bin/cargo";
|
||||
if [[ -e "$cargo_binary" ]]; then
|
||||
export RUSTUP_HOME="/usr/local/rustup"
|
||||
export CARGO_HOME="/usr/local/cargo"
|
||||
export PATH="/usr/local/cargo/bin:$PATH"
|
||||
@ -36,32 +17,9 @@ if [[ -e "$ci_image_info" ]]; then
|
||||
cargo cinstall --version
|
||||
fi
|
||||
|
||||
if [[ -e "$ci_image_info" ]]; then
|
||||
who="$(whoami)"
|
||||
# Assert we always use the epxected user in ci jobs
|
||||
if [[ $who != "containeruser" && -n "${CI:-}" ]]; then
|
||||
echo "Running as the wrong user in a CI job"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Chown the project directory to match the user we run against.
|
||||
# Sometimes, gitlab runners will reuse pre-existing checkouts from other jobs
|
||||
# which might not have been running as our contianeruser, and thus the files won't
|
||||
# have the expected owenership.
|
||||
# Always chown until we have cycled out all the cached volumes from the runners.
|
||||
if [[ -n "${CI:-}" ]]; then
|
||||
sudo chown containeruser:containeruser --recursive .
|
||||
|
||||
# Make sure the directory exists
|
||||
sudo mkdir -p "${CCACHE_DIR}"
|
||||
sudo chown containeruser:containeruser --recursive "${CCACHE_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Only copy the cache over if the variable is set, which usually only happens on CI.
|
||||
if [ -n "$image_cache" ]; then
|
||||
date -R
|
||||
ci/scripts/handle-subprojects-cache.py --cache-dir "$image_cache" subprojects/
|
||||
date -R
|
||||
fi
|
||||
|
||||
|
@ -15629,7 +15629,7 @@ contains one frame)</doc>
|
||||
<source-position filename="../subprojects/gst-editing-services/ges/ges-version.h"/>
|
||||
<type name="gint" c:type="gint"/>
|
||||
</constant>
|
||||
<constant name="VERSION_MICRO" value="1" c:type="GES_VERSION_MICRO">
|
||||
<constant name="VERSION_MICRO" value="0" c:type="GES_VERSION_MICRO">
|
||||
<source-position filename="../subprojects/gst-editing-services/ges/ges-version.h"/>
|
||||
<type name="gint" c:type="gint"/>
|
||||
</constant>
|
||||
|
2308
girs/Gst-1.0.gir
2308
girs/Gst-1.0.gir
File diff suppressed because it is too large
Load Diff
@ -330,43 +330,6 @@ The memory is only mmapped on gst_buffer_map() request.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function>
|
||||
<function name="alloc_full" c:identifier="gst_fd_allocator_alloc_full" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">Return a %GstMemory that wraps a generic file descriptor.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.h"/>
|
||||
<return-value transfer-ownership="full" nullable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">a GstMemory based on @allocator.
|
||||
When the buffer will be released the allocator will close the @fd unless
|
||||
the %GST_FD_MEMORY_FLAG_DONT_CLOSE flag is specified.
|
||||
The memory is only mmapped on gst_buffer_map() request.</doc>
|
||||
<type name="Gst.Memory" c:type="GstMemory*"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<parameter name="allocator" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">allocator to be used for this memory</doc>
|
||||
<type name="Gst.Allocator" c:type="GstAllocator*"/>
|
||||
</parameter>
|
||||
<parameter name="fd" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">file descriptor</doc>
|
||||
<type name="gint" c:type="gint"/>
|
||||
</parameter>
|
||||
<parameter name="maxsize" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">the total size of the memory represented by @fd</doc>
|
||||
<type name="gsize" c:type="gsize"/>
|
||||
</parameter>
|
||||
<parameter name="offset" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">the offset of valid data in the memory</doc>
|
||||
<type name="gsize" c:type="gsize"/>
|
||||
</parameter>
|
||||
<parameter name="size" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">the size of valid data in the memory</doc>
|
||||
<type name="gsize" c:type="gsize"/>
|
||||
</parameter>
|
||||
<parameter name="flags" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstfdmemory.c">extra #GstFdMemoryFlags</doc>
|
||||
<type name="FdMemoryFlags" c:type="GstFdMemoryFlags"/>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function>
|
||||
<field name="parent">
|
||||
<type name="Gst.Allocator" c:type="GstAllocator"/>
|
||||
</field>
|
||||
@ -512,10 +475,6 @@ gst_shm_allocator_init_once() has not been previously called.</doc>
|
||||
<type name="none" c:type="void"/>
|
||||
</return-value>
|
||||
</function>
|
||||
<field name="parent_instance" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstshmallocator.h">Parent instance.</doc>
|
||||
<type name="FdAllocator" c:type="GstFdAllocator"/>
|
||||
</field>
|
||||
</class>
|
||||
<record name="ShmAllocatorClass" c:type="GstShmAllocatorClass" glib:is-gtype-struct-for="ShmAllocator">
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/allocators/gstshmallocator.h"/>
|
||||
|
@ -12,172 +12,6 @@ and/or use gtk-doc annotations. -->
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsmeta.h"/>
|
||||
<type name="guintptr" c:type="guintptr"/>
|
||||
</alias>
|
||||
<record name="BatchBuffer" c:type="GstAnalyticsBatchBuffer" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h">The intended use of this struct is that analytics elements read the buffer or
|
||||
buffer list and potentially attach new #GstMeta with additional information.
|
||||
Only one of @buffer or @buffer_list is going to be set, or both are %NULL.
|
||||
|
||||
Elements that need to modify @buffer (e.g. to attach a new meta) must first
|
||||
call gst_buffer_make_writable() and store the writable buffer in this struct.
|
||||
Similarly, a writable @buffer_list must be ensured with
|
||||
gst_buffer_list_make_writable().
|
||||
|
||||
Modifying any other fields must be done with special care to ensure that the
|
||||
data flow of the stream is not broken.
|
||||
|
||||
It is possible for @buffer and @buffer_list to be %NULL, e.g. if there was no
|
||||
buffer for this batch but there were serialized events like a gap event.
|
||||
|
||||
Note that @serialized_events always contains all currently active serialized
|
||||
events and not only the changed events compared to the previous buffer.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h"/>
|
||||
<field name="sticky_events" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h">All sticky #GstEvent that relate to this buffer</doc>
|
||||
<array length="1" zero-terminated="0" c:type="GstEvent**">
|
||||
<type name="Gst.Event" c:type="GstEvent*"/>
|
||||
</array>
|
||||
</field>
|
||||
<field name="n_sticky_events" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h">Number of sticky events.</doc>
|
||||
<type name="gsize" c:type="gsize"/>
|
||||
</field>
|
||||
<field name="serialized_events" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h">All non-sticky, serialized #GstEvent that arrived
|
||||
after the previous and before this buffer</doc>
|
||||
<array length="3" zero-terminated="0" c:type="GstEvent**">
|
||||
<type name="Gst.Event" c:type="GstEvent*"/>
|
||||
</array>
|
||||
</field>
|
||||
<field name="n_serialized_events" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h">Number of serialized events.</doc>
|
||||
<type name="gsize" c:type="gsize"/>
|
||||
</field>
|
||||
<field name="buffer" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h">The buffer, if any.</doc>
|
||||
<type name="Gst.Buffer" c:type="GstBuffer*"/>
|
||||
</field>
|
||||
<field name="buffer_list" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h">The buffer list, if any.</doc>
|
||||
<type name="Gst.BufferList" c:type="GstBufferList*"/>
|
||||
</field>
|
||||
<field name="padding" readable="0" private="1">
|
||||
<array zero-terminated="0" fixed-size="4">
|
||||
<type name="gpointer" c:type="gpointer"/>
|
||||
</array>
|
||||
</field>
|
||||
<method name="get_caps" c:identifier="gst_analytics_batch_buffer_get_caps" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.c">Gets the #GstCaps from a buffer</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h"/>
|
||||
<return-value transfer-ownership="none" nullable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.c">The #GstCaps if there are any</doc>
|
||||
<type name="Gst.Caps" c:type="GstCaps*"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<instance-parameter name="buffer" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.c">A #GstAnalyticsBatchBuffer</doc>
|
||||
<type name="BatchBuffer" c:type="GstAnalyticsBatchBuffer*"/>
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="get_segment" c:identifier="gst_analytics_batch_buffer_get_segment" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.c">Gets the #GstSegment from a buffer</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h"/>
|
||||
<return-value transfer-ownership="none" nullable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.c">The #GstSegment if there is one</doc>
|
||||
<type name="Gst.Segment" c:type="const GstSegment*"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<instance-parameter name="buffer" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.c">A #GstAnalyticsBatchBuffer</doc>
|
||||
<type name="BatchBuffer" c:type="GstAnalyticsBatchBuffer*"/>
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="get_stream_id" c:identifier="gst_analytics_batch_buffer_get_stream_id" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.c">Gets the current stream id from a buffer</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h"/>
|
||||
<return-value transfer-ownership="none" nullable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.c">The stream id if there is any</doc>
|
||||
<type name="utf8" c:type="const gchar*"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<instance-parameter name="buffer" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.c">A #GstAnalyticsBatchBuffer</doc>
|
||||
<type name="BatchBuffer" c:type="GstAnalyticsBatchBuffer*"/>
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
</record>
|
||||
<record name="BatchMeta" c:type="GstAnalyticsBatchMeta" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h">This meta represents a batch of buffers from one or more streams together
|
||||
with the relevant events to be able to interpret the buffers and to be able
|
||||
to reconstruct the original streams.
|
||||
|
||||
When used for multiple streams and batching them temporarily, caps of type
|
||||
`multistream/x-analytics-batch(meta:GstAnalyticsBatchMeta)` should be used,
|
||||
with the original caps of each stream in an array-typed `streams` field. The
|
||||
original caps of each stream might be extended by additional fields and the
|
||||
order of the streams in the array corresponds to the order of the @streams
|
||||
array of the meta. In this case, empty buffers would be used without any
|
||||
#GstMemory and
|
||||
|
||||
When used for a single stream, the original caps might be used together with
|
||||
the `meta:GstAnalyticsBatchMeta` caps feature and potentially extended by
|
||||
additional fields to describe the kind of batching and its configuration,
|
||||
e.g. that each batch is made of 25% overlapping 320x320 slices of the
|
||||
original video frame.
|
||||
|
||||
The timestamp, duration and other metadata of each batch can be retrieved
|
||||
from the parent buffer of this meta.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h"/>
|
||||
<field name="meta" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h">parent</doc>
|
||||
<type name="Gst.Meta" c:type="GstMeta"/>
|
||||
</field>
|
||||
<field name="streams" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h">#GstAnalyticsBatchStream for this batch</doc>
|
||||
<array length="2" zero-terminated="0" c:type="GstAnalyticsBatchStream*">
|
||||
<type name="BatchStream" c:type="GstAnalyticsBatchStream"/>
|
||||
</array>
|
||||
</field>
|
||||
<field name="n_streams" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h">Number of streams</doc>
|
||||
<type name="gsize" c:type="gsize"/>
|
||||
</field>
|
||||
<function name="get_info" c:identifier="gst_analytics_batch_meta_get_info" version="1.28" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
|
||||
</return-value>
|
||||
</function>
|
||||
</record>
|
||||
<record name="BatchStream" c:type="GstAnalyticsBatchStream" version="1.28">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h"/>
|
||||
<field name="index" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h">Index of the stream in the meta's stream array</doc>
|
||||
<type name="guint" c:type="guint"/>
|
||||
</field>
|
||||
<field name="buffers" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h">#GstAnalyticsBatchBuffer in this batch for this stream</doc>
|
||||
<array length="2" zero-terminated="0" c:type="GstAnalyticsBatchBuffer*">
|
||||
<type name="BatchBuffer" c:type="GstAnalyticsBatchBuffer"/>
|
||||
</array>
|
||||
</field>
|
||||
<field name="n_buffers" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h">Number of buffers</doc>
|
||||
<type name="gsize" c:type="gsize"/>
|
||||
</field>
|
||||
<field name="padding" readable="0" private="1">
|
||||
<array zero-terminated="0" fixed-size="4">
|
||||
<type name="gpointer" c:type="gpointer"/>
|
||||
</array>
|
||||
</field>
|
||||
</record>
|
||||
<constant name="CAPS_FEATURE_META_GST_ANALYTICS_BATCH_META" value="meta:GstAnalyticsBatchMeta" c:type="GST_CAPS_FEATURE_META_GST_ANALYTICS_BATCH_META" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h">The caps feature to be used on streams that make use of this meta.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h"/>
|
||||
<type name="utf8" c:type="gchar*"/>
|
||||
</constant>
|
||||
<record name="ClsMtd" c:type="GstAnalyticsClsMtd" version="1.24">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsclassificationmtd.h">Handle containing data required to use gst_analytics_cls_mtd APIs. This type
|
||||
is generally expected to be allocated on the stack.</doc>
|
||||
@ -1468,10 +1302,7 @@ pixel to instance of an object is identified.</doc>
|
||||
</constructor>
|
||||
<constructor name="new_simple" c:identifier="gst_tensor_new_simple" version="1.26">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c">Allocates a new #GstTensor of @dims_order ROW_MAJOR or COLUMN_MAJOR and
|
||||
with an interleaved layout.
|
||||
|
||||
For example, a two-dimensional tensor with 32 rows and 4 columns, @dims would
|
||||
be the two element array `[32, 4]`.</doc>
|
||||
with an interleaved layout</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h"/>
|
||||
<return-value transfer-ownership="full">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c">A newly allocated #GstTensor</doc>
|
||||
@ -1499,49 +1330,14 @@ be the two element array `[32, 4]`.</doc>
|
||||
<type name="gsize" c:type="gsize"/>
|
||||
</parameter>
|
||||
<parameter name="dims" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c">size of tensor in each dimension.
|
||||
A value of 0 means the dimension is dynamic.</doc>
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c">tensor dimensions. Value of 0 mean the
|
||||
dimension is dynamic.</doc>
|
||||
<array length="4" zero-terminated="0" c:type="gsize*">
|
||||
<type name="gsize" c:type="gsize"/>
|
||||
</array>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</constructor>
|
||||
<method name="check_type" c:identifier="gst_tensor_check_type" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c">Validate the tensor whether it mathces the reading order, dimensions and the data type.
|
||||
Validate whether the #GstBuffer has enough size to hold the tensor data.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c">TRUE if the #GstTensor has the reading order from the memory matching @order,
|
||||
dimensions matching @num_dims, data type matching @data_type
|
||||
Otherwise FALSE will be returned.</doc>
|
||||
<type name="gboolean" c:type="gboolean"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<instance-parameter name="tensor" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c">A #GstTensor</doc>
|
||||
<type name="Tensor" c:type="const GstTensor*"/>
|
||||
</instance-parameter>
|
||||
<parameter name="data_type" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c">The data type of the tensor</doc>
|
||||
<type name="TensorDataType" c:type="GstTensorDataType"/>
|
||||
</parameter>
|
||||
<parameter name="order" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c">The order of the tensor to read from the memory</doc>
|
||||
<type name="TensorDimOrder" c:type="GstTensorDimOrder"/>
|
||||
</parameter>
|
||||
<parameter name="num_dims" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c">The number of dimensions that the tensor can have</doc>
|
||||
<type name="gsize" c:type="gsize"/>
|
||||
</parameter>
|
||||
<parameter name="dims" transfer-ownership="none" nullable="1" allow-none="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c">An optional array of dimensions, where G_MAXSIZE means ANY.</doc>
|
||||
<array length="2" zero-terminated="0" c:type="const gsize*">
|
||||
<type name="gsize" c:type="gsize"/>
|
||||
</array>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="copy" c:identifier="gst_tensor_copy" version="1.26">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c">Create a copy of @tensor.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h"/>
|
||||
@ -1589,20 +1385,6 @@ Otherwise FALSE will be returned.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<function name="data_type_get_name" c:identifier="gst_tensor_data_type_get_name" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c">Get a string version of the data type</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c">a constant string with the name of the data type</doc>
|
||||
<type name="utf8" c:type="const gchar*"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<parameter name="data_type" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c">a #GstTensorDataType</doc>
|
||||
<type name="TensorDataType" c:type="GstTensorDataType"/>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function>
|
||||
</record>
|
||||
<enumeration name="TensorDataType" version="1.26" c:type="GstTensorDataType">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h">Describe the type of data contain in the tensor.</doc>
|
||||
@ -1649,34 +1431,6 @@ Otherwise FALSE will be returned.</doc>
|
||||
<member name="bfloat16" value="13" c:identifier="GST_TENSOR_DATA_TYPE_BFLOAT16">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h">"brain" 16 bit floating point tensor data</doc>
|
||||
</member>
|
||||
<member name="string" value="14" c:identifier="GST_TENSOR_DATA_TYPE_STRING" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h">UTF-8 string</doc>
|
||||
</member>
|
||||
<member name="bool" value="15" c:identifier="GST_TENSOR_DATA_TYPE_BOOL" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h">A boolean value stored in 1 byte.</doc>
|
||||
</member>
|
||||
<member name="complex64" value="16" c:identifier="GST_TENSOR_DATA_TYPE_COMPLEX64" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h">A 64-bit complex number stored in 2 32-bit values.</doc>
|
||||
</member>
|
||||
<member name="complex128" value="17" c:identifier="GST_TENSOR_DATA_TYPE_COMPLEX128" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h">A 128-bit complex number stored in 2 64-bit values.</doc>
|
||||
</member>
|
||||
<member name="float8e4m3fn" value="18" c:identifier="GST_TENSOR_DATA_TYPE_FLOAT8E4M3FN" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h">A non-IEEE 8-bit floating point format with 4 exponent bits and 3 mantissa bits, with NaN and no infinite values (FN).
|
||||
See [this paper for more details](https://onnx.ai/onnx/technical/float8.html)</doc>
|
||||
</member>
|
||||
<member name="float8e4m3fnuz" value="19" c:identifier="GST_TENSOR_DATA_TYPE_FLOAT8E4M3FNUZ" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h">A non-IEEE 8-bit floating point format with 4 exponent bits and 3 mantissa bits, with NaN, no infinite values (FN) and no negative zero (UZ).
|
||||
See [this paper for more details](https://onnx.ai/onnx/technical/float8.html)</doc>
|
||||
</member>
|
||||
<member name="float8e5m2" value="20" c:identifier="GST_TENSOR_DATA_TYPE_FLOAT8E5M2" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h">A non-IEEE 8-bit floating point format with 5 exponent bits and 2 mantissa bits.
|
||||
See [this paper for more details](https://onnx.ai/onnx/technical/float8.html)</doc>
|
||||
</member>
|
||||
<member name="float8e5m2fnuz" value="21" c:identifier="GST_TENSOR_DATA_TYPE_FLOAT8E5M2FNUZ" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h">A non-IEEE 8-bit floating point format with 5 exponent bits and 2 mantissa bits, with NaN, no infinite values (FN) and no negative zero (UZ).
|
||||
See [this paper for more details](https://onnx.ai/onnx/technical/float8.html)</doc>
|
||||
</member>
|
||||
</enumeration>
|
||||
<enumeration name="TensorDimOrder" version="1.26" c:type="GstTensorDimOrder">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h">Indicate to read tensor from memory in row-major or column-major order.</doc>
|
||||
@ -1727,25 +1481,6 @@ smaller than #GstTensorMeta.num_tensors</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="get_by_id" c:identifier="gst_tensor_meta_get_by_id" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c">Get the first tensor from the #GstTensorMeta identified by @id.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.h"/>
|
||||
<return-value transfer-ownership="none" nullable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c">a GstTensor with id matching @id.
|
||||
Otherwise NULL will be returned.</doc>
|
||||
<type name="Tensor" c:type="const GstTensor*"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<instance-parameter name="tmeta" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c">A #GstTensorMeta</doc>
|
||||
<type name="TensorMeta" c:type="GstTensorMeta*"/>
|
||||
</instance-parameter>
|
||||
<parameter name="id" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c">A #GQuark identifying tensor-encoding</doc>
|
||||
<type name="GLib.Quark" c:type="GQuark"/>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="get_index_from_id" c:identifier="gst_tensor_meta_get_index_from_id" version="1.26">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c">Finds the first tensor with the requsted ID in the meta</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.h"/>
|
||||
@ -1765,46 +1500,6 @@ Otherwise NULL will be returned.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="get_typed_tensor" c:identifier="gst_tensor_meta_get_typed_tensor" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c">Get the first tensor from the #GstTensorMeta identified by
|
||||
@tensor_id, matching the reading order, dimensions and the data
|
||||
type and optionally the dimensions. Validate whether the
|
||||
#GstBuffer has enough size to hold the tensor data.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.h"/>
|
||||
<return-value transfer-ownership="none" nullable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c">a matching #GstTensor,
|
||||
otherwise NULL</doc>
|
||||
<type name="Tensor" c:type="const GstTensor*"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<instance-parameter name="tmeta" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c">A #GstTensorMeta</doc>
|
||||
<type name="TensorMeta" c:type="GstTensorMeta*"/>
|
||||
</instance-parameter>
|
||||
<parameter name="tensor_id" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c">A #GQuark identifying the tensor-encoding</doc>
|
||||
<type name="GLib.Quark" c:type="GQuark"/>
|
||||
</parameter>
|
||||
<parameter name="data_type" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c">The data type of the tensor</doc>
|
||||
<type name="TensorDataType" c:type="GstTensorDataType"/>
|
||||
</parameter>
|
||||
<parameter name="order" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c">The order of the tensor to read from the memory</doc>
|
||||
<type name="TensorDimOrder" c:type="GstTensorDimOrder"/>
|
||||
</parameter>
|
||||
<parameter name="num_dims" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c">The number of dimensions that the tensor can have</doc>
|
||||
<type name="gsize" c:type="gsize"/>
|
||||
</parameter>
|
||||
<parameter name="dims" transfer-ownership="none" nullable="1" allow-none="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c">An optional array of dimensions, where G_MAXSIZE means ANY.</doc>
|
||||
<array length="3" zero-terminated="0" c:type="const gsize*">
|
||||
<type name="gsize" c:type="gsize"/>
|
||||
</array>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="set" c:identifier="gst_tensor_meta_set" version="1.26">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c">Sets tensors into the #GstTensorMeta</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.h"/>
|
||||
@ -1917,32 +1612,6 @@ Get the opaque id identifying the relatable type</doc>
|
||||
</return-value>
|
||||
</function>
|
||||
</record>
|
||||
<function name="batch_meta_api_get_type" c:identifier="gst_analytics_batch_meta_api_get_type" version="1.28" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<type name="GType" c:type="GType"/>
|
||||
</return-value>
|
||||
</function>
|
||||
<function name="batch_meta_get_info" c:identifier="gst_analytics_batch_meta_get_info" moved-to="BatchMeta.get_info" version="1.28" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
|
||||
</return-value>
|
||||
</function>
|
||||
<function name="buffer_add_analytics_batch_meta" c:identifier="gst_buffer_add_analytics_batch_meta" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.c">Adds a #GstAnalyticsBatchMeta to a buffer or returns the existing one</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.c">The new #GstAnalyticsBatchMeta</doc>
|
||||
<type name="BatchMeta" c:type="GstAnalyticsBatchMeta*"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<parameter name="buffer" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.c">A writable #GstBuffer</doc>
|
||||
<type name="Gst.Buffer" c:type="GstBuffer*"/>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function>
|
||||
<function name="buffer_add_analytics_relation_meta" c:identifier="gst_buffer_add_analytics_relation_meta" version="1.24">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsmeta.c">Attach a analysis-results-meta-relation meta (#GstAnalyticsRelationMeta)to @buffer.
|
||||
|
||||
@ -1983,7 +1652,7 @@ analysis meta.</doc>
|
||||
</parameters>
|
||||
</function>
|
||||
<function name="buffer_add_tensor_meta" c:identifier="gst_buffer_add_tensor_meta" version="1.26">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c">Adds a #GstTensorMeta to a buffer</doc>
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c">Adds a #GstTensorMeta to a buffer or returns the existing one</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c">The new #GstTensorMeta</doc>
|
||||
@ -1996,20 +1665,6 @@ analysis meta.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function>
|
||||
<function name="buffer_get_analytics_batch_meta" c:identifier="gst_buffer_get_analytics_batch_meta" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.c">Gets the #GstAnalyticsBatchMeta from a buffer</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.h"/>
|
||||
<return-value transfer-ownership="none" nullable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.c">The #GstAnalyticsBatchMeta if there is one</doc>
|
||||
<type name="BatchMeta" c:type="GstAnalyticsBatchMeta*"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<parameter name="buffer" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsbatchmeta.c">A #GstBuffer</doc>
|
||||
<type name="Gst.Buffer" c:type="GstBuffer*"/>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function>
|
||||
<function name="buffer_get_analytics_relation_meta" c:identifier="gst_buffer_get_analytics_relation_meta" version="1.24">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsmeta.c">Retrives the meta or %NULL if it doesn't exist</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsmeta.h"/>
|
||||
@ -2069,94 +1724,6 @@ desired to track an object across many frames. This type of metadata holds
|
||||
information about the tracking, for example, it can be used alongside a
|
||||
#GstAnalyticsODMtd to track an object.</doc>
|
||||
</docsection>
|
||||
<function name="image_util_iou_float" c:identifier="gst_analytics_image_util_iou_float" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">Calculate the intersection over the union (IoU) of the two areas defined by
|
||||
the bounding box 1 and bounding box 2. IoU is a measure of how much two
|
||||
regions overlap.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">IoU of bb1 and bb2.</doc>
|
||||
<type name="gfloat" c:type="gfloat"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<parameter name="bb1_x" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">Bounding box 1, X coordinate</doc>
|
||||
<type name="gfloat" c:type="gfloat"/>
|
||||
</parameter>
|
||||
<parameter name="bb1_y" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">Bounding box 1, Y coordinate</doc>
|
||||
<type name="gfloat" c:type="gfloat"/>
|
||||
</parameter>
|
||||
<parameter name="bb1_w" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">Bounding box 1, width</doc>
|
||||
<type name="gfloat" c:type="gfloat"/>
|
||||
</parameter>
|
||||
<parameter name="bb1_h" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">Bounding box 1, height</doc>
|
||||
<type name="gfloat" c:type="gfloat"/>
|
||||
</parameter>
|
||||
<parameter name="bb2_x" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">Bounding box 2, X coordinate</doc>
|
||||
<type name="gfloat" c:type="gfloat"/>
|
||||
</parameter>
|
||||
<parameter name="bb2_y" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">Bounding box 2, Y coordinate</doc>
|
||||
<type name="gfloat" c:type="gfloat"/>
|
||||
</parameter>
|
||||
<parameter name="bb2_w" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">Bounding box 2, width</doc>
|
||||
<type name="gfloat" c:type="gfloat"/>
|
||||
</parameter>
|
||||
<parameter name="bb2_h" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">Bounding box 2, height</doc>
|
||||
<type name="gfloat" c:type="gfloat"/>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function>
|
||||
<function name="image_util_iou_int" c:identifier="gst_analytics_image_util_iou_int" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">Calculate the intersection over the union (IoU) of the two areas defined by
|
||||
the bounding box 1 and bounding box 2. IoU is a measure of how much two
|
||||
regions overlap.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">IoU of bb1 and bb2.</doc>
|
||||
<type name="gfloat" c:type="gfloat"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<parameter name="bb1_x" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">Bounding box 1, X coordinate</doc>
|
||||
<type name="gint" c:type="gint"/>
|
||||
</parameter>
|
||||
<parameter name="bb1_y" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">Bounding box 1, Y coordinate</doc>
|
||||
<type name="gint" c:type="gint"/>
|
||||
</parameter>
|
||||
<parameter name="bb1_w" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">Bounding box 1, width</doc>
|
||||
<type name="gint" c:type="gint"/>
|
||||
</parameter>
|
||||
<parameter name="bb1_h" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">Bounding box 1, height</doc>
|
||||
<type name="gint" c:type="gint"/>
|
||||
</parameter>
|
||||
<parameter name="bb2_x" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">Bounding box 2, X coordinate</doc>
|
||||
<type name="gint" c:type="gint"/>
|
||||
</parameter>
|
||||
<parameter name="bb2_y" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">Bounding box 2, Y coordinate</doc>
|
||||
<type name="gint" c:type="gint"/>
|
||||
</parameter>
|
||||
<parameter name="bb2_w" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">Bounding box 2, width</doc>
|
||||
<type name="gint" c:type="gint"/>
|
||||
</parameter>
|
||||
<parameter name="bb2_h" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalytics_image_util.c">Bounding box 2, height</doc>
|
||||
<type name="gint" c:type="gint"/>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function>
|
||||
<function name="mtd_type_get_name" c:identifier="gst_analytics_mtd_type_get_name" moved-to="Mtd.type_get_name" version="1.24">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsmeta.c">Gets the string version of the name of this type of analytics data</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsmeta.h"/>
|
||||
@ -2217,20 +1784,6 @@ metadata type.</doc>
|
||||
<type name="MtdType" c:type="GstAnalyticsMtdType"/>
|
||||
</return-value>
|
||||
</function>
|
||||
<function name="tensor_data_type_get_name" c:identifier="gst_tensor_data_type_get_name" moved-to="Tensor.data_type_get_name" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c">Get a string version of the data type</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c">a constant string with the name of the data type</doc>
|
||||
<type name="utf8" c:type="const gchar*"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<parameter name="data_type" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c">a #GstTensorDataType</doc>
|
||||
<type name="TensorDataType" c:type="GstTensorDataType"/>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function>
|
||||
<function name="tensor_meta_api_get_type" c:identifier="gst_tensor_meta_api_get_type" version="1.26" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
|
@ -7,20 +7,6 @@ and/or use gtk-doc annotations. -->
|
||||
<package name="gstreamer-app-1.0"/>
|
||||
<c:include name="gst/app/app.h"/>
|
||||
<namespace name="GstApp" version="1.0" shared-library="libgstapp-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst">
|
||||
<function-macro name="APP_DEPRECATED_FOR" c:identifier="GST_APP_DEPRECATED_FOR" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/app-prelude.h"/>
|
||||
<parameters>
|
||||
<parameter name="f">
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<function-macro name="APP_DEPRECATED_TYPE_FOR" c:identifier="GST_APP_DEPRECATED_TYPE_FOR" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/app-prelude.h"/>
|
||||
<parameters>
|
||||
<parameter name="f">
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<function-macro name="APP_SINK" c:identifier="GST_APP_SINK" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/>
|
||||
<parameters>
|
||||
@ -94,7 +80,7 @@ which accept a timeout parameter to limit the amount of time to wait.
|
||||
Appsink will internally use a queue to collect buffers from the streaming
|
||||
thread. If the application is not pulling samples fast enough, this queue
|
||||
will consume a lot of memory over time. The "max-buffers", "max-time" and "max-bytes"
|
||||
properties can be used to limit the queue size. The "leaky-type" property controls whether the
|
||||
properties can be used to limit the queue size. The "drop" property controls whether the
|
||||
streaming thread blocks or if older buffers are dropped when the maximum
|
||||
queue size is reached. Note that blocking the streaming thread can negatively
|
||||
affect real-time performance and should be avoided.
|
||||
@ -205,7 +191,7 @@ If an EOS event was received before any buffers, this function returns
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</virtual-method>
|
||||
<virtual-method name="try_pull_object" invoker="try_pull_object" version="1.20">
|
||||
<virtual-method name="try_pull_object" invoker="try_pull_object" version="1.20" introspectable="0">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">This function blocks until a sample or an event or EOS becomes available or the appsink
|
||||
element is set to the READY/NULL state or the timeout expires.
|
||||
|
||||
@ -337,52 +323,9 @@ condition.</doc>
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="get_current_level_buffers" c:identifier="gst_app_sink_get_current_level_buffers" glib:get-property="current-level-buffers" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Get the number of currently queued buffers inside @appsink.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">The number of currently queued buffers.</doc>
|
||||
<type name="guint64" c:type="guint64"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<instance-parameter name="appsink" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc>
|
||||
<type name="AppSink" c:type="GstAppSink*"/>
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="get_current_level_bytes" c:identifier="gst_app_sink_get_current_level_bytes" glib:get-property="current-level-bytes" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Get the number of currently queued bytes inside @appsink.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">The number of currently queued bytes.</doc>
|
||||
<type name="guint64" c:type="guint64"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<instance-parameter name="appsink" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc>
|
||||
<type name="AppSink" c:type="GstAppSink*"/>
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="get_current_level_time" c:identifier="gst_app_sink_get_current_level_time" glib:get-property="current-level-time" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Get the amount of currently queued time inside @appsink.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">The amount of currently queued time.</doc>
|
||||
<type name="Gst.ClockTime" c:type="GstClockTime"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<instance-parameter name="appsink" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc>
|
||||
<type name="AppSink" c:type="GstAppSink*"/>
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="get_drop" c:identifier="gst_app_sink_get_drop" glib:get-property="drop" deprecated="1" deprecated-version="1.28">
|
||||
<method name="get_drop" c:identifier="gst_app_sink_get_drop" glib:get-property="drop">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Check if @appsink will drop old buffers when the maximum amount of queued
|
||||
data is reached (meaning max buffers, time or bytes limit, whichever is hit first).</doc>
|
||||
<doc-deprecated xml:space="preserve">Use gst_app_src_get_leaky_type() instead.</doc-deprecated>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">%TRUE if @appsink is dropping old buffers when the queue is
|
||||
@ -411,21 +354,6 @@ signals.</doc>
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="get_leaky_type" c:identifier="gst_app_sink_get_leaky_type" glib:get-property="leaky-type" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Returns the currently set #GstAppLeakyType. See gst_app_sink_set_leaky_type()
|
||||
for more details.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">The currently set #GstAppLeakyType.</doc>
|
||||
<type name="AppLeakyType" c:type="GstAppLeakyType"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<instance-parameter name="appsink" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc>
|
||||
<type name="AppSink" c:type="GstAppSink*"/>
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="get_max_buffers" c:identifier="gst_app_sink_get_max_buffers" glib:get-property="max-buffers">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Get the maximum amount of buffers that can be queued in @appsink.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/>
|
||||
@ -502,7 +430,7 @@ PLAYING state.</doc>
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="pull_object" c:identifier="gst_app_sink_pull_object" version="1.20">
|
||||
<method name="pull_object" c:identifier="gst_app_sink_pull_object" version="1.20" introspectable="0">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">This function blocks until a sample or an event becomes available or the appsink
|
||||
element is set to the READY/NULL state.
|
||||
|
||||
@ -665,10 +593,9 @@ you must check the caps on the samples to get the actual used caps.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="set_drop" c:identifier="gst_app_sink_set_drop" glib:set-property="drop" deprecated="1" deprecated-version="1.28">
|
||||
<method name="set_drop" c:identifier="gst_app_sink_set_drop" glib:set-property="drop">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Instruct @appsink to drop old buffers when the maximum amount of queued
|
||||
data is reached, that is, when any configured limit is hit (max-buffers, max-time or max-bytes).</doc>
|
||||
<doc-deprecated xml:space="preserve">Use gst_app_src_get_leaky_type() instead.</doc-deprecated>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<type name="none" c:type="void"/>
|
||||
@ -703,26 +630,6 @@ the application prefers to operate in pull mode.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="set_leaky_type" c:identifier="gst_app_sink_set_leaky_type" glib:set-property="leaky-type" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">When set to any other value than GST_APP_LEAKY_TYPE_NONE then the appsink
|
||||
will drop any buffers that are pushed into it once its internal queue is
|
||||
full. The selected type defines whether to drop the oldest or new
|
||||
buffers.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<type name="none" c:type="void"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<instance-parameter name="appsink" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">a #GstAppSink</doc>
|
||||
<type name="AppSink" c:type="GstAppSink*"/>
|
||||
</instance-parameter>
|
||||
<parameter name="leaky" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">the #GstAppLeakyType</doc>
|
||||
<type name="AppLeakyType" c:type="GstAppLeakyType"/>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="set_max_buffers" c:identifier="gst_app_sink_set_max_buffers" glib:set-property="max-buffers">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Set the maximum amount of buffers that can be queued in @appsink. After this
|
||||
amount of buffers are queued in appsink, any more buffers will block upstream
|
||||
@ -800,7 +707,7 @@ case new buffers will be discarded.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="try_pull_object" c:identifier="gst_app_sink_try_pull_object" version="1.20">
|
||||
<method name="try_pull_object" c:identifier="gst_app_sink_try_pull_object" version="1.20" introspectable="0">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">This function blocks until a sample or an event or EOS becomes available or the appsink
|
||||
element is set to the READY/NULL state or the timeout expires.
|
||||
|
||||
@ -910,44 +817,15 @@ condition.</doc>
|
||||
<property name="caps" writable="1" transfer-ownership="none" setter="set_caps" getter="get_caps">
|
||||
<type name="Gst.Caps"/>
|
||||
</property>
|
||||
<property name="current-level-buffers" version="1.28" transfer-ownership="none" getter="get_current_level_buffers" default-value="0">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">The number of currently queued buffers inside appsink.</doc>
|
||||
<type name="guint64" c:type="guint64"/>
|
||||
</property>
|
||||
<property name="current-level-bytes" version="1.28" transfer-ownership="none" getter="get_current_level_bytes" default-value="0">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">The number of currently queued bytes inside appsink.</doc>
|
||||
<type name="guint64" c:type="guint64"/>
|
||||
</property>
|
||||
<property name="current-level-time" version="1.28" transfer-ownership="none" getter="get_current_level_time" default-value="0">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">The amount of currently queued time inside appsink.</doc>
|
||||
<type name="guint64" c:type="guint64"/>
|
||||
</property>
|
||||
<property name="drop" deprecated="1" deprecated-version="1.28" writable="1" transfer-ownership="none" setter="set_drop" getter="get_drop" default-value="FALSE">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Drop old buffers when the buffer queue is filled.</doc>
|
||||
<doc-deprecated xml:space="preserve">Use "leaky-type" property instead.</doc-deprecated>
|
||||
<property name="drop" writable="1" transfer-ownership="none" setter="set_drop" getter="get_drop" default-value="FALSE">
|
||||
<type name="gboolean" c:type="gboolean"/>
|
||||
</property>
|
||||
<property name="dropped" version="1.28" transfer-ownership="none" default-value="0">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Number of buffers that were dropped.</doc>
|
||||
<type name="guint64" c:type="guint64"/>
|
||||
</property>
|
||||
<property name="emit-signals" writable="1" transfer-ownership="none" setter="set_emit_signals" getter="get_emit_signals" default-value="FALSE">
|
||||
<type name="gboolean" c:type="gboolean"/>
|
||||
</property>
|
||||
<property name="eos" transfer-ownership="none" default-value="TRUE">
|
||||
<type name="gboolean" c:type="gboolean"/>
|
||||
</property>
|
||||
<property name="in" version="1.28" transfer-ownership="none" default-value="0">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Number of input buffers that were queued.</doc>
|
||||
<type name="guint64" c:type="guint64"/>
|
||||
</property>
|
||||
<property name="leaky-type" version="1.28" writable="1" transfer-ownership="none" setter="set_leaky_type" getter="get_leaky_type" default-value="GST_APP_LEAKY_TYPE_NONE">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">When set to any other value than GST_APP_LEAKY_TYPE_NONE then the appsink
|
||||
will drop any buffers that are pushed into it once its internal queue is
|
||||
full. The selected type defines whether to drop the oldest or new
|
||||
buffers.</doc>
|
||||
<type name="AppLeakyType"/>
|
||||
</property>
|
||||
<property name="max-buffers" writable="1" transfer-ownership="none" setter="set_max_buffers" getter="get_max_buffers" default-value="0">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Maximum amount of buffers in the queue (0 = unlimited).</doc>
|
||||
<type name="guint" c:type="guint"/>
|
||||
@ -960,14 +838,6 @@ buffers.</doc>
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Maximum total duration of data in the queue (0 = unlimited)</doc>
|
||||
<type name="guint64" c:type="guint64"/>
|
||||
</property>
|
||||
<property name="out" version="1.28" transfer-ownership="none" default-value="0">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Number of output buffers that were dequeued.</doc>
|
||||
<type name="guint64" c:type="guint64"/>
|
||||
</property>
|
||||
<property name="silent" version="1.28" writable="1" transfer-ownership="none" default-value="TRUE">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Don't emit notify for input, output and dropped buffers.</doc>
|
||||
<type name="gboolean" c:type="gboolean"/>
|
||||
</property>
|
||||
<property name="wait-on-eos" version="1.8" writable="1" transfer-ownership="none" setter="set_wait_on_eos" getter="get_wait_on_eos" default-value="TRUE">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsink.c">Wait for all buffers to be processed after receiving an EOS.
|
||||
|
||||
@ -1097,7 +967,7 @@ can pull samples at its own rate.
|
||||
Note that when the application does not pull samples fast enough, the
|
||||
queued samples could consume a lot of memory, especially when dealing with
|
||||
raw video frames. It's possible to control the behaviour of the queue with
|
||||
the "leaky-type" and "max-buffers" / "max-bytes" / "max-time" set of properties.
|
||||
the "drop" and "max-buffers" / "max-bytes" / "max-time" set of properties.
|
||||
|
||||
If an EOS event was received before any buffers, this function returns
|
||||
%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.</doc>
|
||||
@ -1118,7 +988,7 @@ Events can be pulled when the appsink is in the READY, PAUSED or PLAYING state.
|
||||
Note that when the application does not pull samples fast enough, the
|
||||
queued samples could consume a lot of memory, especially when dealing with
|
||||
raw video frames. It's possible to control the behaviour of the queue with
|
||||
the "leaky-type" and "max-buffers" / "max-bytes" / "max-time" set of properties.
|
||||
the "drop" and "max-buffers" / "max-bytes" / "max-time" set of properties.
|
||||
|
||||
This function will only pull serialized events, excluding
|
||||
the EOS event for which this functions returns
|
||||
@ -1183,7 +1053,7 @@ can pull samples at its own rate.
|
||||
Note that when the application does not pull samples fast enough, the
|
||||
queued samples could consume a lot of memory, especially when dealing with
|
||||
raw video frames. It's possible to control the behaviour of the queue with
|
||||
the "leaky-type" and "max-buffers" / "max-bytes" / "max-time" set of properties.
|
||||
the "drop" and "max-buffers" / "max-bytes" / "max-time" set of properties.
|
||||
|
||||
If an EOS event was received before any buffers or the timeout expires,
|
||||
this function returns %NULL. Use gst_app_sink_is_eos () to check
|
||||
@ -2206,10 +2076,6 @@ on outgoing buffers.</doc>
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The amount of currently queued time inside appsrc.</doc>
|
||||
<type name="guint64" c:type="guint64"/>
|
||||
</property>
|
||||
<property name="dropped" version="1.28" transfer-ownership="none" default-value="0">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Number of buffers that were dropped.</doc>
|
||||
<type name="guint64" c:type="guint64"/>
|
||||
</property>
|
||||
<property name="duration" version="1.10" writable="1" transfer-ownership="none" setter="set_duration" getter="get_duration" default-value="18446744073709551615">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The total duration in nanoseconds of the data stream. If the total duration is known, it
|
||||
is recommended to configure it with this property.</doc>
|
||||
@ -2237,10 +2103,6 @@ GstAppSrc::format should be time. However, possibly #GstAppSrc can support
|
||||
other formats.</doc>
|
||||
<type name="gboolean" c:type="gboolean"/>
|
||||
</property>
|
||||
<property name="in" version="1.28" transfer-ownership="none" default-value="0">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Number of input buffers that were queued.</doc>
|
||||
<type name="guint64" c:type="guint64"/>
|
||||
</property>
|
||||
<property name="is-live" writable="1" transfer-ownership="none" default-value="FALSE">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Instruct the source to behave like a live source. This includes that it
|
||||
will only push out buffers in the PLAYING state.</doc>
|
||||
@ -2284,14 +2146,6 @@ latency calculations of #GstBaseSrc.</doc>
|
||||
queue drops below this percentage of max-bytes.</doc>
|
||||
<type name="guint" c:type="guint"/>
|
||||
</property>
|
||||
<property name="out" version="1.28" transfer-ownership="none" default-value="0">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Number of output buffers that were dequeued.</doc>
|
||||
<type name="guint64" c:type="guint64"/>
|
||||
</property>
|
||||
<property name="silent" version="1.28" writable="1" transfer-ownership="none" default-value="TRUE">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">Don't emit notify for input, output and dropped buffers.</doc>
|
||||
<type name="gboolean" c:type="gboolean"/>
|
||||
</property>
|
||||
<property name="size" writable="1" transfer-ownership="none" setter="set_size" getter="get_size" default-value="-1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/app/gstappsrc.c">The total size in bytes of the data stream. If the total size is known, it
|
||||
is recommended to configure it with this property.</doc>
|
||||
|
@ -2503,18 +2503,6 @@ usage.</doc>
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<property name="current-level-buffers" version="1.28" transfer-ownership="none" default-value="0">
|
||||
<doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The number of currently queued buffers inside this pad</doc>
|
||||
<type name="guint64" c:type="guint64"/>
|
||||
</property>
|
||||
<property name="current-level-bytes" version="1.28" transfer-ownership="none" default-value="0">
|
||||
<doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The number of currently queued bytes inside this pad</doc>
|
||||
<type name="guint64" c:type="guint64"/>
|
||||
</property>
|
||||
<property name="current-level-time" version="1.28" transfer-ownership="none" default-value="0">
|
||||
<doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">The amount of currently queued time inside this pad</doc>
|
||||
<type name="guint64" c:type="guint64"/>
|
||||
</property>
|
||||
<property name="emit-signals" version="1.16" writable="1" transfer-ownership="none" default-value="FALSE">
|
||||
<doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.c">Enables the emission of signals such as #GstAggregatorPad::buffer-consumed</doc>
|
||||
<type name="gboolean" c:type="gboolean"/>
|
||||
@ -2616,9 +2604,6 @@ the first buffer that is received.</doc>
|
||||
<doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h">Start at the running time
|
||||
selected by the `start-time` property.</doc>
|
||||
</member>
|
||||
<member name="now" value="3" c:identifier="GST_AGGREGATOR_START_TIME_SELECTION_NOW" version="1.28" glib:nick="now" glib:name="GST_AGGREGATOR_START_TIME_SELECTION_NOW">
|
||||
<doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstaggregator.h">Start at the current running time when reaching %GST_STATE_PLAYING.</doc>
|
||||
</member>
|
||||
</enumeration>
|
||||
<function-macro name="BASE_DEPRECATED_FOR" c:identifier="GST_BASE_DEPRECATED_FOR" introspectable="0">
|
||||
<source-position filename="../subprojects/gstreamer/libs/gst/base/base-prelude.h"/>
|
||||
@ -3763,10 +3748,6 @@ into the frame data that the picture starts.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<property name="disable-clip" version="1.28" writable="1" transfer-ownership="none" default-value="TRUE">
|
||||
<doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">Disable dropping buffers that are out of segment</doc>
|
||||
<type name="gboolean" c:type="gboolean"/>
|
||||
</property>
|
||||
<property name="disable-passthrough" writable="1" transfer-ownership="none" default-value="FALSE">
|
||||
<doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/base/gstbaseparse.c">If set to %TRUE, baseparse will unconditionally force parsing of the
|
||||
incoming data. This can be required in the rare cases where the incoming
|
||||
|
@ -1243,19 +1243,6 @@ current in the calling thread.</doc>
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</virtual-method>
|
||||
<method name="get_gl_context" c:identifier="gst_gl_base_src_get_gl_context" version="1.28">
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h"/>
|
||||
<return-value transfer-ownership="full" nullable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.c">the configured #GstGLContext.</doc>
|
||||
<type name="GLContext" c:type="GstGLContext*"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<instance-parameter name="base_src" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.c">a #GstGLBaseSrc</doc>
|
||||
<type name="GLBaseSrc" c:type="GstGLBaseSrc*"/>
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<property name="timestamp-offset" writable="1" transfer-ownership="none" default-value="0">
|
||||
<type name="gint64" c:type="gint64"/>
|
||||
</property>
|
||||
@ -3523,10 +3510,6 @@ extension.</doc>
|
||||
<member name="include_emulated" value="4" c:identifier="GST_GL_DRM_FORMAT_INCLUDE_EMULATED" version="1.26" glib:nick="include-emulated" glib:name="GST_GL_DRM_FORMAT_INCLUDE_EMULATED">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.h">include emulated formats</doc>
|
||||
</member>
|
||||
<member name="direct_import" value="8" c:identifier="GST_GL_DRM_FORMAT_DIRECT_IMPORT" version="1.28" glib:nick="direct-import" glib:name="GST_GL_DRM_FORMAT_DIRECT_IMPORT">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglutils.h">EGL is responsible for the colorspace conversion. In this case, all
|
||||
supported modifiers get translated to RGBA.</doc>
|
||||
</member>
|
||||
</bitfield>
|
||||
<class name="GLFilter" c:symbol-prefix="gl_filter" c:type="GstGLFilter" parent="GLBaseFilter" glib:type-name="GstGLFilter" glib:get-type="gst_gl_filter_get_type" glib:type-struct="GLFilterClass">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c">#GstGLFilter helps to implement simple OpenGL filter elements taking a
|
||||
@ -8625,19 +8608,6 @@ require this to be called with a valid handle before drawing can commence.</doc>
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="get_request_output_surface" c:identifier="gst_gl_window_get_request_output_surface" version="1.28">
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">whether an visible output surface has been requested</doc>
|
||||
<type name="gboolean" c:type="gboolean"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<instance-parameter name="window" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc>
|
||||
<type name="GLWindow" c:type="GstGLWindow*"/>
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="get_surface_dimensions" c:identifier="gst_gl_window_get_surface_dimensions" version="1.6">
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
@ -8987,23 +8957,6 @@ according to the #GstVideoOverlay interface.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="set_request_output_surface" c:identifier="gst_gl_window_set_request_output_surface" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Configure whether a visible output surface is requested.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<type name="none" c:type="void"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<instance-parameter name="window" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">a #GstGLWindow</doc>
|
||||
<type name="GLWindow" c:type="GstGLWindow*"/>
|
||||
</instance-parameter>
|
||||
<parameter name="output_surface" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">whether to request an output surface.</doc>
|
||||
<type name="gboolean" c:type="gboolean"/>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="set_resize_callback" c:identifier="gst_gl_window_set_resize_callback" version="1.4">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c">Sets the resize callback called every time a resize of the window occurs.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.h"/>
|
||||
@ -9859,11 +9812,11 @@ user-defined purposes.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<constant name="GL_COLOR_CONVERT_EXT_FORMATS" value=", RGBA64_LE, BGR10A2_LE, RGB10A2_LE, BGR10x2_LE, RGB10x2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE, A444_16LE, A422_16LE, A420_16LE, A444_12LE, A422_12LE, A420_12LE, A420_10LE, A422_10LE, A444_10LE, I420_12LE, I420_10LE, I422_10LE, I422_12LE, Y444_16LE, Y444_10LE" c:type="GST_GL_COLOR_CONVERT_EXT_FORMATS" introspectable="0">
|
||||
<constant name="GL_COLOR_CONVERT_EXT_FORMATS" value=", RGBA64_LE, BGR10A2_LE, RGB10A2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE, A444_16LE, A422_16LE, A420_16LE, A444_12LE, A422_12LE, A420_12LE, A420_10LE, A422_10LE, A444_10LE, I420_12LE, I420_10LE, I422_10LE, I422_12LE, Y444_16LE, Y444_10LE" c:type="GST_GL_COLOR_CONVERT_EXT_FORMATS" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/>
|
||||
<type name="utf8" c:type="gchar*"/>
|
||||
</constant>
|
||||
<constant name="GL_COLOR_CONVERT_FORMATS" value="{ RGBA, RGB, RGBx, BGR, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR, GBRA, GBR, RGBP, BGRP, Y444, I420, YV12, Y42B, Y41B, NV12, NV21, NV16, NV61, NV24, YUY2, UYVY, Y210, AYUV, VUYA, Y410, A444, A422, GRAY8, GRAY16_LE, GRAY16_BE, RGB16, BGR16, ARGB64, A420, AV12, NV12_16L32S, NV12_4L4, RBGA, v210" c:type="GST_GL_COLOR_CONVERT_FORMATS">
|
||||
<constant name="GL_COLOR_CONVERT_FORMATS" value="{ RGBA, RGB, RGBx, BGR, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR, GBRA, GBR, RGBP, BGRP, Y444, I420, YV12, Y42B, Y41B, NV12, NV21, NV16, NV61, YUY2, UYVY, Y210, AYUV, VUYA, Y410, A444, A422, GRAY8, GRAY16_LE, GRAY16_BE, RGB16, BGR16, ARGB64, A420, AV12, NV12_16L32S, NV12_4L4, RBGA, v210" c:type="GST_GL_COLOR_CONVERT_FORMATS">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h">The currently supported formats that can be converted</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/>
|
||||
<type name="utf8" c:type="gchar*"/>
|
||||
@ -10106,11 +10059,11 @@ e.g. for `CONFIG_ID`: `GST_GL_CONFIG_ATTRIB_NAME (CONFIG_ID)`</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h"/>
|
||||
<type name="utf8" c:type="gchar*"/>
|
||||
</constant>
|
||||
<constant name="GL_MEMORY_VIDEO_EXT_FORMATS" value=", RGBA64_LE, BGR10A2_LE, RGB10A2_LE, BGR10x2_LE, RGB10x2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE, A444_16LE, A422_16LE, A420_16LE, A444_12LE, A422_12LE, A420_12LE, A420_10LE, A422_10LE, A444_10LE, I420_12LE, I420_10LE, I422_10LE, I422_12LE, Y444_10LE, Y444_16LE" c:type="GST_GL_MEMORY_VIDEO_EXT_FORMATS" introspectable="0">
|
||||
<constant name="GL_MEMORY_VIDEO_EXT_FORMATS" value=", RGBA64_LE, BGR10A2_LE, RGB10A2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE, A444_16LE, A422_16LE, A420_16LE, A444_12LE, A422_12LE, A420_12LE, A420_10LE, A422_10LE, A444_10LE, I420_12LE, I420_10LE, I422_10LE, I422_12LE, Y444_10LE, Y444_16LE" c:type="GST_GL_MEMORY_VIDEO_EXT_FORMATS" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/>
|
||||
<type name="utf8" c:type="gchar*"/>
|
||||
</constant>
|
||||
<constant name="GL_MEMORY_VIDEO_FORMATS_STR" value="{ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, GBRA, GBR, RGBP, BGRP, RGB, BGR, RGB16, BGR16, AYUV, VUYA, A444, A422, Y410, I420, YV12, NV12, NV21, NV16, NV61, NV24, YUY2, UYVY, Y210, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE, ARGB64, A420, AV12, NV12_16L32S, NV12_4L4, RBGA, v210" c:type="GST_GL_MEMORY_VIDEO_FORMATS_STR">
|
||||
<constant name="GL_MEMORY_VIDEO_FORMATS_STR" value="{ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, GBRA, GBR, RGBP, BGRP, RGB, BGR, RGB16, BGR16, AYUV, VUYA, A444, A422, Y410, I420, YV12, NV12, NV21, NV16, NV61, YUY2, UYVY, Y210, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE, ARGB64, A420, AV12, NV12_16L32S, NV12_4L4, RBGA, v210" c:type="GST_GL_MEMORY_VIDEO_FORMATS_STR">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h">List of video formats that are supported by #GstGLMemory</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/>
|
||||
<type name="utf8" c:type="gchar*"/>
|
||||
|
@ -682,7 +682,7 @@ the track buffers for playback purposes.
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mse/gstsourcebuffer.c">#GstSourceBuffer instance</doc>
|
||||
<type name="SourceBuffer" c:type="GstSourceBuffer*"/>
|
||||
</instance-parameter>
|
||||
<parameter name="buf" transfer-ownership="full">
|
||||
<parameter name="buf" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/mse/gstsourcebuffer.c">The media data to append</doc>
|
||||
<type name="Gst.Buffer" c:type="GstBuffer*"/>
|
||||
</parameter>
|
||||
|
@ -186,15 +186,6 @@ clock.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</constructor>
|
||||
<function name="deinit" c:identifier="gst_net_client_clock_deinit" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.c">Clears any cached #GstNetClientClock clocks.
|
||||
All references should be released beforehand.
|
||||
Mainly used for testing.</doc>
|
||||
<source-position filename="../subprojects/gstreamer/libs/gst/net/gstnetclientclock.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<type name="none" c:type="void"/>
|
||||
</return-value>
|
||||
</function>
|
||||
<property name="address" writable="1" construct="1" transfer-ownership="none" default-value="127.0.0.1">
|
||||
<type name="utf8" c:type="gchar*"/>
|
||||
</property>
|
||||
|
@ -807,7 +807,7 @@ the tags after the life-time of @info, you will need to copy them.</doc>
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">Parses a #GVariant as produced by gst_discoverer_info_to_variant()
|
||||
back to a #GstDiscovererInfo.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.h"/>
|
||||
<return-value transfer-ownership="full" nullable="1">
|
||||
<return-value transfer-ownership="full">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c">A newly-allocated #GstDiscovererInfo.</doc>
|
||||
<type name="DiscovererInfo" c:type="GstDiscovererInfo*"/>
|
||||
</return-value>
|
||||
@ -2950,7 +2950,7 @@ in debugging.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h"/>
|
||||
<type name="gint" c:type="gint"/>
|
||||
</constant>
|
||||
<constant name="PLUGINS_BASE_VERSION_MICRO" value="1" c:type="GST_PLUGINS_BASE_VERSION_MICRO">
|
||||
<constant name="PLUGINS_BASE_VERSION_MICRO" value="0" c:type="GST_PLUGINS_BASE_VERSION_MICRO">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h">The micro version of GStreamer's gst-plugins-base libraries at compile time.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h"/>
|
||||
<type name="gint" c:type="gint"/>
|
||||
|
@ -11269,10 +11269,6 @@ passed @tr.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<property name="timed-out" version="1.28" transfer-ownership="none" default-value="FALSE">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.c">Whether this transport is timed out</doc>
|
||||
<type name="gboolean" c:type="gboolean"/>
|
||||
</property>
|
||||
<field name="parent">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.h">parent instance</doc>
|
||||
<type name="GObject.Object" c:type="GObject"/>
|
||||
|
@ -2458,35 +2458,6 @@ stack and initialized with gst_sdp_media_init().</doc>
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<function name="add_media_from_structure" c:identifier="gst_sdp_media_add_media_from_structure" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/sdp/gstsdpmessage.c">Mapping of structure fields to SDP attributes:
|
||||
|
||||
a=rtpmap:(payload) (encoding_name) or (clock_rate)[or (encoding_params)]
|
||||
|
||||
a=framesize:(payload) (width)-(height)
|
||||
|
||||
a=fmtp:(payload) (param)[=(value)];...
|
||||
|
||||
a=rtcp-fb:(payload) (param1) [param2]...
|
||||
|
||||
a=extmap:(id)[/direction] (extensionname) (extensionattributes)</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/sdp/gstsdpmessage.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/sdp/gstsdpmessage.c">a #GstSDPResult.</doc>
|
||||
<type name="SDPResult" c:type="GstSDPResult"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<parameter name="structure" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/sdp/gstsdpmessage.c">a #GstStructure belonging to a #GstCaps SDP mapping, see also
|
||||
`gst_sdp_media_get_caps_from_media()`</doc>
|
||||
<type name="Gst.Structure" c:type="const GstStructure*"/>
|
||||
</parameter>
|
||||
<parameter name="media" direction="out" caller-allocates="1" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/sdp/gstsdpmessage.c">a #GstSDPMedia</doc>
|
||||
<type name="SDPMedia" c:type="GstSDPMedia*"/>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function>
|
||||
<function name="init" c:identifier="gst_sdp_media_init">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/sdp/gstsdpmessage.c">Initialize @media so that its contents are as if it was freshly allocated
|
||||
with gst_sdp_media_new(). This function is mostly used to initialize a media
|
||||
@ -2531,9 +2502,7 @@ a=fmtp:(payload) (param)[=(value)];...
|
||||
|
||||
a=rtcp-fb:(payload) (param1) [param2]...
|
||||
|
||||
a=extmap:(id)[/direction] (extensionname) (extensionattributes)
|
||||
|
||||
Only the first #GstStructure of the @caps is used.</doc>
|
||||
a=extmap:(id)[/direction] (extensionname) (extensionattributes)</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/sdp/gstsdpmessage.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/sdp/gstsdpmessage.c">a #GstSDPResult.</doc>
|
||||
@ -4192,35 +4161,6 @@ messages.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function>
|
||||
<function name="sdp_media_add_media_from_structure" c:identifier="gst_sdp_media_add_media_from_structure" moved-to="SDPMedia.add_media_from_structure" version="1.28">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/sdp/gstsdpmessage.c">Mapping of structure fields to SDP attributes:
|
||||
|
||||
a=rtpmap:(payload) (encoding_name) or (clock_rate)[or (encoding_params)]
|
||||
|
||||
a=framesize:(payload) (width)-(height)
|
||||
|
||||
a=fmtp:(payload) (param)[=(value)];...
|
||||
|
||||
a=rtcp-fb:(payload) (param1) [param2]...
|
||||
|
||||
a=extmap:(id)[/direction] (extensionname) (extensionattributes)</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/sdp/gstsdpmessage.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/sdp/gstsdpmessage.c">a #GstSDPResult.</doc>
|
||||
<type name="SDPResult" c:type="GstSDPResult"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<parameter name="structure" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/sdp/gstsdpmessage.c">a #GstStructure belonging to a #GstCaps SDP mapping, see also
|
||||
`gst_sdp_media_get_caps_from_media()`</doc>
|
||||
<type name="Gst.Structure" c:type="const GstStructure*"/>
|
||||
</parameter>
|
||||
<parameter name="media" direction="out" caller-allocates="1" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/sdp/gstsdpmessage.c">a #GstSDPMedia</doc>
|
||||
<type name="SDPMedia" c:type="GstSDPMedia*"/>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function>
|
||||
<function name="sdp_media_init" c:identifier="gst_sdp_media_init" moved-to="SDPMedia.init">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/sdp/gstsdpmessage.c">Initialize @media so that its contents are as if it was freshly allocated
|
||||
with gst_sdp_media_new(). This function is mostly used to initialize a media
|
||||
@ -4265,9 +4205,7 @@ a=fmtp:(payload) (param)[=(value)];...
|
||||
|
||||
a=rtcp-fb:(payload) (param1) [param2]...
|
||||
|
||||
a=extmap:(id)[/direction] (extensionname) (extensionattributes)
|
||||
|
||||
Only the first #GstStructure of the @caps is used.</doc>
|
||||
a=extmap:(id)[/direction] (extensionname) (extensionattributes)</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/sdp/gstsdpmessage.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/sdp/gstsdpmessage.c">a #GstSDPResult.</doc>
|
||||
|
@ -439,9 +439,9 @@ See also #gst_transcoder_get_message_bus()</doc>
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/transcoder/gsttranscoder.c">A #GstMessage</doc>
|
||||
<type name="Gst.Message" c:type="GstMessage*"/>
|
||||
</parameter>
|
||||
<parameter name="error" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
|
||||
<parameter name="error" direction="out" caller-allocates="1" transfer-ownership="full" optional="1" allow-none="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/transcoder/gsttranscoder.c">the resulting error</doc>
|
||||
<type name="GLib.Error" c:type="GError**"/>
|
||||
<type name="GLib.Error" c:type="GError*"/>
|
||||
</parameter>
|
||||
<parameter name="details" direction="out" caller-allocates="0" transfer-ownership="full">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/transcoder/gsttranscoder.c">(transfer full): A GstStructure containing extra details about the error</doc>
|
||||
@ -494,9 +494,9 @@ See also #gst_transcoder_get_message_bus()</doc>
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/transcoder/gsttranscoder.c">A #GstMessage</doc>
|
||||
<type name="Gst.Message" c:type="GstMessage*"/>
|
||||
</parameter>
|
||||
<parameter name="error" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
|
||||
<parameter name="error" direction="out" caller-allocates="1" transfer-ownership="full" optional="1" allow-none="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/transcoder/gsttranscoder.c">the resulting warning</doc>
|
||||
<type name="GLib.Error" c:type="GError**"/>
|
||||
<type name="GLib.Error" c:type="GError*"/>
|
||||
</parameter>
|
||||
<parameter name="details" direction="out" caller-allocates="0" transfer-ownership="full">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/transcoder/gsttranscoder.c">(transfer full): A GstStructure containing extra details about the warning</doc>
|
||||
@ -680,9 +680,9 @@ stream.</doc>
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/transcoder/gsttranscoder.c">A #GstMessage</doc>
|
||||
<type name="Gst.Message" c:type="GstMessage*"/>
|
||||
</parameter>
|
||||
<parameter name="error" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
|
||||
<parameter name="error" direction="out" caller-allocates="1" transfer-ownership="full" optional="1" allow-none="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/transcoder/gsttranscoder.c">the resulting error</doc>
|
||||
<type name="GLib.Error" c:type="GError**"/>
|
||||
<type name="GLib.Error" c:type="GError*"/>
|
||||
</parameter>
|
||||
<parameter name="details" direction="out" caller-allocates="0" transfer-ownership="full">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/transcoder/gsttranscoder.c">(transfer full): A GstStructure containing extra details about the error</doc>
|
||||
@ -735,9 +735,9 @@ stream.</doc>
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/transcoder/gsttranscoder.c">A #GstMessage</doc>
|
||||
<type name="Gst.Message" c:type="GstMessage*"/>
|
||||
</parameter>
|
||||
<parameter name="error" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
|
||||
<parameter name="error" direction="out" caller-allocates="1" transfer-ownership="full" optional="1" allow-none="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/transcoder/gsttranscoder.c">the resulting warning</doc>
|
||||
<type name="GLib.Error" c:type="GError**"/>
|
||||
<type name="GLib.Error" c:type="GError*"/>
|
||||
</parameter>
|
||||
<parameter name="details" direction="out" caller-allocates="0" transfer-ownership="full">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/transcoder/gsttranscoder.c">(transfer full): A GstStructure containing extra details about the warning</doc>
|
||||
|
@ -3068,7 +3068,7 @@ Formats are sorted by decreasing "quality", using these criteria by priority:
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.h"/>
|
||||
<type name="utf8" c:type="gchar*"/>
|
||||
</constant>
|
||||
<constant name="VIDEO_FORMATS_ALL_STR" value="A444_16BE, A444_16LE, AYUV64, ARGB64, Y416_BE, RGBA64_BE, ARGB64_BE, BGRA64_BE, ABGR64_BE, Y416_LE, RGBA64_LE, ARGB64_LE, BGRA64_LE, ABGR64_LE, A422_16BE, A422_16LE, A420_16BE, A420_16LE, A444_12BE, GBRA_12BE, A444_12LE, GBRA_12LE, Y412_BE, Y412_LE, A422_12BE, A422_12LE, A420_12BE, A420_12LE, A444_10BE, GBRA_10BE, A444_10LE, GBRA_10LE, A422_10BE, A422_10LE, A420_10BE, A420_10LE, Y410, BGR10A2_LE, RGB10A2_LE, A444, GBRA, AYUV, VUYA, RGBA, RBGA, ARGB, BGRA, ABGR, A422, A420, AV12, Y444_16BE, GBR_16BE, Y444_16LE, GBR_16LE, Y216_BE, v216, Y216_LE, P016_BE, P016_LE, Y444_12BE, GBR_12BE, Y444_12LE, GBR_12LE, I422_12BE, I422_12LE, Y212_BE, Y212_LE, I420_12BE, I420_12LE, P012_BE, P012_LE, Y444_10BE, GBR_10BE, Y444_10LE, GBR_10LE, r210, BGR10x2_LE, RGB10x2_LE, I422_10BE, I422_10LE, NV16_10LE40, NV16_10LE32, Y210, UYVP, v210, I420_10BE, I420_10LE, P010_10BE, MT2110R, MT2110T, NV12_10BE_8L128, NV12_10LE40_4L4, P010_10LE, NV12_10LE40, NV12_10LE32, Y444, BGRP, GBR, RGBP, NV24, v308, IYU2, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, VYUY, I420, YV12, NV12, NV21, NV12_16L32S, NV12_32L32, NV12_4L4, NV12_64Z32, NV12_8L128, Y41B, IYU1, YUV9, YVU9, BGR16, RGB16, BGR15, RGB15, RGB8P, GRAY16_BE, GRAY16_LE, GRAY10_LE16, GRAY10_LE32, GRAY8" c:type="GST_VIDEO_FORMATS_ALL_STR" version="1.24">
|
||||
<constant name="VIDEO_FORMATS_ALL_STR" value="A444_16BE, A444_16LE, AYUV64, ARGB64, Y416_BE, RGBA64_BE, ARGB64_BE, BGRA64_BE, ABGR64_BE, Y416_LE, RGBA64_LE, ARGB64_LE, BGRA64_LE, ABGR64_LE, A422_16BE, A422_16LE, A420_16BE, A420_16LE, A444_12BE, GBRA_12BE, A444_12LE, GBRA_12LE, Y412_BE, Y412_LE, A422_12BE, A422_12LE, A420_12BE, A420_12LE, A444_10BE, GBRA_10BE, A444_10LE, GBRA_10LE, A422_10BE, A422_10LE, A420_10BE, A420_10LE, Y410, BGR10A2_LE, RGB10A2_LE, A444, GBRA, AYUV, VUYA, RGBA, RBGA, ARGB, BGRA, ABGR, A422, A420, AV12, Y444_16BE, GBR_16BE, Y444_16LE, GBR_16LE, Y216_BE, v216, Y216_LE, P016_BE, P016_LE, Y444_12BE, GBR_12BE, Y444_12LE, GBR_12LE, I422_12BE, I422_12LE, Y212_BE, Y212_LE, I420_12BE, I420_12LE, P012_BE, P012_LE, Y444_10BE, GBR_10BE, Y444_10LE, GBR_10LE, r210, I422_10BE, I422_10LE, NV16_10LE32, Y210, UYVP, v210, I420_10BE, I420_10LE, P010_10BE, MT2110R, MT2110T, NV12_10BE_8L128, NV12_10LE40_4L4, P010_10LE, NV12_10LE40, NV12_10LE32, Y444, BGRP, GBR, RGBP, NV24, v308, IYU2, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, VYUY, I420, YV12, NV12, NV21, NV12_16L32S, NV12_32L32, NV12_4L4, NV12_64Z32, NV12_8L128, Y41B, IYU1, YUV9, YVU9, BGR16, RGB16, BGR15, RGB15, RGB8P, GRAY16_BE, GRAY16_LE, GRAY10_LE16, GRAY10_LE32, GRAY8" c:type="GST_VIDEO_FORMATS_ALL_STR" version="1.24">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.h">Declare all video formats as a string.
|
||||
|
||||
Formats are sorted by decreasing "quality", using these criteria by priority:
|
||||
@ -3444,7 +3444,7 @@ Return the width of one tile in pixels, zero if its not an integer.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<constant name="VIDEO_FORMAT_LAST" value="142" c:type="GST_VIDEO_FORMAT_LAST" version="1.26">
|
||||
<constant name="VIDEO_FORMAT_LAST" value="139" c:type="GST_VIDEO_FORMAT_LAST" version="1.26">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.h">Number of video formats in #GstVideoFormat.</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.h"/>
|
||||
<type name="gint" c:type="gint"/>
|
||||
@ -10742,15 +10742,6 @@ bits.</doc>
|
||||
<member name="gray10_le16" value="138" c:identifier="GST_VIDEO_FORMAT_GRAY10_LE16" version="1.26" glib:nick="gray10-le16" glib:name="GST_VIDEO_FORMAT_GRAY10_LE16">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.h">10-bit grayscale, packed into 16bit words (6 bits left padding)</doc>
|
||||
</member>
|
||||
<member name="nv16_10le40" value="139" c:identifier="GST_VIDEO_FORMAT_NV16_10LE40" version="1.28" glib:nick="nv16-10le40" glib:name="GST_VIDEO_FORMAT_NV16_10LE40">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.h">Fully packed variant of NV16_10LE32</doc>
|
||||
</member>
|
||||
<member name="bgr10x2_le" value="140" c:identifier="GST_VIDEO_FORMAT_BGR10x2_LE" version="1.28" glib:nick="bgr10x2-le" glib:name="GST_VIDEO_FORMAT_BGR10x2_LE">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.h">packed 4:4:4 RGB (B-G-R-x), 10 bits for R/G/B channel and MSB 2 bits for padding.</doc>
|
||||
</member>
|
||||
<member name="rgb10x2_le" value="141" c:identifier="GST_VIDEO_FORMAT_RGB10x2_LE" version="1.28" glib:nick="rgb10x2-le" glib:name="GST_VIDEO_FORMAT_RGB10x2_LE">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.h">packed 4:4:4 RGB (R-G-B-x), 10 bits for R/G/B channel and MSB 2 bits for padding.</doc>
|
||||
</member>
|
||||
<function name="from_fourcc" c:identifier="gst_video_format_from_fourcc">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.c">Converts a FOURCC value into the corresponding #GstVideoFormat.
|
||||
If the FOURCC cannot be represented by #GstVideoFormat,
|
||||
|
@ -2647,7 +2647,6 @@ gst_vulkan_full_screen_quad_set_blend_factors().</doc>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="fill_command_buffer" c:identifier="gst_vulkan_full_screen_quad_fill_command_buffer" version="1.18" throws="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">@cmd must be locked with gst_vulkan_command_buffer_lock().</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">whether @cmd could be filled with the necessary commands</doc>
|
||||
@ -6039,6 +6038,50 @@ signalled and freed.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</callback>
|
||||
<record name="VulkanVideoCapabilities" c:type="GstVulkanVideoCapabilities" version="1.24">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
|
||||
<field name="caps" introspectable="0" readable="0" private="1">
|
||||
<type c:type="VkVideoCapabilitiesKHR"/>
|
||||
</field>
|
||||
<union>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
|
||||
<record name="decoder" c:type="decoder">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
|
||||
<field name="caps" introspectable="0" readable="0" private="1">
|
||||
<type c:type="VkVideoDecodeCapabilitiesKHR"/>
|
||||
</field>
|
||||
<union name="codec" c:type="codec">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
|
||||
<field name="h264" introspectable="0" readable="0" private="1">
|
||||
<type c:type="VkVideoDecodeH264CapabilitiesKHR"/>
|
||||
</field>
|
||||
<field name="h265" introspectable="0" readable="0" private="1">
|
||||
<type c:type="VkVideoDecodeH265CapabilitiesKHR"/>
|
||||
</field>
|
||||
</union>
|
||||
</record>
|
||||
<record name="encoder" c:type="encoder">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
|
||||
<field name="caps" introspectable="0" readable="0" private="1">
|
||||
<type c:type="VkVideoEncodeCapabilitiesKHR"/>
|
||||
</field>
|
||||
<union name="codec" c:type="codec">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
|
||||
<field name="h264" introspectable="0" readable="0" private="1">
|
||||
<type c:type="VkVideoEncodeH264CapabilitiesKHR"/>
|
||||
</field>
|
||||
<field name="h265" introspectable="0" readable="0" private="1">
|
||||
<type c:type="VkVideoEncodeH265CapabilitiesKHR"/>
|
||||
</field>
|
||||
</union>
|
||||
</record>
|
||||
</union>
|
||||
<field name="_reserved" readable="0" private="1">
|
||||
<array zero-terminated="0" fixed-size="4">
|
||||
<type name="gpointer" c:type="gpointer"/>
|
||||
</array>
|
||||
</field>
|
||||
</record>
|
||||
<class name="VulkanVideoFilter" c:symbol-prefix="vulkan_video_filter" c:type="GstVulkanVideoFilter" version="1.18" parent="GstBase.BaseTransform" glib:type-name="GstVulkanVideoFilter" glib:get-type="gst_vulkan_video_filter_get_type" glib:type-struct="VulkanVideoFilterClass">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h"/>
|
||||
<method name="get_device" c:identifier="gst_vulkan_video_filter_get_device" version="1.26">
|
||||
@ -6133,6 +6176,125 @@ signalled and freed.</doc>
|
||||
</array>
|
||||
</field>
|
||||
</record>
|
||||
<enumeration name="VulkanVideoOperation" version="1.24" glib:type-name="GstVulkanVideoOperation" glib:get-type="gst_vulkan_video_operation_get_type" c:type="GstVulkanVideoOperation">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h">The type of video operation.</doc>
|
||||
<member name="decode" value="0" c:identifier="GST_VULKAN_VIDEO_OPERATION_DECODE" glib:nick="decode" glib:name="GST_VULKAN_VIDEO_OPERATION_DECODE">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h">decode operation</doc>
|
||||
</member>
|
||||
<member name="encode" value="1" c:identifier="GST_VULKAN_VIDEO_OPERATION_ENCODE" glib:nick="encode" glib:name="GST_VULKAN_VIDEO_OPERATION_ENCODE">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h">encode operation</doc>
|
||||
</member>
|
||||
<member name="unknown" value="2" c:identifier="GST_VULKAN_VIDEO_OPERATION_UNKNOWN" glib:nick="unknown" glib:name="GST_VULKAN_VIDEO_OPERATION_UNKNOWN">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h">unknown</doc>
|
||||
</member>
|
||||
</enumeration>
|
||||
<record name="VulkanVideoProfile" c:type="GstVulkanVideoProfile" version="1.24">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
|
||||
<field name="profile" introspectable="0" readable="0" private="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h">the generic vulkan video profile</doc>
|
||||
<type c:type="VkVideoProfileInfoKHR"/>
|
||||
</field>
|
||||
<union name="usage" c:type="usage">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
|
||||
<field name="decode" introspectable="0" writable="1">
|
||||
<type c:type="VkVideoDecodeUsageInfoKHR"/>
|
||||
</field>
|
||||
<field name="encode" introspectable="0" writable="1">
|
||||
<type c:type="VkVideoEncodeUsageInfoKHR"/>
|
||||
</field>
|
||||
</union>
|
||||
<union name="codec" c:type="codec">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
|
||||
<field name="base" writable="1">
|
||||
<type name="Vulkan.BaseInStructure" c:type="VkBaseInStructure"/>
|
||||
</field>
|
||||
<field name="h264dec" introspectable="0" writable="1">
|
||||
<type c:type="VkVideoDecodeH264ProfileInfoKHR"/>
|
||||
</field>
|
||||
<field name="h265dec" introspectable="0" writable="1">
|
||||
<type c:type="VkVideoDecodeH265ProfileInfoKHR"/>
|
||||
</field>
|
||||
<field name="h264enc" introspectable="0" writable="1">
|
||||
<type c:type="VkVideoEncodeH264ProfileInfoKHR"/>
|
||||
</field>
|
||||
<field name="h265enc" introspectable="0" writable="1">
|
||||
<type c:type="VkVideoEncodeH265ProfileInfoKHR"/>
|
||||
</field>
|
||||
</union>
|
||||
<field name="_reserved" writable="1">
|
||||
<array zero-terminated="0" fixed-size="4">
|
||||
<type name="gpointer" c:type="gpointer"/>
|
||||
</array>
|
||||
</field>
|
||||
<method name="is_equal" c:identifier="gst_vulkan_video_profile_is_equal">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">whether @a and @b contains the same information.</doc>
|
||||
<type name="gboolean" c:type="gboolean"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<instance-parameter name="a" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">a #GstVulkanVideoProfile</doc>
|
||||
<type name="VulkanVideoProfile" c:type="const GstVulkanVideoProfile*"/>
|
||||
</instance-parameter>
|
||||
<parameter name="b" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">another #GstVulkanVideoProfile</doc>
|
||||
<type name="VulkanVideoProfile" c:type="const GstVulkanVideoProfile*"/>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="is_valid" c:identifier="gst_vulkan_video_profile_is_valid" version="1.24" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">%TRUE if @profile is correct and matches with @codec</doc>
|
||||
<type name="gboolean" c:type="gboolean"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<instance-parameter name="profile" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">the output profile</doc>
|
||||
<type name="VulkanVideoProfile" c:type="GstVulkanVideoProfile*"/>
|
||||
</instance-parameter>
|
||||
<parameter name="codec" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">VkVideoCodecOperationFlagBitsKHR described by @profile</doc>
|
||||
<type name="guint" c:type="guint"/>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="to_caps" c:identifier="gst_vulkan_video_profile_to_caps" version="1.24" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
|
||||
<return-value transfer-ownership="full">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">a #GstCaps from @profile</doc>
|
||||
<type name="Gst.Caps" c:type="GstCaps*"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<instance-parameter name="profile" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">#GstVulkanVideoProfile to convert into a #GstCaps</doc>
|
||||
<type name="VulkanVideoProfile" c:type="const GstVulkanVideoProfile*"/>
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<function name="from_caps" c:identifier="gst_vulkan_video_profile_from_caps" version="1.24" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">%TRUE if @caps was parsed correctly, otherwise %FALSE</doc>
|
||||
<type name="gboolean" c:type="gboolean"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<parameter name="profile" direction="out" caller-allocates="1" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">the output profile</doc>
|
||||
<type name="VulkanVideoProfile" c:type="GstVulkanVideoProfile*"/>
|
||||
</parameter>
|
||||
<parameter name="caps" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">a #GstCaps to parse</doc>
|
||||
<type name="Gst.Caps" c:type="GstCaps*"/>
|
||||
</parameter>
|
||||
<parameter name="video_operation" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">a supported video operation</doc>
|
||||
<type name="VulkanVideoOperation" c:type="GstVulkanVideoOperation"/>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function>
|
||||
</record>
|
||||
<class name="VulkanWindow" c:symbol-prefix="vulkan_window" c:type="GstVulkanWindow" version="1.18" parent="Gst.Object" abstract="1" glib:type-name="GstVulkanWindow" glib:get-type="gst_vulkan_window_get_type" glib:type-struct="VulkanWindowClass">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h">#GstVulkanWindow is an opaque struct and should only be accessed through the
|
||||
provided api.</doc>
|
||||
@ -7754,6 +7916,27 @@ associated #GstVulkanFence is signalled</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function>
|
||||
<function name="vulkan_video_profile_from_caps" c:identifier="gst_vulkan_video_profile_from_caps" moved-to="VulkanVideoProfile.from_caps" version="1.24" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">%TRUE if @caps was parsed correctly, otherwise %FALSE</doc>
|
||||
<type name="gboolean" c:type="gboolean"/>
|
||||
</return-value>
|
||||
<parameters>
|
||||
<parameter name="profile" direction="out" caller-allocates="1" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">the output profile</doc>
|
||||
<type name="VulkanVideoProfile" c:type="GstVulkanVideoProfile*"/>
|
||||
</parameter>
|
||||
<parameter name="caps" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">a #GstCaps to parse</doc>
|
||||
<type name="Gst.Caps" c:type="GstCaps*"/>
|
||||
</parameter>
|
||||
<parameter name="video_operation" transfer-ownership="none">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">a supported video operation</doc>
|
||||
<type name="VulkanVideoOperation" c:type="GstVulkanVideoOperation"/>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function>
|
||||
<function name="vulkan_window_error_quark" c:identifier="gst_vulkan_window_error_quark" moved-to="VulkanWindowError.quark" version="1.18">
|
||||
<return-value transfer-ownership="none">
|
||||
<type name="GLib.Quark" c:type="GQuark"/>
|
||||
|
@ -190,97 +190,6 @@ and/or use gtk-doc annotations. -->
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<function-macro name="WEBRTC_ICE_CANDIDATE_STATS_ADDRESS" c:identifier="GST_WEBRTC_ICE_CANDIDATE_STATS_ADDRESS" version="1.28" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h"/>
|
||||
<parameters>
|
||||
<parameter name="c">
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<function-macro name="WEBRTC_ICE_CANDIDATE_STATS_FOUNDATION" c:identifier="GST_WEBRTC_ICE_CANDIDATE_STATS_FOUNDATION" version="1.28" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h"/>
|
||||
<parameters>
|
||||
<parameter name="c">
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<function-macro name="WEBRTC_ICE_CANDIDATE_STATS_PORT" c:identifier="GST_WEBRTC_ICE_CANDIDATE_STATS_PORT" version="1.28" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h"/>
|
||||
<parameters>
|
||||
<parameter name="c">
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<function-macro name="WEBRTC_ICE_CANDIDATE_STATS_PRIORITY" c:identifier="GST_WEBRTC_ICE_CANDIDATE_STATS_PRIORITY" version="1.28" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h"/>
|
||||
<parameters>
|
||||
<parameter name="c">
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<function-macro name="WEBRTC_ICE_CANDIDATE_STATS_PROTOCOL" c:identifier="GST_WEBRTC_ICE_CANDIDATE_STATS_PROTOCOL" version="1.28" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h"/>
|
||||
<parameters>
|
||||
<parameter name="c">
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<function-macro name="WEBRTC_ICE_CANDIDATE_STATS_RELATED_ADDRESS" c:identifier="GST_WEBRTC_ICE_CANDIDATE_STATS_RELATED_ADDRESS" version="1.28" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h"/>
|
||||
<parameters>
|
||||
<parameter name="c">
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<function-macro name="WEBRTC_ICE_CANDIDATE_STATS_RELATED_PORT" c:identifier="GST_WEBRTC_ICE_CANDIDATE_STATS_RELATED_PORT" version="1.28" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h"/>
|
||||
<parameters>
|
||||
<parameter name="c">
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<function-macro name="WEBRTC_ICE_CANDIDATE_STATS_RELAY_PROTOCOL" c:identifier="GST_WEBRTC_ICE_CANDIDATE_STATS_RELAY_PROTOCOL" version="1.28" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h"/>
|
||||
<parameters>
|
||||
<parameter name="c">
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<function-macro name="WEBRTC_ICE_CANDIDATE_STATS_STREAM_ID" c:identifier="GST_WEBRTC_ICE_CANDIDATE_STATS_STREAM_ID" version="1.28" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h"/>
|
||||
<parameters>
|
||||
<parameter name="c">
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<function-macro name="WEBRTC_ICE_CANDIDATE_STATS_TCP_TYPE" c:identifier="GST_WEBRTC_ICE_CANDIDATE_STATS_TCP_TYPE" version="1.28" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h"/>
|
||||
<parameters>
|
||||
<parameter name="c">
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<function-macro name="WEBRTC_ICE_CANDIDATE_STATS_TYPE" c:identifier="GST_WEBRTC_ICE_CANDIDATE_STATS_TYPE" version="1.28" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h"/>
|
||||
<parameters>
|
||||
<parameter name="c">
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<function-macro name="WEBRTC_ICE_CANDIDATE_STATS_URL" c:identifier="GST_WEBRTC_ICE_CANDIDATE_STATS_URL" version="1.28" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h"/>
|
||||
<parameters>
|
||||
<parameter name="c">
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<function-macro name="WEBRTC_ICE_CANDIDATE_STATS_USERNAME_FRAGMENT" c:identifier="GST_WEBRTC_ICE_CANDIDATE_STATS_USERNAME_FRAGMENT" version="1.28" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h"/>
|
||||
<parameters>
|
||||
<parameter name="c">
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<function-macro name="WEBRTC_ICE_CLASS" c:identifier="GST_WEBRTC_ICE_CLASS" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h"/>
|
||||
<parameters>
|
||||
@ -437,17 +346,6 @@ for more information.</doc>
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/webrtc_fwd.h">max-bundle</doc>
|
||||
</member>
|
||||
</enumeration>
|
||||
<enumeration name="WebRTCDTLSRole" version="1.28" glib:type-name="GstWebRTCDTLSRole" glib:get-type="gst_webrtc_dtls_role_get_type" c:type="GstWebRTCDTLSRole">
|
||||
<member name="client" value="0" c:identifier="GST_WEBRTC_DTLS_ROLE_CLIENT" glib:nick="client" glib:name="GST_WEBRTC_DTLS_ROLE_CLIENT">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/webrtc_fwd.h">client</doc>
|
||||
</member>
|
||||
<member name="server" value="1" c:identifier="GST_WEBRTC_DTLS_ROLE_SERVER" glib:nick="server" glib:name="GST_WEBRTC_DTLS_ROLE_SERVER">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/webrtc_fwd.h">server</doc>
|
||||
</member>
|
||||
<member name="unknown" value="2" c:identifier="GST_WEBRTC_DTLS_ROLE_UNKNOWN" glib:nick="unknown" glib:name="GST_WEBRTC_DTLS_ROLE_UNKNOWN">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/webrtc_fwd.h">unknown</doc>
|
||||
</member>
|
||||
</enumeration>
|
||||
<enumeration name="WebRTCDTLSSetup" glib:type-name="GstWebRTCDTLSSetup" glib:get-type="gst_webrtc_dtls_setup_get_type" c:type="GstWebRTCDTLSSetup">
|
||||
<member name="none" value="0" c:identifier="GST_WEBRTC_DTLS_SETUP_NONE" glib:nick="none" glib:name="GST_WEBRTC_DTLS_SETUP_NONE">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/webrtc_fwd.h">none</doc>
|
||||
@ -518,9 +416,8 @@ for more information.</doc>
|
||||
</instance-parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="send_data" c:identifier="gst_webrtc_data_channel_send_data" deprecated="1" deprecated-version="1.22">
|
||||
<method name="send_data" c:identifier="gst_webrtc_data_channel_send_data">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/datachannel.c">Send @data as a data message over @channel.</doc>
|
||||
<doc-deprecated xml:space="preserve">Use gst_webrtc_data_channel_send_data_full() instead</doc-deprecated>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/datachannel.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<type name="none" c:type="void"/>
|
||||
@ -554,9 +451,8 @@ for more information.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</method>
|
||||
<method name="send_string" c:identifier="gst_webrtc_data_channel_send_string" deprecated="1" deprecated-version="1.22">
|
||||
<method name="send_string" c:identifier="gst_webrtc_data_channel_send_string">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/datachannel.c">Send @str as a string message over @channel.</doc>
|
||||
<doc-deprecated xml:space="preserve">Use gst_webrtc_data_channel_send_string_full() instead</doc-deprecated>
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/datachannel.h"/>
|
||||
<return-value transfer-ownership="none">
|
||||
<type name="none" c:type="void"/>
|
||||
@ -677,8 +573,7 @@ for more information.</doc>
|
||||
<type name="none" c:type="void"/>
|
||||
</return-value>
|
||||
</glib:signal>
|
||||
<glib:signal name="send-data" when="last" action="1" deprecated="1" deprecated-version="1.22">
|
||||
<doc-deprecated xml:space="preserve">Use gst_webrtc_data_channel_send_data_full() instead</doc-deprecated>
|
||||
<glib:signal name="send-data" when="last" action="1">
|
||||
<return-value transfer-ownership="none">
|
||||
<type name="none" c:type="void"/>
|
||||
</return-value>
|
||||
@ -689,8 +584,7 @@ for more information.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</glib:signal>
|
||||
<glib:signal name="send-string" when="last" action="1" deprecated="1" deprecated-version="1.22">
|
||||
<doc-deprecated xml:space="preserve">Use gst_webrtc_data_channel_send_string_full() instead</doc-deprecated>
|
||||
<glib:signal name="send-string" when="last" action="1">
|
||||
<return-value transfer-ownership="none">
|
||||
<type name="none" c:type="void"/>
|
||||
</return-value>
|
||||
@ -1591,66 +1485,34 @@ stops automatic ICE gathering.</doc>
|
||||
<record name="WebRTCICECandidateStats" c:type="GstWebRTCICECandidateStats" version="1.22" glib:type-name="GstWebRTCICECandidateStats" glib:get-type="gst_webrtc_ice_candidate_stats_get_type" c:symbol-prefix="webrtc_ice_candidate_stats">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h"/>
|
||||
<field name="ipaddr" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h">A string containing the address of the candidate. This value may be
|
||||
an IPv4 address, an IPv6 address, or a fully-qualified domain name</doc>
|
||||
<type name="utf8" c:type="gchar*"/>
|
||||
</field>
|
||||
<field name="port" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h">The network port number used by the candidate</doc>
|
||||
<type name="guint" c:type="guint"/>
|
||||
</field>
|
||||
<field name="stream_id" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h">A string that uniquely identifies the object that is being
|
||||
monitored to produce this set of statistics</doc>
|
||||
<type name="guint" c:type="guint"/>
|
||||
</field>
|
||||
<field name="type" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h">The candidate type</doc>
|
||||
<type name="utf8" c:type="const gchar*"/>
|
||||
</field>
|
||||
<field name="proto" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h">A string specifying the protocol (tcp or udp) used to transmit data
|
||||
on the @port</doc>
|
||||
<type name="utf8" c:type="const gchar*"/>
|
||||
</field>
|
||||
<field name="relay_proto" writable="1">
|
||||
<type name="utf8" c:type="const gchar*"/>
|
||||
</field>
|
||||
<field name="prio" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h">The candidate's priority, corresponding to RTCIceCandidate.priority</doc>
|
||||
<type name="guint" c:type="guint"/>
|
||||
</field>
|
||||
<field name="url" writable="1">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h">For local candidates, the url property is the URL of the ICE server
|
||||
from which the candidate was received</doc>
|
||||
<type name="utf8" c:type="gchar*"/>
|
||||
</field>
|
||||
<union name="ABI" c:type="ABI">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h"/>
|
||||
<record name="abi" c:type="abi">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h"/>
|
||||
<field name="foundation" writable="1">
|
||||
<type name="utf8" c:type="gchar*"/>
|
||||
</field>
|
||||
<field name="related_address" writable="1">
|
||||
<type name="utf8" c:type="gchar*"/>
|
||||
</field>
|
||||
<field name="related_port" writable="1">
|
||||
<type name="guint" c:type="guint"/>
|
||||
</field>
|
||||
<field name="username_fragment" writable="1">
|
||||
<type name="utf8" c:type="gchar*"/>
|
||||
</field>
|
||||
<field name="tcp_type" writable="1">
|
||||
<type name="WebRTCICETcpCandidateType" c:type="GstWebRTCICETcpCandidateType"/>
|
||||
</field>
|
||||
</record>
|
||||
<field name="_gst_reserved" readable="0" private="1">
|
||||
<array zero-terminated="0" fixed-size="20">
|
||||
<type name="gpointer" c:type="gpointer"/>
|
||||
</array>
|
||||
</field>
|
||||
</union>
|
||||
<field name="_gst_reserved" writable="1">
|
||||
<array zero-terminated="0" fixed-size="20">
|
||||
<type name="gpointer" c:type="gpointer"/>
|
||||
</array>
|
||||
</field>
|
||||
<method name="copy" c:identifier="gst_webrtc_ice_candidate_stats_copy" version="1.22">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/ice.h"/>
|
||||
<return-value transfer-ownership="full">
|
||||
@ -2299,25 +2161,6 @@ Get HTTP Proxy to be used when connecting to TURN server.</doc>
|
||||
</callback>
|
||||
</field>
|
||||
</record>
|
||||
<enumeration name="WebRTCICETcpCandidateType" version="1.28" glib:type-name="GstWebRTCICETcpCandidateType" glib:get-type="gst_webrtc_ice_tcp_candidate_type_get_type" c:type="GstWebRTCICETcpCandidateType">
|
||||
<member name="active" value="0" c:identifier="GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_ACTIVE" glib:nick="active" glib:name="GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_ACTIVE">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/webrtc_fwd.h">An "active" TCP candidate is one for which the transport
|
||||
will attempt to open an outbound connection but will not
|
||||
receive incoming connection requests.</doc>
|
||||
</member>
|
||||
<member name="passive" value="1" c:identifier="GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_PASSIVE" glib:nick="passive" glib:name="GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_PASSIVE">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/webrtc_fwd.h">A "passive" TCP candidate is one for which the transport
|
||||
will receive incoming connection attempts but not attempt
|
||||
a connection.</doc>
|
||||
</member>
|
||||
<member name="so" value="2" c:identifier="GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_SO" glib:nick="so" glib:name="GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_SO">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/webrtc_fwd.h">An "so" candidate is one for which the transport will attempt
|
||||
to open a connection simultaneously with its peer.</doc>
|
||||
</member>
|
||||
<member name="none" value="3" c:identifier="GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_NONE" glib:nick="none" glib:name="GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_NONE">
|
||||
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/webrtc_fwd.h">Value used for non-TCP candidate type.</doc>
|
||||
</member>
|
||||
</enumeration>
|
||||
<class name="WebRTCICETransport" c:symbol-prefix="webrtc_ice_transport" c:type="GstWebRTCICETransport" parent="Gst.Object" abstract="1" glib:type-name="GstWebRTCICETransport" glib:get-type="gst_webrtc_ice_transport_get_type" glib:type-struct="WebRTCICETransportClass">
|
||||
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/webrtc/icetransport.h"/>
|
||||
<virtual-method name="gather_candidates">
|
||||
|
144
gst-env.py
144
gst-env.py
@ -52,7 +52,6 @@ done
|
||||
BASH_COMPLETION_PATHS = [SCRIPTDIR + '/subprojects/gstreamer/data/bash-completion/completions']
|
||||
BASH_COMPLETION_PATHS += [SCRIPTDIR + '/subprojects/gst-devtools/validate/data/bash-completion/completions']
|
||||
|
||||
UPDATED_ENV = dict()
|
||||
|
||||
def str_to_bool(value: Any) -> bool:
|
||||
"""Return whether the provided string (or any value really) represents true. Otherwise false.
|
||||
@ -81,18 +80,11 @@ def stringify(o):
|
||||
raise AssertionError('Object {!r} must be a string or a list'.format(o))
|
||||
|
||||
|
||||
def set_env_var(env, var, value, options):
|
||||
if options.only_environment:
|
||||
UPDATED_ENV[var] = value
|
||||
|
||||
env[var] = value
|
||||
|
||||
|
||||
def prepend_env_var(env, var, value, options):
|
||||
def prepend_env_var(env, var, value, sysroot):
|
||||
if var is None:
|
||||
return
|
||||
if value.startswith(options.sysroot):
|
||||
value = value[len(options.sysroot):]
|
||||
if value.startswith(sysroot):
|
||||
value = value[len(sysroot):]
|
||||
# Try not to exceed maximum length limits for env vars on Windows
|
||||
if os.name == 'nt':
|
||||
value = win32_get_short_path_name(value)
|
||||
@ -101,8 +93,8 @@ def prepend_env_var(env, var, value, options):
|
||||
# Don't add the same value twice
|
||||
if val in env_val or env_val.startswith(value + os.pathsep):
|
||||
return
|
||||
set_env_var(env, var, val + env_val, options)
|
||||
set_env_var(env, var, env[var].replace(os.pathsep + os.pathsep, os.pathsep).strip(os.pathsep), options)
|
||||
env[var] = val + env_val
|
||||
env[var] = env[var].replace(os.pathsep + os.pathsep, os.pathsep).strip(os.pathsep)
|
||||
|
||||
|
||||
def get_target_install_filename(target, filename):
|
||||
@ -204,15 +196,15 @@ def get_wine_subprocess_env(options, env):
|
||||
|
||||
prefix, = [o for o in buildoptions if o['name'] == 'prefix']
|
||||
path = os.path.normpath(os.path.join(prefix['value'], 'bin'))
|
||||
prepend_env_var(env, "PATH", path, options)
|
||||
prepend_env_var(env, "PATH", path, options.sysroot)
|
||||
wine_path = get_wine_shortpath(
|
||||
options.wine.split(' '),
|
||||
[path] + env.get('WINEPATH', '').split(';')
|
||||
)
|
||||
if options.winepath:
|
||||
wine_path += ';' + options.winepath
|
||||
set_env_var(env, 'WINEPATH', wine_path, options)
|
||||
set_env_var(env, 'WINEDEBUG', 'fixme-all', options)
|
||||
env['WINEPATH'] = wine_path
|
||||
env['WINEDEBUG'] = 'fixme-all'
|
||||
|
||||
return env
|
||||
|
||||
@ -267,46 +259,43 @@ def is_bash_completion_available(options):
|
||||
def get_subprocess_env(options, gst_version):
|
||||
env = os.environ.copy()
|
||||
|
||||
set_env_var(env, "CURRENT_GST", os.path.normpath(SCRIPTDIR), options)
|
||||
set_env_var(env, "GST_VERSION", gst_version, options)
|
||||
env["CURRENT_GST"] = os.path.normpath(SCRIPTDIR)
|
||||
env["GST_VERSION"] = gst_version
|
||||
prepend_env_var(env, "GST_VALIDATE_SCENARIOS_PATH", os.path.normpath(
|
||||
"%s/subprojects/gst-devtools/validate/data/scenarios" % SCRIPTDIR),
|
||||
options)
|
||||
set_env_var(env, "GST_VALIDATE_PLUGIN_PATH", os.path.normpath(
|
||||
"%s/subprojects/gst-devtools/validate/plugins" % options.builddir),
|
||||
options)
|
||||
options.sysroot)
|
||||
env["GST_VALIDATE_PLUGIN_PATH"] = os.path.normpath(
|
||||
"%s/subprojects/gst-devtools/validate/plugins" % options.builddir)
|
||||
prepend_env_var(env, "GST_VALIDATE_APPS_DIR", os.path.normpath(
|
||||
"%s/subprojects/gst-editing-services/tests/validate" % SCRIPTDIR),
|
||||
options)
|
||||
set_env_var(env, "GST_ENV", gst_version, options)
|
||||
set_env_var(env, "GST_REGISTRY", os.path.normpath(options.builddir + "/registry.dat"), options)
|
||||
options.sysroot)
|
||||
env["GST_ENV"] = gst_version
|
||||
env["GST_REGISTRY"] = os.path.normpath(options.builddir + "/registry.dat")
|
||||
prepend_env_var(env, "PATH", os.path.normpath(
|
||||
"%s/subprojects/gst-devtools/validate/tools" % options.builddir),
|
||||
options)
|
||||
options.sysroot)
|
||||
|
||||
prepend_env_var(env, "GST_VALIDATE_SCENARIOS_PATH", os.path.normpath(
|
||||
"%s/subprojects/gst-examples/webrtc/check/validate/scenarios" %
|
||||
SCRIPTDIR), options)
|
||||
SCRIPTDIR), options.sysroot)
|
||||
prepend_env_var(env, "GST_VALIDATE_APPS_DIR", os.path.normpath(
|
||||
"%s/subprojects/gst-examples/webrtc/check/validate/apps" %
|
||||
SCRIPTDIR), options)
|
||||
set_env_var(env, "GST_VALIDATE_LAUNCHER_HTTP_SERVER_PATH", os.path.normpath(
|
||||
SCRIPTDIR), options.sysroot)
|
||||
env["GST_VALIDATE_LAUNCHER_HTTP_SERVER_PATH"] = os.path.normpath(
|
||||
"%s/subprojects/gst-devtools/validate/launcher/RangeHTTPServer.py" %
|
||||
SCRIPTDIR), options)
|
||||
SCRIPTDIR)
|
||||
|
||||
if options.wine:
|
||||
return get_wine_subprocess_env(options, env)
|
||||
|
||||
prepend_env_var(env, "PATH", os.path.join(SCRIPTDIR, 'meson'),
|
||||
options)
|
||||
options.sysroot)
|
||||
|
||||
set_env_var(env, "GST_PLUGIN_SYSTEM_PATH", "", options)
|
||||
set_env_var(env, "GST_PLUGIN_SCANNER", os.path.normpath(
|
||||
"%s/subprojects/gstreamer/libs/gst/helpers/gst-plugin-scanner" % options.builddir),
|
||||
options)
|
||||
set_env_var(env, "GST_PTP_HELPER", os.path.normpath(
|
||||
"%s/subprojects/gstreamer/libs/gst/helpers/ptp/gst-ptp-helper" % options.builddir),
|
||||
options)
|
||||
env["GST_PLUGIN_SYSTEM_PATH"] = ""
|
||||
env["GST_PLUGIN_SCANNER"] = os.path.normpath(
|
||||
"%s/subprojects/gstreamer/libs/gst/helpers/gst-plugin-scanner" % options.builddir)
|
||||
env["GST_PTP_HELPER"] = os.path.normpath(
|
||||
"%s/subprojects/gstreamer/libs/gst/helpers/ptp/gst-ptp-helper" % options.builddir)
|
||||
|
||||
if os.name == 'nt':
|
||||
lib_path_envvar = 'PATH'
|
||||
@ -322,47 +311,47 @@ def get_subprocess_env(options, gst_version):
|
||||
|
||||
prepend_env_var(env, "GST_PLUGIN_PATH", os.path.join(SCRIPTDIR, 'subprojects',
|
||||
'gst-python', 'plugin'),
|
||||
options)
|
||||
options.sysroot)
|
||||
prepend_env_var(env, "GST_PLUGIN_PATH", os.path.join(PREFIX_DIR, 'lib',
|
||||
'gstreamer-1.0'),
|
||||
options)
|
||||
options.sysroot)
|
||||
prepend_env_var(env, "GST_PLUGIN_PATH", os.path.join(options.builddir, 'subprojects',
|
||||
'libnice', 'gst'),
|
||||
options)
|
||||
options.sysroot)
|
||||
prepend_env_var(env, "GST_VALIDATE_SCENARIOS_PATH",
|
||||
os.path.join(PREFIX_DIR, 'share', 'gstreamer-1.0',
|
||||
'validate', 'scenarios'),
|
||||
options)
|
||||
options.sysroot)
|
||||
prepend_env_var(env, "GI_TYPELIB_PATH", os.path.join(PREFIX_DIR, 'lib',
|
||||
'lib', 'girepository-1.0'),
|
||||
options)
|
||||
options.sysroot)
|
||||
prepend_env_var(env, "PKG_CONFIG_PATH", os.path.join(PREFIX_DIR, 'lib', 'pkgconfig'),
|
||||
options)
|
||||
options.sysroot)
|
||||
|
||||
# tools: gst-launch-1.0, gst-inspect-1.0
|
||||
prepend_env_var(env, "PATH", os.path.join(options.builddir, 'subprojects',
|
||||
'gstreamer', 'tools'),
|
||||
options)
|
||||
options.sysroot)
|
||||
# plugin scanner and generator
|
||||
prepend_env_var(env, "PATH", os.path.join(options.builddir, 'subprojects',
|
||||
'gstreamer', 'docs'),
|
||||
options)
|
||||
options.sysroot)
|
||||
prepend_env_var(env, "PATH", os.path.join(options.builddir, 'subprojects',
|
||||
'gst-plugins-base', 'tools'),
|
||||
options)
|
||||
options.sysroot)
|
||||
|
||||
# Library and binary search paths
|
||||
prepend_env_var(env, "PATH", os.path.join(PREFIX_DIR, 'bin'),
|
||||
options)
|
||||
options.sysroot)
|
||||
if lib_path_envvar != 'PATH':
|
||||
prepend_env_var(env, lib_path_envvar, os.path.join(PREFIX_DIR, 'lib'),
|
||||
options)
|
||||
options.sysroot)
|
||||
prepend_env_var(env, lib_path_envvar, os.path.join(PREFIX_DIR, 'lib64'),
|
||||
options)
|
||||
options.sysroot)
|
||||
elif 'QMAKE' in os.environ:
|
||||
# There's no RPATH on Windows, so we need to set PATH for the qt5 DLLs
|
||||
prepend_env_var(env, 'PATH', os.path.dirname(os.environ['QMAKE']),
|
||||
options)
|
||||
options.sysroot)
|
||||
|
||||
meson = get_meson()
|
||||
targets_s = subprocess.check_output(meson + ['introspect', options.builddir, '--targets'])
|
||||
@ -396,17 +385,17 @@ def get_subprocess_env(options, gst_version):
|
||||
if TYPELIB_REG.search(filename):
|
||||
prepend_env_var(env, "GI_TYPELIB_PATH",
|
||||
os.path.join(options.builddir, root),
|
||||
options)
|
||||
options.sysroot)
|
||||
elif is_library_target_and_not_plugin(target, filename):
|
||||
prepend_env_var(env, lib_path_envvar,
|
||||
os.path.join(options.builddir, root),
|
||||
options)
|
||||
options.sysroot)
|
||||
elif is_binary_target_and_in_path(target, filename, bindir):
|
||||
paths.add(os.path.join(options.builddir, root))
|
||||
elif is_gio_module(target, filename, options.builddir):
|
||||
prepend_env_var(env, 'GIO_EXTRA_MODULES',
|
||||
os.path.join(options.builddir, root),
|
||||
options)
|
||||
options.sysroot)
|
||||
|
||||
# Search for the Plugin paths file either in the build directory root
|
||||
# or check if gstreamer is a subproject of another project
|
||||
@ -416,16 +405,16 @@ def get_subprocess_env(options, gst_version):
|
||||
with open(plugin_paths) as f:
|
||||
for plugin_path in json.load(f):
|
||||
prepend_env_var(env, 'GST_PLUGIN_PATH', plugin_path,
|
||||
options)
|
||||
options.sysroot)
|
||||
break
|
||||
|
||||
# Sort to iterate in a consistent order (`set`s and `hash`es are randomized)
|
||||
for p in sorted(paths):
|
||||
prepend_env_var(env, 'PATH', p, options)
|
||||
prepend_env_var(env, 'PATH', p, options.sysroot)
|
||||
|
||||
if os.name != 'nt':
|
||||
for p in sorted(mono_paths):
|
||||
prepend_env_var(env, "MONO_PATH", p, options)
|
||||
prepend_env_var(env, "MONO_PATH", p, options.sysroot)
|
||||
|
||||
presets = set()
|
||||
encoding_targets = set()
|
||||
@ -467,48 +456,48 @@ def get_subprocess_env(options, gst_version):
|
||||
os.path.abspath(os.path.join(os.path.dirname(path), '..')))
|
||||
|
||||
for p in sorted(presets):
|
||||
prepend_env_var(env, 'GST_PRESET_PATH', p, options)
|
||||
prepend_env_var(env, 'GST_PRESET_PATH', p, options.sysroot)
|
||||
|
||||
for t in sorted(encoding_targets):
|
||||
prepend_env_var(env, 'GST_ENCODING_TARGET_PATH', t, options)
|
||||
prepend_env_var(env, 'GST_ENCODING_TARGET_PATH', t, options.sysroot)
|
||||
|
||||
# Check if meson has generated -uninstalled pkgconfig files
|
||||
meson_uninstalled = pathlib.Path(options.builddir) / 'meson-uninstalled'
|
||||
if meson_uninstalled.is_dir():
|
||||
prepend_env_var(env, 'PKG_CONFIG_PATH', str(meson_uninstalled), options)
|
||||
prepend_env_var(env, 'PKG_CONFIG_PATH', str(meson_uninstalled), options.sysroot)
|
||||
|
||||
for python_dir in sorted(python_dirs):
|
||||
prepend_env_var(env, 'PYTHONPATH', python_dir, options)
|
||||
prepend_env_var(env, 'PYTHONPATH', python_dir, options.sysroot)
|
||||
|
||||
for python_dir in sorted(overrides_dirs):
|
||||
prepend_env_var(env, '_GI_OVERRIDES_PATH', python_dir, options)
|
||||
prepend_env_var(env, '_GI_OVERRIDES_PATH', python_dir, options.sysroot)
|
||||
|
||||
mesonpath = os.path.join(SCRIPTDIR, "meson")
|
||||
if os.path.join(mesonpath):
|
||||
# Add meson/ into PYTHONPATH if we are using a local meson
|
||||
prepend_env_var(env, 'PYTHONPATH', mesonpath, options)
|
||||
prepend_env_var(env, 'PYTHONPATH', mesonpath, options.sysroot)
|
||||
|
||||
# Ensure that gst-python/gi is used first
|
||||
prepend_env_var(env, "PYTHONPATH", os.path.join(SCRIPTDIR, 'subprojects', 'gst-python'),
|
||||
options)
|
||||
options.sysroot)
|
||||
|
||||
# For devhelp books
|
||||
if 'XDG_DATA_DIRS' not in env or not env['XDG_DATA_DIRS']:
|
||||
# Preserve default paths when empty
|
||||
prepend_env_var(env, 'XDG_DATA_DIRS', '/usr/local/share/:/usr/share/', options)
|
||||
prepend_env_var(env, 'XDG_DATA_DIRS', '/usr/local/share/:/usr/share/', '')
|
||||
|
||||
prepend_env_var(env, 'XDG_DATA_DIRS', os.path.join(options.builddir,
|
||||
'subprojects',
|
||||
'gst-docs',
|
||||
'GStreamer-doc'),
|
||||
options)
|
||||
options.sysroot)
|
||||
|
||||
if 'XDG_CONFIG_DIRS' not in env or not env['XDG_CONFIG_DIRS']:
|
||||
# Preserve default paths when empty
|
||||
prepend_env_var(env, 'XDG_CONFIG_DIRS', '/etc/local/xdg:/etc/xdg', options)
|
||||
prepend_env_var(env, 'XDG_CONFIG_DIRS', '/etc/local/xdg:/etc/xdg', '')
|
||||
|
||||
prepend_env_var(env, "XDG_CONFIG_DIRS", os.path.join(PREFIX_DIR, 'etc', 'xdg'),
|
||||
options)
|
||||
options.sysroot)
|
||||
|
||||
return env
|
||||
|
||||
@ -520,15 +509,6 @@ def get_windows_shell():
|
||||
return result.decode().strip()
|
||||
|
||||
|
||||
def macos_sip_enabled():
|
||||
if platform.system() != 'Darwin':
|
||||
return False
|
||||
ret = subprocess.run(["csrutil", "status"], text=True, capture_output=True)
|
||||
if not ret.stdout:
|
||||
return True
|
||||
return 'enabled' in ret.stdout
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(prog="gst-env")
|
||||
|
||||
@ -592,7 +572,6 @@ if __name__ == "__main__":
|
||||
else:
|
||||
new_args += ['/c', 'start', '/b', '/wait'] + args
|
||||
args = new_args
|
||||
prompt_export = None
|
||||
if not args:
|
||||
if os.name != 'nt':
|
||||
args = [os.environ.get("SHELL", os.path.realpath("/bin/sh"))]
|
||||
@ -622,7 +601,7 @@ if __name__ == "__main__":
|
||||
# Ignore SIGINT while using fish as the shell to make it behave
|
||||
# like other shells such as bash and zsh.
|
||||
# See: https://gitlab.freedesktop.org/gstreamer/gst-build/issues/18
|
||||
signal.signal(signal.SIGINT, lambda _, __: True)
|
||||
signal.signal(signal.SIGINT, lambda x, y: True)
|
||||
# Set the prompt
|
||||
args.append('--init-command')
|
||||
prompt_cmd = '''functions --copy fish_prompt original_fish_prompt
|
||||
@ -641,10 +620,10 @@ if __name__ == "__main__":
|
||||
shutil.copyfileobj(src, tmprc)
|
||||
tmprc.write('\n' + prompt_export)
|
||||
tmprc.flush()
|
||||
set_env_var(env, 'ZDOTDIR', tmpdir.name, options)
|
||||
env['ZDOTDIR'] = tmpdir.name
|
||||
try:
|
||||
if options.only_environment:
|
||||
for name, value in UPDATED_ENV.items():
|
||||
for name, value in env.items():
|
||||
print('{}={}'.format(name, shlex.quote(value)))
|
||||
print('export {}'.format(name))
|
||||
if prompt_export:
|
||||
@ -654,9 +633,6 @@ if __name__ == "__main__":
|
||||
print("Ignoring SIGINT when running on the CI,"
|
||||
" as we get spurious sigint in there for some reason.")
|
||||
signal.signal(signal.SIGINT, signal.SIG_IGN)
|
||||
if macos_sip_enabled():
|
||||
print('macOS System Integrity Protection is enabled: DYLD_LIBRARY_PATH cannot be set in the subshell')
|
||||
print('To fix that, use `./gst-env.py --only-environment > gst.env && source gst.env`')
|
||||
exit(subprocess.call(args, close_fds=False, env=env))
|
||||
|
||||
except subprocess.CalledProcessError as e:
|
||||
|
30
meson.build
30
meson.build
@ -1,5 +1,5 @@
|
||||
project('gstreamer-full', 'c',
|
||||
version : '1.27.1.1',
|
||||
version : '1.27.0.1',
|
||||
meson_version : '>= 1.4',
|
||||
default_options : ['buildtype=debugoptimized',
|
||||
# Needed due to https://github.com/mesonbuild/meson/issues/1889,
|
||||
@ -35,16 +35,9 @@ endif
|
||||
gitlint_req = '>= 0.18'
|
||||
gitlint = find_program('gitlint', version: gitlint_req, required: false)
|
||||
if gitlint.found()
|
||||
git = find_program('git', required: false)
|
||||
if git.found() and fs.is_dir(meson.current_source_dir() / '.git')
|
||||
gitlint_status = run_command(git, 'hook', 'run', 'commit-msg', check: false)
|
||||
# exit code 253 means "wrong invocation" in Gitlint
|
||||
if gitlint_status.returncode() != 253
|
||||
gitlint_status = run_command(gitlint, 'install-hook', check: false)
|
||||
if gitlint_status.returncode() != 0
|
||||
warning(gitlint_status.stderr().strip())
|
||||
endif
|
||||
endif
|
||||
gitlint_status = run_command(gitlint, 'install-hook', check: false)
|
||||
if gitlint_status.returncode() != 0
|
||||
warning(gitlint_status.stderr().strip())
|
||||
endif
|
||||
else
|
||||
warning('gitlint not found or too old, please install it with your package manager or `python3 -m pip install gitlint` to enable the commit message hook')
|
||||
@ -145,6 +138,7 @@ subprojects = [
|
||||
['gst-devtools', { 'option': get_option('devtools'), 'build-hotdoc': true}],
|
||||
['gst-integration-testsuites', { 'option': get_option('devtools') }],
|
||||
['gst-editing-services', { 'option': get_option('ges'), 'build-hotdoc': true}],
|
||||
['gstreamer-vaapi', { 'option': get_option('vaapi'), 'build-hotdoc': true}],
|
||||
['gstreamer-sharp', { 'option': get_option('sharp') }],
|
||||
['pygobject', { 'option': get_option('python'), 'match_gst_version': false, 'sysdep': 'pygobject-3.0', 'sysdep_version': '>= 3.8' }],
|
||||
['gst-python', { 'option': gst_python_option}],
|
||||
@ -172,7 +166,7 @@ endif
|
||||
|
||||
orc_option = get_option('orc')
|
||||
# There is a check below to keep this in sync with subprojects/gst-plugins-base/meson.build
|
||||
orc_req = '>= 0.4.34'
|
||||
orc_req = '>= 0.4.24'
|
||||
orc_source_option = get_option('orc-source')
|
||||
orc_subproject = disabler()
|
||||
if orc_option.allowed()
|
||||
@ -419,12 +413,12 @@ if building_full
|
||||
init_static_plugins_c = configure_file(
|
||||
output: 'gstinitstaticplugins.c',
|
||||
command : [generate_init_static_plugins,
|
||||
'-o', '@OUTPUT@',
|
||||
'-p', all_plugin_names,
|
||||
'-e', get_option('gst-full-elements'),
|
||||
'-t', get_option('gst-full-typefind-functions'),
|
||||
'-d', get_option('gst-full-device-providers'),
|
||||
'-T', get_option('gst-full-dynamic-types'),
|
||||
'-o ' + '@OUTPUT@',
|
||||
'-p ' + all_plugin_names,
|
||||
'-e ' + get_option('gst-full-elements'),
|
||||
'-t ' + get_option('gst-full-typefind-functions'),
|
||||
'-d ' + get_option('gst-full-device-providers'),
|
||||
'-T ' + get_option('gst-full-dynamic-types'),
|
||||
'--giomodules', ';'.join(giomodules),
|
||||
]
|
||||
)
|
||||
|
@ -8,6 +8,7 @@ option('devtools', type : 'feature', value : 'auto')
|
||||
option('ges', type : 'feature', value : 'auto')
|
||||
option('rtsp_server', type : 'feature', value : 'auto')
|
||||
option('rs', type : 'feature', value : 'disabled')
|
||||
option('vaapi', type : 'feature', value : 'disabled')
|
||||
option('gst-examples', type : 'feature', value : 'auto', description : 'Build gst-examples subproject')
|
||||
# Bindings
|
||||
option('python', type : 'feature', value : 'auto')
|
||||
@ -60,8 +61,6 @@ option('extra-checks', type : 'feature', value : 'enabled', description : 'Enabl
|
||||
option('benchmarks', type : 'feature', value : 'auto')
|
||||
option('tools', type : 'feature', value : 'auto', yield : true, description : 'Build command line tools')
|
||||
option('orc', type : 'feature', value : 'auto', description : 'Optimized Inner Loop Runtime Compiler (SIMD)')
|
||||
option('qt-method', type: 'combo', value: 'auto', choices: ['auto', 'pkg-config', 'qmake'],
|
||||
description: 'Method to use to find Qt')
|
||||
option('qt5', type : 'feature', value : 'auto', description : 'Qt5 toolkit support')
|
||||
option('qt6', type : 'feature', value : 'auto', description : 'Qt6 toolkit support')
|
||||
option('webrtc', type : 'feature', value : 'auto', description : 'WebRTC support')
|
@ -18,7 +18,6 @@ if os.name == 'nt':
|
||||
_GetShortPathNameW.argtypes = [wintypes.LPCWSTR, wintypes.LPWSTR, wintypes.DWORD]
|
||||
_GetShortPathNameW.restype = wintypes.DWORD
|
||||
|
||||
|
||||
def win32_get_short_path_name(long_name):
|
||||
"""
|
||||
Gets the short path name of a given long path.
|
||||
@ -45,7 +44,8 @@ def get_wine_shortpath(winecmd, wine_paths):
|
||||
try:
|
||||
with open(os.devnull, 'w') as stderr:
|
||||
wine_path = subprocess.check_output(
|
||||
winecmd + ['cmd', '/C', getShortPathScript] + wine_paths,
|
||||
winecmd +
|
||||
['cmd', '/C', getShortPathScript] + wine_paths,
|
||||
stderr=stderr).decode('utf-8')
|
||||
except subprocess.CalledProcessError as e:
|
||||
print("Could not get short paths: %s" % e)
|
||||
@ -54,8 +54,8 @@ def get_wine_shortpath(winecmd, wine_paths):
|
||||
os.remove(getShortPathScript)
|
||||
if len(wine_path) > 2048:
|
||||
raise AssertionError('WINEPATH size {} > 2048'
|
||||
' this will cause random failure.'.format(
|
||||
len(wine_path)))
|
||||
' this will cause random failure.'.format(
|
||||
len(wine_path)))
|
||||
return wine_path
|
||||
|
||||
|
||||
@ -112,6 +112,7 @@ class Colors:
|
||||
cls.ENDC = '\033[0m'
|
||||
|
||||
|
||||
|
||||
def git(*args, repository_path='.', fatal=True):
|
||||
try:
|
||||
ret = subprocess.check_output(["git"] + list(args), cwd=repository_path,
|
||||
@ -121,10 +122,9 @@ def git(*args, repository_path='.', fatal=True):
|
||||
if fatal:
|
||||
raise e
|
||||
print("Non-fatal error running git {}:\n{}".format(' '.join(args), e))
|
||||
return ''
|
||||
return None
|
||||
return ret
|
||||
|
||||
|
||||
def accept_command(commands):
|
||||
"""Search @commands and returns the first found absolute path."""
|
||||
for command in commands:
|
||||
@ -133,17 +133,16 @@ def accept_command(commands):
|
||||
return command
|
||||
return None
|
||||
|
||||
|
||||
def get_meson():
|
||||
meson = os.path.join(ROOTDIR, 'meson', 'meson.py')
|
||||
if os.path.exists(meson):
|
||||
return [sys.executable, meson]
|
||||
|
||||
mesonintrospect = os.environ.get('MESONINTROSPECT', '')
|
||||
for comp in shlex.split(mesonintrospect):
|
||||
for comp in shlex.split (mesonintrospect):
|
||||
# mesonintrospect might look like "/usr/bin/python /somewhere/meson introspect",
|
||||
# let's not get tricked
|
||||
if 'python' in os.path.basename(comp):
|
||||
if 'python' in os.path.basename (comp):
|
||||
continue
|
||||
if os.path.exists(comp):
|
||||
if comp.endswith('.py'):
|
||||
|
@ -2,5 +2,4 @@
|
||||
|
||||
set -e
|
||||
|
||||
rustfmt --version
|
||||
find -name "*.rs" -exec rustfmt "$@" --edition 2021 {} +
|
||||
|
@ -28,6 +28,7 @@ changelog_starts = {
|
||||
'gst-rtsp-server': '5029c85a46a8c366c4bf272d503e22bbcd624ece',
|
||||
'gst-editing-services': 'ee8bf88ebf131cf7c7161356540efc20bf411e14',
|
||||
'gst-python': 'b3e564eff577e2f577d795051bbcca85d47c89dc',
|
||||
'gstreamer-vaapi': 'c89e9afc5d43837c498a55f8f13ddf235442b83b',
|
||||
'gst-devtools': 'da962d096af9460502843e41b7d25fdece7ff1c2',
|
||||
'gstreamer-sharp': 'b94528f8e7979df49fedf137dfa228d8fe475e1b',
|
||||
}
|
||||
|
@ -48,6 +48,14 @@ gst_init_static_plugins (void)
|
||||
''')
|
||||
|
||||
|
||||
# Retrieve the plugin name as it can be a plugin filename
|
||||
def get_plugin_name(name):
|
||||
for p in plugins:
|
||||
if name in p:
|
||||
return p
|
||||
return ''
|
||||
|
||||
|
||||
def process_features(features_list, plugins, feature_prefix):
|
||||
plugins_list = plugins
|
||||
feature_declaration = []
|
||||
@ -58,13 +66,8 @@ def process_features(features_list, plugins, feature_prefix):
|
||||
split = plugin.split(':')
|
||||
plugin_name = split[0].strip()
|
||||
if len(split) == 2:
|
||||
if plugin_name in plugins_list:
|
||||
plugins_list.remove(plugin_name)
|
||||
else:
|
||||
# The plugin name can be a filename
|
||||
fname = f'libgst{plugin_name}.a'
|
||||
if fname in plugins_list:
|
||||
plugins_list.remove(fname)
|
||||
if (get_plugin_name(plugin_name)) != '':
|
||||
plugins_list.remove(get_plugin_name(plugin_name))
|
||||
features = split[1].split(',')
|
||||
for feature in features:
|
||||
feature = feature.replace("-", "_")
|
||||
|
@ -125,11 +125,6 @@ def build_cache(builddir, subproject, targets, subdir):
|
||||
os.path.join(builddir, f'subprojects/{subproject}/docs/gst_plugins_cache.json'),
|
||||
] + targets
|
||||
|
||||
env = os.environ.copy()
|
||||
try:
|
||||
del env['GST_PLUGIN_FEATURE_RANK'] # Ensure default ranks are applied
|
||||
except KeyError:
|
||||
pass
|
||||
subprocess.run(cmd)
|
||||
|
||||
class StashManager:
|
||||
@ -195,64 +190,6 @@ def run_doc_checks(modified_files):
|
||||
for conf_path in confs_need_rebuild:
|
||||
subprocess.run(['hotdoc', 'run', '--fatal-warnings', '--disable-warnings', '--enabled-warnings', 'missing-since-marker', '--conf-file', conf_path, '--previous-symbol-index', 'subprojects/gst-docs/symbols/symbol_index.json'], check=True)
|
||||
|
||||
def check_ges_children_props_docs(modified_files):
|
||||
"""Check if GES children properties documentation is up to date"""
|
||||
# Check if any GES source files were modified
|
||||
ges_source_modified = any(
|
||||
('subprojects/gst-editing-services/ges/' in f and (f.endswith('.c') or f.endswith('.h')) or f.endswith('document-children-props.py'))
|
||||
for f in modified_files
|
||||
)
|
||||
|
||||
if not ges_source_modified:
|
||||
return
|
||||
|
||||
print('GES source files modified, checking children properties documentation...')
|
||||
|
||||
# Path to the script relative to git root
|
||||
srcdir = Path(os.getcwd())
|
||||
script_path = srcdir / 'subprojects/gst-editing-services/docs/libs/document-children-props.py'
|
||||
if not script_path.exists():
|
||||
print('WARNING: document-children-props.py script not found, skipping check')
|
||||
return
|
||||
|
||||
# Run the script in gst-env (needs build environment)
|
||||
builddir = find_builddir()
|
||||
if builddir is None:
|
||||
print('WARNING: No build directory found, cannot run document-children-props.py')
|
||||
return
|
||||
|
||||
try:
|
||||
# Generate environment file to be sourced
|
||||
with tempfile.NamedTemporaryFile(mode='w', suffix='.sh', delete=False) as env_file:
|
||||
env_temp_name = env_file.name
|
||||
|
||||
cmd = f'./gst-env.py --builddir {builddir} --only-environment > {env_temp_name} && source {env_temp_name} && cd {script_path.parent} && python3 document-children-props.py && rm {env_temp_name}'
|
||||
subprocess.run(cmd, shell=True, check=True)
|
||||
|
||||
# Check if there are any diffs in the children-props markdown files
|
||||
script_dir = script_path.parent
|
||||
docs_files = list(script_dir.glob('*-children-props.md'))
|
||||
if docs_files:
|
||||
# Convert paths to be relative to git root for git diff
|
||||
relative_docs_files = [str(f.relative_to(srcdir)) for f in docs_files]
|
||||
try:
|
||||
subprocess.run(['git', 'diff', '--ignore-submodules', '--exit-code'] + relative_docs_files, check=True)
|
||||
print('GES children properties documentation is up to date')
|
||||
except subprocess.CalledProcessError:
|
||||
print('WARNING: You have changes in GES children properties documentation')
|
||||
# Automatically stage the updated documentation files
|
||||
subprocess.run(['git', 'add'] + relative_docs_files, check=True)
|
||||
print('Updated documentation files have been automatically staged.')
|
||||
print('Please verify the changes and proceed with your commit.')
|
||||
else:
|
||||
print('No GES children properties documentation files found')
|
||||
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f'WARNING: Failed to run document-children-props.py: {e}')
|
||||
print('Please check the script manually if you modified GES properties')
|
||||
except Exception as e:
|
||||
print(f'WARNING: Error checking GES children properties documentation: {e}')
|
||||
|
||||
def main():
|
||||
modified_files = system('git', 'diff-index', '--cached',
|
||||
'--name-only', 'HEAD', '--diff-filter=ACMR').split("\n")[:-1]
|
||||
@ -261,7 +198,6 @@ def main():
|
||||
with StashManager():
|
||||
try:
|
||||
run_doc_checks(modified_files)
|
||||
check_ges_children_props_docs(modified_files)
|
||||
except Exception as e:
|
||||
print (e)
|
||||
sys.exit(1)
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env python3
|
||||
#!/usr/bin/env python
|
||||
|
||||
from itertools import filterfalse
|
||||
import os
|
||||
@ -6,7 +6,6 @@ import re
|
||||
import subprocess
|
||||
from gst_indent_common import indent
|
||||
|
||||
|
||||
def readfile(f):
|
||||
if os.path.exists(f):
|
||||
expressions = open(f, 'r', encoding='utf-8').read().splitlines()
|
||||
|
@ -1,8 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
#!/usr/bin/env python
|
||||
|
||||
from sys import argv
|
||||
from gst_indent_common import indent
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
indent(*argv[1:])
|
||||
indent(argv[1:])
|
||||
|
@ -12,6 +12,7 @@ release_modules = [
|
||||
'gst-editing-services',
|
||||
'gst-devtools',
|
||||
'gst-python',
|
||||
'gstreamer-vaapi',
|
||||
'gst-docs',
|
||||
'gstreamer-sharp',
|
||||
]
|
||||
@ -42,7 +43,7 @@ if out_of_sync_list.length() > 0
|
||||
|
||||
Run
|
||||
|
||||
for m in @1@; do cp scripts/gen-changelog.py subprojects/$m/scripts/gen-changelog.py; done
|
||||
for m in @1@; do cp scripts/gen-changelog.py subprojects/$m/scripts/gen-changelog.py; done
|
||||
|
||||
from the top-level git source directory to sync them up.
|
||||
|
||||
|
@ -1,46 +0,0 @@
|
||||
# Security Advisory 2025-0001 (ZDI-CAN-26596, CVE-2025-3887)
|
||||
|
||||
<div class="vertical-table">
|
||||
|
||||
| | |
|
||||
| ----------------- | ----------------------------------------- |
|
||||
| Summary | Stack buffer-overflow in H.265 codec parser during slice header parsing |
|
||||
| Date | 2025-04-24 18:00 |
|
||||
| Affected Versions | GStreamer gst-plugins-bad 1.x < 1.26.1 |
|
||||
| IDs | GStreamer-SA-2025-0001<br/>ZDI-CAN-26596<br/>CVE-2025-3887 |
|
||||
|
||||
</div>
|
||||
|
||||
## Details
|
||||
|
||||
Stack buffer-overflow in H.265 codec parser when handling malformed streams
|
||||
before GStreamer 1.26.1.
|
||||
|
||||
## Impact
|
||||
|
||||
It is possible for a malicious third party to trigger stack buffer-overflows that
|
||||
can result in a crash of the application.
|
||||
|
||||
## Solution
|
||||
|
||||
The gst-plugins-bad 1.26.1 release addresses the issue. People using older
|
||||
branches of GStreamer should apply the patch and recompile.
|
||||
|
||||
## References
|
||||
|
||||
### The GStreamer project
|
||||
|
||||
- [https://gstreamer.freedesktop.org](https://gstreamer.freedesktop.org)
|
||||
|
||||
### CVE Database Entries
|
||||
|
||||
- [CVE-2025-3887](https://www.cve.org/CVERecord?id=CVE-2025-3887)
|
||||
|
||||
### GStreamer 1.26.1 release
|
||||
|
||||
- [Release Notes](/releases/1.26/#1.26.1)
|
||||
- [GStreamer Plugins Bad 1.26.1](/src/gst-plugins-bad/gst-plugins-bad-1.26.1.tar.xz)
|
||||
|
||||
### Patches
|
||||
|
||||
- [Patch](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8884.patch)
|
@ -1,48 +0,0 @@
|
||||
# Security Advisory 2025-0002 (CVE-2025-47807)
|
||||
|
||||
<div class="vertical-table">
|
||||
|
||||
| | |
|
||||
| ----------------- | --- |
|
||||
| Summary | NULL-pointer dereference in SubRip subtitle parser|
|
||||
| Date | 2025-05-29 23:30 |
|
||||
| Affected Versions | GStreamer gst-plugins-base < 1.26.2 |
|
||||
| IDs | GStreamer-SA-2025-0002<br/>CVE-2025-47807 |
|
||||
|
||||
</div>
|
||||
|
||||
## Details
|
||||
|
||||
A NULL-pointer dereference in the SubRip subtitle parser that can cause crashes
|
||||
for certain input files.
|
||||
|
||||
## Impact
|
||||
|
||||
It is possible for a malicious third party to trigger a NULL-pointer dereference
|
||||
that can result in a crash of the application.
|
||||
|
||||
## Solution
|
||||
|
||||
The gst-plugins-base 1.26.2 release addresses the issue. People using older
|
||||
branches of GStreamer should apply the patch and recompile.
|
||||
|
||||
## References
|
||||
|
||||
### The GStreamer project
|
||||
|
||||
- [https://gstreamer.freedesktop.org](https://gstreamer.freedesktop.org)
|
||||
|
||||
### CVE Database Entries
|
||||
|
||||
- [CVE-2025-47807](https://www.cve.org/CVERecord?id=CVE-2025-47807)
|
||||
|
||||
### GStreamer releases
|
||||
|
||||
#### 1.26 (current stable)
|
||||
|
||||
- [GStreamer 1.26.2 release notes](/releases/1.26/#1.26.2)
|
||||
- [GStreamer Plugins Base 1.26.2](/src/gst-plugins-base/gst-plugins-base-1.26.2.tar.xz)
|
||||
|
||||
### Patches
|
||||
|
||||
- [Patch](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9132.patch) (3-in-1)
|
@ -1,48 +0,0 @@
|
||||
# Security Advisory 2025-0003 (CVE-2025-47808)
|
||||
|
||||
<div class="vertical-table">
|
||||
|
||||
| | |
|
||||
| ----------------- | --- |
|
||||
| Summary | NULL-pointer dereference in TMPlayer subtitle parser|
|
||||
| Date | 2025-05-29 23:30 |
|
||||
| Affected Versions | GStreamer gst-plugins-base < 1.26.2 |
|
||||
| IDs | GStreamer-SA-2025-0003<br/>CVE-2025-47808 |
|
||||
|
||||
</div>
|
||||
|
||||
## Details
|
||||
|
||||
A NULL-pointer dereference in the TMPlayer subtitle parser that can cause crashes
|
||||
for certain input files.
|
||||
|
||||
## Impact
|
||||
|
||||
It is possible for a malicious third party to trigger a NULL-pointer dereference
|
||||
that can result in a crash of the application.
|
||||
|
||||
## Solution
|
||||
|
||||
The gst-plugins-base 1.26.2 release addresses the issue. People using older
|
||||
branches of GStreamer should apply the patch and recompile.
|
||||
|
||||
## References
|
||||
|
||||
### The GStreamer project
|
||||
|
||||
- [https://gstreamer.freedesktop.org](https://gstreamer.freedesktop.org)
|
||||
|
||||
### CVE Database Entries
|
||||
|
||||
- [CVE-2025-47808](https://www.cve.org/CVERecord?id=CVE-2025-47808)
|
||||
|
||||
### GStreamer releases
|
||||
|
||||
#### 1.26 (current stable)
|
||||
|
||||
- [GStreamer 1.26.2 release notes](/releases/1.26/#1.26.2)
|
||||
- [GStreamer Plugins Base 1.26.2](/src/gst-plugins-base/gst-plugins-base-1.26.2.tar.xz)
|
||||
|
||||
### Patches
|
||||
|
||||
- [Patch](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9132.patch) (3-in-1)
|
@ -1,56 +0,0 @@
|
||||
# Security Advisory 2025-0004 (CVE-2025-47219)
|
||||
|
||||
<div class="vertical-table">
|
||||
|
||||
| | |
|
||||
| ----------------- | --- |
|
||||
| Summary | Out-of-bounds read in MOV/MP4 demuxer|
|
||||
| Date | 2025-05-29 23:30 |
|
||||
| Affected Versions | GStreamer gst-plugins-good < 1.26.2 |
|
||||
| IDs | GStreamer-SA-2025-0004<br/>CVE-2025-47219 |
|
||||
|
||||
</div>
|
||||
|
||||
## Details
|
||||
|
||||
An Out-of-bounds read in the MOV/MP4 demuxer that can cause crashes or
|
||||
potentially information leaks for certain input files.
|
||||
|
||||
## Impact
|
||||
|
||||
It is possible for a malicious third party to trigger an Out-of-bounds read
|
||||
that can result in a crash of the application or potentially information leaks.
|
||||
|
||||
## Solution
|
||||
|
||||
The gst-plugins-good 1.26.2 release addresses the issue.
|
||||
|
||||
People using older versions of GStreamer should either upgrade or apply the
|
||||
minimal patch and recompile.
|
||||
|
||||
Note that the minimal patch is not included in the 1.26.2 release in that form
|
||||
since this issue was solved independently [in a different way][MR-8929] as part
|
||||
of a bigger refactoring that solved this and many other issues.
|
||||
|
||||
[MR-8929]: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929
|
||||
|
||||
## References
|
||||
|
||||
### The GStreamer project
|
||||
|
||||
- [https://gstreamer.freedesktop.org](https://gstreamer.freedesktop.org)
|
||||
|
||||
### CVE Database Entries
|
||||
|
||||
- [CVE-2025-47219](https://www.cve.org/CVERecord?id=CVE-2025-47219)
|
||||
|
||||
### GStreamer releases
|
||||
|
||||
#### 1.26 (current stable)
|
||||
|
||||
- [GStreamer 1.26.2 release notes](/releases/1.26/#1.26.2)
|
||||
- [GStreamer Plugins Good 1.26.2](/src/gst-plugins-good/gst-plugins-good-1.26.2.tar.xz)
|
||||
|
||||
### Patches
|
||||
|
||||
- [Patch for 1.26.1 and earlier versions](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9137.patch)
|
@ -1,49 +0,0 @@
|
||||
# Security Advisory 2025-0005 (CVE-2025-47183)
|
||||
|
||||
<div class="vertical-table">
|
||||
|
||||
| | |
|
||||
| ----------------- | --- |
|
||||
| Summary | Out-of-bounds read in MOV/MP4 demuxer|
|
||||
| Date | 2025-05-29 23:30 |
|
||||
| Affected Versions | GStreamer gst-plugins-good < 1.26.2 |
|
||||
| IDs | GStreamer-SA-2025-0005<br/>CVE-2025-47183 |
|
||||
|
||||
</div>
|
||||
|
||||
## Details
|
||||
|
||||
An Out-of-bounds read in the MOV/MP4 demuxer that can cause crashes or
|
||||
potentially information leaks for certain input files.
|
||||
|
||||
## Impact
|
||||
|
||||
It is possible for a malicious third party to trigger an Out-of-bounds read
|
||||
that can result in a crash of the application or potentially information leaks.
|
||||
|
||||
## Solution
|
||||
|
||||
The gst-plugins-good 1.26.2 release addresses the issue. People using older
|
||||
branches of GStreamer should apply the patch and recompile.
|
||||
|
||||
## References
|
||||
|
||||
### The GStreamer project
|
||||
|
||||
- [https://gstreamer.freedesktop.org](https://gstreamer.freedesktop.org)
|
||||
|
||||
### CVE Database Entries
|
||||
|
||||
- [CVE-2025-47183](https://www.cve.org/CVERecord?id=CVE-2025-47183)
|
||||
|
||||
### GStreamer releases
|
||||
|
||||
#### 1.26 (current stable)
|
||||
|
||||
- [GStreamer 1.26.2 release notes](/releases/1.26/#1.26.2)
|
||||
- [GStreamer Plugins Good 1.26.2](/src/gst-plugins-good/gst-plugins-good-1.26.2.tar.xz)
|
||||
|
||||
### Patches
|
||||
|
||||
- [Patch](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9131.patch)
|
||||
|
@ -1,48 +0,0 @@
|
||||
# Security Advisory 2025-0006 (CVE-2025-47806)
|
||||
|
||||
<div class="vertical-table">
|
||||
|
||||
| | |
|
||||
| ----------------- | --- |
|
||||
| Summary | Stack buffer overflow in SubRip subtitle parser|
|
||||
| Date | 2025-05-29 23:30 |
|
||||
| Affected Versions | GStreamer gst-plugins-base < 1.26.2 |
|
||||
| IDs | GStreamer-SA-2025-0006<br/>CVE-2025-47806 |
|
||||
|
||||
</div>
|
||||
|
||||
## Details
|
||||
|
||||
A stack buffer overflow in the SubRip subtitle parser that can cause crashes for
|
||||
certain input files.
|
||||
|
||||
## Impact
|
||||
|
||||
It is possible for a malicious third party to trigger a stack buffer overflow
|
||||
that can result in a crash of the application.
|
||||
|
||||
## Solution
|
||||
|
||||
The gst-plugins-base 1.26.2 release addresses the issue. People using older
|
||||
branches of GStreamer should apply the patch and recompile.
|
||||
|
||||
## References
|
||||
|
||||
### The GStreamer project
|
||||
|
||||
- [https://gstreamer.freedesktop.org](https://gstreamer.freedesktop.org)
|
||||
|
||||
### CVE Database Entries
|
||||
|
||||
- [CVE-2025-47806](https://www.cve.org/CVERecord?id=CVE-2025-47806)
|
||||
|
||||
### GStreamer releases
|
||||
|
||||
#### 1.26 (current stable)
|
||||
|
||||
- [GStreamer 1.26.2 release notes](/releases/1.26/#1.26.2)
|
||||
- [GStreamer Plugins Base 1.26.2](/src/gst-plugins-base/gst-plugins-base-1.26.2.tar.xz)
|
||||
|
||||
### Patches
|
||||
|
||||
- [Patch](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9132.patch) (3-in-1)
|
@ -1,10 +1,9 @@
|
||||
[wrap-file]
|
||||
directory = fontconfig-2.15.0
|
||||
source_url = https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.15.0.tar.xz
|
||||
source_fallback_url = https://deb.debian.org/debian/pool/main/f/fontconfig/fontconfig_2.15.0.orig.tar.xz
|
||||
source_filename = fontconfig-2.15.0.tar.xz
|
||||
source_hash = 63a0658d0e06e0fa886106452b58ef04f21f58202ea02a94c39de0d3335d7c0e
|
||||
diff_files = fontconfig-2.15.0/0001-meson-Always-use-posix-path-even-on-Windows.patch
|
||||
directory = fontconfig-2.14.2
|
||||
source_url = https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.14.2.tar.xz
|
||||
source_filename = fontconfig-2.14.2.tar.xz
|
||||
source_hash = dba695b57bce15023d2ceedef82062c2b925e51f5d4cc4aef736cf13f60a468b
|
||||
diff_files = fontconfig-2.14.2/0001-meson-Always-use-posix-path-even-on-Windows.patch, fontconfig-2.14.2/0001-meson-Always-write-utf-8-files-with-LF-newlines.patch
|
||||
|
||||
[provide]
|
||||
fontconfig = fontconfig_dep
|
||||
|
@ -1,5 +1,5 @@
|
||||
[wrap-git]
|
||||
directory = gl-headers
|
||||
url = https://gitlab.freedesktop.org/gstreamer/meson-ports/gl-headers.git
|
||||
push-url = git@gitlab.freedesktop.org:gstreamer/meson-ports/gl-headers.git
|
||||
revision = 1d237e348de930f9f561620d2e6a31d94019525f
|
||||
directory=gl-headers
|
||||
url=https://gitlab.freedesktop.org/gstreamer/meson-ports/gl-headers.git
|
||||
push-url=git@gitlab.freedesktop.org:gstreamer/meson-ports/gl-headers.git
|
||||
revision=5c8c7c0d3ca1f0b783272dac0b95e09414e49bc8
|
||||
|
@ -1,6 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = glib-networking-2.80.1
|
||||
source_url = https://download.gnome.org/sources/glib-networking/2.80/glib-networking-2.80.1.tar.xz
|
||||
source_fallback_url = https://deb.debian.org/debian/pool/main/g/glib-networking/glib-networking_2.80.1.orig.tar.xz
|
||||
source_filename = glib-networking-2.80.1.tar.xz
|
||||
source_hash = b80e2874157cd55071f1b6710fa0b911d5ac5de106a9ee2a4c9c7bee61782f8e
|
||||
directory = glib-networking-2.78.1
|
||||
source_url = https://download.gnome.org/sources/glib-networking/2.78/glib-networking-2.78.1.tar.xz
|
||||
source_fallback_url = https://ftp.acc.umu.se/pub/gnome/sources/glib-networking/2.78/glib-networking-2.78.1.tar.xz
|
||||
source_filename = glib-networking-2.78.1.tar.xz
|
||||
source_hash = e48f2ddbb049832cbb09230529c5e45daca9f0df0eda325f832f7379859bf09f
|
||||
|
@ -1,11 +1,10 @@
|
||||
[wrap-file]
|
||||
directory = glib-2.82.5
|
||||
source_url = https://download.gnome.org/sources/glib/2.82/glib-2.82.5.tar.xz
|
||||
source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/glib_2.82.5-1/glib-2.82.5.tar.xz
|
||||
source_filename = glib-2.82.5.tar.xz
|
||||
source_hash = 05c2031f9bdf6b5aba7a06ca84f0b4aced28b19bf1b50c6ab25cc675277cbc3f
|
||||
wrapdb_version = 2.82.5-1
|
||||
diff_files = glib-2.82.5/0001-Windows-fix-Python-path-cannot-contain-spaces.patch
|
||||
directory = glib-2.82.4
|
||||
source_url = https://download.gnome.org/sources/glib/2.82/glib-2.82.4.tar.xz
|
||||
source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/glib_2.82.4-1/glib-2.82.4.tar.xz
|
||||
source_filename = glib-2.82.4.tar.xz
|
||||
source_hash = 37dd0877fe964cd15e9a2710b044a1830fb1bd93652a6d0cb6b8b2dff187c709
|
||||
wrapdb_version = 2.82.4-1
|
||||
|
||||
[provide]
|
||||
dependency_names = gthread-2.0, gobject-2.0, gmodule-no-export-2.0, gmodule-export-2.0, gmodule-2.0, glib-2.0, gio-2.0, gio-windows-2.0, gio-unix-2.0
|
||||
|
@ -1,11 +1,11 @@
|
||||
[wrap-file]
|
||||
directory = gobject-introspection-1.84.0
|
||||
source_url = https://download.gnome.org/sources/gobject-introspection/1.84/gobject-introspection-1.84.0.tar.xz
|
||||
source_fallback_url = https://ftp.acc.umu.se/pub/gnome/sources/gobject-introspection/1.84/gobject-introspection-1.84.0.tar.xz
|
||||
source_filename = gobject-introspection-1.84.0.tar.xz
|
||||
source_hash = 945b57da7ec262e5c266b89e091d14be800cc424277d82a02872b7d794a84779
|
||||
wrapdb_version = 1.84.0-0
|
||||
diff_files = gobject-introspection-1.84.0/0003-girepository-Load-typelibs-from-a-relocatable-prefix.patch, gobject-introspection-1.84.0/0004-build-Fix-b_vscrt-value-use-without-converting-it-to.patch, gobject-introspection-1.84.0/0006-tests-Fix-path-parsing-for-Windows.patch, gobject-introspection-1.84.0/0007-g-ir-tools-Support-reading-rspfiles-for-arguments.patch, gobject-introspection-1.84.0/0008-meson-Fix-fs.copyfile-semantics-breaking-GIR-build-w.patch, gobject-introspection-1.84.0/0009-giscanner-Deduplicate-arguments-and-use-response-fil.patch, gobject-introspection-1.84.0/0010-dumper-Fix-introspection-binaries-missing-rpaths-for.patch
|
||||
directory = gobject-introspection-1.74.0
|
||||
source_url = https://download.gnome.org/sources/gobject-introspection/1.74/gobject-introspection-1.74.0.tar.xz
|
||||
source_fallback_url = https://ftp.acc.umu.se/pub/gnome/sources/gobject-introspection/1.74/gobject-introspection-1.74.0.tar.xz
|
||||
source_filename = gobject-introspection-1.74.0.tar.xz
|
||||
source_hash = 347b3a719e68ba4c69ff2d57ee2689233ea8c07fc492205e573386779e42d653
|
||||
wrapdb_version = 1.74.0-0
|
||||
diff_files = gobject-introspection-1.74.0/0001-Fix-gir-build-when-using-subprojects-dependencies.patch, gobject-introspection-1.74.0/0001-gir-stop-assuming-glib-source-and-build-dirs-using-v.patch, gobject-introspection-1.74.0/0001-build-Work-around-an-undocumented-GLib-variable-rena.patch
|
||||
|
||||
[provide]
|
||||
dependency_names = gobject-introspection-1.0
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,9 +1,9 @@
|
||||
This is GStreamer gst-devtools 1.27.1.
|
||||
This is GStreamer gst-devtools 1.27.0.1.
|
||||
|
||||
GStreamer 1.27 is the unstable development branch leading up to the next major
|
||||
stable version which will be 1.28.
|
||||
|
||||
The 1.27 development series adds new features on top of the 1.26 series and is
|
||||
The 1.27 development series adds new features on top of the 1.24 series and is
|
||||
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
|
||||
framework.
|
||||
|
||||
@ -40,6 +40,10 @@ with other GStreamer modules for a complete multimedia experience.
|
||||
where you can find audio and video decoders and encoders
|
||||
for a wide variety of formats including H.264, AAC, etc.
|
||||
|
||||
- gstreamer-vaapi: hardware-accelerated video decoding and encoding using
|
||||
VA-API on Linux. Primarily for Intel graphics hardware.
|
||||
(Deprecated, use the new "va" plugin instead)
|
||||
|
||||
- gst-rtsp-server: library to serve files or streaming pipelines via RTSP
|
||||
|
||||
- gst-editing-services: library an plugins for non-linear editing
|
||||
|
@ -1,3 +0,0 @@
|
||||
target/
|
||||
node_modules/
|
||||
|
692
subprojects/gst-devtools/dots-viewer/Cargo.lock
generated
692
subprojects/gst-devtools/dots-viewer/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -20,17 +20,17 @@ once_cell = "1"
|
||||
clap = { version = "4", features = ["derive"] }
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
actix-web-static-files = "4.0"
|
||||
static-files = { version = "0.2.5", features = ["sort"] }
|
||||
static-files = "0.2.1"
|
||||
glob = "0.3"
|
||||
single-instance = "0.3.3"
|
||||
opener = "0.8"
|
||||
opener = "0.7.1"
|
||||
anyhow = "1.0"
|
||||
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
windows = { version = "0.61", features = ["Win32_UI_Shell"] }
|
||||
windows = { version = "0.60", features = ["Win32_UI_Shell"] }
|
||||
|
||||
[build-dependencies]
|
||||
static-files = { version = "0.2.5", features = ["sort"] }
|
||||
static-files = "0.2.1"
|
||||
|
||||
[[bin]]
|
||||
name = "gst-dots-viewer"
|
||||
|
@ -1,18 +0,0 @@
|
||||
// Import all dependencies first
|
||||
import $ from 'jquery';
|
||||
import 'jquery-mousewheel';
|
||||
import 'jquery-color';
|
||||
import 'bootstrap';
|
||||
import 'dragscroll';
|
||||
import * as vizModule from '@viz-js/viz';
|
||||
import FuseModule from 'fuse.js';
|
||||
|
||||
// Make required libraries available globally
|
||||
window.$ = window.jQuery = $;
|
||||
window.viz = vizModule;
|
||||
window.instance = vizModule.instance;
|
||||
window.Fuse = FuseModule;
|
||||
|
||||
|
||||
// Import Bootstrap CSS
|
||||
import 'bootstrap/dist/css/bootstrap.min.css';
|
@ -1,4 +1,4 @@
|
||||
if not add_languages('rust', required: get_option('dots_viewer'), native: false)
|
||||
if not add_languages('rust', required: get_option('dots_viewer'))
|
||||
subdir_done()
|
||||
endif
|
||||
|
||||
|
3440
subprojects/gst-devtools/dots-viewer/package-lock.json
generated
3440
subprojects/gst-devtools/dots-viewer/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -4,30 +4,12 @@
|
||||
"description": "GStreamer dot files viewer",
|
||||
"main": "static/js/gstdots.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"build": "webpack",
|
||||
"build:dev": "webpack --config webpack.config.js --mode development"
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"author": "Thibault Saunier <tsaunier@igalia.com>",
|
||||
"license": "MPL-2.0",
|
||||
"dependencies": {
|
||||
"@viz-js/viz": "^3.4.0",
|
||||
"bootstrap": "^3.3.4",
|
||||
"dragscroll": "0.0.8",
|
||||
"fuse.js": "^7.0.0",
|
||||
"jquery": "^2.2.4",
|
||||
"jquery-color": "^2.2.0",
|
||||
"jquery-mousewheel": "^3.2.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"copy-webpack-plugin": "^11.0.0",
|
||||
"css-loader": "^7.1.2",
|
||||
"css-minimizer-webpack-plugin": "^7.0.2",
|
||||
"file-loader": "^6.2.0",
|
||||
"mini-css-extract-plugin": "^2.9.2",
|
||||
"style-loader": "^4.0.0",
|
||||
"terser-webpack-plugin": "^5.3.14",
|
||||
"webpack": "^5.98.0",
|
||||
"webpack-cli": "^5.1.4"
|
||||
"fuse.js": "^7.0.0"
|
||||
}
|
||||
}
|
||||
|
@ -30,13 +30,13 @@
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* allow text selection for copying */
|
||||
/* stop people selecting text on nodes */
|
||||
.graphviz-svg text {
|
||||
-webkit-touch-callout: text;
|
||||
-webkit-user-select: text;
|
||||
-khtml-user-select: text;
|
||||
-moz-user-select: text;
|
||||
-ms-user-select: text;
|
||||
user-select: text;
|
||||
cursor: text;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
cursor: default;
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,40 +0,0 @@
|
||||
/*!
|
||||
* Sizzle CSS Selector Engine v2.2.1
|
||||
* http://sizzlejs.com/
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* Date: 2015-10-17
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery Color Animations v2.2.0
|
||||
* https://github.com/jquery/jquery-color
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* Date: Sun May 10 09:02:36 2020 +0200
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery JavaScript Library v2.2.4
|
||||
* http://jquery.com/
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
* http://sizzlejs.com/
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* Date: 2016-05-20T17:23Z
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery Mousewheel 3.2.2
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
*/
|
File diff suppressed because one or more lines are too long
@ -1,4 +1,5 @@
|
||||
import "/dist/bundle.js";
|
||||
import { instance } from "/js/viz-standalone.mjs";
|
||||
import Fuse from '/js/fuse.min.mjs'
|
||||
|
||||
let ws = null;
|
||||
|
||||
@ -53,7 +54,7 @@ async function generateSvg(img) {
|
||||
|
||||
img.creating_svg = true;
|
||||
try {
|
||||
let viz = await window.instance();
|
||||
let viz = await instance();
|
||||
const svg = viz.renderSVGElement(img.dot_info.content);
|
||||
img.src = URL.createObjectURL(new Blob([svg.outerHTML], { type: 'image/svg+xml' }));
|
||||
img.creating_svg = false;
|
||||
@ -302,7 +303,7 @@ function updateSearch() {
|
||||
title: div.querySelector('h2').textContent
|
||||
}));
|
||||
|
||||
const fuse = new window.Fuse(list, options);
|
||||
const fuse = new Fuse(list, options);
|
||||
const results = fuse.search(input.value);
|
||||
|
||||
for (let div of allDivs) {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,125 +0,0 @@
|
||||
/**
|
||||
* Pipeline dot navigation functionality
|
||||
*
|
||||
* Makes pipeline-dot references clickable for navigation between pipeline views.
|
||||
* Handles URL generation and navigation for pipeline dot references.
|
||||
*/
|
||||
|
||||
class PipelineNavigationManager {
|
||||
constructor(tooltipManager) {
|
||||
this.tooltipManager = tooltipManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes all pipeline-dot references in SVG to make them clickable
|
||||
* @param {jQuery} $svg - jQuery object containing the SVG element
|
||||
*/
|
||||
setupPipelineDotNavigation($svg) {
|
||||
$svg.find(".cluster").each((index, cluster) => {
|
||||
$(cluster).find("text, tspan").each((index, element) => {
|
||||
const text = element.textContent;
|
||||
if (this.isPipelineDotReference(text)) {
|
||||
this.makePipelineDotClickable(element, text);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if text content is a pipeline-dot reference
|
||||
* @param {string} text - Text content to check
|
||||
* @returns {boolean} True if text is a pipeline-dot reference
|
||||
*/
|
||||
isPipelineDotReference(text) {
|
||||
return text && text.startsWith("pipeline-dot=") && text.includes(".dot");
|
||||
}
|
||||
|
||||
/**
|
||||
* Makes a pipeline-dot element clickable with proper styling and handlers
|
||||
* @param {Element} element - DOM element to make clickable
|
||||
* @param {string} text - Original text content
|
||||
*/
|
||||
makePipelineDotClickable(element, text) {
|
||||
const pipelineDot = this.extractPipelineDotFilename(text);
|
||||
|
||||
// Style as a clickable link
|
||||
$(element).css({
|
||||
'text-decoration': 'underline',
|
||||
'cursor': 'pointer',
|
||||
'color': '#007acc'
|
||||
});
|
||||
|
||||
// Add click handler for navigation
|
||||
$(element).off('click.pipeline-nav').on('click.pipeline-nav', (evt) => {
|
||||
evt.preventDefault();
|
||||
evt.stopPropagation();
|
||||
|
||||
// Only hide tooltip if it's not in interactive mode
|
||||
if (this.tooltipManager && !this.tooltipManager.isInteractive()) {
|
||||
this.tooltipManager.hideTooltip();
|
||||
}
|
||||
|
||||
this.navigateToPipeline(pipelineDot);
|
||||
});
|
||||
|
||||
// Add hover effects
|
||||
this.setupHoverEffects(element);
|
||||
}
|
||||
|
||||
/**
|
||||
* Extracts the pipeline dot filename from the full text
|
||||
* @param {string} text - Full pipeline-dot text
|
||||
* @returns {string} Extracted filename
|
||||
*/
|
||||
extractPipelineDotFilename(text) {
|
||||
let pipelineDot = text;
|
||||
if (pipelineDot.includes("pipeline-dot=\"")) {
|
||||
pipelineDot = pipelineDot.replace(/pipeline-dot="([^"]+)"/, "$1");
|
||||
} else {
|
||||
pipelineDot = pipelineDot.replace(/pipeline-dot=([^\s]+)/, "$1");
|
||||
}
|
||||
return pipelineDot;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up hover effects for clickable pipeline-dot links
|
||||
* @param {Element} element - DOM element to add hover effects to
|
||||
*/
|
||||
setupHoverEffects(element) {
|
||||
$(element).on('mouseenter', function () {
|
||||
$(this).css({
|
||||
'color': '#0056b3',
|
||||
'cursor': 'pointer'
|
||||
});
|
||||
}).on('mouseleave', function () {
|
||||
$(this).css({
|
||||
'color': '#007acc',
|
||||
'cursor': 'pointer'
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Navigates to the specified pipeline
|
||||
* @param {string} pipelineDot - Pipeline dot filename to navigate to
|
||||
*/
|
||||
navigateToPipeline(pipelineDot) {
|
||||
// Check if we're in an iframe (overlay.html context)
|
||||
if (window.parent !== window) {
|
||||
// We're in an iframe, navigate the parent window
|
||||
const newUrl = window.parent.location.origin + "/?pipeline=" + encodeURIComponent(pipelineDot);
|
||||
window.parent.location.href = newUrl;
|
||||
} else {
|
||||
// We're in the main window
|
||||
const newUrl = window.location.origin + "/?pipeline=" + encodeURIComponent(pipelineDot);
|
||||
window.location.href = newUrl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Export for module usage
|
||||
if (typeof module !== 'undefined' && module.exports) {
|
||||
module.exports = PipelineNavigationManager;
|
||||
} else {
|
||||
window.PipelineNavigationManager = PipelineNavigationManager;
|
||||
}
|
@ -1,173 +0,0 @@
|
||||
/**
|
||||
* SVG Overlay Manager
|
||||
*
|
||||
* Main coordinator for all SVG overlay functionality including tooltips,
|
||||
* text ellipsizing, pipeline navigation, and drag-to-pan interaction.
|
||||
*/
|
||||
|
||||
class SvgOverlayManager {
|
||||
constructor() {
|
||||
this.tooltipManager = null;
|
||||
this.pipelineNavigationManager = null;
|
||||
this.textEllipsizerManager = null;
|
||||
this.gv = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes all managers and sets up the SVG overlay functionality
|
||||
*/
|
||||
init() {
|
||||
// Initialize managers
|
||||
this.tooltipManager = new TooltipManager();
|
||||
this.pipelineNavigationManager = new PipelineNavigationManager(this.tooltipManager);
|
||||
this.textEllipsizerManager = new TextEllipsizerManager(this.tooltipManager, this.pipelineNavigationManager);
|
||||
|
||||
// Set up GraphViz SVG functionality
|
||||
this.setupGraphvizSvg();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up GraphViz SVG functionality and event handlers
|
||||
*/
|
||||
setupGraphvizSvg() {
|
||||
$("#graph").graphviz({
|
||||
url: this.getSvgUrl(),
|
||||
ready: () => {
|
||||
this.onSvgReady();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when SVG is loaded and ready
|
||||
*/
|
||||
onSvgReady() {
|
||||
this.gv = $("#graph").data('graphviz.svg');
|
||||
const $svg = $("#graph svg");
|
||||
|
||||
// Set up node click functionality for highlighting
|
||||
this.setupNodeHighlighting();
|
||||
|
||||
// Set up smart drag-to-pan behavior that doesn't interfere with text selection
|
||||
this.setupSmartDragBehavior();
|
||||
|
||||
// Set up keyboard shortcuts
|
||||
this.setupKeyboardShortcuts();
|
||||
|
||||
// Set up save SVG functionality
|
||||
this.setupSaveSvg();
|
||||
|
||||
// Process SVG content
|
||||
this.processSvgContent($svg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes SVG content with all managers
|
||||
* @param {jQuery} $svg - jQuery object containing the SVG element
|
||||
*/
|
||||
processSvgContent($svg) {
|
||||
// Set up pipeline-dot navigation
|
||||
this.pipelineNavigationManager.setupPipelineDotNavigation($svg);
|
||||
|
||||
// Process text ellipsizing (this must come after pipeline navigation setup)
|
||||
this.textEllipsizerManager.ellipsizeLongText($svg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up node click functionality for highlighting connected nodes
|
||||
*/
|
||||
setupNodeHighlighting() {
|
||||
this.gv.nodes().on('click', function () {
|
||||
const gv = $("#graph").data('graphviz.svg');
|
||||
let $set = $();
|
||||
$set.push(this);
|
||||
$set = $set.add(gv.linkedFrom(this, true));
|
||||
$set = $set.add(gv.linkedTo(this, true));
|
||||
gv.highlight($set, true);
|
||||
gv.bringToFront($set);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up smart drag behavior that allows text selection while preserving pan functionality
|
||||
*/
|
||||
setupSmartDragBehavior() {
|
||||
const graphDiv = document.getElementById('graph');
|
||||
|
||||
// Intercept mousedown events to prevent dragscroll on text elements
|
||||
graphDiv.addEventListener('mousedown', (e) => {
|
||||
if (e.target.tagName === 'text' || e.target.tagName === 'tspan') {
|
||||
if (e.target.textContent &&
|
||||
e.target.textContent.startsWith("pipeline-dot=") &&
|
||||
e.target.textContent.includes(".dot")) {
|
||||
return; // Let pipeline dot click handler take precedence
|
||||
}
|
||||
e.stopPropagation(); // Stop dragscroll for regular text
|
||||
return true;
|
||||
}
|
||||
}, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up keyboard shortcuts for the SVG viewer
|
||||
*/
|
||||
setupKeyboardShortcuts() {
|
||||
$(document).on('keyup', (evt) => {
|
||||
if (evt.key == "Escape") {
|
||||
this.gv.highlight();
|
||||
} else if (evt.key == "w") {
|
||||
this.gv.scaleInView((this.gv.zoom.percentage + 100));
|
||||
} else if (evt.key == "s") {
|
||||
this.gv.scaleInView((this.gv.zoom.percentage - 100) || 100);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up SVG save functionality
|
||||
*/
|
||||
setupSaveSvg() {
|
||||
$("#save-svg").on('click', () => {
|
||||
const svgElement = $("#graph svg")[0];
|
||||
const svgData = new XMLSerializer().serializeToString(svgElement);
|
||||
const blob = new Blob([svgData], { type: "image/svg+xml;charset=utf-8" });
|
||||
const url = URL.createObjectURL(blob);
|
||||
const title = document.getElementById("title").textContent.trim();
|
||||
const downloadLink = document.createElement("a");
|
||||
downloadLink.href = url;
|
||||
downloadLink.download = title + ".svg";
|
||||
document.body.appendChild(downloadLink);
|
||||
downloadLink.click();
|
||||
document.body.removeChild(downloadLink);
|
||||
URL.revokeObjectURL(url);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the SVG URL from query parameters
|
||||
* @returns {string} SVG URL
|
||||
*/
|
||||
getSvgUrl() {
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
return urlParams.get('svg');
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the title from query parameters and sets it in the document
|
||||
*/
|
||||
setTitle() {
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
const title = urlParams.get('title');
|
||||
if (title) {
|
||||
document.getElementById("title").textContent = title;
|
||||
document.title = "Dots viewer: " + title;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Export for module usage
|
||||
if (typeof module !== 'undefined' && module.exports) {
|
||||
module.exports = SvgOverlayManager;
|
||||
} else {
|
||||
window.SvgOverlayManager = SvgOverlayManager;
|
||||
}
|
@ -1,160 +0,0 @@
|
||||
/**
|
||||
* Text ellipsizing functionality for SVG elements
|
||||
*
|
||||
* Ellipsizes long text content (>80 chars) and provides tooltips with full content.
|
||||
* Integrates with tooltip system for interactive copy/paste functionality.
|
||||
*/
|
||||
|
||||
class TextEllipsizerManager {
|
||||
constructor(tooltipManager, pipelineNavigationManager) {
|
||||
this.tooltipManager = tooltipManager;
|
||||
this.pipelineNavigationManager = pipelineNavigationManager;
|
||||
this.maxLength = 80;
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes all text elements in SVG to ellipsize long content
|
||||
* @param {jQuery} $svg - jQuery object containing the SVG element
|
||||
*/
|
||||
ellipsizeLongText($svg) {
|
||||
$svg.find("text, tspan").each((index, element) => {
|
||||
const text = element.textContent;
|
||||
|
||||
if (this.shouldEllipsize(text)) {
|
||||
this.ellipsizeElement(element, text);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if text should be ellipsized
|
||||
* @param {string} text - Text content to check
|
||||
* @returns {boolean} True if text should be ellipsized
|
||||
*/
|
||||
shouldEllipsize(text) {
|
||||
return text && text.length > this.maxLength;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ellipsizes an element and sets up tooltip functionality
|
||||
* @param {Element} element - DOM element to ellipsize
|
||||
* @param {string} originalText - Original full text content
|
||||
*/
|
||||
ellipsizeElement(element, originalText) {
|
||||
const ellipsizedText = originalText.substring(0, 77) + "...";
|
||||
|
||||
// Update the text content
|
||||
$(element).text(ellipsizedText);
|
||||
|
||||
// Store original text and mark as having tooltip
|
||||
$(element).data('original-text', originalText);
|
||||
$(element).attr('data-has-tooltip', 'true');
|
||||
|
||||
// Style to indicate there's more content
|
||||
$(element).css({
|
||||
'cursor': 'help'
|
||||
});
|
||||
|
||||
this.setupTooltipHandlers(element, originalText);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up tooltip handlers for ellipsized elements
|
||||
* @param {Element} element - DOM element to add handlers to
|
||||
* @param {string} originalText - Original full text content
|
||||
*/
|
||||
setupTooltipHandlers(element, originalText) {
|
||||
const isPipelineDot = this.pipelineNavigationManager.isPipelineDotReference(originalText);
|
||||
|
||||
if (!isPipelineDot) {
|
||||
this.setupRegularTooltipHandlers(element, originalText);
|
||||
} else {
|
||||
this.setupPipelineDotTooltipHandlers(element, originalText);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up tooltip handlers for regular (non-pipeline-dot) elements
|
||||
* @param {Element} element - DOM element to add handlers to
|
||||
* @param {string} originalText - Original full text content
|
||||
*/
|
||||
setupRegularTooltipHandlers(element, originalText) {
|
||||
$(element).on('mouseenter', (e) => {
|
||||
this.tooltipManager.showTooltip(element, originalText, e);
|
||||
});
|
||||
|
||||
$(element).on('mousemove', (e) => {
|
||||
if (!this.tooltipManager.isInteractive()) {
|
||||
this.tooltipManager.showTooltip(element, originalText, e);
|
||||
}
|
||||
});
|
||||
|
||||
$(element).on('mouseleave.tooltip', () => {
|
||||
// Don't hide tooltip on mouseleave if it's interactive
|
||||
if (!this.tooltipManager.isInteractive()) {
|
||||
this.tooltipManager.hideTooltip();
|
||||
}
|
||||
});
|
||||
|
||||
// Double-click to make tooltip interactive
|
||||
$(element).on('dblclick', (e) => {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
if (this.tooltipManager.$tooltip.hasClass('show')) {
|
||||
this.tooltipManager.makeTooltipInteractive();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up tooltip handlers for pipeline-dot elements (with navigation functionality)
|
||||
* @param {Element} element - DOM element to add handlers to
|
||||
* @param {string} originalText - Original full text content
|
||||
*/
|
||||
setupPipelineDotTooltipHandlers(element, originalText) {
|
||||
// Make it clickable for navigation
|
||||
this.pipelineNavigationManager.makePipelineDotClickable(element, originalText);
|
||||
|
||||
// Add tooltip functionality
|
||||
$(element).on('mouseenter', (e) => {
|
||||
$(element).css({
|
||||
'color': '#0056b3',
|
||||
'cursor': 'pointer'
|
||||
});
|
||||
this.tooltipManager.showTooltip(element, originalText, e);
|
||||
});
|
||||
|
||||
$(element).on('mousemove', (e) => {
|
||||
if (!this.tooltipManager.isInteractive()) {
|
||||
this.tooltipManager.showTooltip(element, originalText, e);
|
||||
}
|
||||
});
|
||||
|
||||
$(element).on('mouseleave.tooltip', () => {
|
||||
$(element).css({
|
||||
'color': '#007acc',
|
||||
'cursor': 'pointer'
|
||||
});
|
||||
// Don't hide tooltip on mouseleave if it's interactive
|
||||
if (!this.tooltipManager.isInteractive()) {
|
||||
this.tooltipManager.hideTooltip();
|
||||
}
|
||||
});
|
||||
|
||||
// Right-click to make tooltip interactive (since left-click navigates)
|
||||
$(element).on('contextmenu', (e) => {
|
||||
if (this.tooltipManager.$tooltip.hasClass('show')) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
this.tooltipManager.makeTooltipInteractive();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Export for module usage
|
||||
if (typeof module !== 'undefined' && module.exports) {
|
||||
module.exports = TextEllipsizerManager;
|
||||
} else {
|
||||
window.TextEllipsizerManager = TextEllipsizerManager;
|
||||
}
|
@ -1,118 +0,0 @@
|
||||
/**
|
||||
* Custom tooltip functionality for SVG elements
|
||||
*
|
||||
* Provides hoverable tooltips with interactive copy/paste mode for ellipsized text.
|
||||
* Interactive mode allows users to select and copy tooltip content.
|
||||
*/
|
||||
|
||||
class TooltipManager {
|
||||
constructor() {
|
||||
this.$tooltip = null;
|
||||
this.tooltipText = '';
|
||||
this.isTooltipInteractive = false;
|
||||
this.currentTooltipElement = null;
|
||||
|
||||
this.init();
|
||||
}
|
||||
|
||||
init() {
|
||||
// Create custom tooltip element
|
||||
this.$tooltip = $('<div class="custom-tooltip"></div>').appendTo('body');
|
||||
|
||||
// Set up document click handler for hiding tooltips
|
||||
this.setupDocumentClickHandler();
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows tooltip with given text at event position
|
||||
* @param {Element} element - Element that triggered the tooltip
|
||||
* @param {string} text - Text to display in tooltip
|
||||
* @param {Event} event - Mouse event for positioning
|
||||
*/
|
||||
showTooltip(element, text, event) {
|
||||
this.tooltipText = text;
|
||||
this.currentTooltipElement = element;
|
||||
this.$tooltip.text(text);
|
||||
this.$tooltip.css({
|
||||
left: event.pageX + 10 + 'px',
|
||||
top: event.pageY - 30 + 'px'
|
||||
}).removeClass('interactive').addClass('show');
|
||||
this.isTooltipInteractive = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Makes tooltip interactive (selectable and fixed position)
|
||||
*/
|
||||
makeTooltipInteractive() {
|
||||
if (!this.isTooltipInteractive && this.currentTooltipElement) {
|
||||
this.$tooltip.addClass('interactive');
|
||||
this.isTooltipInteractive = true;
|
||||
|
||||
// Position tooltip in a fixed position relative to the element
|
||||
const elementOffset = $(this.currentTooltipElement).offset();
|
||||
|
||||
this.$tooltip.css({
|
||||
left: Math.min(elementOffset.left + 20, window.innerWidth - 420) + 'px',
|
||||
top: Math.max(elementOffset.top - 80, 10) + 'px',
|
||||
'pointer-events': 'auto'
|
||||
});
|
||||
|
||||
// Prevent mouseleave from hiding the tooltip by removing the handler temporarily
|
||||
$(this.currentTooltipElement).off('mouseleave.tooltip');
|
||||
|
||||
// Select all text when made interactive
|
||||
setTimeout(() => {
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(this.$tooltip[0]);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
}, 10);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Hides the tooltip and resets state
|
||||
*/
|
||||
hideTooltip() {
|
||||
this.$tooltip.removeClass('show interactive');
|
||||
this.isTooltipInteractive = false;
|
||||
this.currentTooltipElement = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up document click handler to hide tooltips when clicking outside
|
||||
*/
|
||||
setupDocumentClickHandler() {
|
||||
$(document).on('click', (e) => {
|
||||
if (this.isTooltipInteractive) {
|
||||
// Only hide interactive tooltip when clicking outside both tooltip and original element
|
||||
if (!$(e.target).closest('.custom-tooltip').length &&
|
||||
!$(e.target).is('[data-has-tooltip]') &&
|
||||
e.target !== this.currentTooltipElement) {
|
||||
this.hideTooltip();
|
||||
}
|
||||
} else {
|
||||
// Hide non-interactive tooltip when clicking anywhere except on elements with tooltips
|
||||
if (!$(e.target).is('[data-has-tooltip]')) {
|
||||
this.hideTooltip();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if tooltip is currently in interactive mode
|
||||
* @returns {boolean} True if tooltip is interactive
|
||||
*/
|
||||
isInteractive() {
|
||||
return this.isTooltipInteractive;
|
||||
}
|
||||
}
|
||||
|
||||
// Export for module usage
|
||||
if (typeof module !== 'undefined' && module.exports) {
|
||||
module.exports = TooltipManager;
|
||||
} else {
|
||||
window.TooltipManager = TooltipManager;
|
||||
}
|
File diff suppressed because one or more lines are too long
@ -22,7 +22,7 @@ furnished to do so, subject to the following conditions:
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="/dist/bundle.css">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="/css/graphviz.svg.css">
|
||||
</head>
|
||||
|
||||
@ -39,68 +39,71 @@ furnished to do so, subject to the following conditions:
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.custom-tooltip {
|
||||
position: absolute;
|
||||
background-color: #333;
|
||||
color: white;
|
||||
padding: 8px 12px;
|
||||
border-radius: 4px;
|
||||
font-size: 12px;
|
||||
white-space: nowrap;
|
||||
z-index: 10000;
|
||||
pointer-events: none;
|
||||
opacity: 0;
|
||||
transition: opacity 0.2s;
|
||||
max-width: 400px;
|
||||
word-wrap: break-word;
|
||||
white-space: normal;
|
||||
user-select: text;
|
||||
-webkit-user-select: text;
|
||||
-moz-user-select: text;
|
||||
-ms-user-select: text;
|
||||
}
|
||||
|
||||
.custom-tooltip.show {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.custom-tooltip.interactive {
|
||||
pointer-events: auto;
|
||||
cursor: text;
|
||||
border: 2px solid #555;
|
||||
}
|
||||
|
||||
.custom-tooltip.interactive::after {
|
||||
content: " (Text selected - Ctrl+C to copy)";
|
||||
font-size: 10px;
|
||||
color: #aaa;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
</style>
|
||||
<body>
|
||||
<h1 style="text-align: center" id="title"> {{ TITLE }}</h1>
|
||||
|
||||
<div id="graph" class="dragscroll" style="width: 100%; height: 100%; overflow: scroll;"></div>
|
||||
<div class="floating-rectangle" id="instructions">
|
||||
Click node to highlight<br/>Shift-Ctrl-scroll or w/s to zoom<br/>Esc to unhighlight<br/>Double-click ellipsized text to copy
|
||||
Click node to highlight<br/>Shift-Ctrl-scroll or w/s to zoom<br/>Esc to unhighlight
|
||||
</div>
|
||||
|
||||
<div class="floating-rectangle" id="actions" style="top: auto; bottom: 100px; left: 10px;">
|
||||
<button id="save-svg" class="btn btn-primary btn-sm" style="margin-right: 5px;">Save SVG</button>
|
||||
</div>
|
||||
|
||||
<script src='/dist/bundle.js'></script>
|
||||
|
||||
|
||||
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdn.rawgit.com/jquery/jquery-mousewheel/master/jquery.mousewheel.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdn.rawgit.com/jquery/jquery-color/master/jquery.color.js"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
<script type="text/javascript" src="http://asvd.github.io/dragscroll/dragscroll.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery.graphviz.svg.js"></script>
|
||||
<script type="text/javascript" src="/js/tooltip.js"></script>
|
||||
<script type="text/javascript" src="/js/pipeline-navigation.js"></script>
|
||||
<script type="text/javascript" src="/js/text-ellipsizer.js"></script>
|
||||
<script type="text/javascript" src="/js/svg-overlay-manager.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(() => {
|
||||
const svgOverlayManager = new SvgOverlayManager();
|
||||
svgOverlayManager.setTitle();
|
||||
svgOverlayManager.init();
|
||||
let url = new URL(window.location.href);
|
||||
let searchParams = new URLSearchParams(url.search);
|
||||
document.getElementById("title").innerHTML = searchParams.get("title");
|
||||
|
||||
$(document).ready(function(){
|
||||
$("#graph").graphviz({
|
||||
url: searchParams.get("svg"),
|
||||
ready: function() {
|
||||
var gv = this;
|
||||
gv.nodes().click(function () {
|
||||
var $set = $();
|
||||
$set.push(this);
|
||||
$set = $set.add(gv.linkedFrom(this, true));
|
||||
$set = $set.add(gv.linkedTo(this, true));
|
||||
gv.highlight($set, true);
|
||||
gv.bringToFront($set);
|
||||
});
|
||||
$(document).keydown(function (evt) {
|
||||
if (evt.key == "Escape") {
|
||||
gv.highlight();
|
||||
} else if (evt.key == "w") {
|
||||
gv.scaleInView((gv.zoom.percentage + 100));
|
||||
} else if (evt.key == "s") {
|
||||
gv.scaleInView((gv.zoom.percentage - 100) || 100);
|
||||
}
|
||||
});
|
||||
|
||||
$("#save-svg").click(function() {
|
||||
const svgElement = $("#graph svg")[0];
|
||||
const svgData = new XMLSerializer().serializeToString(svgElement);
|
||||
const blob = new Blob([svgData], {type: "image/svg+xml;charset=utf-8"});
|
||||
const url = URL.createObjectURL(blob);
|
||||
const title = document.getElementById("title").textContent.trim();
|
||||
const downloadLink = document.createElement("a");
|
||||
downloadLink.href = url;
|
||||
downloadLink.download = title + ".svg";
|
||||
document.body.appendChild(downloadLink);
|
||||
downloadLink.click();
|
||||
document.body.removeChild(downloadLink);
|
||||
URL.revokeObjectURL(url);
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
@ -1,13 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
if ! command -v npm &> /dev/null; then
|
||||
echo "npm is not installed. Please install Node.js and npm first."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Installing dependencies..."
|
||||
npm install
|
||||
|
||||
echo "Building bundles..."
|
||||
npm run build
|
@ -1,72 +0,0 @@
|
||||
const path = require('path');
|
||||
const webpack = require('webpack');
|
||||
const TerserPlugin = require('terser-webpack-plugin');
|
||||
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
||||
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
|
||||
|
||||
module.exports = {
|
||||
mode: 'production',
|
||||
entry: {
|
||||
bundle: './bundle-entry.js'
|
||||
},
|
||||
output: {
|
||||
path: path.resolve(__dirname, 'static/dist'),
|
||||
filename: '[name].js',
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.css$/,
|
||||
use: [
|
||||
MiniCssExtractPlugin.loader,
|
||||
'css-loader'
|
||||
]
|
||||
},
|
||||
// For Bootstrap fonts
|
||||
{
|
||||
test: /\.(woff|woff2|eot|ttf|svg)$/,
|
||||
type: 'asset/resource',
|
||||
generator: {
|
||||
filename: 'fonts/[name][ext]'
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
optimization: {
|
||||
minimize: true,
|
||||
minimizer: [
|
||||
new TerserPlugin({
|
||||
terserOptions: {
|
||||
compress: {
|
||||
drop_console: true,
|
||||
passes: 2
|
||||
},
|
||||
mangle: true,
|
||||
output: {
|
||||
comments: false
|
||||
}
|
||||
}
|
||||
}),
|
||||
new CssMinimizerPlugin() // For CSS optimization
|
||||
],
|
||||
},
|
||||
plugins: [
|
||||
new webpack.ProvidePlugin({
|
||||
$: 'jquery',
|
||||
jQuery: 'jquery'
|
||||
}),
|
||||
new webpack.DefinePlugin({
|
||||
'process.env.NODE_ENV': JSON.stringify('production')
|
||||
}),
|
||||
new MiniCssExtractPlugin({
|
||||
filename: '[name].css'
|
||||
})
|
||||
],
|
||||
resolve: {
|
||||
alias: {
|
||||
'jquery': path.resolve(__dirname, 'node_modules/jquery/dist/jquery.js'),
|
||||
'/js/vendor/viz-standalone.mjs': path.resolve(__dirname, 'node_modules/@viz-js/viz/lib/viz-standalone.mjs'),
|
||||
'/js/vendor/fuse.min.mjs': path.resolve(__dirname, 'node_modules/fuse.js/dist/fuse.mjs')
|
||||
}
|
||||
}
|
||||
};
|
@ -53,16 +53,6 @@
|
||||
</GitRepository>
|
||||
</repository>
|
||||
|
||||
<release>
|
||||
<Version>
|
||||
<revision>1.27.1</revision>
|
||||
<branch>main</branch>
|
||||
<name></name>
|
||||
<created>2025-07-08</created>
|
||||
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-devtools/gst-devtools-1.27.1.tar.xz" />
|
||||
</Version>
|
||||
</release>
|
||||
|
||||
<release>
|
||||
<Version>
|
||||
<revision>1.26.0</revision>
|
||||
|
@ -1,5 +1,5 @@
|
||||
project('gst-devtools', 'c',
|
||||
version : '1.27.1.1',
|
||||
version : '1.27.0.1',
|
||||
meson_version : '>= 1.4',
|
||||
default_options : [ 'warning_level=1',
|
||||
'buildtype=debugoptimized' ])
|
||||
|
@ -28,6 +28,7 @@ changelog_starts = {
|
||||
'gst-rtsp-server': '5029c85a46a8c366c4bf272d503e22bbcd624ece',
|
||||
'gst-editing-services': 'ee8bf88ebf131cf7c7161356540efc20bf411e14',
|
||||
'gst-python': 'b3e564eff577e2f577d795051bbcca85d47c89dc',
|
||||
'gstreamer-vaapi': 'c89e9afc5d43837c498a55f8f13ddf235442b83b',
|
||||
'gst-devtools': 'da962d096af9460502843e41b7d25fdece7ff1c2',
|
||||
'gstreamer-sharp': 'b94528f8e7979df49fedf137dfa228d8fe475e1b',
|
||||
}
|
||||
|
@ -1,25 +0,0 @@
|
||||
The `overrides` field is an array of override structures.
|
||||
|
||||
At the moment, these overrides allow you to change the severity level of specific issues,
|
||||
for example changing a critical issue to a warning to allow tests to pass
|
||||
when encountering known issues.
|
||||
|
||||
Use `gst-validate-1.0 --print-issue-types` to print information about all issue types.
|
||||
|
||||
For example:
|
||||
|
||||
``` yaml
|
||||
overrides = {
|
||||
[change-severity, issue-id=runtime::not-negotiated, new-severity=warning],
|
||||
[change-severity, issue-id=g-log::critical, new-severity=info],
|
||||
}
|
||||
```
|
||||
|
||||
**Each override has the following fields**:
|
||||
|
||||
* `issue-id`: (string): Issue ID to override - Mandatory
|
||||
* `new-severity`: (string): New severity level (critical, warning, issue, ignore) - Mandatory
|
||||
|
||||
Currently only `change-severity` overrides are supported.
|
||||
|
||||
**Warning**: This field is validate only for [`.validatetest`](gst-validate-test-file.md) files, and not `.scenario`.
|
@ -367,7 +367,6 @@ validate_flow_format_buffer (GstBuffer * buffer, gint checksum_type,
|
||||
g_string_append_c (content, ' ');
|
||||
g_string_append_printf (content, "0x%02x", map.data[i]);
|
||||
}
|
||||
gst_buffer_unmap (buffer, &map);
|
||||
|
||||
buffer_parts[buffer_parts_index++] = g_string_free (content, FALSE);
|
||||
} else {
|
||||
@ -437,7 +436,6 @@ validate_flow_format_buffer (GstBuffer * buffer, gint checksum_type,
|
||||
buffer_parts_index > 0 ? g_strjoinv (", ",
|
||||
buffer_parts) : g_strdup ("(empty)");
|
||||
|
||||
g_strfreev (logged_fields);
|
||||
g_strfreev (ignored_fields);
|
||||
g_free (meta_str);
|
||||
g_free (flags_str);
|
||||
|
@ -709,9 +709,3 @@ gst_validate_flow_init (void)
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
_priv_validate_flow_deinit (void)
|
||||
{
|
||||
g_clear_list (&all_overrides, gst_object_unref);
|
||||
}
|
||||
|
@ -59,31 +59,28 @@ static gboolean
|
||||
parse_uri (const gchar * uri, gchar ** host, gint * port, gchar ** path,
|
||||
GError ** error)
|
||||
{
|
||||
GstUri *gst_uri;
|
||||
GUri *guri;
|
||||
gboolean ret = FALSE;
|
||||
|
||||
gst_uri = gst_uri_from_string (uri);
|
||||
if (!gst_uri) {
|
||||
g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
|
||||
"Invalid URI: %s", uri);
|
||||
guri = g_uri_parse (uri, 0 /* G_URI_FLAGS_NONE in 2.66 */ , error);
|
||||
if (!guri)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
*host = g_strdup (gst_uri_get_host (gst_uri));
|
||||
*host = g_strdup (g_uri_get_host (guri));
|
||||
if (!*host) {
|
||||
g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
|
||||
"Invalid URI: missing host");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
*port = gst_uri_get_port (gst_uri);
|
||||
if (*port == GST_URI_NO_PORT) {
|
||||
*port = g_uri_get_port (guri);
|
||||
if (*port == -1) {
|
||||
g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
|
||||
"Invalid URI: missing port");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
*path = g_strdup (gst_uri_get_path (gst_uri));
|
||||
*path = g_strdup (g_uri_get_path (guri));
|
||||
if (!*path) {
|
||||
g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
|
||||
"Invalid URI: missing path");
|
||||
@ -97,7 +94,7 @@ cleanup:
|
||||
g_clear_pointer (host, g_free);
|
||||
g_clear_pointer (path, g_free);
|
||||
}
|
||||
gst_uri_unref (gst_uri);
|
||||
g_uri_unref (guri);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user