-
Notifications
You must be signed in to change notification settings - Fork 6k
[canvaskit] Add animation detection for GIFs #54483
[canvaskit] Add animation detection for GIFs #54483
Conversation
Nit: I wish the source pointed to some docs about how this all was interpreted. Would ease maintenance later. |
I linked to the GIF 89a spec in the doc comment for the class. Unfortunately since it's a text file I can't link to specific sections corresponding to the methods, but I stick to the terminology in the spec so the sections should be easy to find if you have the spec open. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
return chunkFourCC == expectedHeader; | ||
} | ||
|
||
/// Reads the WebP header. Returns [false] if this is not a valid WebP header. | ||
bool _readWebpHeader() { | ||
final String riffBytes = _readFourCC(); | ||
|
||
// Read file size byte. | ||
_readUint32(); | ||
// Skip reading file size byte. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit:
// Skip reading file size byte. | |
// Skip reading file size bytes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
…sions) (#153413) Manual roll requested by zra@google.com flutter/engine@019f9e3...5909666 2024-08-14 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Dart SDK from 44635f897535 to 733062367c2e (1 revision) (#54541)" (flutter/engine#54552) 2024-08-14 98614782+auto-submit[bot]@users.noreply.github.com Reverts "macOS: Clean up create_ios_framework.py (#54543)" (flutter/engine#54550) 2024-08-14 98614782+auto-submit[bot]@users.noreply.github.com Reverts "macOS: refactor create_macos_framework.py (#54546)" (flutter/engine#54549) 2024-08-14 chris@bracken.jp macOS: refactor create_macos_framework.py (flutter/engine#54546) 2024-08-13 flar@google.com [DisplayList] Allow random access to ops through indexing (flutter/engine#54484) 2024-08-13 mit@google.com Update dartdoc for gpu.dart (flutter/engine#54529) 2024-08-13 chris@bracken.jp macOS: Clean up create_ios_framework.py (flutter/engine#54543) 2024-08-13 skia-flutter-autoroll@skia.org Roll Dart SDK from 44635f897535 to 733062367c2e (1 revision) (flutter/engine#54541) 2024-08-13 skia-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 2LTVy4Gv76DcMpz4V... to MeV5i7xXXFPHF5sBK... (flutter/engine#54542) 2024-08-13 1961493+harryterkelsen@users.noreply.github.com [canvaskit] Add animation detection for GIFs (flutter/engine#54483) 2024-08-13 matej.knopp@gmail.com Preserve background frame damage (flutter/engine#54540) 2024-08-13 6844906+zijiehe-google-com@users.noreply.github.com [fuchsia] Use BundledTestRunner from test-scripts (flutter/engine#54404) Also rolling transitive DEPS: fuchsia/sdk/core/linux-amd64 from 2LTVy4Gv76Dc to MeV5i7xXXFPH If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC rmistry@google.com,zra@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
…sions) (flutter#153413) Manual roll requested by zra@google.com flutter/engine@019f9e3...5909666 2024-08-14 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Dart SDK from 44635f897535 to 733062367c2e (1 revision) (flutter#54541)" (flutter/engine#54552) 2024-08-14 98614782+auto-submit[bot]@users.noreply.github.com Reverts "macOS: Clean up create_ios_framework.py (flutter#54543)" (flutter/engine#54550) 2024-08-14 98614782+auto-submit[bot]@users.noreply.github.com Reverts "macOS: refactor create_macos_framework.py (flutter#54546)" (flutter/engine#54549) 2024-08-14 chris@bracken.jp macOS: refactor create_macos_framework.py (flutter/engine#54546) 2024-08-13 flar@google.com [DisplayList] Allow random access to ops through indexing (flutter/engine#54484) 2024-08-13 mit@google.com Update dartdoc for gpu.dart (flutter/engine#54529) 2024-08-13 chris@bracken.jp macOS: Clean up create_ios_framework.py (flutter/engine#54543) 2024-08-13 skia-flutter-autoroll@skia.org Roll Dart SDK from 44635f897535 to 733062367c2e (1 revision) (flutter/engine#54541) 2024-08-13 skia-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 2LTVy4Gv76DcMpz4V... to MeV5i7xXXFPHF5sBK... (flutter/engine#54542) 2024-08-13 1961493+harryterkelsen@users.noreply.github.com [canvaskit] Add animation detection for GIFs (flutter/engine#54483) 2024-08-13 matej.knopp@gmail.com Preserve background frame damage (flutter/engine#54540) 2024-08-13 6844906+zijiehe-google-com@users.noreply.github.com [fuchsia] Use BundledTestRunner from test-scripts (flutter/engine#54404) Also rolling transitive DEPS: fuchsia/sdk/core/linux-amd64 from 2LTVy4Gv76Dc to MeV5i7xXXFPH If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC rmistry@google.com,zra@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
…sions) (flutter#153413) Manual roll requested by zra@google.com flutter/engine@019f9e3...5909666 2024-08-14 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Dart SDK from 44635f897535 to 733062367c2e (1 revision) (flutter#54541)" (flutter/engine#54552) 2024-08-14 98614782+auto-submit[bot]@users.noreply.github.com Reverts "macOS: Clean up create_ios_framework.py (flutter#54543)" (flutter/engine#54550) 2024-08-14 98614782+auto-submit[bot]@users.noreply.github.com Reverts "macOS: refactor create_macos_framework.py (flutter#54546)" (flutter/engine#54549) 2024-08-14 chris@bracken.jp macOS: refactor create_macos_framework.py (flutter/engine#54546) 2024-08-13 flar@google.com [DisplayList] Allow random access to ops through indexing (flutter/engine#54484) 2024-08-13 mit@google.com Update dartdoc for gpu.dart (flutter/engine#54529) 2024-08-13 chris@bracken.jp macOS: Clean up create_ios_framework.py (flutter/engine#54543) 2024-08-13 skia-flutter-autoroll@skia.org Roll Dart SDK from 44635f897535 to 733062367c2e (1 revision) (flutter/engine#54541) 2024-08-13 skia-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 2LTVy4Gv76DcMpz4V... to MeV5i7xXXFPHF5sBK... (flutter/engine#54542) 2024-08-13 1961493+harryterkelsen@users.noreply.github.com [canvaskit] Add animation detection for GIFs (flutter/engine#54483) 2024-08-13 matej.knopp@gmail.com Preserve background frame damage (flutter/engine#54540) 2024-08-13 6844906+zijiehe-google-com@users.noreply.github.com [fuchsia] Use BundledTestRunner from test-scripts (flutter/engine#54404) Also rolling transitive DEPS: fuchsia/sdk/core/linux-amd64 from 2LTVy4Gv76Dc to MeV5i7xXXFPH If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC rmistry@google.com,zra@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Detect if a GIF is animated to determine if we need to use Skia to decode it or if we can use
tag decoding.
Fixes flutter/flutter#151911
Pre-launch Checklist
///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.