Libpag Versions Save

The official rendering library for PAG (Portable Animated Graphics) files that renders After Effects animations natively across multiple platforms.

v4.3.51

1 month ago

主要修改内容: (1)修复形状缓存异常问题; (2)修复 iOS 平台 PAGImageView 中使用 setPathAsync 时渲染失败的问题; (3)修改 iOS 平台 PAGImageView init 初始化渲染异常问题; (4)修改 Android 平台带 Mask 的文本渲染 crash 问题

Main revisions: (1)Fixed the issue with shape cache abnormalities. (2)Fixed the rendering failure issue in PAGImageView on the iOS platform when using setPathAsync. (3)Modified the initialization rendering issue in PAGImageView on the iOS platform. (4)Fixed the crash issue with text rendering with masks on the Android platform.

v4.3.47

4 months ago

主要修改内容: (1)稳定性提升

  • 修复 GPU 资源异步线程释放可能导致的 crash
  • 修复 App 退出时 TaskGroup::exit() 引起的 ANR

(2)性能优化

  • 延迟所有矢量图形的光栅化过程,最大限度并发执行优化矢量渲染性能

Main revisions: (1)Stability improvement

  • Fix potential crashes when releasing GPU resources in multiple threads.
  • Fix the ANR caused by TaskGroup::exit() when the app is exiting

(2)Performance optimization

  • Optimize performance by deferring the rasterization of paths and executing them concurrently.

v4.3.45

4 months ago

主要修改内容: (1)修复 iOS 平台 PAGImageView 部分场景无法显示内容或闪屏的问题 (2)修复 iOS 平台 PAGView 子线程使用可能导致的 crash 问题 (3)修复移动端 PAGView 设置 sync 时可能出现的死锁问题

Main revisions: (1)Fixed the issue that PAGImageView on the iOS platform could not display content or had screen flickering in some scenarios. (2)Fixed the potential crash issue when using PAGView on a sub-thread on the iOS platform. (3)Fixed the potential deadlock issue when setting 'sync' on PAGView on mobile platforms.

v4.3.43

4 months ago

主要修改内容: (1)新增支持

  • Android 平台增加 x86_64 架构,增加车机系统的架构支持

(2)包体优化

  • 相对于 4.3.33 版本,Web 平台减少 zip 后大小 65 KB(wasm), iOS 减少 zip 后大小 50 KB(arm64)

(3)稳定性提升

  • 修复移动端 PAGView 切换文件播放且循环次数重新设置无法播放问题
  • web 平台 BMP 预合成素材 seek 播放异常修复
  • 修复微信小程序 createCanvas2D 错误

Main revisions: (1)New capabilities

  • Added x86_64 architecture for the Android platform, which could be used in the vehicle system.

(2)Size optimization

  • In comparison to version 4.3.33, the library's zipped size has been decreased by 65 KB (wasm) on the web platform and 50 KB (arm64) on the iOS platform.

(3)Stability improvement

  • Fixed an issue that PAGView on mobile devices couldn't play when switching files and resetting loop count.
  • Fixed seek playback issue with BMP pre-composited assets on the web platform.
  • Fixed an error with createCanvas2D in the WeChat Mini Program.

v4.3.33

6 months ago

主要修改内容: (1)AE 特性新增支持

  • 图层样式-描边
  • 图层样式-外发光

(2)能力新增

  • 支持加载网络路径的 pag 文件
  • pag 文件中的 BMP 预合成支持渲染缓存至本地,进一步提升渲染性能
  • pag 文件导出的时候支持设置可编辑图层, 终端支持通过 getEditableIndices 获取到可编辑图层

(3)版本新增

  • 社区版新增发布 macOS 版本,支持通过 cocoapods、Carthage、Swift Package Manager 接入
  • iOS 平台新增支持 Carthage、Swift Package Manager 接入

