@@ -17,7 +17,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
1717use Image::ExifTool::Exif;
1818use Image::ExifTool::RIFF;
1919
20- $VERSION = ' 1.26 ' ;
20+ $VERSION = ' 1.27 ' ;
2121
2222sub ProcessASF ($$;$);
2323sub ProcessContentDescription ($$$);
@@ -549,7 +549,7 @@ sub ProcessContentDescription($$$)
549549 my $len = shift @len ;
550550 next unless $len ;
551551 return 0 if $pos + $len > $dirLen ;
552- my $val = $et -> Decode(substr ($$dataPt ,$pos ,$len ),' UCS2 ' ,' II' );
552+ my $val = $et -> Decode(substr ($$dataPt ,$pos ,$len ),' UTF16 ' ,' II' );
553553 $et -> HandleTag($tagTablePtr , $tag , $val );
554554 $pos += $len ;
555555 }
@@ -594,7 +594,7 @@ sub ReadASF($$$$$)
594594 my ($et , $dataPt , $pos , $format , $size ) = @_ ;
595595 my @vals ;
596596 if ($format == 0) { # unicode string
597- $vals [0] = $et -> Decode(substr ($$dataPt ,$pos ,$size ),' UCS2 ' ,' II' );
597+ $vals [0] = $et -> Decode(substr ($$dataPt ,$pos ,$size ),' UTF16 ' ,' II' );
598598 } elsif ($format == 2) { # 4-byte boolean
599599 @vals = ReadValue($dataPt , $pos , ' int32u' , undef , $size );
600600 foreach (@vals ) {
@@ -631,7 +631,7 @@ sub ProcessExtendedContentDescription($$$)
631631 my $nameLen = unpack (" x${pos} v" , $$dataPt );
632632 $pos += 2;
633633 return 0 if $pos + $nameLen + 4 > $dirLen ;
634- my $tag = Image::ExifTool::Decode(undef ,substr ($$dataPt ,$pos ,$nameLen ),' UCS2 ' ,' II' ,' Latin' );
634+ my $tag = Image::ExifTool::Decode(undef ,substr ($$dataPt ,$pos ,$nameLen ),' UTF16 ' ,' II' ,' Latin' );
635635 $tag =~ s / ^WM\/ // ; # remove leading "WM/"
636636 $pos += $nameLen ;
637637 my ($dType , $dLen ) = unpack (" x${pos} v2" , $$dataPt );
@@ -667,7 +667,7 @@ sub ProcessMetadata($$$)
667667 my ($index , $stream , $nameLen , $dType , $dLen ) = unpack (" x${pos} v4V" , $$dataPt );
668668 $pos += 12;
669669 return 0 if $pos + $nameLen + $dLen > $dirLen ;
670- my $tag = Image::ExifTool::Decode(undef ,substr ($$dataPt ,$pos ,$nameLen ),' UCS2 ' ,' II' ,' Latin' );
670+ my $tag = Image::ExifTool::Decode(undef ,substr ($$dataPt ,$pos ,$nameLen ),' UTF16 ' ,' II' ,' Latin' );
671671 $tag =~ s / ^WM\/ // ; # remove leading "WM/"
672672 $pos += $nameLen ;
673673 my $val = ReadASF($et ,$dataPt ,$pos ,$dType ,$dLen );
@@ -702,8 +702,8 @@ sub ProcessPicture($$$)
702702 my $str = substr ($$dataPt , $dirStart +5, $n );
703703 if ($str =~ / ^((?:..)*?)\0\0 ((?:..)*?)\0\0 /s ) {
704704 my ($mime , $desc ) = ($1 , $2 );
705- $et -> HandleTag($tagTablePtr , 1, $et -> Decode($mime ,' UCS2 ' ,' II' ));
706- $et -> HandleTag($tagTablePtr , 2, $et -> Decode($desc ,' UCS2 ' ,' II' )) if length $desc ;
705+ $et -> HandleTag($tagTablePtr , 1, $et -> Decode($mime ,' UTF16 ' ,' II' ));
706+ $et -> HandleTag($tagTablePtr , 2, $et -> Decode($desc ,' UTF16 ' ,' II' )) if length $desc ;
707707 }
708708 $et -> HandleTag($tagTablePtr , 3, substr ($$dataPt , $dirStart +5+$n , $picLen ));
709709 return 1;
@@ -731,12 +731,12 @@ sub ProcessCodecList($$$)
731731 my $nameLen = Get16u($dataPt , $pos + 2) * 2;
732732 $pos += 4;
733733 return 0 if $pos + $nameLen + 2 > $dirLen ;
734- my $name = $et -> Decode(substr ($$dataPt ,$pos ,$nameLen ),' UCS2 ' ,' II' );
734+ my $name = $et -> Decode(substr ($$dataPt ,$pos ,$nameLen ),' UTF16 ' ,' II' );
735735 $et -> HandleTag($tagTablePtr , " ${type} Name" , $name );
736736 my $descLen = Get16u($dataPt , $pos + $nameLen ) * 2;
737737 $pos += $nameLen + 2;
738738 return 0 if $pos + $descLen + 2 > $dirLen ;
739- my $desc = $et -> Decode(substr ($$dataPt ,$pos ,$descLen ),' UCS2 ' ,' II' );
739+ my $desc = $et -> Decode(substr ($$dataPt ,$pos ,$descLen ),' UTF16 ' ,' II' );
740740 $et -> HandleTag($tagTablePtr , " ${type} Description" , $desc );
741741 my $infoLen = Get16u($dataPt , $pos + $descLen );
742742 $pos += $descLen + 2 + $infoLen ;
0 commit comments