Week 1 : Coding Begins
It's May 25. Community bonding is over. Coding starts today.
The last few days of bonding were about wrapping loose ends, got two MRs merged: warn before deleting tracks and snap playhead to snap points. A few others are still open and in review, but the coding period waits for no one.
Now for the actual project.
This week I'm starting on the Curves Widget , the first of three widgets I'm building this summer for Kdenlive.
The current CurveParamWidget has a channel dropdown (R, G, B, All), but switching channels wipes the previous curve. There's no memory per channel. So if you carefully tune the red channel and switch to green, your red curve is gone. You'd have to apply the effect multiple times, once per channel which is exactly the kind of friction the proposal is trying to eliminate.
The fix is per-channel tabs, each storing its own curve independently. All channels serialize together into avfilter.curves format:
r='0/0 0.5/0.7 1/1' g='0/0 1/1' b='0/0 1/1'
Backward compatible with existing projects, no data loss when switching tabs.
This week's goal is foundation work: understand the full CurveParamWidget architecture, design the tab skeleton, and get the per-channel data structure in place. No full functionality yet, get the structure right first, then build on it.
I'll post every week on Sundays. Daily progress goes to JB on Matrix.
Let's go.