tabbed frametype filtering
This commit is contained in:
50
FRAME_REFERENCE_FIX_SUMMARY.md
Normal file
50
FRAME_REFERENCE_FIX_SUMMARY.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# Frame Reference Fix Summary
|
||||
|
||||
## Issue Resolution
|
||||
Fixed timing outlier detection to properly track frame references within subflows.
|
||||
|
||||
## Root Causes Identified and Fixed:
|
||||
|
||||
### 1. Race Conditions in Parallel Processing ✅ FIXED
|
||||
- **Issue**: Multi-threaded background processing caused frame references to get mixed up
|
||||
- **Symptom**: Frame 2002 showing previous frame 298 instead of 1998
|
||||
- **Fix**: Changed BackgroundAnalyzer from `num_threads=4` to `num_threads=1`
|
||||
- **Files**: `background_analyzer.py`, `app_v2.py`
|
||||
|
||||
### 2. Frame Classification Splitting Related Frames ✅ FIXED
|
||||
- **Issue**: Similar CH10 frames were being classified into different frame types
|
||||
- **Symptom**: Frame 486 showing previous frame 471 instead of 485 (frame 485 was CH10-Multi-Source)
|
||||
- **Fix**: Modified frame classification to group similar CH10 timing frames as CH10-Data
|
||||
- **Files**: `flow_manager.py`
|
||||
|
||||
### 3. Extended Timing Frames Excluded from Data Stream ✅ FIXED
|
||||
- **Issue**: Extended Timing frames were classified separately despite having same ~100ms timing
|
||||
- **Symptom**: Frame 476 showing previous frame 471 instead of 475 (frame 475 was CH10-Extended)
|
||||
- **Fix**: Removed separate CH10-Extended classification, grouped with CH10-Data
|
||||
- **Files**: `flow_manager.py`
|
||||
|
||||
## Technical Implementation:
|
||||
|
||||
### Enhanced Outlier Tracking
|
||||
- Added `enhanced_outlier_details: List[Tuple[int, int, float]]` storing (frame_num, prev_frame_num, delta_t)
|
||||
- Updated outlier detection to populate enhanced details with correct frame references
|
||||
- Modified TUI to use frame-type outliers instead of flow-level outliers
|
||||
|
||||
### Single-Threaded Processing
|
||||
- BackgroundAnalyzer now defaults to `num_threads=1` to prevent race conditions
|
||||
- TUI updated to use single-threaded analyzer
|
||||
- Maintains deterministic frame processing order
|
||||
|
||||
### Unified Frame Classification
|
||||
- CH10 frames with similar timing patterns now grouped as CH10-Data
|
||||
- Only frames with significantly different timing kept separate (ACTTS, etc.)
|
||||
- Ensures consecutive frames in same subflow are properly tracked
|
||||
|
||||
## Final Results:
|
||||
- **Frame 476**: Now correctly shows "from 475" instead of "from 471"
|
||||
- **Frame 486**: No longer an outlier (timing is normal in sequence)
|
||||
- **Frame 957**: No longer an outlier (timing is normal in sequence)
|
||||
- **Only 2 legitimate outliers remain**: Frames 1582 and 1640 with ~1100ms delays (23.2σ)
|
||||
|
||||
## Verification:
|
||||
All frame reference validation tests pass with 🎉 **ALL FRAME REFERENCES ARE CORRECT!**
|
||||
Reference in New Issue
Block a user