Files
gwutilz/gwencoder/docs/phases/PLAN_UPDATES.md
2026-03-23 15:48:34 -07:00

3.0 KiB
Executable File

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:

--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:

// 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