diff --git a/CHANGELOG.md b/CHANGELOG.md
index b9c24ab23..506c65b1a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,6 +16,7 @@ All notable changes to this project will be documented in this file.
- Viewer: multi-page context update when removing burst entries
- prevent editing item when Exif editing changes mime type
+- parsing videos with skippable boxes in `meta` box
## [v1.8.5] - 2023-04-18
diff --git a/android/app/build.gradle b/android/app/build.gradle
index eb4d5cce7..1feb2d8d6 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -216,8 +216,8 @@ dependencies {
// - https://jitpack.io/p/deckerst/mp4parser
// - https://jitpack.io/p/deckerst/pixymeta-android
implementation 'com.github.deckerst:Android-TiffBitmapFactory:876e53870a'
- implementation 'com.github.deckerst.mp4parser:isoparser:7b698ab674'
- implementation 'com.github.deckerst.mp4parser:muxer:7b698ab674'
+ implementation 'com.github.deckerst.mp4parser:isoparser:42f2cdc087'
+ implementation 'com.github.deckerst.mp4parser:muxer:42f2cdc087'
implementation 'com.github.deckerst:pixymeta-android:706bd73d6e'
// huawei flavor only
diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/metadata/XMP.kt b/android/app/src/main/kotlin/deckers/thibault/aves/metadata/XMP.kt
index cb721c9c1..47d2b75f2 100644
--- a/android/app/src/main/kotlin/deckers/thibault/aves/metadata/XMP.kt
+++ b/android/app/src/main/kotlin/deckers/thibault/aves/metadata/XMP.kt
@@ -152,10 +152,6 @@ object XMP {
pfd.use {
FileInputStream(it.fileDescriptor).use { stream ->
stream.channel.use { channel ->
- // TODO TLAD [mp4] `IsoFile` init may fail if a skipped box has a `org.mp4parser.boxes.iso14496.part12.MetaBox` as parent,
- // because `MetaBox.parse()` changes the argument `dataSource` to a `RewindableReadableByteChannel`,
- // so it is no longer a seekable `FileChannel`, which is a requirement to skip boxes.
-
// creating `IsoFile` with a `File` or a `File.inputStream()` yields `No such device`
IsoFile(channel, Mp4ParserHelper.metadataBoxParser()).use { isoFile ->
isoFile.processBoxes(UserBox::class.java, true) { box, _ ->
diff --git a/lib/widgets/viewer/info/metadata/metadata_section.dart b/lib/widgets/viewer/info/metadata/metadata_section.dart
index 8c4777cb2..c040b20b4 100644
--- a/lib/widgets/viewer/info/metadata/metadata_section.dart
+++ b/lib/widgets/viewer/info/metadata/metadata_section.dart
@@ -142,6 +142,8 @@ class _MetadataSectionSliverState extends State {
}
Future _getMetadata() async {
+ if (!mounted) return;
+
final titledDirectories = await entry.getMetadataDirectories(context);
metadataNotifier.value = Map.fromEntries(titledDirectories);
_expandedDirectoryNotifier.value = null;