(4)稳定性提升

  • 升级 WebP 修复漏洞 CVE-2023-4863
  • 修复 iOS 平台 XCFramework 本地直接引用时模拟器报错

Main revisions:

(1) New AE features

  • Layer Style - Stroke
  • Layer Style - Outer Glow

(2) New capabilities

  • Support loading pag file from network paths.
  • BMP compositions in PAG files now has the option to enable disk cache, which further improves rendering performance.
  • Artists now can specify editable layers in PAGExporter directly. The SDK also can get the editable layers by getEditableIndices() API.

(3) New versions

  • The community version adds the macOS version, which supports access through Cocoapods, Carthage, and Swift Package Manager.
  • iOS platform adds support for Carthage and Swift Package Manager.

(4) Stability improvement

  • Upgrade WebP to fix vulnerability CVE-2023-4863.
  • Fix the problem that iOS platform XCFramework reports an error when referencing locally in the simulator.

v4.3.3

10 months ago

主要修改内容: (1)版本新增

  • 社区版新增发布 macOS 版本,支持通过 cocoapods、Carthage、Swift Package Manager 接入
  • iOS 平台新增支持 Carthage、Swift Package Manager 接入

(2)AE 特性新增支持

  • 图层样式-描边
  • 图层样式-外发光

(3)新增能力

  • 支持加载网络路径的 pag 文件
  • pag 文件中的 BMP 预合成支持渲染缓存至本地,进一步提升渲染性能
  • pag 文件导出的时候支持设置可编辑图层, 终端支持通过 getEditableIndices 获取到可编辑图层

(4)问题修复

  • 修复 iOS 平台 XCFramework 单独引用时模拟器报错

Main revisions: (1) New versions

  • The Community Edition has newly released a macOS version, which supports access through cocoapods, Carthage, and Swift Package Manager
  • IOS platform adds support for Carthage and Swift Package Manager access

(2) Added support for AE features

  • Layer Style - Stroke
  • Layer Style - Outer Glow

(3)New capabilities

  • Support for loading PAG files from network paths
  • The BMP compositions in the PAG file supports rendering to the local cache, further improving rendering performance
  • The PAG file supports setting editable layers when exporting, and the terminal supports getting editable layers through getEditableIndices

(4) Issue fixes

  • Fix the error reported by the simulator when XCFramework is referenced separately on the iOS platform

v4.2.100

10 months ago

主要修改内容: (1)Android 平台问题修复

  • 修复多线程操作时 PAGImageView 渲染 crash
  • 修复 PAGImageView 重置资源渲染异常
  • 修复 PAGViewListener 监听多线程 crash
  • 修复 PAGView JNI 方法加载 crash

(2)iOS 平台问题修复

  • 修复 iOS 平台同时集成百度地图 SDK 时 crash 问题
  • 修复 iOS 平台 XCFramework 运行模拟器 crash 问题

(3)macOS 平台

  • 修复 macOS 平台内存泄漏问题

Main revisions: (1)The fixes of Android platform issues

  • Fix PAGImageView rendering crash during multi-threaded operation
  • Fix PAGImageView reset resource rendering exception
  • Fix PAGViewListener listening multi-thread crash
  • Fix PAGView JNI method loading crash

(2)The fixes of iOS platform issues

  • Fix the crash issues when the iOS platform integrates Baidu Map SDK at the same time
  • Fix the crash issues of XCFramework running simulator on iOS platform

(3) macOS platform

  • Fix memory leak issue on macOS platform

v4.2.88

11 months ago

主要修改内容: (1)Android 平台问题修复

  • 修复 Android 5 和 Android 6 系统 onAnimationEnd 无法接收回调问题;
  • 修复 Android 平台频繁调用 play 方法渲染异常问题
  • 修复 SDK 混淆问题
  • 修复部分场景 java.util.ConcurrentModificationException crash
  • 完善 PAGImageView 及 PAGView,修复部分场景渲染异常问题
  • 修复 CallObjectMethod crash
  • 增加导出 C++ 层 pag 相关符号,修复 C++ API 无法使用问题

