summaryrefslogtreecommitdiff
path: root/lib/Image/ExifTool/WriteQuickTime.pl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Image/ExifTool/WriteQuickTime.pl')
-rw-r--r--lib/Image/ExifTool/WriteQuickTime.pl8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/Image/ExifTool/WriteQuickTime.pl b/lib/Image/ExifTool/WriteQuickTime.pl
index 30875887..3a6c9a99 100644
--- a/lib/Image/ExifTool/WriteQuickTime.pl
+++ b/lib/Image/ExifTool/WriteQuickTime.pl
@@ -1089,7 +1089,9 @@ sub WriteQuickTime($$$)
$$et{CHANGED} = $oldChanged if $$et{DemoteErrors} > 1;
delete $$et{DemoteErrors};
}
- if (defined $newData and not length $newData and $$tagTablePtr{PERMANENT}) {
+ if (defined $newData and not length $newData and ($$tagInfo{Permanent} or
+ ($$tagTablePtr{PERMANENT} and not defined $$tagInfo{Permanent})))
+ {
# do nothing if trying to delete tag from a PERMANENT table
$$et{CHANGED} = $oldChanged;
undef $newData;
@@ -1097,7 +1099,9 @@ sub WriteQuickTime($$$)
$$et{CUR_WRITE_GROUP} = $oldWriteGroup;
SetByteOrder('MM');
# add back header if necessary
- if ($start and defined $newData and length $newData) {
+ if ($start and defined $newData and (length $newData or
+ (defined $$tagInfo{Permanent} and not $$tagInfo{Permanent})))
+ {
$newData = substr($buff,0,$start) . $newData;
$$_[1] += $start foreach @chunkOffset;
}