I'm not sure if this should go in this thread, or the
digic 6 thread@Ant me asked (in PM)
When do you plan to add into CHDK support for Digic6 pixel format?
We realy need it:
https://chdk.setepontos.com/index.php?topic=12532.msg129205#msg129205
Short answer:
I'm supposed to have plans?!
Longer answer:
There are a number of interrelated issues, which will require someone to spend a significant amount of time. At the moment, my time for CHDK is limited and tends to be in short chunks. I will continue working on bits and pieces as I have time, but I don't have a specific plan.
srsa_4c's OP in this thread, and reply in the thread Ant linked (quoted below) cover some of the main issues
One of the difficulties is that parts of the CHDK code still expect a one byte/pixel overlay. Some routines (maybe zebra, edge overlay) save and restore parts of the overlay during their activity - that is currently impossible on D6 (the overlay data not only has a different pixel format, it also has opacity information in a separate buffer). And of course, the drawing routines need to be optimized for greater speed. All this would have to be solved before "fixing" zebra and edge overlay.
IMO, the stuff that needs to be done falls in a few general categories
1) Do the reverse engineering to find what we need digic 6
We have most of the buffers of interest, but we still need to figure out how to refresh the display without the busy hack. We also don't know how to get the current buffer for the viewports.
It's possible that further investigation would let us use the RGBA buffer rather than split alpha/YUV. Further work on the Zico/Mzrm/GPU (see
https://chdk.setepontos.com/index.php?topic=11316.80) may open up alternative approaches.
2) Resolve how to handle different display types in CHDK code, especially in modules
We could use the THUMB_FW ifdef in modules, but this will break if different D6 cameras have different requirements.
We could build separate modules for different display types, either with ifdefs in the same source, or entirely separate files.
We could (maybe) implement generic methods in the core so modules don't need anything display specific, but this would likely impact performance and code size.
This is a "boring" code organization issue, but as the person who ends up trying to keep several hundred CHDK ports usable and maintainable, it matters to me.
3) Implement the actual code to do what we need on d6
E.g. getting the right values out of the different YUV formats, drawing the zebra/histogram/edge, saving/restoring buffers or changing the code to not need it.