(2)iOS 平台问题修复

  • 修复进入后台 PAGImageView 某些情况下画面不显示的问题

(3)微信小程序

  • 增加对没有Unicode属性转义环境的支持

Main revisions: (1)The fixes of Android platform issues

  • Fix the issue of onAnimationEnd not being able to receive callbacks in Android 5 and Android 6 systems;
  • Fix the abnormal rendering issue of frequently calling the play method on the Android platform
  • Fix SDK obfuscation issue
  • Fix java.util.ConcurrentModificationException crash in some scenarios
  • Improve PAGImageView and PAGView, fix abnormal rendering issue of some scenarios
  • Fix CallObjectMethod crash
  • Add the export of C++ layer PAG related symbols, and fix the problem that the C++ API cannot be used

(2)The fixes of iOS platform issues

  • Fix the problem that the screen does not display in some cases when entering the background PAGImageView

(3)WeChat mini program

  • Add support for escaping environments without Unicode properties

v4.2.80

1 year ago

主要修改内容: (1)PAGImageView 中磁盘缓存下沉至 C++ 层 (2)Web 和 QT 平台上新增支持创建离屏 PAGSurface (3)Web 平台问题修复:

  • 修复 Safari 16.4 以下版本缺少全局变量 OffscreenCanvas 导致的类型检查错误
  • 添加 isInstanceOf 方法来替换 instanceOf,防止 Web 平台未定义的全局类的问题
  • 在内置的 iOS 16.4 AppleWebKit 浏览器中为 OffscreenCanvas 添加回退
  • 修复 WebMask 纹理类型上传错误导致微信闪退
  • 更新 Safari 15 的 ImageBitmap 兼容性检查
  • Fix globalThis compatibility issue for older browsers, e.g. iOS 12.1 Safari
  • 修复 Safari 和 iOS 微信浏览器的用户代理检测

(4)iOS 平台问题修复

  • 修复 PAGImageView 通过路径加载渲染异常
  • 修复 PAGImageView 替换占位图渲染时 crash 问题
  • 修复 PAGImageView 在 iOS 14 之前无法渲染问题
  • 修复 repeatcount 设置为非无限循环播放,播放过程中进入后台后出现的无法再出触发 play 问题
  • 修复 PAGImageView 频繁调用 play 方法导致的卡在某一帧的的问题

(5)Android 平台问题修复

  • 修复 PAGImageView 渲染播放异常问题

Main revisions: (1)The disk cache in PAGImageView sinks to the C++ layer (2)Added support for creating off-screen PAGSurface on the Web and QT platforms (3)The fixes of Web platform issues:

  • Fix the type checking error caused by the missing of global variable OffscreenCanvas in versions below Safari 16.4
  • Add isInstanceOf method to replace instanceOf to prevent problems with undefined global classes on the web platform
  • Add fallback for OffscreenCanvas in built-in iOS 16.4 AppleWebKit browser
  • Fix the error in uploading WebMask texture type that causes WeChat to crash
  • Updated ImageBitmap compatibility check for Safari 15
  • Fix globalThis compatibility issue for older browsers, e.g. iOS 12.1 Safari
  • Fix user agent detection for Safari and iOS WeChat browsers

(4)The fixes of iOS platform issues

  • Fix PAGImageView loading rendering exception through path
  • Fix the crash issue when PAGImageView replaces placeholder image rendering
  • Fix the issue that PAGImageView cannot render before iOS 14
  • Fixed the issue where repeatcount is set to non-infinite loop playback and the play cannot be triggered after entering the background during playback.
  • Fix the issue of PAGImageView getting stuck in a certain frame due to frequent calls to the play method.

(5)The fixes of Android platform issues

  • Fix the abnormal problem of PAGImageView rendering and playback

v4.2.55

1 year ago

