This is where I'm going to get ideas out of my head to hopefully be a little more organized. There's just too many things to do, it's hard to figure out where to start. Some of these are just temporary changes for now (to get features like focus peaking / silent pics at least functional but not complete). For the most part, things will be working in live view but nothings guaranteed for video mode yet.
The short list
- Finish finding VRAM values for all video/stills modes through examining dumps whilst different settings in the camera are selected
- Find property for recording mode, this should fix small things like the amount of recordable time left on the SD card
- Test HDMI cable and test dumps, find relevant VRAM buffers, etc
- To be contined...
Disable silent pics / focus peaking in movie modeEdit
- PROP_VIDEO_MODE not confirmed yet, not sure if present on 500d or not (can't see it changing in prop_spy).
- Haven't confirmed which buffers work in which recording modes. Just need time to test/confirm.
- Possible temporary fix:
if(shooting_mode == SHOOTMODE_MOVIE) bmp_printf( FONT_MED, 0, 450, "Movie Mode Not Supported Yet" );
Use LV buffer for focus peaking / silent pics in LV modeEdit
- Focus peaking is offset when one of the HD buffers (0x46000080, 0x48000080, 0x06000080, 0x08000080) are used (it's offset vertically, it's too low. aspect ratio is different from LV buffers).
- HD buffers mentioned above are only present in recording mode (never present in LV or play mode).
(This is techincally done as of now, but not released yet. It will be done for v1.6 release).
Find LV buffer(s) for x5 and x10 zoom mdoes in Lv for hi-res silent picsEdit
- Edit Zebra.c, lines 853-936:
dump_big_seg(0, "B:/0.bin"); dump_big_seg(0, "B:/0_1.bin"); dump_big_seg(1, "B:/1.bin"); dump_big_seg(1, "B:/1_1.bin"); dump_big_seg(4, "B:/4.bin"); dump_big_seg(4, "B:/4_1.bin");
- Should give you the dumps you need to follow this guide: 550d VRAM Step-by-step-example
Try to find more HD buffersEdit
A few known sizes. The goal is to try to find the biggest buffer possible to use for silent pics (for higher resolution pictures). So far the biggest is 1576x1024 but it's only present in 1080p video mode, unfortunately.
- 720x424, 1440 pitch - LV buffers (0x41B07800 / 0x43738800 / 0x43B48800)
- 928x616, 1856 pitch - HD buffers (0x46000080, 0x48000080, 0x06000080, 0x08000080). Present in recording modes but not LV, not confirmed while recording.
- 1576x1024, 3152 pitch - present in 1080p video mode (not confirmed while recording yet)
Make motion detection fasterEdit
It seems slow now, maybe the buffer it's using is just updating at a slower fps? I haven't looked into it yet.
- Figure out what buffer is being used.
- Maybe using the DMA pointer will be faster?
- Some threshold setting somewhere that can be changed? (haven't looked yet).
- Files that are probably worth looking in: shoot.c & zebra.c???
- It only displays when the menu is up (while in LV of course).
- Files to look through?? shoot.c & lens.c
- Check what events are happening with event spy
- Look at events 0x1000094 & 0x1000075 again, return 0 or 1? (can't remember how it is now).
- Try to find a way to block canon from metering again, i think that's what those 2 events are related to.
- Files to check: menu.c & gui.c (possibly).
Fix slit-scan silent picsEdit
- shoot.c line #855
- Use DMA pointer / get_yuv422_vram() from zebra.c?
- Not sure about CACHEABLE/UNCACHEABLE, as it's being used at line 855 ^
- line 38 in bmp.h
- check/verify struct bmp_vram_info in vram.h.
- Files to check: bmp.c, vram.h, bmp.h
Verify "recording" variableEdit