"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "lib/Image/ExifTool/QuickTime.pm" between
Image-ExifTool-12.57.tar.gz and Image-ExifTool-12.58.tar.gz

About: ExifTool is a platform-independent Perl library plus a command-line application for reading, writing and editing meta information in a wide variety of files.

QuickTime.pm  (Image-ExifTool-12.57):QuickTime.pm  (Image-ExifTool-12.58)
skipping to change at line 50 skipping to change at line 50
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
package Image::ExifTool::QuickTime; package Image::ExifTool::QuickTime;
use strict; use strict;
use vars qw($VERSION $AUTOLOAD %stringEncoding); use vars qw($VERSION $AUTOLOAD %stringEncoding);
use Image::ExifTool qw(:DataAccess :Utils); use Image::ExifTool qw(:DataAccess :Utils);
use Image::ExifTool::Exif; use Image::ExifTool::Exif;
use Image::ExifTool::GPS; use Image::ExifTool::GPS;
$VERSION = '2.83'; $VERSION = '2.84';
sub ProcessMOV($$;$); sub ProcessMOV($$;$);
sub ProcessKeys($$$); sub ProcessKeys($$$);
sub ProcessMetaKeys($$$); sub ProcessMetaKeys($$$);
sub ProcessMetaData($$$); sub ProcessMetaData($$$);
sub ProcessEncodingParams($$$); sub ProcessEncodingParams($$$);
sub ProcessSampleDesc($$$); sub ProcessSampleDesc($$$);
sub ProcessHybrid($$$); sub ProcessHybrid($$$);
sub ProcessRights($$$); sub ProcessRights($$$);
# ++vvvvvvvvvvvv++ (in QuickTimeStream.pl) # ++vvvvvvvvvvvv++ (in QuickTimeStream.pl)
skipping to change at line 1979 skipping to change at line 1979
Condition => '$$valPt =~ /^SAMSUNG DIGITAL CAMERA\0/', Condition => '$$valPt =~ /^SAMSUNG DIGITAL CAMERA\0/',
SubDirectory => { SubDirectory => {
TagTable => 'Image::ExifTool::Samsung::MP4', TagTable => 'Image::ExifTool::Samsung::MP4',
ByteOrder => 'LittleEndian', ByteOrder => 'LittleEndian',
}, },
}, },
{ {
Name => 'SanyoMOV', Name => 'SanyoMOV',
Condition => q{ Condition => q{
$$valPt =~ /^SANYO DIGITAL CAMERA\0/ and $$valPt =~ /^SANYO DIGITAL CAMERA\0/ and
$self->{VALUE}->{FileType} eq "MOV" $$self{FileType} eq "MOV"
}, },
SubDirectory => { SubDirectory => {
TagTable => 'Image::ExifTool::Sanyo::MOV', TagTable => 'Image::ExifTool::Sanyo::MOV',
ByteOrder => 'LittleEndian', ByteOrder => 'LittleEndian',
}, },
}, },
{ {
Name => 'SanyoMP4', Name => 'SanyoMP4',
Condition => q{ Condition => q{
$$valPt =~ /^SANYO DIGITAL CAMERA\0/ and $$valPt =~ /^SANYO DIGITAL CAMERA\0/ and
$self->{VALUE}->{FileType} eq "MP4" $$self{FileType} eq "MP4"
}, },
SubDirectory => { SubDirectory => {
TagTable => 'Image::ExifTool::Sanyo::MP4', TagTable => 'Image::ExifTool::Sanyo::MP4',
ByteOrder => 'LittleEndian', ByteOrder => 'LittleEndian',
}, },
}, },
{ {
Name => 'UnknownTags', Name => 'UnknownTags',
Unknown => 1, Unknown => 1,
Binary => 1 Binary => 1
skipping to change at line 7164 skipping to change at line 7164
MP4 audio sample description. This hybrid atom contains both data and c hild MP4 audio sample description. This hybrid atom contains both data and c hild
atoms. atoms.
}, },
4 => { 4 => {
Name => 'AudioFormat', Name => 'AudioFormat',
Format => 'undef[4]', Format => 'undef[4]',
RawConv => q{ RawConv => q{
$$self{AudioFormat} = $val; $$self{AudioFormat} = $val;
return undef unless $val =~ /^[\w ]{4}$/i; return undef unless $val =~ /^[\w ]{4}$/i;
# check for protected audio format # check for protected audio format
$self->OverrideFileType('M4P') if $val eq 'drms' and $$self{VALUE}{F ileType} eq 'M4A'; $self->OverrideFileType('M4P') if $val eq 'drms' and $$self{FileType } eq 'M4A';
return $val; return $val;
}, },
# see this link for print conversions (not complete): # see this link for print conversions (not complete):
# https://github.com/yannickcr/brooser/blob/master/php/librairies/getid3 /module.audio-video.quicktime.php # https://github.com/yannickcr/brooser/blob/master/php/librairies/getid3 /module.audio-video.quicktime.php
}, },
20 => { #PH 20 => { #PH
Name => 'AudioVendorID', Name => 'AudioVendorID',
Condition => '$$self{AudioFormat} ne "mp4s"', Condition => '$$self{AudioFormat} ne "mp4s"',
Format => 'undef[4]', Format => 'undef[4]',
RawConv => '$val eq "\0\0\0\0" ? undef : $val', RawConv => '$val eq "\0\0\0\0" ? undef : $val',
skipping to change at line 9811 skipping to change at line 9811
last; last;
} }
} }
$dataPos += $size + 8; # point to start of next atom data $dataPos += $size + 8; # point to start of next atom data
last if $dirEnd and $dataPos >= $dirEnd; # (note: ignores last value if 0 bytes) last if $dirEnd and $dataPos >= $dirEnd; # (note: ignores last value if 0 bytes)
$raf->Read($buff, 8) == 8 or last; $raf->Read($buff, 8) == 8 or last;
($size, $tag) = unpack('Na4', $buff); ($size, $tag) = unpack('Na4', $buff);
++$index if defined $index; ++$index if defined $index;
} }
# tweak file type based on track content ("iso*" and "dash" ftyp only) # tweak file type based on track content ("iso*" and "dash" ftyp only)
if ($topLevel and $$et{VALUE}{FileType} and $$et{VALUE}{FileType} eq 'MP4' a nd if ($topLevel and $$et{FileType} and $$et{FileType} eq 'MP4' and
$$et{save_ftyp} and $$et{HasHandler} and $$et{save_ftyp} =~ /^(iso|dash) / and $$et{save_ftyp} and $$et{HasHandler} and $$et{save_ftyp} =~ /^(iso|dash) / and
$$et{HasHandler}{soun} and not $$et{HasHandler}{vide}) $$et{HasHandler}{soun} and not $$et{HasHandler}{vide})
{ {
$et->OverrideFileType('M4A', 'audio/mp4'); $et->OverrideFileType('M4A', 'audio/mp4');
} }
# fill in missing defaults for alternate language tags # fill in missing defaults for alternate language tags
# (the first language is taken as the default) # (the first language is taken as the default)
if ($doDefaultLang and $$et{QTLang}) { if ($doDefaultLang and $$et{QTLang}) {
QTLang: foreach $tag (@{$$et{QTLang}}) { QTLang: foreach $tag (@{$$et{QTLang}}) {
next unless defined $$et{VALUE}{$tag}; next unless defined $$et{VALUE}{$tag};
 End of changes. 5 change blocks. 
5 lines changed or deleted 5 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)