Can I get less tearing with a wiser fps choice or something like this?
No, because the buffers that are chosen to be transferred over PTP happen to be overwritten by new data at the same time, no matter how many FPS you're aiming at.
Attached is an experiment, with this change:
Index: platform/sx260hs/lib.c
===================================================================
--- platform/sx260hs/lib.c (revision 5463)
+++ platform/sx260hs/lib.c (working copy)
@@ -76,10 +76,10 @@
void *vid_get_viewport_live_fb() {
// appears to use 4 buffers in video mode or recording
if (camera_info.state.mode_video || is_video_recording()) {
- return viewport_buffers[(active_viewport_buffer-1)&3];
+ return viewport_buffers[(active_viewport_buffer-2)&3];
}
// 8 buffers in still mode
- return viewport_buffers[(active_viewport_buffer-1)&7];
+ return viewport_buffers[(active_viewport_buffer-2)&7];
}
int vid_get_viewport_width() {