This is so empowering I am dancing in my room as we speak.
First, I’d like to confirm that I can reproduce the results: capture works on my Zenfone, but also the BGR vs RGB viewfinder and flash issues.
Second, I feel as this is such a great example, like a tutorial that has an “exercise left to the reader” in the end. Now we know how it should be done. And I’d like the challenge the community to organize around how to proceed with this proof of concept that is so hopeful.
(This is all assuming that mal is overloaded with other porting/volte/appsupport/ffmpeg wherever his wizardry is required and would not have time to continue. If you @mal have input on this plan shoot!)
Preamble to the proposal:
We need to understand that the droidmediacamera2.cpp is effectively linking other implementations for the functions and methods present in droidmediacamera.cpp. That is, one is compiled and linked in, or the other, never both. Right now, the criteria is “Android 7 or newer”.
We need to somehow understand where/when these methods/functions are called, what they did in v1, and what shall they do in v2, and be smart about overlapping efforts & discussions around this. Like, learn together, somehow.
The needs I think need to be covered:
- Having a clear diff between the new v2 and old v1 API implementation - so that getting around is easy. (also I notice everything involving v2 api is more verbose).
- Having a “masterV2” branch that can absorb the different contributions for the “camera2” branch that are community reviewed
- Having a clear set of tasks and comments/pointers contributed to them, in addition to code. We need to be more of us “fresh” people to focus on different things to be able to fill the gap of one experienced would contain in its entirety.
So my proposal (and please chime in to disagree or improve) of another guy with little time on his hands:
- we could set up a fork into an organization (e.g. sailfishos-open but any)
- have a copy of the original droidmedia master and a working branch with
droidmediacamera.cpp implemented as V2 that would clearly diff (reordered methods etc) against the V1 API) - this is all temporarily to get a sense of progress
- have as many branches as needed having requests against the above working branch
- have some plan board or issue tracker that can host discussions around the current and future issues, quirks, or video implementation tasks and even stubbing unfinished work etc.
- Some docs around how to contribute/build if you’re not a porter (I think @dcaliste started some with his bold foray into this, I am guilty to having already access to hadk env…)
All this could technically be in the sailfishos/droidmedia repo, if we could get Boards/Issues/Wiki access I guess.
Again, this is first stab, top of my head, way to organize some “swarming” around this already great work, If you feel I overreact (I may) or have other ideas, shoot.
(I’m gonna add a quirk to remove edge detection on zenfone regardless so there’s that
)