Skip to content

[#47-C] 时间线播放引擎(连续解码 + cpal 音频 + A/V 同步) #53

Closed

Description

@appergb

属于 #47。依赖 #47-A / #47-B。工程量最大。

范围

  • src-tauri 播放循环、crates/opentake-media 连续解码 + 预览降档、cpal 音频输出、A/V 时钟同步、精确 seek。

验收

  • 点播放:画面逐帧推进 + 音频同步播放;暂停/继续/seek 正确。
  • A/V 漂移在阈值内;掉帧时优先保音频。
  • 到片尾自动停;区间/循环播放(可选)。
  • cargo fmt --all + clippy 通过。

认领:@appergb。

Activity

  1. self-assigned this
    on Jun 22, 2026
  2. appergb commented on Jun 22, 2026

    @appergb
    OwnerAuthor

    架构已定(子 Agent 设计工作流)

    HYBRID:即时止血(PR #62 已合并)→ 正式引擎 = 专用渲染线程 + 每片段常驻 ffmpeg 流式解码→有界环形缓冲 + 复用 GPU 缓冲 + JPEG + 回环 MJPEG <img> + cpal 音频主时钟;暂停/scrub 仍用现有 composite_frame(零回归)。

    我认领(本人,时间线车道)

    • 流式解码:opentake-media/decode/stream.rs(单片段单 ffmpeg 连续 rawvideo→ring,seek=kill+respawn)
    • Compositor 缓冲复用:render_to_rgba_reused(不动 composite_frame)
    • PlaybackEngine 渲染线程骨架:src-tauri/src/playback.rs(独占 Rc/Compositor/TextureCache + 传输指令通道 + ring-reading resolver + playback_start/stop)
    • 播放头时钟:引擎 tick 事件 → setActiveFrame,退役 rAF 估计

    可认领(队友)

  3. added 4 commits that reference this issue on Jun 24, 2026
  4. appergb commented on Jul 4, 2026

    @appergb
    OwnerAuthor

    全链路完成:PR #170(流式解码→wgpu 合成→MJPEG 传输 + cpal 主时钟,含 #63/#64/#160 立体声/#162)+ PR #189(默认开启 + 运行时回退安全网)。架构与真机验收清单:docs/architecture/PLAYBACK-ENGINE.md。真机视觉验收为后续第一优先事项,见 docs/architecture/HANDOFF-2026-07.md §3.1;流式音频分块解码在 #160 跟踪。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:media媒体引擎(FFmpeg/wgpu)area:rust-coreRust 核心 cratebatch-2第二批:引擎/UI/Agent/进阶enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions