Skip to content

Tags: kaus-io/vap

Tags

1.0.4

Toggle 1.0.4's commit message
feat(player,decode): 引入 VapWarmSession 热会话与默认 warm-standby 生命周期

- 解码器:新增 VapFrameDecoder.open(source, config, ...) 重载,跳过
  composition 已解析时重复 parseMp4;引入 VapWarmSession 接口。
- Compose:VapComposition 新增 warmSurfaceSession / warmCanvasSession /
  withWarmSession;animateVapCompositionAsState /
  animateVapSurfaceSessionAsState 移除 releaseDecodeSessionOnPause 参数,
  暂停默认保持会话热状态(双 effect 模式:syncPlaying 独立、open/loop 不
  随 isPlaying 重启),并以 composition 为 remember key + isSessionOpened
  跟踪位保证重启时正确重新 open。
- Benchmark:去掉 warmPause / EXTRA_WARM_PAUSE;新增
  rememberWarmComposition expect/actual。
- README / README.zh.md:模块表、依赖、Surface 模式、热会话用法、
  默认生命周期说明。

1.0.3

Toggle 1.0.3's commit message
feat: 降低多路播放开销并收紧 Compose/发布路径

合并共享 vsync、MediaCodec 异步与减 eglMakeCurrent;Compose 侧减少 Snapshot 写并 suspend 化会话释放;发布/文档版本改由 GitHub Release tag 注入。

1.0.2

Toggle 1.0.2's commit message
feat(decode): 对齐 vsync 呈现并收敛播放/加载生命周期

Present
- 新增 VapVsyncClock,WindowSurface 在 Choreographer 节拍上 present,去掉 sleep 节流。
- 支持目标帧率门控;不可见时真正停表(playing && visible)。

会话与 Surface
- 未播放释放 decode session,standby 只保留 composition。
- Surface detach / discardPendingPresent 串行化,避免对已死 Surface swap。
- GL 路径改用协程封装;删除冲突的 androidMain VapSurfaceAnimation.kt。

Compose 加载
- loadVapCompositionAsync 使用 runInterruptible;reload 时不再先清空为 null。

1.0.1

Toggle 1.0.1's commit message
feat(player): 新增 Surface 渲染后端,与 HardwareBuffer 并存

渲染管线
- vap-decode:新增 VapGlOutputMode,将 VapOffscreenGlPipeline /
  VapSharedGlRuntime 改造为支持 HardwareBuffer / WindowSurface 两条
  输出路径;VapFrameDecoder 暴露 attach/detachOutputSurface 与
  awaitFramePresented。
- vap-compose:新增 VapRenderBackend CompositionLocal、VapPresentMode
  expect/actual,以及基于 AndroidEmbeddedExternalSurface 的
  VapSurfaceRenderHost(JVM 端降级到 Canvas)。VapAnimationState
  在节点离屏时停止 draw generation。旧 VapSurfaceAnimation 标记
  @deprecated,推荐改用 CompositionLocalProvider 包住 VapAnimation。
- vap-compose:新增同步入口 loadVapComposition(spec),
  rememberVapComposition 与 README 同步引用。

Demo 与工程
- example-vap-shared 基于 Navigation 3 重构,拆分为 HomeHero /
  SettingPager / SettingPagerSurface / HannaBall / WindowExpand /
  TouchWake / InstanceStress 等场景,通过 StringResource 提供 i18n。
- example-vap-tool 更名为 app-vap-tool(settings.gradle.kts);
  .gitignore 清理 .tmp-tencent-vap。

1.0.0

Toggle 1.0.0's commit message
build: 启用 maven-publish 对所有 publication 签名

Central Portal 校验 1.0.0 时对 12 个 component 报 'Missing signature'(.jar/.aar/.pom/.module/-sources.jar/-javadoc.jar/kotlin-tooling-metadata.json)。CI 已通过 signingInMemoryKey* 系列环境变量传 GPG 凭据,仅取消注释即可让 vanniktech 的 signAllPublications() 接管签名。