# Plan Updates Summary ## Changes Made ### 1. Added Force Transcode Flag ✅ **Location**: `TDARR_MERGE_PLAN.md` - Phase 2, Section 2.1 Added `--force-transcode` flag to the AV1 advanced features section: ```bash --force-transcode # Force transcoding even if file is already in target codec ``` **Status**: - ✅ Added to plan - ⏳ Implementation pending (will be added in Phase 2) - ✅ Code structure ready (ForceTranscode field exists in AV1AdvancedParams) ### 2. Codec Extensibility Architecture ✅ **New Document**: `CODEC_EXTENSIBILITY.md` Created comprehensive documentation on how to add future codecs (x264, VP9, etc.): - **Architecture Pattern**: Each codec follows the same modular pattern - **Step-by-Step Guide**: How to add a new codec - **Example Code**: x264 implementation example - **Integration Points**: How codecs integrate into main pipeline **Key Points**: - Each codec gets its own file (e.g., `encoding/x264.go`) - Codec-specific parameter structs (e.g., `X264AdvancedParams`) - Shared infrastructure (audio, streams) works for all codecs - Main pipeline uses codec detection to dispatch **Updated Files**: - `TDARR_MERGE_PLAN.md` - Added extensibility notes - `CODEC_EXTENSIBILITY.md` - New comprehensive guide ### 3. Updated Code Organization ✅ **Location**: `TDARR_MERGE_PLAN.md` - Code Organization section Updated to show future codec files: ``` encoding/ ├── av1.go # AV1 encoding logic ├── x264.go # x264 encoding logic (future) ├── vp9.go # VP9 encoding logic (future) ``` Added extensibility pattern documentation. ### 4. Updated Implementation Priority ✅ **Location**: `TDARR_MERGE_PLAN.md` - Implementation Priority Added force transcode flag to high priority: ``` 5. ⏳ Force transcode flag (`--force-transcode`) ``` ### 5. Code Cleanup ✅ **Location**: `main.go` Removed hardcoded `ForceTranscode = true` and added comment: ```go // ForceTranscode will be set via CLI flag (--force-transcode) when implemented // Default: false (skip files already in target codec) ``` ## Architecture Benefits ### Modularity - Each codec is self-contained - Easy to add new codecs without refactoring ### Consistency - All codecs follow the same pattern - Shared infrastructure (audio, streams) ### Future-Proof - Ready for x264, VP9, HEVC, etc. - Clear path for implementation ## Next Steps 1. **Implement `--force-transcode` flag** (Phase 2) - Add flag parsing in `main.go` - Pass to `AV1AdvancedParams` - Test with existing AV1 files 2. **Future Codec Implementation** (When needed) - Follow pattern in `CODEC_EXTENSIBILITY.md` - Create codec-specific file - Integrate into main pipeline ## Files Modified - ✅ `TDARR_MERGE_PLAN.md` - Updated with force transcode flag and extensibility notes - ✅ `CODEC_EXTENSIBILITY.md` - New comprehensive guide - ✅ `main.go` - Removed hardcoded force transcode, added comment ## Files Created - ✅ `CODEC_EXTENSIBILITY.md` - Complete codec extensibility guide