Releases: Tencent/libpag
v4.3.43
主要修改内容:
(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
主要修改内容:
(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
主要修改内容:
(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
主要修改内容:
(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
主要修改内容:
(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)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)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
v4.2.20
主要修改内容:
(1)修复 Android 平台部分场景 PAGImageView 使用 crash 问题;
(2)修复企业版视频连续导出 crash 问题
Main revisions:
(1)Fix the crash issue when using PAGImageView in some scenarios on the Android platform;
(2)Fix the issue of continuous export crash of the Enterprise Edition videos
v4.2.17
主要修改内容:
(1)版本新增
- Android 端新增 harfbuzz 版本(带 -harfbuzz 后缀),用于支持多字节 emoji 表情的显示。
- 新增企业版 SDK(带 -enterprise 后缀),包含音频播放、素材加密,占位图一键替换视频,导出视频文件等高阶功能。
(2)AE 特性:
- 色相/饱和度(Hue/Saturation)
- 亮度和对比度(Brightness & Contrast)
- 3D 图层 (3D Layer)
(3)接口新增:
- 新增 PAGImageView 类:针对 UI 场景设计的专用播放组件,基于图片解码器+磁盘缓存模式,能够避免 OpenGL 跟 UI 视图桥接的额外开销,大幅降低内存和 CPU 占用。
- 新增 PAGDecoder 类:支持通过 PAGFile 或 组合的 PAGComposition 创建,将 PAG 当做标准图片解码器使用,快捷获取某一帧的渲染内容。
- PAGSurface 类:新增 copyPixelsTo 接口,支持将 PAGSurface 渲染的像素内容拷贝至业务方给定的内存地址。
(4)能力优化:
- 文本渲染支持含有多个 unicode 的 emoji 表情 (Android 侧需要使用 harfbuzz 版本)。
- DisplacementMap 现已支持所有图层类型,不限制用于 BMP 预合成图层。
- PAGView 播放首帧渲染优化,避免出现首帧跳帧播放。
- 优化存在多个图层交错引用同一个 BMP 预合成情况下的播放卡顿问题。
Main revisions:
(1)New version
- A new harfbuzz version (with -harfbuzz suffix) is added to Android to support the display of multi-byte emoji expressions.
- A new enterprise version SDK (with -enterprise suffix) is added, including audio playback, material encryption, one-click replacement of video with placeholder image, export of video files and other advanced functions.
(2)AE features:
- Hue/Saturation
- Brightness & Contrast
- 3D Layer
(3) New interface:
- Added PAGImageView class: a dedicated playback component designed for UI scenes. 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: 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.
(4) Capability optimization:
- Text rendering supports emoji expressions containing multiple unicodes (the Android side requires the harfbuzz version).
- DisplacementMap now supports all layer types and is not restricted to BMP precomposed layers.
- The rendering of the first frame of PAGView playback is optimized to avoid skipping the first frame of playback.
- Optimize the playback lag issue when multiple layers interleave reference to the same BMP pre-synthesis.
v4.1.49
主要修改内容:
(1)修复 PAGView makeSnapShot 接口部分 pag 文件获取异常问题;
(2)修复 Android 平台部分机型 ffavc 加载失败情况;
(3)修复 Android 平台部分场景 PAGView addListener crash 问题
Main revisions:
(1)Fix the abnormal issue in obtaining some pag files in the PAGView makeSnapShot interface;
(2)Fix the loading failure of ffavc on some models of the Android platform;
(3)Fix PAGView addListener crash issue in some scenarios on Android platform