Skip to content

Commit 92b74f0

Browse files
authored
fix(visualize): Handle no screenshots (#763)
* handle no screenshot in visualize.py / plotting.py * black/flake8
1 parent 220c607 commit 92b74f0

File tree

3 files changed

+36
-24
lines changed

3 files changed

+36
-24
lines changed

openadapt/plotting.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,12 @@ def display_event(
249249
recording = action_event.recording
250250
window_event = action_event.window_event
251251
screenshot = action_event.screenshot
252+
253+
if not screenshot:
254+
logger.warning(
255+
f"{screenshot=} for {action_event=} {window_event=} {recording=}"
256+
)
257+
return None
252258
if diff and screenshot.diff:
253259
image = screenshot.diff.convert("RGBA")
254260
else:

openadapt/record.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,6 @@ def write_events(
328328
started_counter: multiprocessing.Value,
329329
pre_callback: Callable[[float], dict] | None = None,
330330
post_callback: Callable[[dict], None] | None = None,
331-
event_type_modifier: str = "",
332331
) -> None:
333332
"""Write events of a specific type to the db using the provided write function.
334333
@@ -345,7 +344,6 @@ def write_events(
345344
timestamp as only argument, returns a state dict.
346345
post_callback: Optional function to call after main loop. Takes state dict as
347346
only argument, returns None.
348-
event_type_modifier: Optional string to differentiate identical event_types
349347
"""
350348
utils.set_start_time(recording.timestamp)
351349

@@ -368,7 +366,7 @@ def write_events(
368366
total_events = num_events.value
369367
progress = tqdm(
370368
total=total_events,
371-
desc=f"Writing {event_type}{event_type_modifier} events...",
369+
desc=f"Writing {event_type} events...",
372370
unit="event",
373371
colour="green",
374372
dynamic_ncols=True,

openadapt/visualize.py

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -313,28 +313,36 @@ def main(
313313
logger.warning(exc)
314314
continue
315315

316-
if diff_video:
317-
frame_image = frames[idx]
318-
diff_image = compute_diff(
319-
frame_image, action_event.screenshot.image
320-
)
321-
322-
# TODO: rename
323-
diff = frame_image
324-
mask = diff_image
316+
if image:
317+
if diff_video:
318+
frame_image = frames[idx]
319+
diff_image = compute_diff(
320+
frame_image, action_event.screenshot.image
321+
)
322+
323+
# TODO: rename
324+
diff = frame_image
325+
mask = diff_image
326+
else:
327+
diff = display_event(action_event, diff=True)
328+
mask = action_event.screenshot.diff_mask
329+
330+
if SCRUB:
331+
image = scrub.scrub_image(image)
332+
diff = scrub.scrub_image(diff)
333+
mask = scrub.scrub_image(mask)
334+
335+
image_utf8 = image2utf8(image)
336+
diff_utf8 = image2utf8(diff)
337+
mask_utf8 = image2utf8(mask)
338+
width, height = image.size
325339
else:
326-
diff = display_event(action_event, diff=True)
327-
mask = action_event.screenshot.diff_mask
328-
329-
if SCRUB:
330-
image = scrub.scrub_image(image)
331-
diff = scrub.scrub_image(diff)
332-
mask = scrub.scrub_image(mask)
333-
334-
image_utf8 = image2utf8(image)
335-
diff_utf8 = image2utf8(diff)
336-
mask_utf8 = image2utf8(mask)
337-
width, height = image.size
340+
# TODO: display a placeholder image
341+
image_utf8 = ""
342+
diff_utf8 = ""
343+
mask_utf8 = ""
344+
width = 0
345+
height = 1
338346

339347
action_event_dict = row2dict(action_event)
340348
window_event_dict = row2dict(action_event.window_event)

0 commit comments

Comments
 (0)