Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Investigate using a component to perform RGB conversion #32
The video splitter component does not support RGB format. This means that since release 0.8, video-port-based raw captures can only be in YUV format. This is probably quite a niche requirement, but it's not good to remove functionality and hence we should strive to re-introduce this capability before a 1.0 release.
This is turning out to be an interesting one. It appears the resizer can be used to perform certain RGB conversions. The BGR24 format that's usually used for RGB output isn't supported, but BGRA and RGBA are. Given that it's relatively trivial to convert either of these into RGB (just slice out the unused alpha component and re-order bytes if required), this should form a basis for a fix. In addition, we should offer RGBA and BGRA as additional raw formats (simply because it's trivial).
Furthermore, this shouldn't simply be a fix for raw video-port captures - it should probably form the basis for all raw captures. In other words, deprecate the raw_format property, make the format of the capture method the raw format and push all the work into the encoders module so we can stop messing around with the camera's own ports (which prevent things like recording+raw captures from working). This'll also simplify raw RGB captures from:
camera.raw_format = 'rgb' camera.capture('foo.data', format='raw')