-
-
Notifications
You must be signed in to change notification settings - Fork 111
Review: Android & Flutter packages
Thibault Deckers edited this page Nov 27, 2024
·
3 revisions
As of v0.28.0, backed by FFmpeg. Package license is BSD-3, but it depends on wang-bin/mdk-sdk
(custom usage dependent license), which depends on wang-bin/mdk
(private repo).
As of v0.8.7, backed by befovy/ijkplayer
& befovy/FFmpeg ff4.0--ijk0.8.25--20200627--926
:
- ✔️ support content URIs
- ✔️ custom codec support (unsupported XVID, AC3 by default)
- ✔️ can play if only the video or audio stream is supported
- ❌ crash when calling
seekTo
for some files (cf issue, related to artwork stream) by default, but workaround by downgrading FFmpeg toff4.0--ijk0.8.20--20180704--001
. Edit 2021/11/06: fixed withff4.0--ijk0.8.8--20211030--926
- ❌ HW acceleration (disabled by default) yields edge smear / green bar for videos with non-16x dimension, cf issue
- ❌ HW acceleration codecs intermittently fail (e.g.
[OMX.Exynos.avc.dec] ERROR(0x8000100b)
) when seek-starting some videos (e.g. MP2TS with h264/HDPR)
As of v0.3.5+1, backed by CaiJingLong/ijkplayer
& bilibili/FFmpeg ff3.4--ijk0.8.7--20180103--001
:
- ✔️ support content URIs (
DataSource.photoManagerUrl
from v0.3.6, but need fork to support content URIs on Android <Q) - ✔️ custom codec support (unsupported AC3 by default)
- ✔️ can play if only the video or audio stream is supported
- ❌ unmaintained
- ❌ HW acceleration (enabled by default) yields edge smear / green bar for videos with non-16x dimension, cf issue
- ❌ HW acceleration codecs intermittently fail (e.g.
[OMX.Exynos.avc.dec] ERROR(0x8000100b)
) when seek-starting some videos (e.g. MP2TS with h264/HDPR)
As of v6.0.1, backed by VLC
:
- ❌ unsupported content URIs
- ✔️ extensive codec support
- ✔️ HW acceleration yields no edge smear / green bar
- ❌ based on
PlatformView
(virtual display), so: widget required for controller init, virtual display size limit, minSdkVersion 20 - ❌ large: release appbundle (for android-arm64) at 70 MB v. 22 MB with
fijkplayer
v. 16 MB withvideo_player
As of v2.1.1, backed by ExoPlayer
& device codecs:
- ✔️ support content URIs (via
network
constructor) - ❌ limited codec support (unsupported AVI/XVID, AC3, H.264 High?, unseekable FLV)
- ❌ cannot play if only the video or audio stream is supported
- ❌ HW acceleration (forced) yields edge smear / green bar for videos with non-16x dimension, cf issue
As of v2.1.19:
- ❌ does not support TIFF with JPEG compression (issue #184)
- ❌ TIFF tile decoding is not public (issue #258)
As of v0.22.0:
- ✔️ Dart-native rendering
- ❌ CSS support out of scope (issue #105, etc.)
- ❌ unsupported
currentColor
(issue #31) - ❌ unsupported out of order defs/references (issue #102)
- ❌ limited support for %, mm or pt unit (issue #110)
As of v2.16.0:
- ✔️ license: Apache License 2.0
- ✔️ language: JVM-friendly
- ✔️ read many
- ✔️ structured tags
- ❌ writing not supported
As of v1.3.3:
- ✔️ license: Apache License 2.0
- ✔️ language: JVM-friendly
- ✔️ read/write core image formats
- ❌ write XMP along existing XMP instead of overwriting
- ❌ unstructured tags (i.e. flatten the same tag used in different blocks)
As of 2021/09/01:
- ✔️ license: Eclipse Public License 1.0
- ✔️ language: JVM-friendly
- ✔️ read/write core image formats
- ✔️ structured tags
- ❌ inconvenient API
- ❌ inconvenient release process (fixable by fork)
- ❌ fail to open some files (String/byte[] issue)
- ❌ missing Exif in PNG
- ❌ partial/missing Exif in TIFF
As of v1.0.8:
- ✔️ license: Apache License 2.0
- ✔️ language: JVM-friendly
- ❌ unmaintained
As of v12.30:
- ✔️ license: Perl Artistic License
- ❌ language: Perl
- ✔️ read/write most
- ❌ heavy
As of v0.27.4:
- ❌ license: GPL 2.0, preventing use of other libraries with incompatible licenses
- ❌ language: C++
- ✔️ read/write most
As of v0.6.22:
- ✔️ license: LGPL 2.1
- ❌ language: C
- ✔️ read/write some image formats
- ❌ which formats?