CARVIEW |
Select Language
HTTP/2 302
date: Sat, 26 Jul 2025 08:06:45 GMT
content-length: 0
location: https://github.com/opencv/opencv/pull/27408
server-timing: nginx;desc="NGINX";dur=1.318559,glb;desc="GLB";dur=101.058578
x-voltron-version: a2eb102
vary: Accept-Encoding, Accept, X-Requested-With
server: github.com
x-frame-options: DENY
strict-transport-security: max-age=31536000; includeSubDomains; preload
set-cookie: _gh_sess=85pvJkLqbWz1d3Bcm6hFkYts7Jk7rN0tXGD9tje0whFLszOBj%2B%2FrKbtHTKury7ozkKffJEPRvY%2BvBaGEFaTheDGcaGY3vArGjZpaGrdLIFweVGef7Vhz1O2mZaqPzD2%2BlNNxK87RMblQklvcVL7FzwqLn84rh63vBAxZBlrrPuvSbALYncfiG0xJ9RLGCZ%2BVjTcqa33%2F4wt7T9gAWizHNON4wv0h9Klq97%2FFCj39HHEevuTp5wpGBmI%2BscDfRjRxzxxRqro1asOM3nvCWp8%2BXg%3D%3D--kLuTe%2BKPAnCQf4gD--zIZaEeIMEFTAJqyYuWRiXw%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1638411176.1753517205; Path=/; Domain=github.com; Expires=Sun, 26 Jul 2026 08:06:45 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Sun, 26 Jul 2026 08:06:45 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: AF76:2992:3250AC:4424FA:68848C94
HTTP/2 200
date: Sat, 26 Jul 2025 08:06:46 GMT
content-type: text/html; charset=utf-8
cache-control: no-cache
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
referrer-policy: no-referrer-when-downgrade
server-timing: pull_request_layout-fragment;desc="pull_request_layout fragment";dur=314.614704,conversation_content-fragment;desc="conversation_content fragment";dur=540.576863,conversation_sidebar-fragment;desc="conversation_sidebar fragment";dur=262.620743,nginx;desc="NGINX";dur=1.021792,glb;desc="GLB";dur=100.614832
strict-transport-security: max-age=31536000; includeSubdomains; preload
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
x-content-type-options: nosniff
x-frame-options: deny
x-voltron-version: a2eb102
x-xss-protection: 0
server: github.com
content-encoding: gzip
accept-ranges: bytes
x-github-request-id: AF76:2992:3250E3:44253A:68848C95
Deprecate copyData Parameter in UMat Construction from std::vector and Always Copy Data by KAVYANSHTYAGI · Pull Request #27408 · opencv/opencv · GitHub
asmorkalov
added
the
cleanup
Code cleanup (e.g, drop legacy C-API, legacy unmaintained code)
label
Jun 9, 2025
Skip to content
Navigation Menu
{{ message }}
-
-
Notifications
You must be signed in to change notification settings - Fork 56.2k
Deprecate copyData Parameter in UMat Construction from std::vector and Always Copy Data #27408
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
asmorkalov
reviewed
Jun 6, 2025
asmorkalov
approved these changes
Jun 9, 2025
Merged
Merged
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
You can’t perform that action at this time.
Overview
This PR simplifies and modernizes the construction of cv::UMat from std::vector by removing the legacy copyData parameter, always copying the data, and ensuring clearer, safer semantics. This brings UMat in line with current best practices and paves the way for the upcoming OpenCV 5.x series.
What Changed?
Header Documentation Update
Removed confusing or obsolete documentation about copyData and clarified the behavior:
Implementation Update
In UMat::UMat(const std::vector<_Tp>& vec, bool copyData), the copyData parameter:
The constructor always copies the data from the input vector, regardless of the value of copyData.
All branching logic around copyData has been removed. Any code for "not copying" was not implemented and is now dropped.
This guarantees data safety and predictable behavior.
Test Added
A new test construct_from_vector in test_umat_from_vector.cpp:
Why This Change?
Safety and Predictability
Always copying avoids dangling references and hard-to-debug lifetime issues with stack/heap-allocated vectors.
Removes an undocumented, unimplemented branch (copyData=false).
Backward Compatibility
The constructor signature remains for now, but the copyData parameter is marked as deprecated and ignored.
Codebases that pass the parameter will still compile and run as before (but always copy).
API Clarity and Maintenance
Documentation now matches the real implementation.
No misleading expectations about zero-copy.
Code is cleaner, future-proof, and easier to maintain.
Preparation for OpenCV 5.0
The copyData parameter is deprecated and will be removed in OpenCV 5.x.
Prepares users and downstream libraries for the planned change.
How This Helps OpenCV Users and Developers
Refer:#27409