Skip to content

Commit 322e88e

Browse files
committed
Fix min_frames_per_camera bug in multi-camera frame selection
- Fixed duplicate frame detection by tracking frame names instead of tuples - Ensured camera_frame_counts is updated in second pass - Properly enforces minimum frames per camera requirement
1 parent 8540d9a commit 322e88e

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

custom_components/llmvision/media_handlers.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ def _select_frames_with_minimums(self, camera_frames, max_frames, min_frames_per
176176
all_frames.sort(key=lambda x: x[2])
177177

178178
selected_frames = []
179+
selected_frame_names = set() # Track selected frames by name
179180
camera_frame_counts = {camera: 0 for camera in camera_frames.keys()}
180181

181182
# First pass: try to satisfy minimum frames per camera
@@ -185,6 +186,7 @@ def _select_frames_with_minimums(self, camera_frames, max_frames, min_frames_per
185186

186187
if camera_frame_counts[camera_entity] < min_frames_per_camera:
187188
selected_frames.append((frame_name, frame_data, ssim_score))
189+
selected_frame_names.add(frame_name)
188190
camera_frame_counts[camera_entity] += 1
189191

190192
# Second pass: fill remaining slots with best frames
@@ -193,10 +195,12 @@ def _select_frames_with_minimums(self, camera_frames, max_frames, min_frames_per
193195
break
194196

195197
# Skip if already selected
196-
if (frame_name, frame_data, ssim_score) in selected_frames:
198+
if frame_name in selected_frame_names:
197199
continue
198200

199201
selected_frames.append((frame_name, frame_data, ssim_score))
202+
selected_frame_names.add(frame_name)
203+
camera_frame_counts[camera_entity] += 1
200204

201205
return selected_frames, camera_frame_counts
202206

tests/integration/test_structured_output_integration.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -597,7 +597,7 @@ async def test_localai_structured_output(self):
597597
CONF_IP_ADDRESS: localai_host,
598598
CONF_PORT: localai_port,
599599
CONF_HTTPS: False,
600-
CONF_DEFAULT_MODEL: "opengvlab_internvl3_5-8b"
600+
CONF_DEFAULT_MODEL: "llava-1.5"
601601
}
602602

603603
# Monkey patch to use real session

0 commit comments

Comments
 (0)