fix(#463): 直通模式调速失效 - final_duration未考虑调速导致减速场景被截断 #625
Reference in New Issue
Block a user
Delete Branch "fix/463-pass-through-speed"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题
直通模式(pass_through)下调速不生效,减速场景视频被截断。
根因
_render_pass_through中final_duration用原始effective_duration计算,没有考虑调速(setpts/atempo)导致的实际输出时长变化:-t仍用原始时长截断 → 后半段丢失-t值大于实际时长 → 看起来正常但逻辑错误修复
改用
_clip_adjusted_duration(clip)计算调速后的实际时长作为final_duration基准,与video_duration取较小值。测试
新增3个单元测试:
test_pass_through_speed_up_correct_duration- 加速场景时长正确(5s)test_pass_through_slow_down_correct_duration- 减速场景时长正确(20s,不被截断)test_pass_through_speed_with_video_duration_cap- video_duration截断逻辑正确108个测试全绿。
根因:_render_pass_through 中 final_duration 用原始 effective_duration 计算, 没有考虑调速(setpts/atempo)导致的实际输出时长变化。 减速场景(speed<1)下视频被 -t 错误截断,加速场景因截断值大于实际 时长而表现正常但逻辑错误。 修复:改用 _clip_adjusted_duration(clip) 计算调速后的实际时长作为 final_duration 的基准,与 video_duration 取较小值。 新增3个单元测试覆盖:加速时长、减速时长、video_duration截断。代码审查结果 - PR #625
⚠️ 问题(0个需要修改)
无
💡 建议(0个可选)
无
✅ 格式检查通过 | ✅ 逻辑审查需修改 | ✅ 性能
🤖 由 AI 代码审查机器人自动生成 | 2026-07-20 11:33:45 | 模型:
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #625 已关闭或合并,对应的预览环境已被清理。