主要修改内容: (1)AE 特性新增支持

  • 3D 图层 (3D Layer)
  • 色相/饱和度(Hue/Saturation)
  • 亮度和对比度(Brightness & Contrast)

(2)接口新增

  • 新增 PAGImageView 类:针对 UI 场景设计的专用播放组件,基于图片解码器+磁盘缓存模式,能够避免 OpenGL 跟 UI 视图桥接的额外开销,大幅降低内存和 CPU 占用
  • 新增 PAGDecoder 类:支持通过 PAGFile 或 组合的 PAGComposition 创建,将 PAG 当做标准图片解码器使用,快捷获取某一帧的渲染内容
  • PAGSurface 类:新增 copyPixelsTo 接口,支持将 PAGSurface 渲染的像素内容拷贝至业务方给定的内存地址

(3)能力新增

  • 占位图替换视频,视频文件可以像普通图片一样一键替换到指定的占位图上,快速实现视频模板能力
  • 导出视频文件,替换占位图或修改文本之后的 PAG 动效可以快速导出成视频文件
  • 音频播放,内置音频播放能力,包含 PAG 素材自带的音频以及用户替换的视频包含的音频轨道
  • 素材加密播放,支持通过桌面 PAGViewer 工具加密后的 PAG 素材进行授权播放

(4)桌面端配套工具

  • macOS 平台导出插件和桌面预览工具全面支持苹果 M1 芯片架构
  • 桌面端预览工具支持素材加密以及批量添加水印的能力

(5)能力优化

  • 文本渲染支持含有多个 unicode 的 emoji 表情 (Android 端需要使用带 harfbuzz 后缀的版本)
  • DisplacementMap 现已支持所有图层类型,不限制用于 BMP 预合成图层
  • PAGView 首帧播放渲染优化,避免出现首帧跳帧的情况
  • 优化存在多个图层交错引用同一个 BMP 预合成情况下的播放卡顿问题

(6)问题修复:

  • iOS 平台前后台切换偶现 crash 修复
  • PAGImageView 反馈问题修复

Main revisions: (1)New support for AE features

  • 3D Layer
  • Hue/Saturation
  • Brightness & Contrast

(2)New interface added

  • Added PAGImageView class: a dedicated playback component designed for UI scenarios. Based on the image decoder + disk cache mode, it can avoid the additional overhead of bridging OpenGL and UI views, and significantly reduce memory and CPU usage.
  • Added PAGDecoder class: it supports creation through PAGFile or PAGComposition combined, using PAG as a standard image decoder to quickly obtain the rendering content of a certain frame
  • PAGSurface class: added copyPixelsTo interface to support copying the pixel content rendered by PAGSurface to the memory address given by the business party

(3)New capabilities

  • Placeholder image replaces video. The video file can be replaced on the specified placeholder image with one click just like an ordinary image, quickly realizing the video template capability.
  • Export video files. The PAG animation after replacing the placeholder image or modifying the text can be quickly exported into a video file.
  • Audio playback. The built-in audio playback capability includes the audio that comes with the PAG material and the audio track contained in the user-replaced video
  • Encrypted material playback capability. It supports authorized playback of PAG materials encrypted through the desktop PAGViewer tool

(4) Desktop supporting tools

  • macOS platform export plug-in and desktop preview tool fully support Apple M1 chip architecture
  • The desktop preview tool supports material encryption and the ability to add watermarks in batches

(5) Capability optimization

  • Text rendering supports emoji expressions containing multiple unicodes (Android needs to use the version with harfbuzz suffix)
  • DisplacementMap now supports all layer types and is not restricted to BMP composition layers
  • PAGView first frame playback rendering optimization to avoid frame skipping in the first frame
  • Optimize the playback lag problem when multiple layers interleave and reference the same BMP composition.

(6) Problem fix:

  • Fix for occasional crashes when switching between front and back on the iOS platform
  • Fix the PAGImageView feedback issues