cudacodec::VideoReader add colour format selection functionality #3198
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.
As mentioned in #3195 the frames returned from cudacodec::VideoReader::nextFrame/retrieve are always BGRA with a zero alpha channel. Regardless of the reason for this (likely memory optimization for previous generation gpu's and/or current OpenCV CUDA functions), GPU memory is at a premium and it seems like a reasonable idea to allow this to be changed to BGR and Gray if desired by the user.
It may impact performance of some CUDA routines if a BGR frame is used instead of BGRA but that would be up to the user to experiment with.
The default is left as BGRA for compatibility and the test has been updated.
Pull Request Readiness Checklist
See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
Patch to opencv_extra has the same branch name.