diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
deleted file mode 100644
index b34c2e462629..000000000000
--- a/.github/FUNDING.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-# These are supported funding model platforms
-
-github: opencv
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
deleted file mode 100644
index 2b856bea249d..000000000000
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ /dev/null
@@ -1,64 +0,0 @@
-name: Bug Report
-description: Create a report to help us reproduce and fix the bug
-labels: ["bug"]
-
-body:
-- type: markdown
- attributes:
- value: >
- #### Thank you for contributing! Before reporting a bug, please have a look at the [FAQ](https://github.com/opencv/opencv/wiki/FAQ), make sure the issue has no duplicate and hasn't been already addressed by searching through [the existing and past issues](https://github.com/opencv/opencv/issues?page=1&q=is%3Aissue+sort%3Acreated-desc).
-
-- type: textarea
- attributes:
- label: System Information
- description: |
- Please provide the following system information to help us diagnose the bug. For example:
-
- // example for c++ user
- OpenCV version: 4.8.0
- Operating System / Platform: Ubuntu 20.04
- Compiler & compiler version: GCC 9.3.0
-
- // example for python user
- OpenCV python version: 4.8.0.74
- Operating System / Platform: Ubuntu 20.04
- Python version: 3.9.6
- validations:
- required: true
-- type: textarea
- attributes:
- label: Detailed description
- description: |
- Please provide a clear and concise description of what the bug is and paste the error log below. It helps improving readability if the error log is wrapped in ```` ```triple quotes blocks``` ````.
- placeholder: |
- A clear and concise description of what the bug is.
-
- ```
- # error log
- ```
- validations:
- required: true
-- type: textarea
- attributes:
- label: Steps to reproduce
- description: |
- Please provide a minimal example to help us reproduce the bug. Code should be wrapped with ```` ```triple quotes blocks``` ```` to improve readability. If the code is too long, please attach as a file or create and link a public gist: https://gist.github.com.
-
- Related data files (images, onnx, etc) should be attached below as well. If the data files are too big, feel free to upload them to a online drive, share them and put the link below.
- placeholder: |
- ```cpp (replace cpp with python if python code)
- # sample code to reproduce the bug
- ```
-
- Test data: [image](https://link/to/the/image), [model.onnx](htts://link/to/the/onnx/model)
- validations:
- required: true
-- type: checkboxes
- attributes:
- label: Issue submission checklist
- options:
- - label: I report the issue, it's not a question
- required: true
- - label: I checked the problem with documentation, FAQ, open issues, forum.opencv.org, Stack Overflow, etc and have not found any solution
- - label: I updated to the latest OpenCV version and the issue is still there
- - label: There is reproducer code and related data files (videos, images, onnx, etc)
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
deleted file mode 100644
index 56200aa0a3a0..000000000000
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-blank_issues_enabled: true
-contact_links:
- - name: Questions
- url: https://forum.opencv.org/
- about: Ask questions and discuss with OpenCV community members
diff --git a/.github/ISSUE_TEMPLATE/documentation.yml b/.github/ISSUE_TEMPLATE/documentation.yml
deleted file mode 100644
index 8d4d3e440bef..000000000000
--- a/.github/ISSUE_TEMPLATE/documentation.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-name: Documentation
-description: Report an issue related to https://docs.opencv.org/
-labels: ["category: documentation"]
-
-body:
-- type: markdown
- attributes:
- value: >
- #### Thank you for contributing! Before submitting a doc issue, please make sure it has no duplicate by searching through [the existing and past issues](https://github.com/opencv/opencv/issues?page=1&q=is%3Aissue+sort%3Acreated-desc)
-
-- type: textarea
- attributes:
- label: Describe the doc issue
- description: >
- Please provide a clear and concise description of what content in https://docs.opencv.org/ is an issue. Note that there are multiple active branches, such as 4.x and 5.x, so please specify the branch with the problem.
- placeholder: |
- A clear and concise description of what content in https://docs.opencv.org/ is an issue.
-
- Link to the doc: https://docs.opencv.org/4.x/d3/d63/classcv_1_1Mat.html
- validations:
- required: true
-- type: textarea
- attributes:
- label: Fix suggestion
- description: >
- Tell us how we could improve the documentation in this regard.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
deleted file mode 100644
index d32b7b88961e..000000000000
--- a/.github/ISSUE_TEMPLATE/feature_request.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-name: Feature request
-description: Submit a request for a new OpenCV feature
-labels: ["feature"]
-
-body:
-- type: markdown
- attributes:
- value: >
- #### Thank you for contributing! Before submitting a feature request, please make sure the request has no duplicate by searching through [the existing and past issues](https://github.com/opencv/opencv/issues?page=1&q=is%3Aissue+sort%3Acreated-desc)
-
-- type: textarea
- attributes:
- label: Describe the feature and motivation
- description: |
- Please provide a clear and concise proposal of the feature and outline the motivation.
- validations:
- required: true
-- type: textarea
- attributes:
- label: Additional context
- description: |
- Add any other context, such as pseudo code, links, diagram, screenshots, to help the community better understand the feature request.
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index 5e2e911cc884..000000000000
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,11 +0,0 @@
-### Pull Request Readiness Checklist
-
-See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
-
-- [ ] I agree to contribute to the project under Apache 2 License.
-- [ ] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
-- [ ] The PR is proposed to the proper branch
-- [ ] There is a reference to the original bug report and related work
-- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
- Patch to opencv_extra has the same branch name.
-- [ ] The feature is well documented and sample code can be built with the project CMake
diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml
deleted file mode 100644
index 34a01b035c52..000000000000
--- a/.github/workflows/PR-4.x.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
-name: PR:4.x
-
-on:
- pull_request:
- branches:
- - 4.x
-
-jobs:
- Ubuntu2004-ARM64:
- uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-ARM64.yaml@main
-
- Ubuntu2004-ARM64-Debug:
- uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-ARM64-Debug.yaml@main
-
- Ubuntu2004-x64:
- uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-U20.yaml@main
-
- Ubuntu2004-x64-OpenVINO:
- uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-U20-OpenVINO.yaml@main
-
- Ubuntu2204-x64:
- uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-U22.yaml@main
-
- Ubuntu2004-x64-CUDA:
- if: "${{ contains(github.event.pull_request.labels.*.name, 'category: dnn') }} || ${{ contains(github.event.pull_request.labels.*.name, 'category: dnn (onnx)') }}"
- uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-U20-Cuda.yaml@main
-
- Windows10-x64:
- uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-W10.yaml@main
-
- Windows10-x64-Vulkan:
- uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-W10-Vulkan.yaml@main
-
- macOS-ARM64:
- uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-macOS-ARM64.yaml@main
-
- macOS-x64:
- uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-macOS-x86_64.yaml@main
-
- macOS-ARM64-Vulkan:
- uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-macOS-ARM64-Vulkan.yaml@main
-
- iOS:
- uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-iOS.yaml@main
-
- Android:
- uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-Android.yaml@main
-
- TIM-VX:
- uses: opencv/ci-gha-workflow/.github/workflows/OCV-timvx-backend-tests-4.x.yml@main
-
- docs:
- uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-docs.yaml@main
-
- Linux-RISC-V-Clang:
- uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-RISCV.yaml@main
diff --git a/.github/workflows/lint_python.yml b/.github/workflows/lint_python.yml
deleted file mode 100644
index b21191934caf..000000000000
--- a/.github/workflows/lint_python.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-name: lint_python
-on: workflow_dispatch
-permissions:
- contents: read # to fetch code (actions/checkout)
-jobs:
- lint_python:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-python@v2
- - run: pip install --upgrade pip wheel
- - run: pip install bandit black codespell flake8 flake8-2020 flake8-bugbear
- flake8-comprehensions isort mypy pytest pyupgrade safety
- - run: bandit --recursive --skip B101 . || true # B101 is assert statements
- - run: black --check . || true
- - run: codespell || true # --ignore-words-list="" --skip="*.css,*.js,*.lock"
- - run: flake8 . --count --select=E9,F63,F7 --show-source --statistics
- - run: flake8 . --count --exit-zero --max-complexity=10 --max-line-length=88
- --show-source --statistics
- - run: isort --check-only --profile black . || true
- - run: pip install -r requirements.txt || pip install --editable . || true
- - run: mkdir --parents --verbose .mypy_cache
- - run: mypy --ignore-missing-imports --install-types --non-interactive . || true
- - run: pytest . || true
- - run: pytest --doctest-modules . || true
- - run: shopt -s globstar && pyupgrade --py36-plus **/*.py || true
- - run: safety check
diff --git a/.idea/cmake.xml b/.idea/cmake.xml
deleted file mode 100644
index eac56b5f19aa..000000000000
--- a/.idea/cmake.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 7b055cd9b124..ff22958b2b08 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,5 +1,8 @@
+
+
+
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index ec9b16fbdf70..0923730216f7 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -6,6 +6,9 @@
{
"useNewFormat": true
}
+
+
+
@@ -588,7 +591,2494 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -640,27 +3130,28 @@
- {
- "keyToString": {
- "ASKED_ADD_EXTERNAL_FILES": "true",
- "RunOnceActivity.OpenProjectViewOnStart": "true",
- "RunOnceActivity.ShowReadmeOnStart": "true",
- "RunOnceActivity.cidr.known.project.marker": "true",
- "WebServerToolWindowFactoryState": "true",
- "cf.first.check.clang-format": "false",
- "cidr.known.project.marker": "true",
- "ctest.advertisement.all.test.configuration.is.created": "true",
- "git-widget-placeholder": "main",
- "last_opened_file_path": "/Users/kevin.staunton-lambert/workspace/github_kevleyski/opencv",
- "node.js.detected.package.eslint": "true",
- "node.js.detected.package.tslint": "true",
- "node.js.selected.package.eslint": "(autodetect)",
- "node.js.selected.package.tslint": "(autodetect)",
- "nodejs_package_manager_path": "npm",
- "settings.editor.selected.configurable": "CMakeSettings",
- "vue.rearranger.settings.migration": "true"
+
+}]]>
@@ -677,11 +3168,6 @@
-
-
-
-
-
@@ -3519,67 +6005,30 @@
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3666,142 +6115,58 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3810,103 +6175,15 @@
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -3917,41 +6194,47 @@
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
@@ -3959,57 +6242,51 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -4020,29 +6297,123 @@
-
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
@@ -4050,8 +6421,6 @@
-
-
@@ -4076,17 +6445,132 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4108,6 +6592,7 @@
+
1667518607000
diff --git a/3rdparty/carotene/.gitignore b/3rdparty/carotene/.gitignore
deleted file mode 100644
index 062445879b6b..000000000000
--- a/3rdparty/carotene/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-# Gedit temp files
-*~
-
-# Qt Creator file
-*.user
-
-# MacOS-specific (Desktop Services Store)
-.DS_Store
diff --git a/3rdparty/carotene/CMakeLists.txt b/3rdparty/carotene/CMakeLists.txt
index ebcdf1a9f6c1..bd26a2d7ef94 100644
--- a/3rdparty/carotene/CMakeLists.txt
+++ b/3rdparty/carotene/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION ${MIN_VER_CMAKE} FATAL_ERROR)
+cmake_minimum_required(VERSION 2.8.11 FATAL_ERROR)
project(Carotene)
@@ -27,10 +27,6 @@ if(CMAKE_COMPILER_IS_GNUCC)
endif()
endif()
-if(APPLE AND CV_CLANG AND WITH_NEON)
- ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-unused-function)
-endif()
-
add_library(carotene_objs OBJECT EXCLUDE_FROM_ALL
${carotene_headers}
${carotene_sources}
diff --git a/3rdparty/carotene/hal/CMakeLists.txt b/3rdparty/carotene/hal/CMakeLists.txt
index 70c40180e806..592771c676da 100644
--- a/3rdparty/carotene/hal/CMakeLists.txt
+++ b/3rdparty/carotene/hal/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION ${MIN_VER_CMAKE} FATAL_ERROR)
+cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR)
include(CheckCCompilerFlag)
include(CheckCXXCompilerFlag)
diff --git a/3rdparty/carotene/hal/tegra_hal.hpp b/3rdparty/carotene/hal/tegra_hal.hpp
index ce8fa909823e..7fcca975fedf 100644
--- a/3rdparty/carotene/hal/tegra_hal.hpp
+++ b/3rdparty/carotene/hal/tegra_hal.hpp
@@ -1296,13 +1296,13 @@ struct MorphCtx
CAROTENE_NS::BORDER_MODE border;
uchar borderValues[4];
};
-inline int TEGRA_MORPHINIT(cvhalFilter2D **context, int operation, int src_type, int dst_type, int width, int height,
+inline int TEGRA_MORPHINIT(cvhalFilter2D **context, int operation, int src_type, int dst_type, int, int,
int kernel_type, uchar *kernel_data, size_t kernel_step, int kernel_width, int kernel_height, int anchor_x, int anchor_y,
int borderType, const double borderValue[4], int iterations, bool allowSubmatrix, bool allowInplace)
{
if(!context || !kernel_data || src_type != dst_type ||
CV_MAT_DEPTH(src_type) != CV_8U || src_type < 0 || (src_type >> CV_CN_SHIFT) > 3 ||
- width < kernel_width || height < kernel_height ||
+
allowSubmatrix || allowInplace || iterations != 1 ||
!CAROTENE_NS::isSupportedConfiguration())
return CV_HAL_ERROR_NOT_IMPLEMENTED;
@@ -1844,18 +1844,14 @@ TegraCvtColor_Invoker(bgrx2hsvf, bgrx2hsv, src_data + static_cast(range.
#define cv_hal_cvtBGRtoGray TEGRA_CVTBGRTOGRAY
#undef cv_hal_cvtGraytoBGR
#define cv_hal_cvtGraytoBGR TEGRA_CVTGRAYTOBGR
-#if 0 // bit-exact tests are failed
#undef cv_hal_cvtBGRtoYUV
#define cv_hal_cvtBGRtoYUV TEGRA_CVTBGRTOYUV
-#endif
#undef cv_hal_cvtBGRtoHSV
#define cv_hal_cvtBGRtoHSV TEGRA_CVTBGRTOHSV
-#if 0 // bit-exact tests are failed
#undef cv_hal_cvtTwoPlaneYUVtoBGR
#define cv_hal_cvtTwoPlaneYUVtoBGR TEGRA_CVT2PYUVTOBGR
#undef cv_hal_cvtTwoPlaneYUVtoBGREx
#define cv_hal_cvtTwoPlaneYUVtoBGREx TEGRA_CVT2PYUVTOBGR_EX
-#endif
#endif // OPENCV_IMGPROC_HAL_INTERFACE_H
diff --git a/3rdparty/carotene/src/add_weighted.cpp b/3rdparty/carotene/src/add_weighted.cpp
index 6559b9fe5363..1f89fb53724b 100644
--- a/3rdparty/carotene/src/add_weighted.cpp
+++ b/3rdparty/carotene/src/add_weighted.cpp
@@ -109,9 +109,9 @@ template <> struct wAdd
vgamma = vdupq_n_f32(_gamma + 0.5);
}
- void operator() (const VecTraits::vec128 & v_src0,
- const VecTraits::vec128 & v_src1,
- VecTraits::vec128 & v_dst) const
+ void operator() (const typename VecTraits::vec128 & v_src0,
+ const typename VecTraits::vec128 & v_src1,
+ typename VecTraits::vec128 & v_dst) const
{
float32x4_t vs1 = vcvtq_f32_s32(v_src0);
float32x4_t vs2 = vcvtq_f32_s32(v_src1);
@@ -121,9 +121,9 @@ template <> struct wAdd
v_dst = vcvtq_s32_f32(vs1);
}
- void operator() (const VecTraits::vec64 & v_src0,
- const VecTraits::vec64 & v_src1,
- VecTraits::vec64 & v_dst) const
+ void operator() (const typename VecTraits::vec64 & v_src0,
+ const typename VecTraits::vec64 & v_src1,
+ typename VecTraits::vec64 & v_dst) const
{
float32x2_t vs1 = vcvt_f32_s32(v_src0);
float32x2_t vs2 = vcvt_f32_s32(v_src1);
@@ -153,9 +153,9 @@ template <> struct wAdd
vgamma = vdupq_n_f32(_gamma + 0.5);
}
- void operator() (const VecTraits::vec128 & v_src0,
- const VecTraits::vec128 & v_src1,
- VecTraits::vec128 & v_dst) const
+ void operator() (const typename VecTraits::vec128 & v_src0,
+ const typename VecTraits::vec128 & v_src1,
+ typename VecTraits::vec128 & v_dst) const
{
float32x4_t vs1 = vcvtq_f32_u32(v_src0);
float32x4_t vs2 = vcvtq_f32_u32(v_src1);
@@ -165,9 +165,9 @@ template <> struct wAdd
v_dst = vcvtq_u32_f32(vs1);
}
- void operator() (const VecTraits::vec64 & v_src0,
- const VecTraits::vec64 & v_src1,
- VecTraits::vec64 & v_dst) const
+ void operator() (const typename VecTraits::vec64 & v_src0,
+ const typename VecTraits::vec64 & v_src1,
+ typename VecTraits::vec64 & v_dst) const
{
float32x2_t vs1 = vcvt_f32_u32(v_src0);
float32x2_t vs2 = vcvt_f32_u32(v_src1);
@@ -197,17 +197,17 @@ template <> struct wAdd
vgamma = vdupq_n_f32(_gamma + 0.5);
}
- void operator() (const VecTraits::vec128 & v_src0,
- const VecTraits::vec128 & v_src1,
- VecTraits::vec128 & v_dst) const
+ void operator() (const typename VecTraits::vec128 & v_src0,
+ const typename VecTraits::vec128 & v_src1,
+ typename VecTraits::vec128 & v_dst) const
{
float32x4_t vs1 = vmlaq_f32(vgamma, v_src0, valpha);
v_dst = vmlaq_f32(vs1, v_src1, vbeta);
}
- void operator() (const VecTraits::vec64 & v_src0,
- const VecTraits::vec64 & v_src1,
- VecTraits::vec64 & v_dst) const
+ void operator() (const typename VecTraits::vec64 & v_src0,
+ const typename VecTraits::vec64 & v_src1,
+ typename VecTraits::vec64 & v_dst) const
{
float32x2_t vs1 = vmla_f32(vget_low(vgamma), v_src0, vget_low(valpha));
v_dst = vmla_f32(vs1, v_src1, vget_low(vbeta));
diff --git a/3rdparty/carotene/src/blur.cpp b/3rdparty/carotene/src/blur.cpp
index 21689a2bd3fb..798cce5a7194 100644
--- a/3rdparty/carotene/src/blur.cpp
+++ b/3rdparty/carotene/src/blur.cpp
@@ -391,9 +391,9 @@ void blur3x3(const Size2D &size, s32 cn,
}
else if (borderType == BORDER_MODE_REFLECT101)
{
+ tcurr = vsetq_lane_u16(vgetq_lane_u16(tcurr, 3),tcurr, 5);
tcurr = vsetq_lane_u16(vgetq_lane_u16(tcurr, 4),tcurr, 6);
tcurr = vsetq_lane_u16(vgetq_lane_u16(tcurr, 5),tcurr, 7);
- tcurr = vsetq_lane_u16(vgetq_lane_u16(tcurr, 3),tcurr, 5);
}
else
{
diff --git a/3rdparty/ffmpeg/.gitignore b/3rdparty/ffmpeg/.gitignore
deleted file mode 100644
index 8daae6735164..000000000000
--- a/3rdparty/ffmpeg/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-downloads/
-*.dll
-ffmpeg_version.cmake
diff --git a/3rdparty/ffmpeg/ffmpeg.cmake b/3rdparty/ffmpeg/ffmpeg.cmake
index da75e3d2cae8..2eea6581780e 100644
--- a/3rdparty/ffmpeg/ffmpeg.cmake
+++ b/3rdparty/ffmpeg/ffmpeg.cmake
@@ -1,8 +1,8 @@
-# Binaries branch name: ffmpeg/4.x_20230622
-# Binaries were created for OpenCV: 61d48dd0f8d1cc1a115d26998705a61478f64a3c
-ocv_update(FFMPEG_BINARIES_COMMIT "7da61f0695eabf8972a2c302bf1632a3d99fb0d5")
-ocv_update(FFMPEG_FILE_HASH_BIN32 "4aaef1456e282e5ef665d65555f47f56")
-ocv_update(FFMPEG_FILE_HASH_BIN64 "38a638851e064c591ce812e27ed43f1f")
+# Binaries branch name: ffmpeg/master_20211005
+# Binaries were created for OpenCV: 672399c751c431bbe52818b33fd3ca17b51e0e16
+ocv_update(FFMPEG_BINARIES_COMMIT "40b4666d1aa374205fd61373496e15d92ecd5313")
+ocv_update(FFMPEG_FILE_HASH_BIN32 "c2f9a897d464a2dce2286f8067ad9d90")
+ocv_update(FFMPEG_FILE_HASH_BIN64 "878a4e8fe5a4d68f18c9cdde543b9ead")
ocv_update(FFMPEG_FILE_HASH_CMAKE "8862c87496e2e8c375965e1277dee1c7")
function(download_win_ffmpeg script_var)
diff --git a/3rdparty/flatbuffers/LICENSE.txt b/3rdparty/flatbuffers/LICENSE.txt
deleted file mode 100644
index d64569567334..000000000000
--- a/3rdparty/flatbuffers/LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/3rdparty/flatbuffers/README.md b/3rdparty/flatbuffers/README.md
deleted file mode 100644
index 4ea040adc69f..000000000000
--- a/3rdparty/flatbuffers/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Origin: https://github.com/google/flatbuffers/tree/v23.5.9
diff --git a/3rdparty/flatbuffers/include/flatbuffers/allocator.h b/3rdparty/flatbuffers/include/flatbuffers/allocator.h
deleted file mode 100644
index 30427190b6c4..000000000000
--- a/3rdparty/flatbuffers/include/flatbuffers/allocator.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright 2021 Google Inc. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef FLATBUFFERS_ALLOCATOR_H_
-#define FLATBUFFERS_ALLOCATOR_H_
-
-#include "flatbuffers/base.h"
-
-namespace flatbuffers {
-
-// Allocator interface. This is flatbuffers-specific and meant only for
-// `vector_downward` usage.
-class Allocator {
- public:
- virtual ~Allocator() {}
-
- // Allocate `size` bytes of memory.
- virtual uint8_t *allocate(size_t size) = 0;
-
- // Deallocate `size` bytes of memory at `p` allocated by this allocator.
- virtual void deallocate(uint8_t *p, size_t size) = 0;
-
- // Reallocate `new_size` bytes of memory, replacing the old region of size
- // `old_size` at `p`. In contrast to a normal realloc, this grows downwards,
- // and is intended specifcally for `vector_downward` use.
- // `in_use_back` and `in_use_front` indicate how much of `old_size` is
- // actually in use at each end, and needs to be copied.
- virtual uint8_t *reallocate_downward(uint8_t *old_p, size_t old_size,
- size_t new_size, size_t in_use_back,
- size_t in_use_front) {
- FLATBUFFERS_ASSERT(new_size > old_size); // vector_downward only grows
- uint8_t *new_p = allocate(new_size);
- memcpy_downward(old_p, old_size, new_p, new_size, in_use_back,
- in_use_front);
- deallocate(old_p, old_size);
- return new_p;
- }
-
- protected:
- // Called by `reallocate_downward` to copy memory from `old_p` of `old_size`
- // to `new_p` of `new_size`. Only memory of size `in_use_front` and
- // `in_use_back` will be copied from the front and back of the old memory
- // allocation.
- void memcpy_downward(uint8_t *old_p, size_t old_size, uint8_t *new_p,
- size_t new_size, size_t in_use_back,
- size_t in_use_front) {
- memcpy(new_p + new_size - in_use_back, old_p + old_size - in_use_back,
- in_use_back);
- memcpy(new_p, old_p, in_use_front);
- }
-};
-
-} // namespace flatbuffers
-
-#endif // FLATBUFFERS_ALLOCATOR_H_
diff --git a/3rdparty/flatbuffers/include/flatbuffers/array.h b/3rdparty/flatbuffers/include/flatbuffers/array.h
deleted file mode 100644
index f4bfbf054c45..000000000000
--- a/3rdparty/flatbuffers/include/flatbuffers/array.h
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * Copyright 2021 Google Inc. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef FLATBUFFERS_ARRAY_H_
-#define FLATBUFFERS_ARRAY_H_
-
-#include
-#include
-
-#include "flatbuffers/base.h"
-#include "flatbuffers/stl_emulation.h"
-#include "flatbuffers/vector.h"
-
-namespace flatbuffers {
-
-// This is used as a helper type for accessing arrays.
-template class Array {
- // Array can carry only POD data types (scalars or structs).
- typedef typename flatbuffers::bool_constant::value>
- scalar_tag;
- typedef
- typename flatbuffers::conditional::type
- IndirectHelperType;
-
- public:
- typedef uint16_t size_type;
- typedef typename IndirectHelper::return_type return_type;
- typedef VectorConstIterator const_iterator;
- typedef VectorReverseIterator const_reverse_iterator;
-
- // If T is a LE-scalar or a struct (!scalar_tag::value).
- static FLATBUFFERS_CONSTEXPR bool is_span_observable =
- (scalar_tag::value && (FLATBUFFERS_LITTLEENDIAN || sizeof(T) == 1)) ||
- !scalar_tag::value;
-
- FLATBUFFERS_CONSTEXPR uint16_t size() const { return length; }
-
- return_type Get(uoffset_t i) const {
- FLATBUFFERS_ASSERT(i < size());
- return IndirectHelper::Read(Data(), i);
- }
-
- return_type operator[](uoffset_t i) const { return Get(i); }
-
- // If this is a Vector of enums, T will be its storage type, not the enum
- // type. This function makes it convenient to retrieve value with enum
- // type E.
- template E GetEnum(uoffset_t i) const {
- return static_cast(Get(i));
- }
-
- const_iterator begin() const { return const_iterator(Data(), 0); }
- const_iterator end() const { return const_iterator(Data(), size()); }
-
- const_reverse_iterator rbegin() const {
- return const_reverse_iterator(end());
- }
- const_reverse_iterator rend() const {
- return const_reverse_iterator(begin());
- }
-
- const_iterator cbegin() const { return begin(); }
- const_iterator cend() const { return end(); }
-
- const_reverse_iterator crbegin() const { return rbegin(); }
- const_reverse_iterator crend() const { return rend(); }
-
- // Get a mutable pointer to elements inside this array.
- // This method used to mutate arrays of structs followed by a @p Mutate
- // operation. For primitive types use @p Mutate directly.
- // @warning Assignments and reads to/from the dereferenced pointer are not
- // automatically converted to the correct endianness.
- typename flatbuffers::conditional::type
- GetMutablePointer(uoffset_t i) const {
- FLATBUFFERS_ASSERT(i < size());
- return const_cast(&data()[i]);
- }
-
- // Change elements if you have a non-const pointer to this object.
- void Mutate(uoffset_t i, const T &val) { MutateImpl(scalar_tag(), i, val); }
-
- // The raw data in little endian format. Use with care.
- const uint8_t *Data() const { return data_; }
-
- uint8_t *Data() { return data_; }
-
- // Similarly, but typed, much like std::vector::data
- const T *data() const { return reinterpret_cast(Data()); }
- T *data() { return reinterpret_cast(Data()); }
-
- // Copy data from a span with endian conversion.
- // If this Array and the span overlap, the behavior is undefined.
- void CopyFromSpan(flatbuffers::span src) {
- const auto p1 = reinterpret_cast(src.data());
- const auto p2 = Data();
- FLATBUFFERS_ASSERT(!(p1 >= p2 && p1 < (p2 + length)) &&
- !(p2 >= p1 && p2 < (p1 + length)));
- (void)p1;
- (void)p2;
- CopyFromSpanImpl(flatbuffers::bool_constant(), src);
- }
-
- protected:
- void MutateImpl(flatbuffers::true_type, uoffset_t i, const T &val) {
- FLATBUFFERS_ASSERT(i < size());
- WriteScalar(data() + i, val);
- }
-
- void MutateImpl(flatbuffers::false_type, uoffset_t i, const T &val) {
- *(GetMutablePointer(i)) = val;
- }
-
- void CopyFromSpanImpl(flatbuffers::true_type,
- flatbuffers::span src) {
- // Use std::memcpy() instead of std::copy() to avoid performance degradation
- // due to aliasing if T is char or unsigned char.
- // The size is known at compile time, so memcpy would be inlined.
- std::memcpy(data(), src.data(), length * sizeof(T));
- }
-
- // Copy data from flatbuffers::span with endian conversion.
- void CopyFromSpanImpl(flatbuffers::false_type,
- flatbuffers::span src) {
- for (size_type k = 0; k < length; k++) { Mutate(k, src[k]); }
- }
-
- // This class is only used to access pre-existing data. Don't ever
- // try to construct these manually.
- // 'constexpr' allows us to use 'size()' at compile time.
- // @note Must not use 'FLATBUFFERS_CONSTEXPR' here, as const is not allowed on
- // a constructor.
-#if defined(__cpp_constexpr)
- constexpr Array();
-#else
- Array();
-#endif
-
- uint8_t data_[length * sizeof(T)];
-
- private:
- // This class is a pointer. Copying will therefore create an invalid object.
- // Private and unimplemented copy constructor.
- Array(const Array &);
- Array &operator=(const Array &);
-};
-
-// Specialization for Array[struct] with access using Offset pointer.
-// This specialization used by idl_gen_text.cpp.
-template class OffsetT>
-class Array, length> {
- static_assert(flatbuffers::is_same::value, "unexpected type T");
-
- public:
- typedef const void *return_type;
- typedef uint16_t size_type;
-
- const uint8_t *Data() const { return data_; }
-
- // Make idl_gen_text.cpp::PrintContainer happy.
- return_type operator[](uoffset_t) const {
- FLATBUFFERS_ASSERT(false);
- return nullptr;
- }
-
- private:
- // This class is only used to access pre-existing data.
- Array();
- Array(const Array &);
- Array &operator=(const Array &);
-
- uint8_t data_[1];
-};
-
-template
-FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span make_span(Array &arr)
- FLATBUFFERS_NOEXCEPT {
- static_assert(
- Array::is_span_observable,
- "wrong type U, only plain struct, LE-scalar, or byte types are allowed");
- return span(arr.data(), N);
-}
-
-template
-FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span make_span(
- const Array &arr) FLATBUFFERS_NOEXCEPT {
- static_assert(
- Array::is_span_observable,
- "wrong type U, only plain struct, LE-scalar, or byte types are allowed");
- return span(arr.data(), N);
-}
-
-template
-FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span
-make_bytes_span(Array &arr) FLATBUFFERS_NOEXCEPT {
- static_assert(Array::is_span_observable,
- "internal error, Array might hold only scalars or structs");
- return span(arr.Data(), sizeof(U) * N);
-}
-
-template
-FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span
-make_bytes_span(const Array &arr) FLATBUFFERS_NOEXCEPT {
- static_assert(Array::is_span_observable,
- "internal error, Array might hold only scalars or structs");
- return span(arr.Data(), sizeof(U) * N);
-}
-
-// Cast a raw T[length] to a raw flatbuffers::Array
-// without endian conversion. Use with care.
-// TODO: move these Cast-methods to `internal` namespace.
-template
-Array &CastToArray(T (&arr)[length]) {
- return *reinterpret_cast *>(arr);
-}
-
-template
-const Array &CastToArray(const T (&arr)[length]) {
- return *reinterpret_cast *>(arr);
-}
-
-template
-Array &CastToArrayOfEnum(T (&arr)[length]) {
- static_assert(sizeof(E) == sizeof(T), "invalid enum type E");
- return *reinterpret_cast *>(arr);
-}
-
-template
-const Array &CastToArrayOfEnum(const T (&arr)[length]) {
- static_assert(sizeof(E) == sizeof(T), "invalid enum type E");
- return *reinterpret_cast *>(arr);
-}
-
-template
-bool operator==(const Array &lhs,
- const Array &rhs) noexcept {
- return std::addressof(lhs) == std::addressof(rhs) ||
- (lhs.size() == rhs.size() &&
- std::memcmp(lhs.Data(), rhs.Data(), rhs.size() * sizeof(T)) == 0);
-}
-
-} // namespace flatbuffers
-
-#endif // FLATBUFFERS_ARRAY_H_
diff --git a/3rdparty/flatbuffers/include/flatbuffers/base.h b/3rdparty/flatbuffers/include/flatbuffers/base.h
deleted file mode 100644
index ac8db356a491..000000000000
--- a/3rdparty/flatbuffers/include/flatbuffers/base.h
+++ /dev/null
@@ -1,495 +0,0 @@
-#ifndef FLATBUFFERS_BASE_H_
-#define FLATBUFFERS_BASE_H_
-
-// clang-format off
-
-// If activate should be declared and included first.
-#if defined(FLATBUFFERS_MEMORY_LEAK_TRACKING) && \
- defined(_MSC_VER) && defined(_DEBUG)
- // The _CRTDBG_MAP_ALLOC inside will replace
- // calloc/free (etc) to its debug version using #define directives.
- #define _CRTDBG_MAP_ALLOC
- #include
- #include
- // Replace operator new by trace-enabled version.
- #define DEBUG_NEW new(_NORMAL_BLOCK, __FILE__, __LINE__)
- #define new DEBUG_NEW
-#endif
-
-#if !defined(FLATBUFFERS_ASSERT)
-#include
-#define FLATBUFFERS_ASSERT assert
-#elif defined(FLATBUFFERS_ASSERT_INCLUDE)
-// Include file with forward declaration
-#include FLATBUFFERS_ASSERT_INCLUDE
-#endif
-
-#ifndef ARDUINO
-#include
-#endif
-
-#include
-#include
-#include
-
-#if defined(ARDUINO) && !defined(ARDUINOSTL_M_H) && defined(__AVR__)
- #include
-#else
- #include
-#endif
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#if defined(__unix__) && !defined(FLATBUFFERS_LOCALE_INDEPENDENT)
- #include
-#endif
-
-#ifdef __ANDROID__
- #include
-#endif
-
-#if defined(__ICCARM__)
-#include
-#endif
-
-// Note the __clang__ check is needed, because clang presents itself
-// as an older GNUC compiler (4.2).
-// Clang 3.3 and later implement all of the ISO C++ 2011 standard.
-// Clang 3.4 and later implement all of the ISO C++ 2014 standard.
-// http://clang.llvm.org/cxx_status.html
-
-// Note the MSVC value '__cplusplus' may be incorrect:
-// The '__cplusplus' predefined macro in the MSVC stuck at the value 199711L,
-// indicating (erroneously!) that the compiler conformed to the C++98 Standard.
-// This value should be correct starting from MSVC2017-15.7-Preview-3.
-// The '__cplusplus' will be valid only if MSVC2017-15.7-P3 and the `/Zc:__cplusplus` switch is set.
-// Workaround (for details see MSDN):
-// Use the _MSC_VER and _MSVC_LANG definition instead of the __cplusplus for compatibility.
-// The _MSVC_LANG macro reports the Standard version regardless of the '/Zc:__cplusplus' switch.
-
-#if defined(__GNUC__) && !defined(__clang__)
- #define FLATBUFFERS_GCC (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
-#else
- #define FLATBUFFERS_GCC 0
-#endif
-
-#if defined(__clang__)
- #define FLATBUFFERS_CLANG (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__)
-#else
- #define FLATBUFFERS_CLANG 0
-#endif
-
-/// @cond FLATBUFFERS_INTERNAL
-#if __cplusplus <= 199711L && \
- (!defined(_MSC_VER) || _MSC_VER < 1600) && \
- (!defined(__GNUC__) || \
- (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ < 40400))
- #error A C++11 compatible compiler with support for the auto typing is \
- required for FlatBuffers.
- #error __cplusplus _MSC_VER __GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__
-#endif
-
-#if !defined(__clang__) && \
- defined(__GNUC__) && \
- (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ < 40600)
- // Backwards compatibility for g++ 4.4, and 4.5 which don't have the nullptr
- // and constexpr keywords. Note the __clang__ check is needed, because clang
- // presents itself as an older GNUC compiler.
- #ifndef nullptr_t
- const class nullptr_t {
- public:
- template inline operator T*() const { return 0; }
- private:
- void operator&() const;
- } nullptr = {};
- #endif
- #ifndef constexpr
- #define constexpr const
- #endif
-#endif
-
-// The wire format uses a little endian encoding (since that's efficient for
-// the common platforms).
-#if defined(__s390x__)
- #define FLATBUFFERS_LITTLEENDIAN 0
-#endif // __s390x__
-#if !defined(FLATBUFFERS_LITTLEENDIAN)
- #if defined(__GNUC__) || defined(__clang__) || defined(__ICCARM__)
- #if (defined(__BIG_ENDIAN__) || \
- (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__))
- #define FLATBUFFERS_LITTLEENDIAN 0
- #else
- #define FLATBUFFERS_LITTLEENDIAN 1
- #endif // __BIG_ENDIAN__
- #elif defined(_MSC_VER)
- #if defined(_M_PPC)
- #define FLATBUFFERS_LITTLEENDIAN 0
- #else
- #define FLATBUFFERS_LITTLEENDIAN 1
- #endif
- #else
- #error Unable to determine endianness, define FLATBUFFERS_LITTLEENDIAN.
- #endif
-#endif // !defined(FLATBUFFERS_LITTLEENDIAN)
-
-#define FLATBUFFERS_VERSION_MAJOR 23
-#define FLATBUFFERS_VERSION_MINOR 5
-#define FLATBUFFERS_VERSION_REVISION 9
-#define FLATBUFFERS_STRING_EXPAND(X) #X
-#define FLATBUFFERS_STRING(X) FLATBUFFERS_STRING_EXPAND(X)
-namespace flatbuffers {
- // Returns version as string "MAJOR.MINOR.REVISION".
- const char* FLATBUFFERS_VERSION();
-}
-
-#if (!defined(_MSC_VER) || _MSC_VER > 1600) && \
- (!defined(__GNUC__) || (__GNUC__ * 100 + __GNUC_MINOR__ >= 407)) || \
- defined(__clang__)
- #define FLATBUFFERS_FINAL_CLASS final
- #define FLATBUFFERS_OVERRIDE override
- #define FLATBUFFERS_EXPLICIT_CPP11 explicit
- #define FLATBUFFERS_VTABLE_UNDERLYING_TYPE : flatbuffers::voffset_t
-#else
- #define FLATBUFFERS_FINAL_CLASS
- #define FLATBUFFERS_OVERRIDE
- #define FLATBUFFERS_EXPLICIT_CPP11
- #define FLATBUFFERS_VTABLE_UNDERLYING_TYPE
-#endif
-
-#if (!defined(_MSC_VER) || _MSC_VER >= 1900) && \
- (!defined(__GNUC__) || (__GNUC__ * 100 + __GNUC_MINOR__ >= 406)) || \
- (defined(__cpp_constexpr) && __cpp_constexpr >= 200704)
- #define FLATBUFFERS_CONSTEXPR constexpr
- #define FLATBUFFERS_CONSTEXPR_CPP11 constexpr
- #define FLATBUFFERS_CONSTEXPR_DEFINED
-#else
- #define FLATBUFFERS_CONSTEXPR const
- #define FLATBUFFERS_CONSTEXPR_CPP11
-#endif
-
-#if (defined(__cplusplus) && __cplusplus >= 201402L) || \
- (defined(__cpp_constexpr) && __cpp_constexpr >= 201304)
- #define FLATBUFFERS_CONSTEXPR_CPP14 FLATBUFFERS_CONSTEXPR_CPP11
-#else
- #define FLATBUFFERS_CONSTEXPR_CPP14
-#endif
-
-#if (defined(__GXX_EXPERIMENTAL_CXX0X__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406)) || \
- (defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 190023026)) || \
- defined(__clang__)
- #define FLATBUFFERS_NOEXCEPT noexcept
-#else
- #define FLATBUFFERS_NOEXCEPT
-#endif
-
-// NOTE: the FLATBUFFERS_DELETE_FUNC macro may change the access mode to
-// private, so be sure to put it at the end or reset access mode explicitly.
-#if (!defined(_MSC_VER) || _MSC_FULL_VER >= 180020827) && \
- (!defined(__GNUC__) || (__GNUC__ * 100 + __GNUC_MINOR__ >= 404)) || \
- defined(__clang__)
- #define FLATBUFFERS_DELETE_FUNC(func) func = delete
-#else
- #define FLATBUFFERS_DELETE_FUNC(func) private: func
-#endif
-
-#if (!defined(_MSC_VER) || _MSC_VER >= 1900) && \
- (!defined(__GNUC__) || (__GNUC__ * 100 + __GNUC_MINOR__ >= 409)) || \
- defined(__clang__)
- #define FLATBUFFERS_DEFAULT_DECLARATION
-#endif
-
-// Check if we can use template aliases
-// Not possible if Microsoft Compiler before 2012
-// Possible is the language feature __cpp_alias_templates is defined well
-// Or possible if the C++ std is C+11 or newer
-#if (defined(_MSC_VER) && _MSC_VER > 1700 /* MSVC2012 */) \
- || (defined(__cpp_alias_templates) && __cpp_alias_templates >= 200704) \
- || (defined(__cplusplus) && __cplusplus >= 201103L)
- #define FLATBUFFERS_TEMPLATES_ALIASES
-#endif
-
-#ifndef FLATBUFFERS_HAS_STRING_VIEW
- // Only provide flatbuffers::string_view if __has_include can be used
- // to detect a header that provides an implementation
- #if defined(__has_include)
- // Check for std::string_view (in c++17)
- #if __has_include() && (__cplusplus >= 201606 || (defined(_HAS_CXX17) && _HAS_CXX17))
- #include
- namespace flatbuffers {
- typedef std::string_view string_view;
- }
- #define FLATBUFFERS_HAS_STRING_VIEW 1
- // Check for std::experimental::string_view (in c++14, compiler-dependent)
- #elif __has_include() && (__cplusplus >= 201411)
- #include
- namespace flatbuffers {
- typedef std::experimental::string_view string_view;
- }
- #define FLATBUFFERS_HAS_STRING_VIEW 1
- // Check for absl::string_view
- #elif __has_include("absl/strings/string_view.h") && \
- __has_include("absl/base/config.h") && \
- (__cplusplus >= 201411)
- #include "absl/base/config.h"
- #if !defined(ABSL_USES_STD_STRING_VIEW)
- #include "absl/strings/string_view.h"
- namespace flatbuffers {
- typedef absl::string_view string_view;
- }
- #define FLATBUFFERS_HAS_STRING_VIEW 1
- #endif
- #endif
- #endif // __has_include
-#endif // !FLATBUFFERS_HAS_STRING_VIEW
-
-#ifndef FLATBUFFERS_GENERAL_HEAP_ALLOC_OK
- // Allow heap allocations to be used
- #define FLATBUFFERS_GENERAL_HEAP_ALLOC_OK 1
-#endif // !FLATBUFFERS_GENERAL_HEAP_ALLOC_OK
-
-#ifndef FLATBUFFERS_HAS_NEW_STRTOD
- // Modern (C++11) strtod and strtof functions are available for use.
- // 1) nan/inf strings as argument of strtod;
- // 2) hex-float as argument of strtod/strtof.
- #if (defined(_MSC_VER) && _MSC_VER >= 1900) || \
- (defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 409)) || \
- (defined(__clang__))
- #define FLATBUFFERS_HAS_NEW_STRTOD 1
- #endif
-#endif // !FLATBUFFERS_HAS_NEW_STRTOD
-
-#ifndef FLATBUFFERS_LOCALE_INDEPENDENT
- // Enable locale independent functions {strtof_l, strtod_l,strtoll_l,
- // strtoull_l}.
- #if (defined(_MSC_VER) && _MSC_VER >= 1800) || \
- (defined(__ANDROID_API__) && __ANDROID_API__>= 21) || \
- (defined(_XOPEN_VERSION) && (_XOPEN_VERSION >= 700)) && \
- (!defined(__Fuchsia__) && !defined(__ANDROID_API__))
- #define FLATBUFFERS_LOCALE_INDEPENDENT 1
- #else
- #define FLATBUFFERS_LOCALE_INDEPENDENT 0
- #endif
-#endif // !FLATBUFFERS_LOCALE_INDEPENDENT
-
-// Suppress Undefined Behavior Sanitizer (recoverable only). Usage:
-// - __suppress_ubsan__("undefined")
-// - __suppress_ubsan__("signed-integer-overflow")
-#if defined(__clang__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >=7))
- #define __suppress_ubsan__(type) __attribute__((no_sanitize(type)))
-#elif defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 409)
- #define __suppress_ubsan__(type) __attribute__((no_sanitize_undefined))
-#else
- #define __suppress_ubsan__(type)
-#endif
-
-// This is constexpr function used for checking compile-time constants.
-// Avoid `#pragma warning(disable: 4127) // C4127: expression is constant`.
-template FLATBUFFERS_CONSTEXPR inline bool IsConstTrue(T t) {
- return !!t;
-}
-
-// Enable C++ attribute [[]] if std:c++17 or higher.
-#if ((__cplusplus >= 201703L) \
- || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201703L)))
- // All attributes unknown to an implementation are ignored without causing an error.
- #define FLATBUFFERS_ATTRIBUTE(attr) attr
-
- #define FLATBUFFERS_FALLTHROUGH() [[fallthrough]]
-#else
- #define FLATBUFFERS_ATTRIBUTE(attr)
-
- #if FLATBUFFERS_CLANG >= 30800
- #define FLATBUFFERS_FALLTHROUGH() [[clang::fallthrough]]
- #elif FLATBUFFERS_GCC >= 70300
- #define FLATBUFFERS_FALLTHROUGH() [[gnu::fallthrough]]
- #else
- #define FLATBUFFERS_FALLTHROUGH()
- #endif
-#endif
-
-/// @endcond
-
-/// @file
-namespace flatbuffers {
-
-/// @cond FLATBUFFERS_INTERNAL
-// Our default offset / size type, 32bit on purpose on 64bit systems.
-// Also, using a consistent offset type maintains compatibility of serialized
-// offset values between 32bit and 64bit systems.
-typedef uint32_t uoffset_t;
-typedef uint64_t uoffset64_t;
-
-// Signed offsets for references that can go in both directions.
-typedef int32_t soffset_t;
-typedef int64_t soffset64_t;
-
-// Offset/index used in v-tables, can be changed to uint8_t in
-// format forks to save a bit of space if desired.
-typedef uint16_t voffset_t;
-
-typedef uintmax_t largest_scalar_t;
-
-// In 32bits, this evaluates to 2GB - 1
-#define FLATBUFFERS_MAX_BUFFER_SIZE std::numeric_limits<::flatbuffers::soffset_t>::max()
-#define FLATBUFFERS_MAX_64_BUFFER_SIZE std::numeric_limits<::flatbuffers::soffset64_t>::max()
-
-// The minimum size buffer that can be a valid flatbuffer.
-// Includes the offset to the root table (uoffset_t), the offset to the vtable
-// of the root table (soffset_t), the size of the vtable (uint16_t), and the
-// size of the referring table (uint16_t).
-#define FLATBUFFERS_MIN_BUFFER_SIZE sizeof(uoffset_t) + sizeof(soffset_t) + \
- sizeof(uint16_t) + sizeof(uint16_t)
-
-// We support aligning the contents of buffers up to this size.
-#ifndef FLATBUFFERS_MAX_ALIGNMENT
- #define FLATBUFFERS_MAX_ALIGNMENT 32
-#endif
-
-/// @brief The length of a FlatBuffer file header.
-static const size_t kFileIdentifierLength = 4;
-
-inline bool VerifyAlignmentRequirements(size_t align, size_t min_align = 1) {
- return (min_align <= align) && (align <= (FLATBUFFERS_MAX_ALIGNMENT)) &&
- (align & (align - 1)) == 0; // must be power of 2
-}
-
-#if defined(_MSC_VER)
- #pragma warning(disable: 4351) // C4351: new behavior: elements of array ... will be default initialized
- #pragma warning(push)
- #pragma warning(disable: 4127) // C4127: conditional expression is constant
-#endif
-
-template T EndianSwap(T t) {
- #if defined(_MSC_VER)
- #define FLATBUFFERS_BYTESWAP16 _byteswap_ushort
- #define FLATBUFFERS_BYTESWAP32 _byteswap_ulong
- #define FLATBUFFERS_BYTESWAP64 _byteswap_uint64
- #elif defined(__ICCARM__)
- #define FLATBUFFERS_BYTESWAP16 __REV16
- #define FLATBUFFERS_BYTESWAP32 __REV
- #define FLATBUFFERS_BYTESWAP64(x) \
- ((__REV(static_cast(x >> 32U))) | (static_cast(__REV(static_cast(x)))) << 32U)
- #else
- #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408 && !defined(__clang__)
- // __builtin_bswap16 was missing prior to GCC 4.8.
- #define FLATBUFFERS_BYTESWAP16(x) \
- static_cast(__builtin_bswap32(static_cast(x) << 16))
- #else
- #define FLATBUFFERS_BYTESWAP16 __builtin_bswap16
- #endif
- #define FLATBUFFERS_BYTESWAP32 __builtin_bswap32
- #define FLATBUFFERS_BYTESWAP64 __builtin_bswap64
- #endif
- if (sizeof(T) == 1) { // Compile-time if-then's.
- return t;
- } else if (sizeof(T) == 2) {
- union { T t; uint16_t i; } u = { t };
- u.i = FLATBUFFERS_BYTESWAP16(u.i);
- return u.t;
- } else if (sizeof(T) == 4) {
- union { T t; uint32_t i; } u = { t };
- u.i = FLATBUFFERS_BYTESWAP32(u.i);
- return u.t;
- } else if (sizeof(T) == 8) {
- union { T t; uint64_t i; } u = { t };
- u.i = FLATBUFFERS_BYTESWAP64(u.i);
- return u.t;
- } else {
- FLATBUFFERS_ASSERT(0);
- return t;
- }
-}
-
-#if defined(_MSC_VER)
- #pragma warning(pop)
-#endif
-
-
-template T EndianScalar(T t) {
- #if FLATBUFFERS_LITTLEENDIAN
- return t;
- #else
- return EndianSwap(t);
- #endif
-}
-
-template
-// UBSAN: C++ aliasing type rules, see std::bit_cast<> for details.
-__suppress_ubsan__("alignment")
-T ReadScalar(const void *p) {
- return EndianScalar(*reinterpret_cast(p));
-}
-
-// See https://github.com/google/flatbuffers/issues/5950
-
-#if (FLATBUFFERS_GCC >= 100000) && (FLATBUFFERS_GCC < 110000)
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wstringop-overflow"
-#endif
-
-template
-// UBSAN: C++ aliasing type rules, see std::bit_cast<> for details.
-__suppress_ubsan__("alignment")
-void WriteScalar(void *p, T t) {
- *reinterpret_cast(p) = EndianScalar(t);
-}
-
-template struct Offset;
-template __suppress_ubsan__("alignment") void WriteScalar(void *p, Offset t) {
- *reinterpret_cast(p) = EndianScalar(t.o);
-}
-
-#if (FLATBUFFERS_GCC >= 100000) && (FLATBUFFERS_GCC < 110000)
- #pragma GCC diagnostic pop
-#endif
-
-// Computes how many bytes you'd have to pad to be able to write an
-// "scalar_size" scalar if the buffer had grown to "buf_size" (downwards in
-// memory).
-__suppress_ubsan__("unsigned-integer-overflow")
-inline size_t PaddingBytes(size_t buf_size, size_t scalar_size) {
- return ((~buf_size) + 1) & (scalar_size - 1);
-}
-
-// Generic 'operator==' with conditional specialisations.
-// T e - new value of a scalar field.
-// T def - default of scalar (is known at compile-time).
-template inline bool IsTheSameAs(T e, T def) { return e == def; }
-
-#if defined(FLATBUFFERS_NAN_DEFAULTS) && \
- defined(FLATBUFFERS_HAS_NEW_STRTOD) && (FLATBUFFERS_HAS_NEW_STRTOD > 0)
-// Like `operator==(e, def)` with weak NaN if T=(float|double).
-template inline bool IsFloatTheSameAs(T e, T def) {
- return (e == def) || ((def != def) && (e != e));
-}
-template<> inline bool IsTheSameAs(float e, float def) {
- return IsFloatTheSameAs(e, def);
-}
-template<> inline bool IsTheSameAs(double e, double def) {
- return IsFloatTheSameAs(e, def);
-}
-#endif
-
-// Check 'v' is out of closed range [low; high].
-// Workaround for GCC warning [-Werror=type-limits]:
-// comparison is always true due to limited range of data type.
-template
-inline bool IsOutRange(const T &v, const T &low, const T &high) {
- return (v < low) || (high < v);
-}
-
-// Check 'v' is in closed range [low; high].
-template
-inline bool IsInRange(const T &v, const T &low, const T &high) {
- return !IsOutRange(v, low, high);
-}
-
-} // namespace flatbuffers
-#endif // FLATBUFFERS_BASE_H_
diff --git a/3rdparty/flatbuffers/include/flatbuffers/buffer.h b/3rdparty/flatbuffers/include/flatbuffers/buffer.h
deleted file mode 100644
index 94d4f7903beb..000000000000
--- a/3rdparty/flatbuffers/include/flatbuffers/buffer.h
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Copyright 2021 Google Inc. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef FLATBUFFERS_BUFFER_H_
-#define FLATBUFFERS_BUFFER_H_
-
-#include
-
-#include "flatbuffers/base.h"
-
-namespace flatbuffers {
-
-// Wrapper for uoffset_t to allow safe template specialization.
-// Value is allowed to be 0 to indicate a null object (see e.g. AddOffset).
-template struct Offset {
- // The type of offset to use.
- typedef uoffset_t offset_type;
-
- offset_type o;
- Offset() : o(0) {}
- Offset(const offset_type _o) : o(_o) {}
- Offset<> Union() const { return o; }
- bool IsNull() const { return !o; }
-};
-
-// Wrapper for uoffset64_t Offsets.
-template struct Offset64 {
- // The type of offset to use.
- typedef uoffset64_t offset_type;
-
- offset_type o;
- Offset64() : o(0) {}
- Offset64(const offset_type offset) : o(offset) {}
- Offset64<> Union() const { return o; }
- bool IsNull() const { return !o; }
-};
-
-// Litmus check for ensuring the Offsets are the expected size.
-static_assert(sizeof(Offset<>) == 4, "Offset has wrong size");
-static_assert(sizeof(Offset64<>) == 8, "Offset64 has wrong size");
-
-inline void EndianCheck() {
- int endiantest = 1;
- // If this fails, see FLATBUFFERS_LITTLEENDIAN above.
- FLATBUFFERS_ASSERT(*reinterpret_cast(&endiantest) ==
- FLATBUFFERS_LITTLEENDIAN);
- (void)endiantest;
-}
-
-template FLATBUFFERS_CONSTEXPR size_t AlignOf() {
- // clang-format off
- #ifdef _MSC_VER
- return __alignof(T);
- #else
- #ifndef alignof
- return __alignof__(T);
- #else
- return alignof(T);
- #endif
- #endif
- // clang-format on
-}
-
-// Lexicographically compare two strings (possibly containing nulls), and
-// return true if the first is less than the second.
-static inline bool StringLessThan(const char *a_data, uoffset_t a_size,
- const char *b_data, uoffset_t b_size) {
- const auto cmp = memcmp(a_data, b_data, (std::min)(a_size, b_size));
- return cmp == 0 ? a_size < b_size : cmp < 0;
-}
-
-// When we read serialized data from memory, in the case of most scalars,
-// we want to just read T, but in the case of Offset, we want to actually
-// perform the indirection and return a pointer.
-// The template specialization below does just that.
-// It is wrapped in a struct since function templates can't overload on the
-// return type like this.
-// The typedef is for the convenience of callers of this function
-// (avoiding the need for a trailing return decltype)
-template struct IndirectHelper {
- typedef T return_type;
- typedef T mutable_return_type;
- static const size_t element_stride = sizeof(T);
-
- static return_type Read(const uint8_t *p, const size_t i) {
- return EndianScalar((reinterpret_cast(p))[i]);
- }
- static mutable_return_type Read(uint8_t *p, const size_t i) {
- return reinterpret_cast(
- Read(const_cast(p), i));
- }
-};
-
-// For vector of Offsets.
-template class OffsetT>
-struct IndirectHelper> {
- typedef const T *return_type;
- typedef T *mutable_return_type;
- typedef typename OffsetT::offset_type offset_type;
- static const offset_type element_stride = sizeof(offset_type);
-
- static return_type Read(const uint8_t *const p, const offset_type i) {
- // Offsets are relative to themselves, so first update the pointer to
- // point to the offset location.
- const uint8_t *const offset_location = p + i * element_stride;
-
- // Then read the scalar value of the offset (which may be 32 or 64-bits) and
- // then determine the relative location from the offset location.
- return reinterpret_cast(
- offset_location + ReadScalar(offset_location));
- }
- static mutable_return_type Read(uint8_t *const p, const offset_type i) {
- // Offsets are relative to themselves, so first update the pointer to
- // point to the offset location.
- uint8_t *const offset_location = p + i * element_stride;
-
- // Then read the scalar value of the offset (which may be 32 or 64-bits) and
- // then determine the relative location from the offset location.
- return reinterpret_cast(
- offset_location + ReadScalar(offset_location));
- }
-};
-
-// For vector of structs.
-template struct IndirectHelper {
- typedef const T *return_type;
- typedef T *mutable_return_type;
- static const size_t element_stride = sizeof(T);
-
- static return_type Read(const uint8_t *const p, const size_t i) {
- // Structs are stored inline, relative to the first struct pointer.
- return reinterpret_cast(p + i * element_stride);
- }
- static mutable_return_type Read(uint8_t *const p, const size_t i) {
- // Structs are stored inline, relative to the first struct pointer.
- return reinterpret_cast(p + i * element_stride);
- }
-};
-
-/// @brief Get a pointer to the file_identifier section of the buffer.
-/// @return Returns a const char pointer to the start of the file_identifier
-/// characters in the buffer. The returned char * has length
-/// 'flatbuffers::FlatBufferBuilder::kFileIdentifierLength'.
-/// This function is UNDEFINED for FlatBuffers whose schema does not include
-/// a file_identifier (likely points at padding or the start of a the root
-/// vtable).
-inline const char *GetBufferIdentifier(const void *buf,
- bool size_prefixed = false) {
- return reinterpret_cast(buf) +
- ((size_prefixed) ? 2 * sizeof(uoffset_t) : sizeof(uoffset_t));
-}
-
-// Helper to see if the identifier in a buffer has the expected value.
-inline bool BufferHasIdentifier(const void *buf, const char *identifier,
- bool size_prefixed = false) {
- return strncmp(GetBufferIdentifier(buf, size_prefixed), identifier,
- flatbuffers::kFileIdentifierLength) == 0;
-}
-
-/// @cond FLATBUFFERS_INTERNAL
-// Helpers to get a typed pointer to the root object contained in the buffer.
-template T *GetMutableRoot(void *buf) {
- if (!buf) return nullptr;
- EndianCheck();
- return reinterpret_cast(
- reinterpret_cast(buf) +
- EndianScalar(*reinterpret_cast(buf)));
-}
-
-template
-T *GetMutableSizePrefixedRoot(void *buf) {
- return GetMutableRoot(reinterpret_cast(buf) + sizeof(SizeT));
-}
-
-template const T *GetRoot(const void *buf) {
- return GetMutableRoot(const_cast(buf));
-}
-
-template
-const T *GetSizePrefixedRoot(const void *buf) {
- return GetRoot(reinterpret_cast(buf) + sizeof(SizeT));
-}
-
-} // namespace flatbuffers
-
-#endif // FLATBUFFERS_BUFFER_H_
diff --git a/3rdparty/flatbuffers/include/flatbuffers/buffer_ref.h b/3rdparty/flatbuffers/include/flatbuffers/buffer_ref.h
deleted file mode 100644
index f70941fc64db..000000000000
--- a/3rdparty/flatbuffers/include/flatbuffers/buffer_ref.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright 2021 Google Inc. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef FLATBUFFERS_BUFFER_REF_H_
-#define FLATBUFFERS_BUFFER_REF_H_
-
-#include "flatbuffers/base.h"
-#include "flatbuffers/verifier.h"
-
-namespace flatbuffers {
-
-// Convenient way to bundle a buffer and its length, to pass it around
-// typed by its root.
-// A BufferRef does not own its buffer.
-struct BufferRefBase {}; // for std::is_base_of
-
-template struct BufferRef : BufferRefBase {
- BufferRef() : buf(nullptr), len(0), must_free(false) {}
- BufferRef(uint8_t *_buf, uoffset_t _len)
- : buf(_buf), len(_len), must_free(false) {}
-
- ~BufferRef() {
- if (must_free) free(buf);
- }
-
- const T *GetRoot() const { return flatbuffers::GetRoot(buf); }
-
- bool Verify() {
- Verifier verifier(buf, len);
- return verifier.VerifyBuffer(nullptr);
- }
-
- uint8_t *buf;
- uoffset_t len;
- bool must_free;
-};
-
-} // namespace flatbuffers
-
-#endif // FLATBUFFERS_BUFFER_REF_H_
diff --git a/3rdparty/flatbuffers/include/flatbuffers/default_allocator.h b/3rdparty/flatbuffers/include/flatbuffers/default_allocator.h
deleted file mode 100644
index d4724122cb54..000000000000
--- a/3rdparty/flatbuffers/include/flatbuffers/default_allocator.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright 2021 Google Inc. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef FLATBUFFERS_DEFAULT_ALLOCATOR_H_
-#define FLATBUFFERS_DEFAULT_ALLOCATOR_H_
-
-#include "flatbuffers/allocator.h"
-#include "flatbuffers/base.h"
-
-namespace flatbuffers {
-
-// DefaultAllocator uses new/delete to allocate memory regions
-class DefaultAllocator : public Allocator {
- public:
- uint8_t *allocate(size_t size) FLATBUFFERS_OVERRIDE {
- return new uint8_t[size];
- }
-
- void deallocate(uint8_t *p, size_t) FLATBUFFERS_OVERRIDE { delete[] p; }
-
- static void dealloc(void *p, size_t) { delete[] static_cast(p); }
-};
-
-// These functions allow for a null allocator to mean use the default allocator,
-// as used by DetachedBuffer and vector_downward below.
-// This is to avoid having a statically or dynamically allocated default
-// allocator, or having to move it between the classes that may own it.
-inline uint8_t *Allocate(Allocator *allocator, size_t size) {
- return allocator ? allocator->allocate(size)
- : DefaultAllocator().allocate(size);
-}
-
-inline void Deallocate(Allocator *allocator, uint8_t *p, size_t size) {
- if (allocator)
- allocator->deallocate(p, size);
- else
- DefaultAllocator().deallocate(p, size);
-}
-
-inline uint8_t *ReallocateDownward(Allocator *allocator, uint8_t *old_p,
- size_t old_size, size_t new_size,
- size_t in_use_back, size_t in_use_front) {
- return allocator ? allocator->reallocate_downward(old_p, old_size, new_size,
- in_use_back, in_use_front)
- : DefaultAllocator().reallocate_downward(
- old_p, old_size, new_size, in_use_back, in_use_front);
-}
-
-} // namespace flatbuffers
-
-#endif // FLATBUFFERS_DEFAULT_ALLOCATOR_H_
diff --git a/3rdparty/flatbuffers/include/flatbuffers/detached_buffer.h b/3rdparty/flatbuffers/include/flatbuffers/detached_buffer.h
deleted file mode 100644
index 5e900baeb57d..000000000000
--- a/3rdparty/flatbuffers/include/flatbuffers/detached_buffer.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright 2021 Google Inc. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef FLATBUFFERS_DETACHED_BUFFER_H_
-#define FLATBUFFERS_DETACHED_BUFFER_H_
-
-#include "flatbuffers/allocator.h"
-#include "flatbuffers/base.h"
-#include "flatbuffers/default_allocator.h"
-
-namespace flatbuffers {
-
-// DetachedBuffer is a finished flatbuffer memory region, detached from its
-// builder. The original memory region and allocator are also stored so that
-// the DetachedBuffer can manage the memory lifetime.
-class DetachedBuffer {
- public:
- DetachedBuffer()
- : allocator_(nullptr),
- own_allocator_(false),
- buf_(nullptr),
- reserved_(0),
- cur_(nullptr),
- size_(0) {}
-
- DetachedBuffer(Allocator *allocator, bool own_allocator, uint8_t *buf,
- size_t reserved, uint8_t *cur, size_t sz)
- : allocator_(allocator),
- own_allocator_(own_allocator),
- buf_(buf),
- reserved_(reserved),
- cur_(cur),
- size_(sz) {}
-
- DetachedBuffer(DetachedBuffer &&other) noexcept
- : allocator_(other.allocator_),
- own_allocator_(other.own_allocator_),
- buf_(other.buf_),
- reserved_(other.reserved_),
- cur_(other.cur_),
- size_(other.size_) {
- other.reset();
- }
-
- DetachedBuffer &operator=(DetachedBuffer &&other) noexcept {
- if (this == &other) return *this;
-
- destroy();
-
- allocator_ = other.allocator_;
- own_allocator_ = other.own_allocator_;
- buf_ = other.buf_;
- reserved_ = other.reserved_;
- cur_ = other.cur_;
- size_ = other.size_;
-
- other.reset();
-
- return *this;
- }
-
- ~DetachedBuffer() { destroy(); }
-
- const uint8_t *data() const { return cur_; }
-
- uint8_t *data() { return cur_; }
-
- size_t size() const { return size_; }
-
- // These may change access mode, leave these at end of public section
- FLATBUFFERS_DELETE_FUNC(DetachedBuffer(const DetachedBuffer &other));
- FLATBUFFERS_DELETE_FUNC(
- DetachedBuffer &operator=(const DetachedBuffer &other));
-
- protected:
- Allocator *allocator_;
- bool own_allocator_;
- uint8_t *buf_;
- size_t reserved_;
- uint8_t *cur_;
- size_t size_;
-
- inline void destroy() {
- if (buf_) Deallocate(allocator_, buf_, reserved_);
- if (own_allocator_ && allocator_) { delete allocator_; }
- reset();
- }
-
- inline void reset() {
- allocator_ = nullptr;
- own_allocator_ = false;
- buf_ = nullptr;
- reserved_ = 0;
- cur_ = nullptr;
- size_ = 0;
- }
-};
-
-} // namespace flatbuffers
-
-#endif // FLATBUFFERS_DETACHED_BUFFER_H_
diff --git a/3rdparty/flatbuffers/include/flatbuffers/flatbuffer_builder.h b/3rdparty/flatbuffers/include/flatbuffers/flatbuffer_builder.h
deleted file mode 100644
index ed932cd9cc5b..000000000000
--- a/3rdparty/flatbuffers/include/flatbuffers/flatbuffer_builder.h
+++ /dev/null
@@ -1,1471 +0,0 @@
-/*
- * Copyright 2021 Google Inc. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef FLATBUFFERS_FLATBUFFER_BUILDER_H_
-#define FLATBUFFERS_FLATBUFFER_BUILDER_H_
-
-#include
-#include
-#include
-#include
-#include
-
-#include "flatbuffers/allocator.h"
-#include "flatbuffers/array.h"
-#include "flatbuffers/base.h"
-#include "flatbuffers/buffer.h"
-#include "flatbuffers/buffer_ref.h"
-#include "flatbuffers/default_allocator.h"
-#include "flatbuffers/detached_buffer.h"
-#include "flatbuffers/stl_emulation.h"
-#include "flatbuffers/string.h"
-#include "flatbuffers/struct.h"
-#include "flatbuffers/table.h"
-#include "flatbuffers/vector.h"
-#include "flatbuffers/vector_downward.h"
-#include "flatbuffers/verifier.h"
-
-namespace flatbuffers {
-
-// Converts a Field ID to a virtual table offset.
-inline voffset_t FieldIndexToOffset(voffset_t field_id) {
- // Should correspond to what EndTable() below builds up.
- const voffset_t fixed_fields =
- 2 * sizeof(voffset_t); // Vtable size and Object Size.
- return fixed_fields + field_id * sizeof(voffset_t);
-}
-
-template>
-const T *data(const std::vector &v) {
- // Eventually the returned pointer gets passed down to memcpy, so
- // we need it to be non-null to avoid undefined behavior.
- static uint8_t t;
- return v.empty() ? reinterpret_cast(&t) : &v.front();
-}
-template>
-T *data(std::vector &v) {
- // Eventually the returned pointer gets passed down to memcpy, so
- // we need it to be non-null to avoid undefined behavior.
- static uint8_t t;
- return v.empty() ? reinterpret_cast(&t) : &v.front();
-}
-
-/// @addtogroup flatbuffers_cpp_api
-/// @{
-/// @class FlatBufferBuilder
-/// @brief Helper class to hold data needed in creation of a FlatBuffer.
-/// To serialize data, you typically call one of the `Create*()` functions in
-/// the generated code, which in turn call a sequence of `StartTable`/
-/// `PushElement`/`AddElement`/`EndTable`, or the builtin `CreateString`/
-/// `CreateVector` functions. Do this is depth-first order to build up a tree to
-/// the root. `Finish()` wraps up the buffer ready for transport.
-template class FlatBufferBuilderImpl {
- public:
- // This switches the size type of the builder, based on if its 64-bit aware
- // (uoffset64_t) or not (uoffset_t).
- typedef
- typename std::conditional::type SizeT;
-
- /// @brief Default constructor for FlatBufferBuilder.
- /// @param[in] initial_size The initial size of the buffer, in bytes. Defaults
- /// to `1024`.
- /// @param[in] allocator An `Allocator` to use. If null will use
- /// `DefaultAllocator`.
- /// @param[in] own_allocator Whether the builder/vector should own the
- /// allocator. Defaults to / `false`.
- /// @param[in] buffer_minalign Force the buffer to be aligned to the given
- /// minimum alignment upon reallocation. Only needed if you intend to store
- /// types with custom alignment AND you wish to read the buffer in-place
- /// directly after creation.
- explicit FlatBufferBuilderImpl(
- size_t initial_size = 1024, Allocator *allocator = nullptr,
- bool own_allocator = false,
- size_t buffer_minalign = AlignOf())
- : buf_(initial_size, allocator, own_allocator, buffer_minalign,
- static_cast(Is64Aware ? FLATBUFFERS_MAX_64_BUFFER_SIZE
- : FLATBUFFERS_MAX_BUFFER_SIZE)),
- num_field_loc(0),
- max_voffset_(0),
- length_of_64_bit_region_(0),
- nested(false),
- finished(false),
- minalign_(1),
- force_defaults_(false),
- dedup_vtables_(true),
- string_pool(nullptr) {
- EndianCheck();
- }
-
- /// @brief Move constructor for FlatBufferBuilder.
- FlatBufferBuilderImpl(FlatBufferBuilderImpl &&other) noexcept
- : buf_(1024, nullptr, false, AlignOf(),
- static_cast(Is64Aware ? FLATBUFFERS_MAX_64_BUFFER_SIZE
- : FLATBUFFERS_MAX_BUFFER_SIZE)),
- num_field_loc(0),
- max_voffset_(0),
- length_of_64_bit_region_(0),
- nested(false),
- finished(false),
- minalign_(1),
- force_defaults_(false),
- dedup_vtables_(true),
- string_pool(nullptr) {
- EndianCheck();
- // Default construct and swap idiom.
- // Lack of delegating constructors in vs2010 makes it more verbose than
- // needed.
- Swap(other);
- }
-
- /// @brief Move assignment operator for FlatBufferBuilder.
- FlatBufferBuilderImpl &operator=(FlatBufferBuilderImpl &&other) noexcept {
- // Move construct a temporary and swap idiom
- FlatBufferBuilderImpl temp(std::move(other));
- Swap(temp);
- return *this;
- }
-
- void Swap(FlatBufferBuilderImpl &other) {
- using std::swap;
- buf_.swap(other.buf_);
- swap(num_field_loc, other.num_field_loc);
- swap(max_voffset_, other.max_voffset_);
- swap(length_of_64_bit_region_, other.length_of_64_bit_region_);
- swap(nested, other.nested);
- swap(finished, other.finished);
- swap(minalign_, other.minalign_);
- swap(force_defaults_, other.force_defaults_);
- swap(dedup_vtables_, other.dedup_vtables_);
- swap(string_pool, other.string_pool);
- }
-
- ~FlatBufferBuilderImpl() {
- if (string_pool) delete string_pool;
- }
-
- void Reset() {
- Clear(); // clear builder state
- buf_.reset(); // deallocate buffer
- }
-
- /// @brief Reset all the state in this FlatBufferBuilder so it can be reused
- /// to construct another buffer.
- void Clear() {
- ClearOffsets();
- buf_.clear();
- nested = false;
- finished = false;
- minalign_ = 1;
- length_of_64_bit_region_ = 0;
- if (string_pool) string_pool->clear();
- }
-
- /// @brief The current size of the serialized buffer, counting from the end.
- /// @return Returns an `SizeT` with the current size of the buffer.
- SizeT GetSize() const { return buf_.size(); }
-
- /// @brief The current size of the serialized buffer relative to the end of
- /// the 32-bit region.
- /// @return Returns an `uoffset_t` with the current size of the buffer.
- template
- // Only enable this method for the 64-bit builder, as only that builder is
- // concerned with the 32/64-bit boundary, and should be the one to bare any
- // run time costs.
- typename std::enable_if::type GetSizeRelative32BitRegion()
- const {
- //[32-bit region][64-bit region]
- // [XXXXXXXXXXXXXXXXXXX] GetSize()
- // [YYYYYYYYYYYYY] length_of_64_bit_region_
- // [ZZZZ] return size
- return static_cast(GetSize() - length_of_64_bit_region_);
- }
-
- template
- // Only enable this method for the 32-bit builder.
- typename std::enable_if::type GetSizeRelative32BitRegion()
- const {
- return static_cast(GetSize());
- }
-
- /// @brief Get the serialized buffer (after you call `Finish()`).
- /// @return Returns an `uint8_t` pointer to the FlatBuffer data inside the
- /// buffer.
- uint8_t *GetBufferPointer() const {
- Finished();
- return buf_.data();
- }
-
- /// @brief Get the serialized buffer (after you call `Finish()`) as a span.
- /// @return Returns a constructed flatbuffers::span that is a view over the
- /// FlatBuffer data inside the buffer.
- flatbuffers::span GetBufferSpan() const {
- Finished();
- return flatbuffers::span(buf_.data(), buf_.size());
- }
-
- /// @brief Get a pointer to an unfinished buffer.
- /// @return Returns a `uint8_t` pointer to the unfinished buffer.
- uint8_t *GetCurrentBufferPointer() const { return buf_.data(); }
-
- /// @brief Get the released pointer to the serialized buffer.
- /// @warning Do NOT attempt to use this FlatBufferBuilder afterwards!
- /// @return A `FlatBuffer` that owns the buffer and its allocator and
- /// behaves similar to a `unique_ptr` with a deleter.
- FLATBUFFERS_ATTRIBUTE([[deprecated("use Release() instead")]])
- DetachedBuffer ReleaseBufferPointer() {
- Finished();
- return buf_.release();
- }
-
- /// @brief Get the released DetachedBuffer.
- /// @return A `DetachedBuffer` that owns the buffer and its allocator.
- DetachedBuffer Release() {
- Finished();
- return buf_.release();
- }
-
- /// @brief Get the released pointer to the serialized buffer.
- /// @param size The size of the memory block containing
- /// the serialized `FlatBuffer`.
- /// @param offset The offset from the released pointer where the finished
- /// `FlatBuffer` starts.
- /// @return A raw pointer to the start of the memory block containing
- /// the serialized `FlatBuffer`.
- /// @remark If the allocator is owned, it gets deleted when the destructor is
- /// called..
- uint8_t *ReleaseRaw(size_t &size, size_t &offset) {
- Finished();
- return buf_.release_raw(size, offset);
- }
-
- /// @brief get the minimum alignment this buffer needs to be accessed
- /// properly. This is only known once all elements have been written (after
- /// you call Finish()). You can use this information if you need to embed
- /// a FlatBuffer in some other buffer, such that you can later read it
- /// without first having to copy it into its own buffer.
- size_t GetBufferMinAlignment() const {
- Finished();
- return minalign_;
- }
-
- /// @cond FLATBUFFERS_INTERNAL
- void Finished() const {
- // If you get this assert, you're attempting to get access a buffer
- // which hasn't been finished yet. Be sure to call
- // FlatBufferBuilder::Finish with your root table.
- // If you really need to access an unfinished buffer, call
- // GetCurrentBufferPointer instead.
- FLATBUFFERS_ASSERT(finished);
- }
- /// @endcond
-
- /// @brief In order to save space, fields that are set to their default value
- /// don't get serialized into the buffer.
- /// @param[in] fd When set to `true`, always serializes default values that
- /// are set. Optional fields which are not set explicitly, will still not be
- /// serialized.
- void ForceDefaults(bool fd) { force_defaults_ = fd; }
-
- /// @brief By default vtables are deduped in order to save space.
- /// @param[in] dedup When set to `true`, dedup vtables.
- void DedupVtables(bool dedup) { dedup_vtables_ = dedup; }
-
- /// @cond FLATBUFFERS_INTERNAL
- void Pad(size_t num_bytes) { buf_.fill(num_bytes); }
-
- void TrackMinAlign(size_t elem_size) {
- if (elem_size > minalign_) minalign_ = elem_size;
- }
-
- void Align(size_t elem_size) {
- TrackMinAlign(elem_size);
- buf_.fill(PaddingBytes(buf_.size(), elem_size));
- }
-
- void PushFlatBuffer(const uint8_t *bytes, size_t size) {
- PushBytes(bytes, size);
- finished = true;
- }
-
- void PushBytes(const uint8_t *bytes, size_t size) { buf_.push(bytes, size); }
-
- void PopBytes(size_t amount) { buf_.pop(amount); }
-
- template void AssertScalarT() {
- // The code assumes power of 2 sizes and endian-swap-ability.
- static_assert(flatbuffers::is_scalar::value, "T must be a scalar type");
- }
-
- // Write a single aligned scalar to the buffer
- template
- ReturnT PushElement(T element) {
- AssertScalarT();
- Align(sizeof(T));
- buf_.push_small(EndianScalar(element));
- return CalculateOffset();
- }
-
- template class OffsetT = Offset>
- uoffset_t PushElement(OffsetT off) {
- // Special case for offsets: see ReferTo below.
- return PushElement(ReferTo(off.o));
- }
-
- // When writing fields, we track where they are, so we can create correct
- // vtables later.
- void TrackField(voffset_t field, uoffset_t off) {
- FieldLoc fl = { off, field };
- buf_.scratch_push_small(fl);
- num_field_loc++;
- if (field > max_voffset_) { max_voffset_ = field; }
- }
-
- // Like PushElement, but additionally tracks the field this represents.
- template void AddElement(voffset_t field, T e, T def) {
- // We don't serialize values equal to the default.
- if (IsTheSameAs(e, def) && !force_defaults_) return;
- TrackField(field, PushElement(e));
- }
-
- template void AddElement(voffset_t field, T e) {
- TrackField(field, PushElement(e));
- }
-
- template void AddOffset(voffset_t field, Offset off) {
- if (off.IsNull()) return; // Don't store.
- AddElement(field, ReferTo(off.o), static_cast(0));
- }
-
- template void AddOffset(voffset_t field, Offset64 off) {
- if (off.IsNull()) return; // Don't store.
- AddElement(field, ReferTo(off.o), static_cast(0));
- }
-
- template void AddStruct(voffset_t field, const T *structptr) {
- if (!structptr) return; // Default, don't store.
- Align(AlignOf());
- buf_.push_small(*structptr);
- TrackField(field, CalculateOffset());
- }
-
- void AddStructOffset(voffset_t field, uoffset_t off) {
- TrackField(field, off);
- }
-
- // Offsets initially are relative to the end of the buffer (downwards).
- // This function converts them to be relative to the current location
- // in the buffer (when stored here), pointing upwards.
- uoffset_t ReferTo(uoffset_t off) {
- // Align to ensure GetSizeRelative32BitRegion() below is correct.
- Align(sizeof(uoffset_t));
- // 32-bit offsets are relative to the tail of the 32-bit region of the
- // buffer. For most cases (without 64-bit entities) this is equivalent to
- // size of the whole buffer (e.g. GetSize())
- return ReferTo(off, GetSizeRelative32BitRegion());
- }
-
- uoffset64_t ReferTo(uoffset64_t off) {
- // Align to ensure GetSize() below is correct.
- Align(sizeof(uoffset64_t));
- // 64-bit offsets are relative to tail of the whole buffer
- return ReferTo(off, GetSize());
- }
-
- template T ReferTo(const T off, const T2 size) {
- FLATBUFFERS_ASSERT(off && off <= size);
- return size - off + static_cast(sizeof(T));
- }
-
- template T ReferTo(const T off, const T size) {
- FLATBUFFERS_ASSERT(off && off <= size);
- return size - off + static_cast(sizeof(T));
- }
-
- void NotNested() {
- // If you hit this, you're trying to construct a Table/Vector/String
- // during the construction of its parent table (between the MyTableBuilder
- // and table.Finish().
- // Move the creation of these sub-objects to above the MyTableBuilder to
- // not get this assert.
- // Ignoring this assert may appear to work in simple cases, but the reason
- // it is here is that storing objects in-line may cause vtable offsets
- // to not fit anymore. It also leads to vtable duplication.
- FLATBUFFERS_ASSERT(!nested);
- // If you hit this, fields were added outside the scope of a table.
- FLATBUFFERS_ASSERT(!num_field_loc);
- }
-
- // From generated code (or from the parser), we call StartTable/EndTable
- // with a sequence of AddElement calls in between.
- uoffset_t StartTable() {
- NotNested();
- nested = true;
- return GetSizeRelative32BitRegion();
- }
-
- // This finishes one serialized object by generating the vtable if it's a
- // table, comparing it against existing vtables, and writing the
- // resulting vtable offset.
- uoffset_t EndTable(uoffset_t start) {
- // If you get this assert, a corresponding StartTable wasn't called.
- FLATBUFFERS_ASSERT(nested);
- // Write the vtable offset, which is the start of any Table.
- // We fill its value later.
- // This is relative to the end of the 32-bit region.
- const uoffset_t vtable_offset_loc =
- static_cast(PushElement(0));
- // Write a vtable, which consists entirely of voffset_t elements.
- // It starts with the number of offsets, followed by a type id, followed
- // by the offsets themselves. In reverse:
- // Include space for the last offset and ensure empty tables have a
- // minimum size.
- max_voffset_ =
- (std::max)(static_cast(max_voffset_ + sizeof(voffset_t)),
- FieldIndexToOffset(0));
- buf_.fill_big(max_voffset_);
- const uoffset_t table_object_size = vtable_offset_loc - start;
- // Vtable use 16bit offsets.
- FLATBUFFERS_ASSERT(table_object_size < 0x10000);
- WriteScalar(buf_.data() + sizeof(voffset_t),
- static_cast(table_object_size));
- WriteScalar(buf_.data(), max_voffset_);
- // Write the offsets into the table
- for (auto it = buf_.scratch_end() - num_field_loc * sizeof(FieldLoc);
- it < buf_.scratch_end(); it += sizeof(FieldLoc)) {
- auto field_location = reinterpret_cast(it);
- const voffset_t pos =
- static_cast(vtable_offset_loc - field_location->off);
- // If this asserts, it means you've set a field twice.
- FLATBUFFERS_ASSERT(
- !ReadScalar(buf_.data() + field_location->id));
- WriteScalar(buf_.data() + field_location->id, pos);
- }
- ClearOffsets();
- auto vt1 = reinterpret_cast(buf_.data());
- auto vt1_size = ReadScalar(vt1);
- auto vt_use = GetSizeRelative32BitRegion();
- // See if we already have generated a vtable with this exact same
- // layout before. If so, make it point to the old one, remove this one.
- if (dedup_vtables_) {
- for (auto it = buf_.scratch_data(); it < buf_.scratch_end();
- it += sizeof(uoffset_t)) {
- auto vt_offset_ptr = reinterpret_cast(it);
- auto vt2 = reinterpret_cast(buf_.data_at(*vt_offset_ptr));
- auto vt2_size = ReadScalar