Skip to content

Releases: Tencent/libpag

v4.2.100

12 Jul 10:51
Compare
Choose a tag to compare

主要修改内容:
(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

30 May 03:31
Compare
Choose a tag to compare

主要修改内容:
(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

12 May 06:58
Compare
Choose a tag to compare

主要修改内容:
(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

12 Apr 12:11
Compare
Choose a tag to compare

主要修改内容:
(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

27 Mar 06:19
Compare
Choose a tag to compare
v4.2.20 Pre-release
Pre-release

主要修改内容:
(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

24 Mar 06:46
Compare
Choose a tag to compare
v4.2.17 Pre-release
Pre-release

主要修改内容:
(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

22 Feb 03:12
Compare
Choose a tag to compare

主要修改内容:
(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

v4.1.43

02 Feb 07:49
Compare
Choose a tag to compare

主要修改内容:
(1)Android 平台当 Animator 时长伸缩关闭后,新增调用 PAGView play 方法直接触发 onAnimationEnd 回调
(2)Android 平台 PAGView 中 removeUpdateListener 操作更换位置,避免出现内存泄漏
(3)修复 iOS 平台的内存泄漏问题
(4)iOS 平台 PAGView 中 listener 的相关处理确保线程安全,避免出现 crash
(5)修复 Web 平台 FeatureMask 渲染异常问题
(6)Web 平台 onAnimationStart 触发完善

Main modifications:
(1)On the Android platform, after the Animator duration scaling is closed, the PAGView play method is newly called to directly trigger the onAnimationEnd callback.
(2) The removeUpdateListener operation in PAGView on the Android platform changes the position to avoid memory leaks.
(3) Fix memory leak problem on iOS platform
(4)Related processing of listener in PAGView on iOS platform ensures thread safety and avoids crashes
(5)Fix the abnormal rendering problem of FeatureMask on the Web platform
(6) Web platform onAnimationStart trigger improvement

v4.1.41

17 Jan 11:08
Compare
Choose a tag to compare

主要修改内容:
(1)PAGView 渲染优化,确保首帧渲染,避免出现初始播放跳帧问题;
(2)修复 Android 平台 vivo V1901A 渲染异常问题;
(3)修复 Android 平台内存不足时文件解码失败引起的 crash;
(4)修复 Android 平台内存不足时线程创建 crash 问题

Main revisions:
(1)PAGView rendering optimization ensures the rendering of the first frame and avoids the problem of frame skipping during initial playback;
(2)Fix the abnormal rendering problem of vivo V1901A on Android platform;
(3) Fix the crash caused by file decoding failure when the Android platform has insufficient memory;
(4)Fix the thread creation crash problem when the Android platform has insufficient memory

v4.1.29

24 Nov 04:56
Compare
Choose a tag to compare

4.1 正式版本发布,相对于 PAG 4.0 版本,主要修改内容:
(1)平台支持: 新增支持微信小程序(完整版本)
(2)AE 特性新增支持:

  • 图层样式-渐变叠加、蒙版羽化和不透明度、亮度轨道遮罩/亮度轨道反转遮罩
  • 文本路径选项:路径、反转路径、垂直于路径、强制对齐、首字边距、末字边距

(3)API 更新:

  • PAGText API 层面增加支持 leading 和 tracking 修改;
  • PAGView 增加 makeSnapshot 接口,支持在 PAGView 层面获取单帧渲染数据

(4)性能优化:“图层样式-投影” 使用新的模糊算法,相比之前,性能提升约 30%
(5)制品库变更:

  • iOS 端移除 avmv7 架构支持
  • 从 4.1 版本开始,版本号位数由之前的 4 位修改为 3 位

(6)问题修复

  • 修复文本渲染模糊问题
  • 修复 Android 平台外部字体注册获取失败 crash 问题;
  • 修复 Android 平台 ManagerFragment 获取失败引起的 crash 问题
  • 修复 Android 平台部分特效场景使用 crash 问题
  • 修复内存申请失败引起的 pag 文件解码 crash 问题
  • 修复 Android 平台 glBufferData 使用过程中的 OOM 问题

The official version 4.1 is released. Compared with the PAG 4.0 version, the main revisions are:
(1)Platform support: Added support for WeChat Mini Program (full version)
(2)New support for AE features:

  • Layer Styles - Gradient Overlay, Mask Feather and Opacity, Brightness Track Mask/Brightness Track Reverse Mask
  • Text path options: Path, Reverse Path, Perpendicular to Path, Forced Alignment, First Margin, Last Margin

(3)API update:

  • PAGText API level adds support for leading and tracking modifications;
  • PAGView adds a makeSnapshot interface to support obtaining single-frame rendering data at the PAGView level.

(4)Performance optimization: "Layer Style - Projection" uses a new blur algorithm, which improves performance by about 30% compared to before.
(5) Prebuilt library changes:

  • Remove avmv7 architecture support on iOS
  • Starting from version 4.1, the number of digits in the version number has been changed from the previous 4 digits to 3 digits.

(6) Issue fixes

  • Fix text rendering blur issue
  • Fix the crash issue of failed external font registration and acquisition on Android platform;
  • Fix the crash issue caused by failure to obtain ManagerFragment on Android platform
  • Fix the crash issue when using some special effects scenarios on the Android platform
  • Fix pag file decoding crash caused by memory application failure
  • Fix the OOM issue during the use of glBufferData on the Android platform