265c5c9503
Раньше detbox рисовал только рамку. Теперь на каждое active событие отображает "label NN%" в полупрозрачной pill цвета рамки над верхним краем bbox. include/cuframes_composer/overlay.h: - cfc_overlay_detbox_config_t: + font_path, font_size, label_bg_alpha - cfc_overlay_detbox_upsert: + float score parameter src/overlay.c: - detbox_entry_t: + score, rendered_text (кеш), text_atlas/w/h/pitch - detbox_data_t: + ft_library, ft_face, font_path_copy, font_size_px - cfc_overlay_create_detection_boxes: opens FT face если font_path задан - cfc_overlay_destroy: free cached atlas'ы + FT face/library - detbox_rebuild_label_atlas: format "label NN%" → FT render → VRAM upload (reuse text_measure / text_render из CFC_OVERLAY_TEXT) - upsert: вызывает rebuild при изменении label/score (кеш по rendered_text) - draw_detection_boxes: snap расширен под text_atlas; после border рисует pill bg (fill_nv12 цветом рамки) + текст (blit_rgba_nv12, белый) - mutex hold всю draw — atlas чтение должно быть atomic против upsert src/frigate_mqtt.c: - parse after.score → передаём в upsert (Frigate & yoloworld envelope совместимы: оба содержат score) examples/grid_record.c: - 4 frigate detbox: font_path=/fonts/DejaVuSans-Bold.ttf, font_size=16 - 4 yw detbox: то же — magenta pill с белым текстом Live: cfc-grid healthy 25 fps, image gx/cuframes-composer:0.11b-step4 deployed. Видно на TV при первом detection event. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>