Fix saccades LV + distorsion pellicule + draw_capture plein ecran
- Supprime sleep(0.3) apres chaque capture_preview() reussi (limitait le live view a ~3fps, cause principale des saccades) - Fixe crash silencieux thread camera : _nb_retry non initialise pour errs 1-4 (NameError) -> restructure en for/else propre - Pellicule live view : _pfit() au lieu de transform.scale() -> plus de distorsion - draw_capture() : mode pellicule affiché au lieu de fullscreen black Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -828,9 +828,7 @@ class PB:
|
||||
if self.cam: self.cam.exit()
|
||||
except: pass
|
||||
self.cam = None; errs = 0
|
||||
_nb_retry = 0
|
||||
while _nb_retry < 10:
|
||||
_nb_retry += 1
|
||||
for _nb_retry in range(10):
|
||||
time.sleep(3)
|
||||
_usb_reset_done()
|
||||
try:
|
||||
@@ -839,14 +837,13 @@ class PB:
|
||||
print("Caméra reconnectée automatiquement")
|
||||
break
|
||||
except Exception as re:
|
||||
print(f"Reconnexion échouée ({_nb_retry}): {re}")
|
||||
print(f"Reconnexion échouée ({_nb_retry+1}): {re}")
|
||||
else:
|
||||
# 10 tentatives échouées → bascule en simulation
|
||||
self.sim = True
|
||||
print("Caméra introuvable → mode simulation")
|
||||
errs = 0
|
||||
else:
|
||||
time.sleep(0.3)
|
||||
time.sleep(0.1)
|
||||
else:
|
||||
time.sleep(0.05)
|
||||
|
||||
@@ -1249,7 +1246,7 @@ class PB:
|
||||
else:
|
||||
with self.flock:
|
||||
if self.frame:
|
||||
lv = pygame.transform.scale(self.frame, (fw, fh))
|
||||
lv = _pfit(self.frame, fw, fh)
|
||||
self.scr.blit(lv, (fx, fy))
|
||||
else:
|
||||
pygame.draw.rect(self.scr, (25, 25, 25), (fx, fy, fw, fh))
|
||||
@@ -1354,6 +1351,10 @@ class PB:
|
||||
self.scr.blit(info,(W//2-info.get_width()//2,H-90))
|
||||
|
||||
def draw_capture(self):
|
||||
if self._is_pell():
|
||||
self._draw_pellicule(show_live=False)
|
||||
self._overlay(70)
|
||||
else:
|
||||
self._lv(); self._overlay(90)
|
||||
s=self._txt("Prise de vue...","md"); self._c(s,H//2-s.get_height()//2)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user