Commit History

  1. migrate layer schema from float seconds to integer frame numbers⁠ Running

    vclmax2 +1: Claude Sonnet 4.6
    852b4bb
  2. fix frame timing: use round() to match JS Math.round for frame range calc

    vclmax2
    9aec4ee
  3. fix audio: drop PyAV audio mux, use ffmpeg stream copy from source

    vclmax2
    cfc5a23
  4. reduce ZeroGPU duration to 10s

    vclmax2
    bd0978f
  5. revert to 7.2s build (pre-multiplied cache, pinned memory, threaded audio)

    vclmax2
    12387ea
  6. optimize: fp16, torch.compile blend, double-buffered decode, batch=64, torch.no_grad

    vclmax2
    cd68686
  7. optimize: pre-multiplied static composite cache, parallel layer render, pinned memory, threaded audio

    vclmax2
    66a6eb6
  8. optimize: static UV cache, threaded encoder, batch=32, animated warm-start

    vclmax2
    b117472
  9. full GPU pipeline: batched Newton solve + grid_sample on CUDA, precomputed pixel grid

    vclmax2
    19c2773
  10. match JS bilinear quad warp (lerpQuad) instead of perspective transform

    vclmax2
    e66c1d6
  11. replace kornia with cv2.warpPerspective — exact same logic as original render_editor_video.py

    vclmax2
    9db7a97
  12. fix text wrap: use font.getbbox() to match original render_editor_video.py exactly

    vclmax2
    6daf007
  13. fix homography: use get_perspective_transform(src,dst) + align_corners=True to match OpenCV exactly

    vclmax2
    11c92e8
  14. Fix warp_perspective homography direction: dst→src for backward warp

    vclmax2
    c3fdb4a
  15. Fix homography direction: src=layer corners, dst=frame corners

    vclmax2
    4245b07
  16. Fix layer tensors not on DEVICE inside GPU fn, fix src_pts off-by-one

    vclmax2
    ab345c6
  17. Fix frame normalization: divide by 255 after torchcodec decode

    vclmax2
    ac2f33c
  18. libx264 ultrafast encode, remove PyNvVideoCodec

    vclmax2
    cc1992d
  19. Add PyNvVideoCodec GPU encoder with libx264 fallback

    vclmax2
    127f4b1
  20. Fix audio muxing: use codec name instead of unsupported template= kwarg

    vclmax2
    6b69b9d
  21. Replace decord with torchcodec for native CUDA frame decode

    vclmax2
    ebe8ab8
  22. Batched homography per layer + h264_nvenc encoder with libx264 fallback

    vclmax2
    3215f22
  23. Add application file

    vclmax2
    b3b0e62
  24. add frame-compositor space

    Verified signature
    3ae109d
  25. initial commit

    Verified signature
    840b7cf