diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d8c54a8e6..6f4740c91 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -15,9 +15,9 @@ jobs: fail-fast: false matrix: php-version: - - "8.2" + #- "8.2" - "8.3" - - "8.4" + #- "8.4" steps: - name: Install PHP @@ -67,9 +67,8 @@ jobs: # continue-on-error: true run: vendor/bin/phpunit --color=always --testdox --display-deprecations --display-phpunit-deprecations ./tests -# - name: Code style test -# if: ${{ matrix.php-version == 7.4 }} -# run: ./vendor/bin/phpcs --runtime-set ignore_warnings_on_exit 1 + - name: Code style test + run: ./vendor/bin/phpcs --runtime-set ignore_warnings_on_exit 1 # Remove the comment to the lines below during development, to refresh the # media file dumps. diff --git a/.gitignore b/.gitignore index c4bfb572d..ed4a457ae 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ composer.lock .DS_Store .phpunit* +.phpcs-cache diff --git a/composer.json b/composer.json index 1304977ed..e020331e7 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,8 @@ "symfony/finder": "^7.2", "symfony/process": "^7.2", "symfony/var-dumper": "^7.2", - "symfony/yaml": "^7.2" + "symfony/yaml": "^7.2", + "slevomat/coding-standard": "^8.15" }, "autoload": { "psr-4": { @@ -48,7 +49,8 @@ "bin": ["bin/fileeye-mediaprobe"], "config": { "allow-plugins": { - "phpstan/extension-installer": true + "phpstan/extension-installer": true, + "dealerdirect/phpcodesniffer-composer-installer": true } } } diff --git a/phpcs.xml b/phpcs.xml index bc0ff4e76..c2571e3a8 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -22,4 +22,13 @@ error + + + + + + + + + diff --git a/src/Block/Exif/Vendor/Apple/MakerNote.php b/src/Block/Exif/Vendor/Apple/MakerNote.php index b0d1b9df2..28d1e04bc 100644 --- a/src/Block/Exif/Vendor/Apple/MakerNote.php +++ b/src/Block/Exif/Vendor/Apple/MakerNote.php @@ -2,21 +2,16 @@ namespace FileEye\MediaProbe\Block\Exif\Vendor\Apple; -use FileEye\MediaProbe\Block\Tiff\Ifd; use FileEye\MediaProbe\Block\ListBase; use FileEye\MediaProbe\Block\RawData; +use FileEye\MediaProbe\Block\Tiff\Ifd; use FileEye\MediaProbe\Block\Tiff\Tag; use FileEye\MediaProbe\Collection\CollectionFactory; use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Data\DataException; +use FileEye\MediaProbe\Data\DataFormat; use FileEye\MediaProbe\Data\DataWindow; -use FileEye\MediaProbe\Model\BlockInterface; -use FileEye\MediaProbe\Model\ElementInterface; -use FileEye\MediaProbe\Model\EntryInterface; use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataFormat; -use FileEye\MediaProbe\MediaProbe; -use FileEye\MediaProbe\MediaProbeException; use FileEye\MediaProbe\Utility\ConvertBytes; class MakerNote extends Ifd diff --git a/src/Block/Exif/Vendor/Apple/RunTime.php b/src/Block/Exif/Vendor/Apple/RunTime.php index 08e31898a..b0d4d0e08 100644 --- a/src/Block/Exif/Vendor/Apple/RunTime.php +++ b/src/Block/Exif/Vendor/Apple/RunTime.php @@ -9,9 +9,7 @@ use FileEye\MediaProbe\Block\Tiff\Tag; use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Data\DataString; -use FileEye\MediaProbe\Data\DataWindow; use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\MediaProbe; use FileEye\MediaProbe\Utility\ConvertBytes; class RunTime extends ListBase diff --git a/src/Block/Exif/Vendor/Canon/AFInfoIndex.php b/src/Block/Exif/Vendor/Canon/AFInfoIndex.php index 6ea639d42..f18004c7b 100644 --- a/src/Block/Exif/Vendor/Canon/AFInfoIndex.php +++ b/src/Block/Exif/Vendor/Canon/AFInfoIndex.php @@ -3,12 +3,7 @@ namespace FileEye\MediaProbe\Block\Exif\Vendor\Canon; use FileEye\MediaProbe\Block\Index; -use FileEye\MediaProbe\Block\Tiff\Tag; use FileEye\MediaProbe\Data\DataElement; -use FileEye\MediaProbe\Data\DataWindow; -use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataFormat; -use FileEye\MediaProbe\Utility\ConvertBytes; /** * Class representing an index of values, for Canon AFInfo e AFInfo2. diff --git a/src/Block/Exif/Vendor/Canon/CameraInfoMap.php b/src/Block/Exif/Vendor/Canon/CameraInfoMap.php index 69b461f39..1e9bf119b 100644 --- a/src/Block/Exif/Vendor/Canon/CameraInfoMap.php +++ b/src/Block/Exif/Vendor/Canon/CameraInfoMap.php @@ -2,13 +2,10 @@ namespace FileEye\MediaProbe\Block\Exif\Vendor\Canon; -use FileEye\MediaProbe\Block\Index; use FileEye\MediaProbe\Block\Map; -use FileEye\MediaProbe\Block\Tiff\Tag; use FileEye\MediaProbe\Data\DataElement; -use FileEye\MediaProbe\ItemDefinition; use FileEye\MediaProbe\Data\DataFormat; -use FileEye\MediaProbe\Utility\ConvertBytes; +use FileEye\MediaProbe\ItemDefinition; /** * Class representing a map of values, for Canon Camera information. diff --git a/src/Block/Exif/Vendor/Canon/ColorDataMap.php b/src/Block/Exif/Vendor/Canon/ColorDataMap.php index 873fa9931..70b1d9e4f 100644 --- a/src/Block/Exif/Vendor/Canon/ColorDataMap.php +++ b/src/Block/Exif/Vendor/Canon/ColorDataMap.php @@ -2,13 +2,9 @@ namespace FileEye\MediaProbe\Block\Exif\Vendor\Canon; -use FileEye\MediaProbe\Block\Index; use FileEye\MediaProbe\Block\Map; -use FileEye\MediaProbe\Block\Tiff\Tag; use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataFormat; -use FileEye\MediaProbe\Utility\ConvertBytes; /** * Class representing a map of values, for Canon ColorData information. diff --git a/src/Block/Exif/Vendor/Canon/CustomFunctions2.php b/src/Block/Exif/Vendor/Canon/CustomFunctions2.php index 35d79b39c..01d52a429 100644 --- a/src/Block/Exif/Vendor/Canon/CustomFunctions2.php +++ b/src/Block/Exif/Vendor/Canon/CustomFunctions2.php @@ -6,13 +6,9 @@ use FileEye\MediaProbe\Block\Tiff\Tag; use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Data\DataException; +use FileEye\MediaProbe\Data\DataFormat; use FileEye\MediaProbe\Data\DataWindow; -use FileEye\MediaProbe\Model\ElementInterface; -use FileEye\MediaProbe\Model\EntryInterface; -use FileEye\MediaProbe\Entry\Core\Undefined; use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataFormat; -use FileEye\MediaProbe\MediaProbe; use FileEye\MediaProbe\Utility\ConvertBytes; /** diff --git a/src/Block/Exif/Vendor/Canon/CustomFunctions2Header.php b/src/Block/Exif/Vendor/Canon/CustomFunctions2Header.php index 179b16661..972943af9 100644 --- a/src/Block/Exif/Vendor/Canon/CustomFunctions2Header.php +++ b/src/Block/Exif/Vendor/Canon/CustomFunctions2Header.php @@ -6,13 +6,8 @@ use FileEye\MediaProbe\Block\Tiff\Tag; use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Data\DataException; -use FileEye\MediaProbe\Data\DataWindow; -use FileEye\MediaProbe\Model\ElementInterface; -use FileEye\MediaProbe\Model\EntryInterface; -use FileEye\MediaProbe\Entry\Core\Undefined; -use FileEye\MediaProbe\ItemDefinition; use FileEye\MediaProbe\Data\DataFormat; -use FileEye\MediaProbe\MediaProbe; +use FileEye\MediaProbe\ItemDefinition; use FileEye\MediaProbe\MediaProbeException; use FileEye\MediaProbe\Utility\ConvertBytes; diff --git a/src/Block/Exif/Vendor/Canon/Filter.php b/src/Block/Exif/Vendor/Canon/Filter.php index 99e65ac37..8a942b67b 100644 --- a/src/Block/Exif/Vendor/Canon/Filter.php +++ b/src/Block/Exif/Vendor/Canon/Filter.php @@ -2,17 +2,12 @@ namespace FileEye\MediaProbe\Block\Exif\Vendor\Canon; -use FileEye\MediaProbe\Block\Index; use FileEye\MediaProbe\Block\ListBase; -use FileEye\MediaProbe\Block\Map; -use FileEye\MediaProbe\Block\RawData; use FileEye\MediaProbe\Block\Tiff\Tag; use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Data\DataFormat; use FileEye\MediaProbe\Data\DataWindow; use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\MediaProbe; -use FileEye\MediaProbe\MediaProbeException; use FileEye\MediaProbe\Model\BlockInterface; use FileEye\MediaProbe\Utility\ConvertBytes; @@ -35,8 +30,7 @@ public function __construct( ItemDefinition $definition, FilterInfoIndex $parent, ?BlockInterface $reference = null, - ) - { + ) { parent::__construct($definition, $parent, $reference); $this->setAttribute('name', $this->getParentElement()->getAttribute('name') . '.' . $definition->sequence); } diff --git a/src/Block/Exif/Vendor/Canon/FilterInfoIndex.php b/src/Block/Exif/Vendor/Canon/FilterInfoIndex.php index 5c1ab07e5..a1ac8c057 100644 --- a/src/Block/Exif/Vendor/Canon/FilterInfoIndex.php +++ b/src/Block/Exif/Vendor/Canon/FilterInfoIndex.php @@ -3,16 +3,12 @@ namespace FileEye\MediaProbe\Block\Exif\Vendor\Canon; use FileEye\MediaProbe\Block\Index; -use FileEye\MediaProbe\Block\Map; use FileEye\MediaProbe\Block\RawData; -use FileEye\MediaProbe\Block\Tiff\Tag; use FileEye\MediaProbe\Collection\CollectionFactory; use FileEye\MediaProbe\Data\DataElement; +use FileEye\MediaProbe\Data\DataFormat; use FileEye\MediaProbe\Data\DataWindow; use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataFormat; -use FileEye\MediaProbe\MediaProbe; -use FileEye\MediaProbe\MediaProbeException; use FileEye\MediaProbe\Utility\ConvertBytes; /** diff --git a/src/Block/Index.php b/src/Block/Index.php index 7f3b949a3..d19eee72c 100644 --- a/src/Block/Index.php +++ b/src/Block/Index.php @@ -5,10 +5,9 @@ use FileEye\MediaProbe\Block\Tiff\Tag; use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Data\DataException; +use FileEye\MediaProbe\Data\DataFormat; use FileEye\MediaProbe\Data\DataWindow; -use FileEye\MediaProbe\MediaProbe; use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataFormat; use FileEye\MediaProbe\Utility\ConvertBytes; /** diff --git a/src/Block/Jpeg/Exif.php b/src/Block/Jpeg/Exif.php index c1fa71078..1860c2b0c 100644 --- a/src/Block/Jpeg/Exif.php +++ b/src/Block/Jpeg/Exif.php @@ -6,9 +6,9 @@ use FileEye\MediaProbe\Collection\CollectionFactory; use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Entry\Core\Undefined; +use FileEye\MediaProbe\ItemDefinition; use FileEye\MediaProbe\Model\BlockBase; use FileEye\MediaProbe\Utility\ConvertBytes; -use FileEye\MediaProbe\ItemDefinition; /** * Class representing Exif data. diff --git a/src/Block/ListBase.php b/src/Block/ListBase.php index 9fe426586..d620722c0 100644 --- a/src/Block/ListBase.php +++ b/src/Block/ListBase.php @@ -3,16 +3,6 @@ namespace FileEye\MediaProbe\Block; use FileEye\MediaProbe\Model\BlockBase; -use FileEye\MediaProbe\Block\Tiff\Tag; -use FileEye\MediaProbe\Data\DataElement; -use FileEye\MediaProbe\Data\DataWindow; -use FileEye\MediaProbe\Data\DataException; -use FileEye\MediaProbe\Model\ElementInterface; -use FileEye\MediaProbe\Model\EntryInterface; -use FileEye\MediaProbe\MediaProbe; -use FileEye\MediaProbe\MediaProbeException; -use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Utility\ConvertBytes; /** * Abstract class representing a generic table of data. diff --git a/src/Block/Map.php b/src/Block/Map.php index 5a087ee7e..45bd8778b 100644 --- a/src/Block/Map.php +++ b/src/Block/Map.php @@ -7,10 +7,7 @@ use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Data\DataException; use FileEye\MediaProbe\Data\DataFormat; -use FileEye\MediaProbe\Data\DataString; -use FileEye\MediaProbe\Data\DataWindow; use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\MediaProbe; use FileEye\MediaProbe\Model\BlockBase; use FileEye\MediaProbe\Utility\ConvertBytes; @@ -34,8 +31,7 @@ public function __construct( ItemDefinition $definition, ?BlockBase $parent = null, ?BlockBase $reference = null, - ) - { + ) { parent::__construct($definition, $parent, $reference); $this->components = $definition->valuesCount; $this->format = $definition->format; @@ -60,8 +56,8 @@ protected function doParseData(DataElement $data): void // Check data is accessible, notice otherwise. if ($item_definition->dataOffset >= $data->getSize()) { - $this->info( - 'Could not access value for \'{item}\' in map \'{map}\', overflow', + $this->debug( + '\'{item}\' in map \'{map}\' is beyond end of data available, skipped', [ 'item' => $item_definition->collection->getPropertyValue('name'), 'map' => $this->getAttribute('name'), @@ -70,8 +66,8 @@ protected function doParseData(DataElement $data): void continue; } if ($item_definition->dataOffset + $item_definition->getSize() > $data->getSize()) { - $this->notice( - 'Could not get value for \'{item}\' in map \'{map}\', not enough data', + $this->warning( + 'Failed to get value for \'{item}\' in map \'{map}\', not enough data left', [ 'item' => $item_definition->collection->getPropertyValue('name'), 'map' => $this->getAttribute('name'), diff --git a/src/Block/RawData.php b/src/Block/RawData.php index 511bdace3..7ad5f3a04 100644 --- a/src/Block/RawData.php +++ b/src/Block/RawData.php @@ -4,9 +4,7 @@ use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Data\DataFormat; -use FileEye\MediaProbe\Data\DataWindow; use FileEye\MediaProbe\Entry\Core\Undefined; -use FileEye\MediaProbe\ItemDefinition; use FileEye\MediaProbe\Model\BlockBase; use FileEye\MediaProbe\Model\EntryBase; use FileEye\MediaProbe\Utility\ConvertBytes; diff --git a/src/Block/Thumbnail.php b/src/Block/Thumbnail.php index c8dcced2f..703e7c4f6 100644 --- a/src/Block/Thumbnail.php +++ b/src/Block/Thumbnail.php @@ -2,9 +2,9 @@ namespace FileEye\MediaProbe\Block; -use FileEye\MediaProbe\Model\BlockBase; use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Entry\Core\Undefined; +use FileEye\MediaProbe\Model\BlockBase; /** * Class used to hold data for a JPEG Thumbnail. diff --git a/src/Block/Tiff/Ifd.php b/src/Block/Tiff/Ifd.php index bbea2e743..944ec3ded 100644 --- a/src/Block/Tiff/Ifd.php +++ b/src/Block/Tiff/Ifd.php @@ -11,14 +11,10 @@ use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Data\DataException; use FileEye\MediaProbe\Data\DataFormat; -use FileEye\MediaProbe\Data\DataString; use FileEye\MediaProbe\Data\DataWindow; -use FileEye\MediaProbe\Entry\Core\Undefined; use FileEye\MediaProbe\ItemDefinition; use FileEye\MediaProbe\MediaProbe; use FileEye\MediaProbe\MediaProbeException; -use FileEye\MediaProbe\Model\BlockBase; -use FileEye\MediaProbe\Model\ElementInterface; use FileEye\MediaProbe\Model\EntryInterface; use FileEye\MediaProbe\Utility\ConvertBytes; @@ -160,8 +156,7 @@ protected function getItemDefinitionFromData( int $offset, int $data_offset_shift = 0, ?string $fallback_collection_id = null, - ): ItemDefinition - { + ): ItemDefinition { $id = $dataElement->getShort($offset); $format = $dataElement->getShort($offset + 2); diff --git a/src/Block/Tiff/Tag.php b/src/Block/Tiff/Tag.php index 66fda911c..4b38a5cdc 100644 --- a/src/Block/Tiff/Tag.php +++ b/src/Block/Tiff/Tag.php @@ -2,17 +2,13 @@ namespace FileEye\MediaProbe\Block\Tiff; -use FileEye\MediaProbe\Model\BlockBase; use FileEye\MediaProbe\Data\DataElement; -use FileEye\MediaProbe\Data\DataWindow; -use FileEye\MediaProbe\Model\BlockInterface; -use FileEye\MediaProbe\Model\ElementInterface; -use FileEye\MediaProbe\Model\EntryInterface; -use FileEye\MediaProbe\MediaProbe; -use FileEye\MediaProbe\MediaProbeException; use FileEye\MediaProbe\Data\DataException; use FileEye\MediaProbe\Data\DataFormat; -use FileEye\MediaProbe\ItemDefinition; +use FileEye\MediaProbe\MediaProbe; +use FileEye\MediaProbe\Model\BlockBase; +use FileEye\MediaProbe\Model\BlockInterface; +use FileEye\MediaProbe\Model\EntryInterface; use FileEye\MediaProbe\Utility\ConvertBytes; /** diff --git a/src/Collection/CollectionBase.php b/src/Collection/CollectionBase.php index c6b88774e..9e8a4420f 100644 --- a/src/Collection/CollectionBase.php +++ b/src/Collection/CollectionBase.php @@ -69,20 +69,23 @@ public function listItemIds(): array * @return mixed * The item collection index. */ - private function getItemCollectionIndex(string $item_id, ?int $components_count, ElementInterface $context): mixed - { + private function getItemCollectionIndex( + string $item_id, + ?int $components_count, + ElementInterface $context, + ): mixed { $entry_class = $this->getPropertyValue('items')[$item_id][0]['entryClass'] ?? null; return $entry_class ? $entry_class::resolveItemCollectionIndex($components_count, $context) : 0; } public function getItemCollection( - string $item, $index = 0, + string $item, + $index = 0, ?string $default_id = null, array $default_properties = [], ?int $components_count = null, ?ElementInterface $context = null, - ): CollectionInterface - { + ): CollectionInterface { if ($index === null) { if ($context === null) { $index = 0; diff --git a/src/Collection/CollectionFactory.php b/src/Collection/CollectionFactory.php index 5b14c490c..dde485e16 100644 --- a/src/Collection/CollectionFactory.php +++ b/src/Collection/CollectionFactory.php @@ -2,10 +2,6 @@ namespace FileEye\MediaProbe\Collection; -use FileEye\MediaProbe\Model\BlockBase; -use FileEye\MediaProbe\Block\Tiff\Tag; -use FileEye\MediaProbe\Model\EntryInterface; - /** * Class to retrieve metadata specification information from collections. */ diff --git a/src/Collection/CollectionInterface.php b/src/Collection/CollectionInterface.php index 38983d3e2..bdaf08059 100644 --- a/src/Collection/CollectionInterface.php +++ b/src/Collection/CollectionInterface.php @@ -46,12 +46,12 @@ public function listItemIds(): array; * When item is not in collection and no default given. */ public function getItemCollection( - string $item, - $index = 0, - ?string $default_id = null, - array $default_properties = [], - ?int $components_count = null, - ?ElementInterface $context = null, + string $item, + $index = 0, + ?string $default_id = null, + array $default_properties = [], + ?int $components_count = null, + ?ElementInterface $context = null ): CollectionInterface; /** diff --git a/src/Command/CompileCommand.php b/src/Command/CompileCommand.php index a3e81268d..47776c4e2 100644 --- a/src/Command/CompileCommand.php +++ b/src/Command/CompileCommand.php @@ -2,11 +2,11 @@ namespace FileEye\MediaProbe\Command; +use FileEye\MediaProbe\Utility\SpecCompiler; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; -use FileEye\MediaProbe\Utility\SpecCompiler; /** * A Symfony application command to compile the MediaProbe specification YAML files. diff --git a/src/Command/DumpCommand.php b/src/Command/DumpCommand.php index 24a39e506..a5f52af6d 100644 --- a/src/Command/DumpCommand.php +++ b/src/Command/DumpCommand.php @@ -2,14 +2,8 @@ namespace FileEye\MediaProbe\Command; -use FileEye\MediaProbe\Block\Jpeg\Exif; -use FileEye\MediaProbe\Block\Tiff\Ifd; -use FileEye\MediaProbe\Block\Jpeg\Jpeg; -use FileEye\MediaProbe\Block\Tiff\Tag; use FileEye\MediaProbe\Dumper\DefaultDumper; use FileEye\MediaProbe\Media; -use FileEye\MediaProbe\MediaProbe; -use FileEye\MediaProbe\Model\BlockBase; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; diff --git a/src/Data/DataElement.php b/src/Data/DataElement.php index 0fa29dd53..a4cf5d880 100644 --- a/src/Data/DataElement.php +++ b/src/Data/DataElement.php @@ -2,7 +2,6 @@ namespace FileEye\MediaProbe\Data; -use FileEye\MediaProbe\MediaProbe; use FileEye\MediaProbe\Utility\ConvertBytes; /** diff --git a/src/Data/DataFile.php b/src/Data/DataFile.php index 70ae4d69c..10d171d33 100644 --- a/src/Data/DataFile.php +++ b/src/Data/DataFile.php @@ -2,8 +2,6 @@ namespace FileEye\MediaProbe\Data; -use SplFileObject; - /** * A DataElement object holding a file's data. */ @@ -19,7 +17,7 @@ final class DataFile extends DataElement /** * The file handle. * - * @var SplFileObject + * @var \SplFileObject */ private $fileHandle; diff --git a/src/Data/DataWindow.php b/src/Data/DataWindow.php index 14507ec5e..bbf844828 100644 --- a/src/Data/DataWindow.php +++ b/src/Data/DataWindow.php @@ -2,12 +2,6 @@ namespace FileEye\MediaProbe\Data; -use FileEye\MediaProbe\Model\ElementBase; -use FileEye\MediaProbe\MediaProbe; -use FileEye\MediaProbe\MediaProbeException; -use FileEye\MediaProbe\Utility\ConvertBytes; -use Psr\Log\LoggerInterface; - /** * An object opening a window on an underlying DataElement */ diff --git a/src/Entry/Core/Byte.php b/src/Entry/Core/Byte.php index 6d4f58dea..710bd417c 100644 --- a/src/Entry/Core/Byte.php +++ b/src/Entry/Core/Byte.php @@ -2,10 +2,6 @@ namespace FileEye\MediaProbe\Entry\Core; -use FileEye\MediaProbe\Model\BlockBase; -use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataElement; - /** * Class for holding unsigned bytes. * diff --git a/src/Entry/Core/Long.php b/src/Entry/Core/Long.php index a4db70d06..57b137ec9 100644 --- a/src/Entry/Core/Long.php +++ b/src/Entry/Core/Long.php @@ -2,9 +2,6 @@ namespace FileEye\MediaProbe\Entry\Core; -use FileEye\MediaProbe\Model\BlockBase; -use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Utility\ConvertBytes; /** diff --git a/src/Entry/Core/NumberBase.php b/src/Entry/Core/NumberBase.php index d864e960d..730d64ae4 100644 --- a/src/Entry/Core/NumberBase.php +++ b/src/Entry/Core/NumberBase.php @@ -2,12 +2,8 @@ namespace FileEye\MediaProbe\Entry\Core; -use FileEye\MediaProbe\Model\EntryBase; -use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Data\DataException; -use FileEye\MediaProbe\Data\DataWindow; -use FileEye\MediaProbe\MediaProbe; -use FileEye\MediaProbe\Utility\ConvertBytes; +use FileEye\MediaProbe\Model\EntryBase; /** * Abstract class for numbers. diff --git a/src/Entry/Core/Rational.php b/src/Entry/Core/Rational.php index 1b2b31f90..cf6ff4d60 100644 --- a/src/Entry/Core/Rational.php +++ b/src/Entry/Core/Rational.php @@ -2,10 +2,6 @@ namespace FileEye\MediaProbe\Entry\Core; -use FileEye\MediaProbe\Model\BlockBase; -use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataElement; -use FileEye\MediaProbe\MediaProbe; use FileEye\MediaProbe\Utility\ConvertBytes; /** diff --git a/src/Entry/Core/Short.php b/src/Entry/Core/Short.php index 76cd7e0be..68735f4af 100644 --- a/src/Entry/Core/Short.php +++ b/src/Entry/Core/Short.php @@ -2,10 +2,6 @@ namespace FileEye\MediaProbe\Entry\Core; -use FileEye\MediaProbe\Model\BlockBase; -use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataElement; -use FileEye\MediaProbe\MediaProbe; use FileEye\MediaProbe\Utility\ConvertBytes; /** diff --git a/src/Entry/Core/ShortRev.php b/src/Entry/Core/ShortRev.php index 1016be382..035187f2b 100644 --- a/src/Entry/Core/ShortRev.php +++ b/src/Entry/Core/ShortRev.php @@ -2,10 +2,6 @@ namespace FileEye\MediaProbe\Entry\Core; -use FileEye\MediaProbe\Model\BlockBase; -use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataElement; -use FileEye\MediaProbe\MediaProbe; use FileEye\MediaProbe\Utility\ConvertBytes; /** diff --git a/src/Entry/Core/SignedByte.php b/src/Entry/Core/SignedByte.php index 4ae2c894e..df6a0651e 100644 --- a/src/Entry/Core/SignedByte.php +++ b/src/Entry/Core/SignedByte.php @@ -2,10 +2,6 @@ namespace FileEye\MediaProbe\Entry\Core; -use FileEye\MediaProbe\Model\BlockBase; -use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataElement; - /** * Class for holding signed bytes. * diff --git a/src/Entry/Core/SignedLong.php b/src/Entry/Core/SignedLong.php index 89eb6d3a7..1c989cf99 100644 --- a/src/Entry/Core/SignedLong.php +++ b/src/Entry/Core/SignedLong.php @@ -2,9 +2,6 @@ namespace FileEye\MediaProbe\Entry\Core; -use FileEye\MediaProbe\Model\BlockBase; -use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Utility\ConvertBytes; /** diff --git a/src/Entry/Core/SignedRational.php b/src/Entry/Core/SignedRational.php index d113a0d15..8aff393f4 100644 --- a/src/Entry/Core/SignedRational.php +++ b/src/Entry/Core/SignedRational.php @@ -2,10 +2,6 @@ namespace FileEye\MediaProbe\Entry\Core; -use FileEye\MediaProbe\Data\DataElement; -use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\MediaProbe; -use FileEye\MediaProbe\Model\BlockBase; use FileEye\MediaProbe\Utility\ConvertBytes; /** diff --git a/src/Entry/Core/SignedShort.php b/src/Entry/Core/SignedShort.php index 8f9a9558c..b84222407 100644 --- a/src/Entry/Core/SignedShort.php +++ b/src/Entry/Core/SignedShort.php @@ -2,9 +2,6 @@ namespace FileEye\MediaProbe\Entry\Core; -use FileEye\MediaProbe\Model\BlockBase; -use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Utility\ConvertBytes; /** diff --git a/src/Entry/Core/Undefined.php b/src/Entry/Core/Undefined.php index 9959a6dd6..025e55427 100644 --- a/src/Entry/Core/Undefined.php +++ b/src/Entry/Core/Undefined.php @@ -2,11 +2,8 @@ namespace FileEye\MediaProbe\Entry\Core; -use FileEye\MediaProbe\Model\EntryBase; -use FileEye\MediaProbe\Data\DataElement; -use FileEye\MediaProbe\ItemDefinition; use FileEye\MediaProbe\MediaProbe; -use FileEye\MediaProbe\Utility\ConvertBytes; +use FileEye\MediaProbe\Model\EntryBase; /** * Class for holding data of undefined format. diff --git a/src/Entry/ExifApertureValue.php b/src/Entry/ExifApertureValue.php index a6af288ae..9d4e38f22 100644 --- a/src/Entry/ExifApertureValue.php +++ b/src/Entry/ExifApertureValue.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry; use FileEye\MediaProbe\Entry\Core\Rational; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Exif ApertureValue tags. @@ -29,6 +28,6 @@ public function getValue(array $options = []): mixed */ public function toString(array $options = []): string { - return MediaProbe::fmt('%.01f', pow(2, $this->getValue() / 2)); + return sprintf('%.01f', pow(2, $this->getValue() / 2)); } } diff --git a/src/Entry/ExifCFAPattern.php b/src/Entry/ExifCFAPattern.php index 76d825d17..12e4f8bc7 100644 --- a/src/Entry/ExifCFAPattern.php +++ b/src/Entry/ExifCFAPattern.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry; use FileEye\MediaProbe\Entry\Core\Undefined; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Color Filter Array (CFA) pattern tags. diff --git a/src/Entry/ExifComponentsConfiguration.php b/src/Entry/ExifComponentsConfiguration.php index 6cbc65feb..aa1e90c2c 100644 --- a/src/Entry/ExifComponentsConfiguration.php +++ b/src/Entry/ExifComponentsConfiguration.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry; use FileEye\MediaProbe\Entry\Core\Undefined; -use FileEye\MediaProbe\MediaProbe; /** * Decode text for an Exif/ComponentsConfiguration tag. diff --git a/src/Entry/ExifExposureTime.php b/src/Entry/ExifExposureTime.php index 2b9dcdf78..011b0ee16 100644 --- a/src/Entry/ExifExposureTime.php +++ b/src/Entry/ExifExposureTime.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry; use FileEye\MediaProbe\Entry\Core\Rational; -use FileEye\MediaProbe\MediaProbe; /** * Decode text for an Exif/ExposureTime tag. @@ -24,9 +23,9 @@ public function toString(array $options = []): string $sec = ($options['short'] ?? false) ? '' : ' sec.'; if ($this->getValue() < 1) { - return MediaProbe::fmt('1/%d%s', $this->dataElement->getLong(4) / $this->dataElement->getLong(0), $sec); + return sprintf('1/%d%s', $this->dataElement->getLong(4) / $this->dataElement->getLong(0), $sec); } else { - return MediaProbe::fmt('%d%s', $this->getValue(), $sec); + return sprintf('%d%s', $this->getValue(), $sec); } } } diff --git a/src/Entry/ExifFNumber.php b/src/Entry/ExifFNumber.php index 225ad7aed..63bd087a6 100644 --- a/src/Entry/ExifFNumber.php +++ b/src/Entry/ExifFNumber.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry; use FileEye\MediaProbe\Entry\Core\Rational; -use FileEye\MediaProbe\MediaProbe; /** * Decode text for an Exif/FNumber tag. @@ -16,6 +15,6 @@ class ExifFNumber extends Rational public function toString(array $options = []): string { $f = ($options['short'] ?? false || ($options['format'] ?? null) === 'exiftool') ? '' : 'f/'; - return MediaProbe::fmt('%s%.01f', $f, $this->getValue()); + return sprintf('%s%.01f', $f, $this->getValue()); } } diff --git a/src/Entry/ExifFocalLength.php b/src/Entry/ExifFocalLength.php index 166c0e0cb..961ad5d1a 100644 --- a/src/Entry/ExifFocalLength.php +++ b/src/Entry/ExifFocalLength.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry; use FileEye\MediaProbe\Entry\Core\Rational; -use FileEye\MediaProbe\MediaProbe; /** * Decode text for an Exif/FocalLength tag. @@ -15,6 +14,6 @@ class ExifFocalLength extends Rational */ public function toString(array $options = []): string { - return MediaProbe::fmt('%.1f mm', $this->getValue()); + return sprintf('%.1f mm', $this->getValue()); } } diff --git a/src/Entry/ExifMakerNote.php b/src/Entry/ExifMakerNote.php index e1bc34bd2..6dc27fb5c 100644 --- a/src/Entry/ExifMakerNote.php +++ b/src/Entry/ExifMakerNote.php @@ -2,10 +2,7 @@ namespace FileEye\MediaProbe\Entry; -use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Entry\Core\Undefined; -use FileEye\MediaProbe\Utility\ConvertBytes; /** * Class used to hold data for MakerNote tags. diff --git a/src/Entry/ExifShutterSpeedValue.php b/src/Entry/ExifShutterSpeedValue.php index 4b34331db..63a710855 100644 --- a/src/Entry/ExifShutterSpeedValue.php +++ b/src/Entry/ExifShutterSpeedValue.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry; use FileEye\MediaProbe\Entry\Core\SignedRational; -use FileEye\MediaProbe\MediaProbe; /** * Decode text for an Exif/ShutterSpeedValue tag. @@ -38,13 +37,13 @@ public function toString(array $options = []): string $val = $this->dataElement->getSignedRationalFloat(); $val = abs($val) < 100 ? pow(2, -$val) : 0; if ($val < 0.25001 && $val > 0) { - return MediaProbe::fmt("1/%d", (int) (0.5 + 1 / $val)); + return sprintf("1/%d", (int) (0.5 + 1 / $val)); } else { - $val = MediaProbe::fmt("%.1f", $val); + $val = sprintf("%.1f", $val); return preg_replace('/\.0$/', '', $val); } } else { - return MediaProbe::fmt('%.0f/%.0f sec. (APEX: %d)', $this->dataElement->getSignedLong(0), $this->dataElement->getSignedLong(4), pow(sqrt(2), $this->dataElement->getSignedRationalFloat())); + return sprintf('%.0f/%.0f sec. (APEX: %d)', $this->dataElement->getSignedLong(0), $this->dataElement->getSignedLong(4), pow(sqrt(2), $this->dataElement->getSignedRationalFloat())); } } } diff --git a/src/Entry/ExifSubjectArea.php b/src/Entry/ExifSubjectArea.php index 8e49cb099..aa901e77f 100644 --- a/src/Entry/ExifSubjectArea.php +++ b/src/Entry/ExifSubjectArea.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry; use FileEye\MediaProbe\Entry\Core\Short; -use FileEye\MediaProbe\MediaProbe; /** * Decode text for an Exif/SubjectArea tag. @@ -21,13 +20,13 @@ public function toString(array $options = []): string } else { switch ($this->getComponents()) { case 2: - return MediaProbe::fmt('(x,y) = (%d,%d)', $val[0], $val[1]); + return sprintf('(x,y) = (%d,%d)', $val[0], $val[1]); case 3: - return MediaProbe::fmt('Within distance %d of (x,y) = (%d,%d)', $val[0], $val[1], $val[2]); + return sprintf('Within distance %d of (x,y) = (%d,%d)', $val[0], $val[1], $val[2]); case 4: - return MediaProbe::fmt('Within rectangle (width %d, height %d) around (x,y) = (%d,%d)', $val[0], $val[1], $val[2], $val[3]); + return sprintf('Within rectangle (width %d, height %d) around (x,y) = (%d,%d)', $val[0], $val[1], $val[2], $val[3]); default: - return MediaProbe::fmt('Unexpected number of components (%d, expected 2, 3, or 4).', $this->getComponents()); + return sprintf('Unexpected number of components (%d, expected 2, 3, or 4).', $this->getComponents()); } } } diff --git a/src/Entry/ExifSubjectDistance.php b/src/Entry/ExifSubjectDistance.php index b5fd8eee3..3461b6392 100644 --- a/src/Entry/ExifSubjectDistance.php +++ b/src/Entry/ExifSubjectDistance.php @@ -3,18 +3,14 @@ namespace FileEye\MediaProbe\Entry; use FileEye\MediaProbe\Entry\Core\Rational; -use FileEye\MediaProbe\MediaProbe; /** * Decode text for an Exif/SubjectDistance tag. */ class ExifSubjectDistance extends Rational { - /** - * {@inheritdoc} - */ public function toString(array $options = []): string { - return MediaProbe::fmt('%.1f m', $this->getValue()); + return sprintf('%.1f m', $this->getValue()); } } diff --git a/src/Entry/ExifTrait.php b/src/Entry/ExifTrait.php index c1fab45c4..5166fb8b4 100644 --- a/src/Entry/ExifTrait.php +++ b/src/Entry/ExifTrait.php @@ -2,8 +2,6 @@ namespace FileEye\MediaProbe\Entry; -use FileEye\MediaProbe\MediaProbe; - /** * Common functions for Exif decoding. */ @@ -76,9 +74,9 @@ protected function fractionToString($val) protected function exposureTimeToString($val) { if ($val < 0.25001 and $val > 0) { - return MediaProbe::fmt("1/%d", (int) (0.5 + 1 / $val)); + return sprintf("1/%d", (int) (0.5 + 1 / $val)); } - return MediaProbe::fmt("%.1f", $val); + return sprintf("%.1f", $val); } /** diff --git a/src/Entry/ExifUserComment.php b/src/Entry/ExifUserComment.php index 7e8dcb2ed..9249dd215 100644 --- a/src/Entry/ExifUserComment.php +++ b/src/Entry/ExifUserComment.php @@ -2,12 +2,7 @@ namespace FileEye\MediaProbe\Entry; -use FileEye\MediaProbe\Model\BlockBase; -use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Entry\Core\Undefined; -use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\MediaProbe; -use FileEye\MediaProbe\Utility\ConvertBytes; /** * Class for an EXIF user comment. diff --git a/src/Entry/IfdCopyright.php b/src/Entry/IfdCopyright.php index 94c00d84a..5854bd506 100644 --- a/src/Entry/IfdCopyright.php +++ b/src/Entry/IfdCopyright.php @@ -2,11 +2,7 @@ namespace FileEye\MediaProbe\Entry; -use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Entry\Core\Ascii; -use FileEye\MediaProbe\MediaProbe; -use FileEye\MediaProbe\Utility\ConvertBytes; /** * Class for holding copyright information. diff --git a/src/Entry/Time.php b/src/Entry/Time.php index 14b38b79f..43298b4c7 100644 --- a/src/Entry/Time.php +++ b/src/Entry/Time.php @@ -2,12 +2,8 @@ namespace FileEye\MediaProbe\Entry; -use FileEye\MediaProbe\Data\DataElement; -use FileEye\MediaProbe\Data\DataWindow; use FileEye\MediaProbe\Entry\Core\Ascii; -use FileEye\MediaProbe\MediaProbe; use FileEye\MediaProbe\MediaProbeException; -use FileEye\MediaProbe\Utility\ConvertBytes; use FileEye\MediaProbe\Utility\ConvertTime; /** @@ -72,7 +68,7 @@ protected function validateDataElement(): void * @param array $options * (Optional) an array of options to format the value. * - * @return mixed + * @return mixed * The timestamp held by this entry in the correct form as indicated by the 'type' option. * For UNIX_TIMESTAMP this is an integer counting the number of seconds since January 1st * 1970, for EXIF_STRING this is a string of the form 'YYYY:MM:DD hh:mm:ss', and for diff --git a/src/Entry/Vendor/Canon/Exif/ApertureValue.php b/src/Entry/Vendor/Canon/Exif/ApertureValue.php index 0be44d637..217461961 100644 --- a/src/Entry/Vendor/Canon/Exif/ApertureValue.php +++ b/src/Entry/Vendor/Canon/Exif/ApertureValue.php @@ -4,7 +4,6 @@ use FileEye\MediaProbe\Entry\Core\SignedShort; use FileEye\MediaProbe\Entry\ExifTrait; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon ApertureValue tags. diff --git a/src/Entry/Vendor/Canon/Exif/AutoIso.php b/src/Entry/Vendor/Canon/Exif/AutoIso.php index a4f087e26..ca126150f 100644 --- a/src/Entry/Vendor/Canon/Exif/AutoIso.php +++ b/src/Entry/Vendor/Canon/Exif/AutoIso.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif; use FileEye\MediaProbe\Entry\Core\SignedShort; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon Auto ISO tags. diff --git a/src/Entry/Vendor/Canon/Exif/BaseIso.php b/src/Entry/Vendor/Canon/Exif/BaseIso.php index 7dadabc51..0eb1e2a00 100644 --- a/src/Entry/Vendor/Canon/Exif/BaseIso.php +++ b/src/Entry/Vendor/Canon/Exif/BaseIso.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif; use FileEye\MediaProbe\Entry\Core\SignedShort; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon Base ISO tags. diff --git a/src/Entry/Vendor/Canon/Exif/BulbDuration.php b/src/Entry/Vendor/Canon/Exif/BulbDuration.php index 4c1547857..33738205f 100644 --- a/src/Entry/Vendor/Canon/Exif/BulbDuration.php +++ b/src/Entry/Vendor/Canon/Exif/BulbDuration.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif; use FileEye\MediaProbe\Entry\Core\SignedShort; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon Bulb Duration tags. diff --git a/src/Entry/Vendor/Canon/Exif/CameraISO.php b/src/Entry/Vendor/Canon/Exif/CameraISO.php index 7a7fb50b2..539833d39 100644 --- a/src/Entry/Vendor/Canon/Exif/CameraISO.php +++ b/src/Entry/Vendor/Canon/Exif/CameraISO.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif; use FileEye\MediaProbe\Entry\Core\SignedShort; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon Camera ISO tags. diff --git a/src/Entry/Vendor/Canon/Exif/CameraInfo/DirectoryIndex.php b/src/Entry/Vendor/Canon/Exif/CameraInfo/DirectoryIndex.php index a19b56235..d472c8211 100644 --- a/src/Entry/Vendor/Canon/Exif/CameraInfo/DirectoryIndex.php +++ b/src/Entry/Vendor/Canon/Exif/CameraInfo/DirectoryIndex.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif\CameraInfo; use FileEye\MediaProbe\Entry\Core\Long; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon Directory Index tags. diff --git a/src/Entry/Vendor/Canon/Exif/CameraInfo/ExposureTime.php b/src/Entry/Vendor/Canon/Exif/CameraInfo/ExposureTime.php index 954d48c12..1e5611ae9 100644 --- a/src/Entry/Vendor/Canon/Exif/CameraInfo/ExposureTime.php +++ b/src/Entry/Vendor/Canon/Exif/CameraInfo/ExposureTime.php @@ -4,7 +4,6 @@ use FileEye\MediaProbe\Entry\Core\Byte; use FileEye\MediaProbe\Entry\ExifTrait; -use FileEye\MediaProbe\MediaProbe; /** * Common handler for Canon ExposureTime tags. diff --git a/src/Entry/Vendor/Canon/Exif/CameraInfo/FileIndex.php b/src/Entry/Vendor/Canon/Exif/CameraInfo/FileIndex.php index ac54f20d3..dffc195fa 100644 --- a/src/Entry/Vendor/Canon/Exif/CameraInfo/FileIndex.php +++ b/src/Entry/Vendor/Canon/Exif/CameraInfo/FileIndex.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif\CameraInfo; use FileEye\MediaProbe\Entry\Core\Long; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon File Index tags. diff --git a/src/Entry/Vendor/Canon/Exif/CameraInfo/FocusDistance.php b/src/Entry/Vendor/Canon/Exif/CameraInfo/FocusDistance.php index 135fda5b9..f50adb21b 100644 --- a/src/Entry/Vendor/Canon/Exif/CameraInfo/FocusDistance.php +++ b/src/Entry/Vendor/Canon/Exif/CameraInfo/FocusDistance.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif\CameraInfo; use FileEye\MediaProbe\Entry\Core\ShortRev; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon Focus Distance tags. diff --git a/src/Entry/Vendor/Canon/Exif/CameraInfo/LensSerialNumber.php b/src/Entry/Vendor/Canon/Exif/CameraInfo/LensSerialNumber.php index 433f18f0b..0f65e70af 100644 --- a/src/Entry/Vendor/Canon/Exif/CameraInfo/LensSerialNumber.php +++ b/src/Entry/Vendor/Canon/Exif/CameraInfo/LensSerialNumber.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif\CameraInfo; use FileEye\MediaProbe\Entry\Core\Undefined; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon Lens Serial Number tags. diff --git a/src/Entry/Vendor/Canon/Exif/CameraInfo/ShutterCount.php b/src/Entry/Vendor/Canon/Exif/CameraInfo/ShutterCount.php index 85c205b10..b6f2bac6b 100644 --- a/src/Entry/Vendor/Canon/Exif/CameraInfo/ShutterCount.php +++ b/src/Entry/Vendor/Canon/Exif/CameraInfo/ShutterCount.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif\CameraInfo; use FileEye\MediaProbe\Entry\Core\Long; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon File Index tags. diff --git a/src/Entry/Vendor/Canon/Exif/CameraInfo/Timestamp.php b/src/Entry/Vendor/Canon/Exif/CameraInfo/Timestamp.php index 2cc47a1fd..5e3a5f5f5 100644 --- a/src/Entry/Vendor/Canon/Exif/CameraInfo/Timestamp.php +++ b/src/Entry/Vendor/Canon/Exif/CameraInfo/Timestamp.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif\CameraInfo; use FileEye\MediaProbe\Entry\Core\Long; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon Directory Index tags. diff --git a/src/Entry/Vendor/Canon/Exif/CameraSettingsLensType.php b/src/Entry/Vendor/Canon/Exif/CameraSettingsLensType.php index 253843069..39dfb14d7 100644 --- a/src/Entry/Vendor/Canon/Exif/CameraSettingsLensType.php +++ b/src/Entry/Vendor/Canon/Exif/CameraSettingsLensType.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif; use FileEye\MediaProbe\Entry\Core\Short; -use FileEye\MediaProbe\MediaProbe; /** * Decoder for Canon CameraSettings Lens Type tags. diff --git a/src/Entry/Vendor/Canon/Exif/CameraTemperature.php b/src/Entry/Vendor/Canon/Exif/CameraTemperature.php index 4b2de27a5..2ddd659d5 100644 --- a/src/Entry/Vendor/Canon/Exif/CameraTemperature.php +++ b/src/Entry/Vendor/Canon/Exif/CameraTemperature.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif; use FileEye\MediaProbe\Entry\Core\SignedShort; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon Camera Temperature tags. diff --git a/src/Entry/Vendor/Canon/Exif/DisplayAperture.php b/src/Entry/Vendor/Canon/Exif/DisplayAperture.php index c6fd9aa9e..cb4023b2c 100644 --- a/src/Entry/Vendor/Canon/Exif/DisplayAperture.php +++ b/src/Entry/Vendor/Canon/Exif/DisplayAperture.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif; use FileEye\MediaProbe\Entry\Core\SignedShort; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon Display Aperture tags. diff --git a/src/Entry/Vendor/Canon/Exif/ExposureCompensation.php b/src/Entry/Vendor/Canon/Exif/ExposureCompensation.php index d990b83b6..55d9207c5 100644 --- a/src/Entry/Vendor/Canon/Exif/ExposureCompensation.php +++ b/src/Entry/Vendor/Canon/Exif/ExposureCompensation.php @@ -4,7 +4,6 @@ use FileEye\MediaProbe\Entry\Core\SignedShort; use FileEye\MediaProbe\Entry\ExifTrait; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon Exposure Compensation tags. diff --git a/src/Entry/Vendor/Canon/Exif/ExposureTime.php b/src/Entry/Vendor/Canon/Exif/ExposureTime.php index a52dae801..2a3c7510e 100644 --- a/src/Entry/Vendor/Canon/Exif/ExposureTime.php +++ b/src/Entry/Vendor/Canon/Exif/ExposureTime.php @@ -4,7 +4,6 @@ use FileEye\MediaProbe\Entry\Core\SignedShort; use FileEye\MediaProbe\Entry\ExifTrait; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon Exposure Time tags. diff --git a/src/Entry/Vendor/Canon/Exif/FLFocalLength.php b/src/Entry/Vendor/Canon/Exif/FLFocalLength.php index 410036ede..1218d7f28 100644 --- a/src/Entry/Vendor/Canon/Exif/FLFocalLength.php +++ b/src/Entry/Vendor/Canon/Exif/FLFocalLength.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif; use FileEye\MediaProbe\Entry\Core\Short; -use FileEye\MediaProbe\MediaProbe; use FileEye\MediaProbe\MediaProbeException; /** diff --git a/src/Entry/Vendor/Canon/Exif/FileNumber.php b/src/Entry/Vendor/Canon/Exif/FileNumber.php index 5d4223bbb..d0913c02f 100644 --- a/src/Entry/Vendor/Canon/Exif/FileNumber.php +++ b/src/Entry/Vendor/Canon/Exif/FileNumber.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif; use FileEye\MediaProbe\Entry\Core\Long; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon File Number tags. diff --git a/src/Entry/Vendor/Canon/Exif/FocalLength.php b/src/Entry/Vendor/Canon/Exif/FocalLength.php index 707e9ce4d..8c9429964 100644 --- a/src/Entry/Vendor/Canon/Exif/FocalLength.php +++ b/src/Entry/Vendor/Canon/Exif/FocalLength.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif; use FileEye\MediaProbe\Entry\Core\Short; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon Camera ISO tags. diff --git a/src/Entry/Vendor/Canon/Exif/FocalPlaneSize.php b/src/Entry/Vendor/Canon/Exif/FocalPlaneSize.php index a13ed99c3..c9d5db2f5 100644 --- a/src/Entry/Vendor/Canon/Exif/FocalPlaneSize.php +++ b/src/Entry/Vendor/Canon/Exif/FocalPlaneSize.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif; use FileEye\MediaProbe\Entry\Core\Short; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon Focal Plane tags. diff --git a/src/Entry/Vendor/Canon/Exif/FocusDistance.php b/src/Entry/Vendor/Canon/Exif/FocusDistance.php index 7023badfa..bfef66a4f 100644 --- a/src/Entry/Vendor/Canon/Exif/FocusDistance.php +++ b/src/Entry/Vendor/Canon/Exif/FocusDistance.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif; use FileEye\MediaProbe\Entry\Core\Short; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon Focus Distance tags. diff --git a/src/Entry/Vendor/Canon/Exif/Functions2/AEBShotCount.php b/src/Entry/Vendor/Canon/Exif/Functions2/AEBShotCount.php index 851ffa4ef..aaf767b6f 100644 --- a/src/Entry/Vendor/Canon/Exif/Functions2/AEBShotCount.php +++ b/src/Entry/Vendor/Canon/Exif/Functions2/AEBShotCount.php @@ -2,8 +2,8 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif\Functions2; -use FileEye\MediaProbe\Model\ElementInterface; use FileEye\MediaProbe\Entry\Core\SignedLong; +use FileEye\MediaProbe\Model\ElementInterface; /** * Handler for CanonCustom AEBShotCount tags. diff --git a/src/Entry/Vendor/Canon/Exif/Functions2/AFPointDisplayDuringFocus.php b/src/Entry/Vendor/Canon/Exif/Functions2/AFPointDisplayDuringFocus.php index 0e80509be..f6041a428 100644 --- a/src/Entry/Vendor/Canon/Exif/Functions2/AFPointDisplayDuringFocus.php +++ b/src/Entry/Vendor/Canon/Exif/Functions2/AFPointDisplayDuringFocus.php @@ -2,8 +2,8 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif\Functions2; -use FileEye\MediaProbe\Model\ElementInterface; use FileEye\MediaProbe\Entry\Core\SignedLong; +use FileEye\MediaProbe\Model\ElementInterface; /** * Handler for CanonCustom AFPointDisplayDuringFocus tags. diff --git a/src/Entry/Vendor/Canon/Exif/Functions2/ExposureLevelIncrements.php b/src/Entry/Vendor/Canon/Exif/Functions2/ExposureLevelIncrements.php index db9e1b5d1..c59e6bdd9 100644 --- a/src/Entry/Vendor/Canon/Exif/Functions2/ExposureLevelIncrements.php +++ b/src/Entry/Vendor/Canon/Exif/Functions2/ExposureLevelIncrements.php @@ -2,8 +2,8 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif\Functions2; -use FileEye\MediaProbe\Model\ElementInterface; use FileEye\MediaProbe\Entry\Core\SignedLong; +use FileEye\MediaProbe\Model\ElementInterface; /** * Handler for CanonCustom ExposureLevelIncrements tags. diff --git a/src/Entry/Vendor/Canon/Exif/Functions2/FocusingScreen.php b/src/Entry/Vendor/Canon/Exif/Functions2/FocusingScreen.php index 62f5bfab7..70bc9101b 100644 --- a/src/Entry/Vendor/Canon/Exif/Functions2/FocusingScreen.php +++ b/src/Entry/Vendor/Canon/Exif/Functions2/FocusingScreen.php @@ -2,8 +2,8 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif\Functions2; -use FileEye\MediaProbe\Model\ElementInterface; use FileEye\MediaProbe\Entry\Core\SignedLong; +use FileEye\MediaProbe\Model\ElementInterface; /** * Handler for CanonCustom FocusingScreen tags. diff --git a/src/Entry/Vendor/Canon/Exif/Functions2/HighISONoiseReduction.php b/src/Entry/Vendor/Canon/Exif/Functions2/HighISONoiseReduction.php index 11c725470..5ebedf8b1 100644 --- a/src/Entry/Vendor/Canon/Exif/Functions2/HighISONoiseReduction.php +++ b/src/Entry/Vendor/Canon/Exif/Functions2/HighISONoiseReduction.php @@ -2,8 +2,8 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif\Functions2; -use FileEye\MediaProbe\Model\ElementInterface; use FileEye\MediaProbe\Entry\Core\SignedLong; +use FileEye\MediaProbe\Model\ElementInterface; /** * Handler for CanonCustom HighISONoiseReduction tags. diff --git a/src/Entry/Vendor/Canon/Exif/Functions2/SelectableAFPoint.php b/src/Entry/Vendor/Canon/Exif/Functions2/SelectableAFPoint.php index 092609f05..dda88fc5b 100644 --- a/src/Entry/Vendor/Canon/Exif/Functions2/SelectableAFPoint.php +++ b/src/Entry/Vendor/Canon/Exif/Functions2/SelectableAFPoint.php @@ -2,8 +2,8 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif\Functions2; -use FileEye\MediaProbe\Model\ElementInterface; use FileEye\MediaProbe\Entry\Core\SignedLong; +use FileEye\MediaProbe\Model\ElementInterface; /** * Handler for CanonCustom SelectableAFPoint tags. diff --git a/src/Entry/Vendor/Canon/Exif/Functions2/TimerLength.php b/src/Entry/Vendor/Canon/Exif/Functions2/TimerLength.php index e5916ebd6..1bb6b7d88 100644 --- a/src/Entry/Vendor/Canon/Exif/Functions2/TimerLength.php +++ b/src/Entry/Vendor/Canon/Exif/Functions2/TimerLength.php @@ -2,8 +2,8 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif\Functions2; -use FileEye\MediaProbe\Model\ElementInterface; use FileEye\MediaProbe\Entry\Core\SignedLong; +use FileEye\MediaProbe\Model\ElementInterface; /** * Handler for CanonCustom TimerLength tags. @@ -29,8 +29,7 @@ public function toString(array $options = []): string $ret[] = '16 s: ' . $val[2]; $ret[] = 'After release: ' . $val[3]; return implode('; ', $ret); - } - else { + } else { $ret = []; $ret[] = '6 s: ' . $val[1]; $ret[] = '16 s: ' . $val[2]; diff --git a/src/Entry/Vendor/Canon/Exif/ImageUniqueID.php b/src/Entry/Vendor/Canon/Exif/ImageUniqueID.php index 6eb6a75fe..60abfe3fa 100644 --- a/src/Entry/Vendor/Canon/Exif/ImageUniqueID.php +++ b/src/Entry/Vendor/Canon/Exif/ImageUniqueID.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif; use FileEye\MediaProbe\Entry\Core\Byte; -use FileEye\MediaProbe\MediaProbe; /** * Common handler for Canon ImageUniqueID tags. diff --git a/src/Entry/Vendor/Canon/Exif/MeasuredEV.php b/src/Entry/Vendor/Canon/Exif/MeasuredEV.php index 35b5b6270..69a9bd3bf 100644 --- a/src/Entry/Vendor/Canon/Exif/MeasuredEV.php +++ b/src/Entry/Vendor/Canon/Exif/MeasuredEV.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif; use FileEye\MediaProbe\Entry\Core\SignedShort; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon Measured EV tags. diff --git a/src/Entry/Vendor/Canon/Exif/MeasuredEV2.php b/src/Entry/Vendor/Canon/Exif/MeasuredEV2.php index d3ae448a3..dd60195cb 100644 --- a/src/Entry/Vendor/Canon/Exif/MeasuredEV2.php +++ b/src/Entry/Vendor/Canon/Exif/MeasuredEV2.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif; use FileEye\MediaProbe\Entry\Core\SignedShort; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon MeasuredEV2 tags. diff --git a/src/Entry/Vendor/Canon/Exif/ProcessingWhiteBalance.php b/src/Entry/Vendor/Canon/Exif/ProcessingWhiteBalance.php index 186a72d3c..964b691d7 100644 --- a/src/Entry/Vendor/Canon/Exif/ProcessingWhiteBalance.php +++ b/src/Entry/Vendor/Canon/Exif/ProcessingWhiteBalance.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif; use FileEye\MediaProbe\Entry\Core\SignedShort; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon Processing WhiteBalance tags. diff --git a/src/Entry/Vendor/Canon/Exif/RawMeasuredRGGB.php b/src/Entry/Vendor/Canon/Exif/RawMeasuredRGGB.php index 7a2cac6a7..8487eaf49 100644 --- a/src/Entry/Vendor/Canon/Exif/RawMeasuredRGGB.php +++ b/src/Entry/Vendor/Canon/Exif/RawMeasuredRGGB.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif; use FileEye\MediaProbe\Entry\Core\Long; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon RawMeasuredRGGB tags. diff --git a/src/Entry/Vendor/Canon/Exif/Sharpness.php b/src/Entry/Vendor/Canon/Exif/Sharpness.php index 9fe737883..07e629ce7 100644 --- a/src/Entry/Vendor/Canon/Exif/Sharpness.php +++ b/src/Entry/Vendor/Canon/Exif/Sharpness.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif; use FileEye\MediaProbe\Entry\Core\SignedShort; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon Sharpness tags. diff --git a/src/Entry/Vendor/Canon/Exif/ShotInfo/AFPointsInFocus.php b/src/Entry/Vendor/Canon/Exif/ShotInfo/AFPointsInFocus.php index 30bb40c3b..1ff044a9f 100644 --- a/src/Entry/Vendor/Canon/Exif/ShotInfo/AFPointsInFocus.php +++ b/src/Entry/Vendor/Canon/Exif/ShotInfo/AFPointsInFocus.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Entry\Vendor\Canon\Exif\ShotInfo; use FileEye\MediaProbe\Entry\Core\SignedShort; -use FileEye\MediaProbe\MediaProbe; /** * Handler for Canon ShotInfo AFPointsInFocus tags. diff --git a/src/Entry/Version.php b/src/Entry/Version.php index bbce0eb19..657d36475 100644 --- a/src/Entry/Version.php +++ b/src/Entry/Version.php @@ -2,13 +2,7 @@ namespace FileEye\MediaProbe\Entry; -use FileEye\MediaProbe\Model\BlockBase; -use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataElement; -use FileEye\MediaProbe\Model\EntryInterface; use FileEye\MediaProbe\Entry\Core\Undefined; -use FileEye\MediaProbe\MediaProbe; -use FileEye\MediaProbe\Utility\ConvertBytes; /** * Class to hold version information. diff --git a/src/Entry/WindowsString.php b/src/Entry/WindowsString.php index 9aba1c225..725ff02c7 100644 --- a/src/Entry/WindowsString.php +++ b/src/Entry/WindowsString.php @@ -2,12 +2,7 @@ namespace FileEye\MediaProbe\Entry; -use FileEye\MediaProbe\Model\BlockBase; -use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Model\EntryBase; -use FileEye\MediaProbe\MediaProbe; -use FileEye\MediaProbe\Utility\ConvertBytes; /** * Class used to manipulate strings in the format Windows XP uses. diff --git a/src/Media.php b/src/Media.php index c9b2aea24..39ac87ce8 100644 --- a/src/Media.php +++ b/src/Media.php @@ -5,20 +5,16 @@ namespace FileEye\MediaProbe; use FileEye\MediaProbe\Collection\CollectionFactory; -use FileEye\MediaProbe\Collection\CollectionInterface; use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Data\DataFile; -use FileEye\MediaProbe\Data\DataString; use FileEye\MediaProbe\Model\BlockInterface; use FileEye\MediaProbe\Model\RootBlockBase; -use FileEye\MediaProbe\Utility\ConvertBytes; use FileEye\MimeMap\Extension; use FileEye\MimeMap\MappingException; use Monolog\Handler\TestHandler; use Monolog\Level; use Monolog\Logger; use Monolog\Processor\PsrLogMessageProcessor; -use PrettyXml\Formatter; use Psr\Log\LoggerInterface; use Symfony\Component\Stopwatch\Stopwatch; @@ -30,31 +26,6 @@ */ class Media extends RootBlockBase { - /** - * The internal Monolog logger instance for this Media object. - */ - protected Logger $logger; - - /** - * The minimum log level for failure. - * - * MediaProbe normally intercepts and logs media parsing issues without - * breaking the flow. However it is possible to enable hard failures by - * defining the minimum log level at which the parsing process will break - * and throw an MediaProbeException. - */ - protected ?Level $failLevel; - - /** - * An XML prettify formatter. - */ - protected Formatter $xmlFormatter; - - /** - * A Symfony stopwatch. - */ - private Stopwatch $stopWatch; - /** * Constructs a Media object. * @@ -67,15 +38,14 @@ class Media extends RootBlockBase * media parsing to stop. */ public function __construct( - protected ?LoggerInterface $externalLogger, + ?LoggerInterface $externalLogger, ?string $failLevel, ) { $media = new ItemDefinition(CollectionFactory::get('Media')); - parent::__construct($media); + parent::__construct($media, $failLevel ? Logger::toMonologLevel($failLevel) : null, $externalLogger); $this->logger = (new Logger('mediaprobe')) ->pushHandler(new TestHandler(Level::Info)) ->pushProcessor(new PsrLogMessageProcessor()); - $this->failLevel = $failLevel ? Logger::toMonologLevel($failLevel) : null; $this->stopWatch = new Stopwatch(); } @@ -96,22 +66,20 @@ public static function parseFromFile( string $path, ?LoggerInterface $externalLogger = null, ?string $failLevel = null, - ): Media - { + ): Media { // Find the most likely MIME type given the file extension. $extension = ''; $typeHints = []; $fileParts = explode('.', basename($path)); - while (array_shift($fileParts) !== NULL) { - $extension = strtolower(implode('.', $fileParts)); - $mimeMapExtension = new Extension($extension); - try { - $typeHints = $mimeMapExtension->getTypes(); - break; - } - catch (MappingException $e) { - continue; - } + while (array_shift($fileParts) !== null) { + $extension = strtolower(implode('.', $fileParts)); + $mimeMapExtension = new Extension($extension); + try { + $typeHints = $mimeMapExtension->getTypes(); + break; + } catch (MappingException $e) { + continue; + } } // @todo lock file while reading, capture fstats to prevent overwrites. @@ -139,8 +107,7 @@ public static function parse( array $typeHints = [], ?LoggerInterface $externalLogger = null, ?string $failLevel = null, - ): Media - { + ): Media { $media = new Media($externalLogger, $failLevel); $media->getStopwatch()->start('media-parsing'); @@ -194,48 +161,6 @@ public function saveToFile(string $path): int return $size; } - /** - * Returns the DOM structure of the Media object as an XML string. - * - * @param bool $pretty - * TRUE if the XML should be prettified. - */ - public function toXml(bool $pretty = false): string - { - if ($pretty && !$this->xmlFormatter) { - $this->xmlFormatter = new Formatter(); - } - $xml = $this->DOMNode->ownerDocument->saveXML(); - return $pretty ? $this->xmlFormatter->format($xml) : $xml; - } - - /** - * Returns the log entries of the Media object. - * - * @param string $level_name - * (Optional) If specified, filters only the entries of the specified severity level. - * - * @return array - * An array of Monolog entries. - */ - public function dumpLog(?string $level_name = null): array - { - $handler = $this->logger->getHandlers()[0]; - assert($handler instanceof TestHandler); - $ret = []; - foreach ($handler->getRecords() as $record) { - if (($level_name && $record['level_name'] === $level_name) || !$level_name) { - $ret[] = $record; - } - } - return $ret; - } - - public function getStopwatch(): Stopwatch - { - return $this->stopWatch; - } - public function collectInfo(array $context = []): array { $info = parent::collectInfo($context); diff --git a/src/MediaProbe.php b/src/MediaProbe.php index bc073c753..a2977d067 100644 --- a/src/MediaProbe.php +++ b/src/MediaProbe.php @@ -4,57 +4,16 @@ use Composer\InstalledVersions; -/** - * Class with miscellaneous static methods. - * - * This class contains various methods that govern the overall behavior of - * MediaProbe. - * - * Debugging output from MediaProbe can be turned on and off by assigning true or - * false to {@link MediaProbe::$debug}. - * - * @author Martin Geisler - */ class MediaProbe { /** * Returns the current version of MediaProbe. - * - * @return string - * the current version of MediaProbe. */ public static function version(): string { return InstalledVersions::getPrettyVersion('fileeye/mediaprobe'); } - /** - * Translate and format a string. - * - * This static function will first use Gettext to translate a format - * string, which will then have access to any extra arguments. By - * always using this function for dynamic string one is assured that - * the translation will be taken from the correct text domain. If - * the string is static, use {@link tra} instead as it will be - * faster. - * - * @param string $format - * the format string. This will be translated - * before being used as a format string. - * - * @param mixed ...$args - * any number of arguments can be given. The - * arguments will be available for the format string as usual with - * sprintf(). - * - * @return string the translated string, or the original string if - * no translation could be found. - */ - public static function fmt(string $format, mixed ...$args): string - { - return vsprintf($format, $args); - } - /** * Dumps a string of bytes in a human readable sequence of hex couples. */ diff --git a/src/MediaTypeResolver.php b/src/MediaTypeResolver.php index 079a1f4a7..27692a634 100644 --- a/src/MediaTypeResolver.php +++ b/src/MediaTypeResolver.php @@ -36,8 +36,7 @@ public static function fromDataElement(DataElement $dataElement, array $typeHint foreach ($typeHints as $hint) { try { $type = $mediaTypesCollection->getItemCollection($hint); - } - catch (CollectionException) { + } catch (CollectionException) { continue; } $handler = $type->getPropertyValue('handler'); diff --git a/src/Model/BlockBase.php b/src/Model/BlockBase.php index aedb00020..6ddc500d7 100644 --- a/src/Model/BlockBase.php +++ b/src/Model/BlockBase.php @@ -9,7 +9,6 @@ use FileEye\MediaProbe\Data\DataWindow; use FileEye\MediaProbe\Dumper\DumperInterface; use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\MediaProbe; use FileEye\MediaProbe\Utility\ConvertBytes; /** @@ -45,8 +44,7 @@ public function __construct( ItemDefinition $definition, ?BlockInterface $parent = null, ?BlockInterface $reference = null, - ) - { + ) { $this->definition = $definition; parent::__construct($this->getCollection()->getPropertyValue('DOMNode'), $parent, $reference); diff --git a/src/Model/ElementBase.php b/src/Model/ElementBase.php index 8e891b481..53b6dbd7c 100644 --- a/src/Model/ElementBase.php +++ b/src/Model/ElementBase.php @@ -4,10 +4,8 @@ namespace FileEye\MediaProbe\Model; -use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Dumper\DumperInterface; use FileEye\MediaProbe\Media; -use FileEye\MediaProbe\MediaProbe; use FileEye\MediaProbe\MediaProbeException; use FileEye\MediaProbe\Model\RootBlockBase; use FileEye\MediaProbe\Utility\ConvertBytes; @@ -229,8 +227,8 @@ public function log($level, $message, array $context = []): void $message = (string) $root_element->getStopwatch()->getEvent('media-parsing') . ' ' . $message; }*/ - if (property_exists($root_element, 'logger')) { // xx should be logging anyway - assert($root_element instanceof Media); + if (property_exists($root_element, 'logger') && isset($root_element->logger)) { // xx should be logging anyway + assert($root_element instanceof RootBlockBase); $root_element->logger->log($level, $message, $context); if ($root_element->externalLogger) { // xx should be logging anyway $root_element->externalLogger->log($level, $message, $context); diff --git a/src/Model/ElementInterface.php b/src/Model/ElementInterface.php index c43408cce..9eb045bcf 100644 --- a/src/Model/ElementInterface.php +++ b/src/Model/ElementInterface.php @@ -2,7 +2,6 @@ namespace FileEye\MediaProbe\Model; -use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Dumper\DumperInterface; use FileEye\MediaProbe\MediaProbeException; use FileEye\MediaProbe\Utility\ConvertBytes; diff --git a/src/Model/EntryBase.php b/src/Model/EntryBase.php index ccebf97bb..6154f0f31 100644 --- a/src/Model/EntryBase.php +++ b/src/Model/EntryBase.php @@ -4,10 +4,7 @@ use FileEye\MediaProbe\Data\DataElement; use FileEye\MediaProbe\Data\DataFormat; -use FileEye\MediaProbe\Data\DataWindow; use FileEye\MediaProbe\Dumper\DumperInterface; -use FileEye\MediaProbe\MediaProbe; -use FileEye\MediaProbe\MediaProbeException; use FileEye\MediaProbe\Utility\ConvertBytes; /** diff --git a/src/Model/RootBlockBase.php b/src/Model/RootBlockBase.php index 218d1dac0..bb3f9172d 100644 --- a/src/Model/RootBlockBase.php +++ b/src/Model/RootBlockBase.php @@ -5,6 +5,11 @@ use FileEye\MediaProbe\Dumper\DebugDumper; use FileEye\MediaProbe\Dumper\DumperInterface; use FileEye\MediaProbe\ItemDefinition; +use Monolog\Handler\TestHandler; +use Monolog\Level; +use Monolog\Logger; +use Psr\Log\LoggerInterface; +use Symfony\Component\Stopwatch\Stopwatch; /** * Base class for MediaProbe root block. @@ -21,14 +26,64 @@ abstract class RootBlockBase extends BlockBase */ protected DumperInterface $debugDumper; + /** + * The internal Monolog logger instance for this Media object. + */ + protected Logger $logger; + + /** + * The minimum log level for failure. + * + * MediaProbe normally intercepts and logs media parsing issues without + * breaking the flow. However it is possible to enable hard failures by + * defining the minimum log level at which the parsing process will break + * and throw an MediaProbeException. + */ + //protected ?Level $failLevel; + + /** + * A Symfony stopwatch. + */ + protected Stopwatch $stopWatch; + /** * @param \FileEye\MediaProbe\ItemDefinition $definition * The Item Definition of this Block. */ - public function __construct(ItemDefinition $definition) - { + public function __construct( + ItemDefinition $definition, + protected ?Level $failLevel = null, + protected ?LoggerInterface $externalLogger = null, + ) { parent::__construct($definition); $this->XPath = new \DOMXPath($this->DOMNode->ownerDocument); $this->debugDumper = new DebugDumper(); } + + /** + * Returns the log entries of the Media object. + * + * @param string $level_name + * (Optional) If specified, filters only the entries of the specified severity level. + * + * @return array + * An array of Monolog entries. + */ + public function dumpLog(?string $level_name = null): array + { + $handler = $this->logger->getHandlers()[0]; + assert($handler instanceof TestHandler); + $ret = []; + foreach ($handler->getRecords() as $record) { + if (($level_name && $record['level_name'] === $level_name) || !$level_name) { + $ret[] = $record; + } + } + return $ret; + } + + public function getStopwatch(): Stopwatch + { + return $this->stopWatch; + } } diff --git a/tests/Bug3017880Test.php b/tests/Bug3017880Test.php index 75490dba8..2bf459a95 100644 --- a/tests/Bug3017880Test.php +++ b/tests/Bug3017880Test.php @@ -3,8 +3,8 @@ namespace FileEye\MediaProbe\Test; use FileEye\MediaProbe\Block\Jpeg\Exif; -use FileEye\MediaProbe\Block\Tiff\Ifd; use FileEye\MediaProbe\Block\Jpeg\Jpeg; +use FileEye\MediaProbe\Block\Tiff\Ifd; use FileEye\MediaProbe\Block\Tiff\Tag; use FileEye\MediaProbe\Block\Tiff\Tiff; use FileEye\MediaProbe\Collection\CollectionFactory; diff --git a/tests/DataWindowTest.php b/tests/DataWindowTest.php index 61f381f92..164221302 100644 --- a/tests/DataWindowTest.php +++ b/tests/DataWindowTest.php @@ -2,9 +2,9 @@ namespace FileEye\MediaProbe\Test; +use FileEye\MediaProbe\Data\DataException; use FileEye\MediaProbe\Data\DataString; use FileEye\MediaProbe\Data\DataWindow; -use FileEye\MediaProbe\Data\DataException; use FileEye\MediaProbe\Utility\ConvertBytes; // @todo xxx add a test for negative/zero window size diff --git a/tests/EntryWindowsStringTest.php b/tests/EntryWindowsStringTest.php index 18f2f4783..29f62c06f 100644 --- a/tests/EntryWindowsStringTest.php +++ b/tests/EntryWindowsStringTest.php @@ -4,7 +4,6 @@ use FileEye\MediaProbe\Data\DataString; use FileEye\MediaProbe\Entry\WindowsString; -use FileEye\MediaProbe\Utility\ConvertBytes; class EntryWindowsStringTest extends EntryTestBase { diff --git a/tests/GH16Test.php b/tests/GH16Test.php index 031b56206..c234eb995 100644 --- a/tests/GH16Test.php +++ b/tests/GH16Test.php @@ -2,17 +2,13 @@ namespace FileEye\MediaProbe\Test; -use FileEye\MediaProbe\Block\Jpeg\Exif; use FileEye\MediaProbe\Block\Tiff\Ifd; -use FileEye\MediaProbe\Block\Jpeg\Jpeg; use FileEye\MediaProbe\Block\Tiff\Tag; -use FileEye\MediaProbe\Block\Tiff\Tiff; +use FileEye\MediaProbe\Data\DataFormat; use FileEye\MediaProbe\Data\DataString; use FileEye\MediaProbe\Entry\WindowsString; use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataFormat; use FileEye\MediaProbe\Media; -use FileEye\MediaProbe\MediaProbe; class GH16Test extends MediaProbeTestCaseBase { diff --git a/tests/GH77Test.php b/tests/GH77Test.php index 8b949aff4..208918ea4 100644 --- a/tests/GH77Test.php +++ b/tests/GH77Test.php @@ -2,9 +2,6 @@ namespace FileEye\MediaProbe\Test; -use FileEye\MediaProbe\Block\Jpeg\Jpeg; -use FileEye\MediaProbe\Block\Tiff\Tiff; -use FileEye\MediaProbe\MediaProbe; use FileEye\MediaProbe\Media; class GH77Test extends MediaProbeTestCaseBase diff --git a/tests/IfdTest.php b/tests/IfdTest.php index 6ac12fafe..2d23d32d9 100644 --- a/tests/IfdTest.php +++ b/tests/IfdTest.php @@ -3,14 +3,13 @@ namespace FileEye\MediaProbe\Test; use FileEye\MediaProbe\Block\Tiff\Ifd; -use FileEye\MediaProbe\Data\DataString; -use FileEye\MediaProbe\Data\DataFormat; -use FileEye\MediaProbe\ItemDefinition; use FileEye\MediaProbe\Block\Tiff\Tag; -use FileEye\MediaProbe\Block\Tiff\Tiff; use FileEye\MediaProbe\Collection\CollectionFactory; +use FileEye\MediaProbe\Data\DataFormat; +use FileEye\MediaProbe\Data\DataString; use FileEye\MediaProbe\Entry\Core\Ascii; use FileEye\MediaProbe\Entry\Time; +use FileEye\MediaProbe\ItemDefinition; class IfdTest extends MediaProbeTestCaseBase { diff --git a/tests/MediaFilesTest.php b/tests/MediaFilesTest.php index f8cae2769..b714c6eb7 100644 --- a/tests/MediaFilesTest.php +++ b/tests/MediaFilesTest.php @@ -2,11 +2,9 @@ namespace FileEye\MediaProbe\Test; -use FileEye\MediaProbe\Block\Jpeg\Jpeg; use FileEye\MediaProbe\Data\DataFormat; use FileEye\MediaProbe\Data\DataString; use FileEye\MediaProbe\Media; -use FileEye\MediaProbe\MediaProbe; use FileEye\MediaProbe\Model\BlockInterface; use FileEye\MediaProbe\Model\EntryInterface; use PHPUnit\Framework\Attributes\DataProvider; diff --git a/tests/MisplacedExifTest.php b/tests/MisplacedExifTest.php index 7db658750..4fb49ce4e 100644 --- a/tests/MisplacedExifTest.php +++ b/tests/MisplacedExifTest.php @@ -3,7 +3,6 @@ namespace FileEye\MediaProbe\Test; use FileEye\MediaProbe\Block\Jpeg\Exif; -use FileEye\MediaProbe\Block\Jpeg\Jpeg; use FileEye\MediaProbe\Block\Jpeg\SegmentApp1; use FileEye\MediaProbe\Collection\CollectionFactory; use FileEye\MediaProbe\ItemDefinition; diff --git a/tests/NumberRationalTest.php b/tests/NumberRationalTest.php index 552314b9d..6d7d91e2a 100644 --- a/tests/NumberRationalTest.php +++ b/tests/NumberRationalTest.php @@ -4,7 +4,6 @@ use FileEye\MediaProbe\Data\DataException; use FileEye\MediaProbe\Entry\Core\Rational; -use FileEye\MediaProbe\Entry\Exception\OverflowException; use FileEye\MediaProbe\Utility\ConvertBytes; class NumberRationalTest extends NumberTestCase diff --git a/tests/NumberSignedRationalTest.php b/tests/NumberSignedRationalTest.php index 8d5a92c6f..8b0a3b16f 100644 --- a/tests/NumberSignedRationalTest.php +++ b/tests/NumberSignedRationalTest.php @@ -4,7 +4,6 @@ use FileEye\MediaProbe\Data\DataException; use FileEye\MediaProbe\Entry\Core\SignedRational; -use FileEye\MediaProbe\Entry\Exception\OverflowException; use FileEye\MediaProbe\Utility\ConvertBytes; class NumberSignedRationalTest extends NumberTestCase diff --git a/tests/NumberTestCase.php b/tests/NumberTestCase.php index 9cfff120d..1a3aed86f 100644 --- a/tests/NumberTestCase.php +++ b/tests/NumberTestCase.php @@ -4,7 +4,6 @@ use FileEye\MediaProbe\Data\DataException; use FileEye\MediaProbe\Data\DataString; -use FileEye\MediaProbe\MediaProbe; abstract class NumberTestCase extends EntryTestBase { diff --git a/tests/ReadWriteTest.php b/tests/ReadWriteTest.php index 389239cdd..aea63efce 100644 --- a/tests/ReadWriteTest.php +++ b/tests/ReadWriteTest.php @@ -3,11 +3,12 @@ namespace FileEye\MediaProbe\Test; use FileEye\MediaProbe\Block\Jpeg\Exif; -use FileEye\MediaProbe\Block\Tiff\Ifd; use FileEye\MediaProbe\Block\Jpeg\Jpeg; use FileEye\MediaProbe\Block\Jpeg\SegmentApp1; +use FileEye\MediaProbe\Block\Tiff\Ifd; use FileEye\MediaProbe\Block\Tiff\Tag; use FileEye\MediaProbe\Block\Tiff\Tiff; +use FileEye\MediaProbe\Data\DataFormat; use FileEye\MediaProbe\Data\DataString; use FileEye\MediaProbe\Entry\Core\Ascii; use FileEye\MediaProbe\Entry\Core\Byte; @@ -17,9 +18,7 @@ use FileEye\MediaProbe\Entry\Core\SignedLong; use FileEye\MediaProbe\Entry\Core\SignedShort; use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataFormat; use FileEye\MediaProbe\Media; -use FileEye\MediaProbe\MediaProbe; use FileEye\MediaProbe\Utility\ConvertBytes; use PHPUnit\Framework\Attributes\DataProvider; diff --git a/tests/SpecCompilerTest.php b/tests/SpecCompilerTest.php index e33934bfb..3eee0f8e2 100644 --- a/tests/SpecCompilerTest.php +++ b/tests/SpecCompilerTest.php @@ -2,15 +2,8 @@ namespace FileEye\MediaProbe\Test; -use FileEye\MediaProbe\Test\TestClasses\Core; -use FileEye\MediaProbe\Block\Tiff\Ifd; -use FileEye\MediaProbe\Data\DataFormat; -use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Block\Tiff\Tiff; use FileEye\MediaProbe\Collection\CollectionFactory; -use FileEye\MediaProbe\Utility\SpecCompiler; use Symfony\Component\Filesystem\Filesystem; -use Symfony\Component\Yaml\Exception\ParseException; /** * Test compilation of a set of MediaProbe specification YAML files. diff --git a/tests/SpecTest.php b/tests/SpecTest.php index cd762c0e3..1eea24641 100644 --- a/tests/SpecTest.php +++ b/tests/SpecTest.php @@ -2,20 +2,17 @@ namespace FileEye\MediaProbe\Test; -use FileEye\MediaProbe\Block\Tiff\Ifd; use FileEye\MediaProbe\Block\Index; use FileEye\MediaProbe\Block\Map; +use FileEye\MediaProbe\Block\Tiff\Ifd; use FileEye\MediaProbe\Block\Tiff\Tag; -use FileEye\MediaProbe\Block\Tiff\Tiff; use FileEye\MediaProbe\Collection\CollectionException; use FileEye\MediaProbe\Collection\CollectionFactory; +use FileEye\MediaProbe\Data\DataFormat; use FileEye\MediaProbe\Data\DataString; use FileEye\MediaProbe\Entry\ExifUserComment; use FileEye\MediaProbe\Entry\Time; use FileEye\MediaProbe\ItemDefinition; -use FileEye\MediaProbe\Data\DataFormat; -use FileEye\MediaProbe\MediaProbe; -use FileEye\MediaProbe\MediaProbeException; use FileEye\MediaProbe\Utility\ConvertBytes; use PHPUnit\Framework\Attributes\DataProvider; @@ -250,8 +247,8 @@ public function testJpegSegmentTitles() { $collection = CollectionFactory::get('Jpeg\Jpeg'); $this->assertEquals('Start of frame (baseline DCT)', $collection->getItemCollection(0xC0)->getPropertyValue('title')); - $this->assertEquals(MediaProbe::fmt('Restart %d', 3), $collection->getItemCollection(0xD3)->getPropertyValue('title')); - $this->assertEquals(MediaProbe::fmt('Application segment %d', 3), $collection->getItemCollection(0xE3)->getPropertyValue('title')); - $this->assertEquals(MediaProbe::fmt('Extension %d', 11), $collection->getItemCollection(0xFB)->getPropertyValue('title')); + $this->assertEquals('Restart 3', $collection->getItemCollection(0xD3)->getPropertyValue('title')); + $this->assertEquals('Application segment 3', $collection->getItemCollection(0xE3)->getPropertyValue('title')); + $this->assertEquals('Extension 11', $collection->getItemCollection(0xFB)->getPropertyValue('title')); } } diff --git a/tests/Tags1Test.php b/tests/Tags1Test.php index 1a5fe88de..d78a25191 100644 --- a/tests/Tags1Test.php +++ b/tests/Tags1Test.php @@ -2,10 +2,7 @@ namespace FileEye\MediaProbe\Test; -use FileEye\MediaProbe\MediaProbe; use FileEye\MediaProbe\Media; -use FileEye\MediaProbe\Block\Tiff\Ifd; -use FileEye\MediaProbe\Block\Jpeg\Jpeg; class Tags1Test extends MediaProbeTestCaseBase { diff --git a/tests/media-dumps/image/broken/canon-eos-650d.jpg.dump.yml b/tests/media-dumps/image/broken/canon-eos-650d.jpg.dump.yml index e17eae639..249a9120c 100644 --- a/tests/media-dumps/image/broken/canon-eos-650d.jpg.dump.yml +++ b/tests/media-dumps/image/broken/canon-eos-650d.jpg.dump.yml @@ -6013,28 +6013,6 @@ log: - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/tag:16423' message: "Unknown item 16423/0x4027 in 'Canon'" - INFO: - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonCameraSettings:1' - message: "Could not access value for 'Clarity' in map 'CanonCameraSettings', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'AntiFlicker' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'RFLensType' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonVignettingCorr2:16406' - message: "Could not access value for 'DistortionCorrectionSetting' in map 'CanonVignettingCorr2', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonVignettingCorr2:16406' - message: "Could not access value for 'DigitalLensOptimizerSetting' in map 'CanonVignettingCorr2', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonLightingOpt:16408' - message: "Could not access value for 'DigitalLensOptimizer' in map 'CanonLightingOpt', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonLightingOpt:16408' - message: "Could not access value for 'DualPixelRaw' in map 'CanonLightingOpt', overflow" gdInfo: 0: 640 1: 427 diff --git a/tests/media-dumps/image/broken/gh-10-b.jpg.dump.yml b/tests/media-dumps/image/broken/gh-10-b.jpg.dump.yml index 16dfcf419..92e10cb9f 100644 --- a/tests/media-dumps/image/broken/gh-10-b.jpg.dump.yml +++ b/tests/media-dumps/image/broken/gh-10-b.jpg.dump.yml @@ -1614,13 +1614,6 @@ log: - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500' message: "Could not access value for item 'CanonCameraInfo' in 'Canon', overflow" - INFO: - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonCameraSettings:1' - message: "Could not access value for 'SRAWQuality' in map 'CanonCameraSettings', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonCameraSettings:1' - message: "Could not access value for 'Clarity' in map 'CanonCameraSettings', overflow" gdInfo: 0: 150 1: 150 diff --git a/tests/media-dumps/image/bug3017880.jpg.dump.yml b/tests/media-dumps/image/bug3017880.jpg.dump.yml index 15c287ec1..233f1c6db 100644 --- a/tests/media-dumps/image/bug3017880.jpg.dump.yml +++ b/tests/media-dumps/image/bug3017880.jpg.dump.yml @@ -165,7 +165,7 @@ gdInfo: mime: image/jpeg exifReadData: FileName: bug3017880.jpg - FileDateTime: 1738187006 + FileDateTime: 1738274316 FileSize: 4900 FileType: 2 MimeType: image/jpeg diff --git a/tests/media-dumps/image/camera/canon-ixus-ii.jpg.dump.yml b/tests/media-dumps/image/camera/canon-ixus-ii.jpg.dump.yml index dfc2537ce..ea78a8897 100644 --- a/tests/media-dumps/image/camera/canon-ixus-ii.jpg.dump.yml +++ b/tests/media-dumps/image/camera/canon-ixus-ii.jpg.dump.yml @@ -2429,19 +2429,6 @@ log: - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/tag:0' message: "Unknown item 0/0x0 in 'Canon'" - INFO: - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonCameraSettings:1' - message: "Could not access value for 'SRAWQuality' in map 'CanonCameraSettings', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonCameraSettings:1' - message: "Could not access value for 'Clarity' in map 'CanonCameraSettings', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonCameraInfo:13' - message: "Could not access value for 'LensSerialNumber' in map 'CanonCameraInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonCameraInfo:13' - message: "Could not access value for 'FirmwareVersion' in map 'CanonCameraInfo', overflow" gdInfo: 0: 640 1: 480 diff --git a/tests/media-dumps/image/camera/canon-powershot-s60.jpg.dump.yml b/tests/media-dumps/image/camera/canon-powershot-s60.jpg.dump.yml index 6e956ee53..ff6693248 100644 --- a/tests/media-dumps/image/camera/canon-powershot-s60.jpg.dump.yml +++ b/tests/media-dumps/image/camera/canon-powershot-s60.jpg.dump.yml @@ -2483,19 +2483,6 @@ log: - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/tag:25' message: "Unknown item 25/0x19 in 'Canon'" - INFO: - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonCameraSettings:1' - message: "Could not access value for 'SRAWQuality' in map 'CanonCameraSettings', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonCameraSettings:1' - message: "Could not access value for 'Clarity' in map 'CanonCameraSettings', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonCameraInfo:13' - message: "Could not access value for 'LensSerialNumber' in map 'CanonCameraInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonCameraInfo:13' - message: "Could not access value for 'FirmwareVersion' in map 'CanonCameraInfo', overflow" gdInfo: 0: 640 1: 480 diff --git a/tests/media-dumps/image/camera/canon_eos_70d_29.jpg.dump.yml b/tests/media-dumps/image/camera/canon_eos_70d_29.jpg.dump.yml index b9ae77f92..4928e6d48 100644 --- a/tests/media-dumps/image/camera/canon_eos_70d_29.jpg.dump.yml +++ b/tests/media-dumps/image/camera/canon_eos_70d_29.jpg.dump.yml @@ -6496,28 +6496,6 @@ log: - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/tag:16423' message: "Unknown item 16423/0x4027 in 'Canon'" - INFO: - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonCameraSettings:1' - message: "Could not access value for 'Clarity' in map 'CanonCameraSettings', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'AntiFlicker' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'RFLensType' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonVignettingCorr2:16406' - message: "Could not access value for 'DistortionCorrectionSetting' in map 'CanonVignettingCorr2', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonVignettingCorr2:16406' - message: "Could not access value for 'DigitalLensOptimizerSetting' in map 'CanonVignettingCorr2', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonLightingOpt:16408' - message: "Could not access value for 'DigitalLensOptimizer' in map 'CanonLightingOpt', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonLightingOpt:16408' - message: "Could not access value for 'DualPixelRaw' in map 'CanonLightingOpt', overflow" gdInfo: 0: 5472 1: 3648 diff --git a/tests/media-dumps/image/exiftool/Canon.jpg.dump.yml b/tests/media-dumps/image/exiftool/Canon.jpg.dump.yml index 3c684ece5..ddf1907b4 100644 --- a/tests/media-dumps/image/exiftool/Canon.jpg.dump.yml +++ b/tests/media-dumps/image/exiftool/Canon.jpg.dump.yml @@ -2867,58 +2867,6 @@ log: - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/tag:0' message: "Unknown item 0/0x0 in 'Canon'" - INFO: - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonCameraSettings:1' - message: "Could not access value for 'SRAWQuality' in map 'CanonCameraSettings', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonCameraSettings:1' - message: "Could not access value for 'Clarity' in map 'CanonCameraSettings', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonShotInfo:4' - message: "Could not access value for 'FlashOutput' in map 'CanonShotInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'WBBracketMode' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'WBBracketValueAB' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'WBBracketValueGM' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'FilterEffect' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'ToningEffect' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'MacroMagnification' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'LiveViewShooting' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'FocusDistanceUpper' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'FocusDistanceLower' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'ShutterMode' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'FlashExposureLock' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'AntiFlicker' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'RFLensType' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonCameraInfo:13' - message: "Could not access value for 'FirmwareVersion' in map 'CanonCameraInfo', overflow" gdInfo: 0: 8 1: 8 diff --git a/tests/media-dumps/image/exiftool/Canon1DmkIII.jpg.dump.yml b/tests/media-dumps/image/exiftool/Canon1DmkIII.jpg.dump.yml index f640e43d7..f6af99bea 100644 --- a/tests/media-dumps/image/exiftool/Canon1DmkIII.jpg.dump.yml +++ b/tests/media-dumps/image/exiftool/Canon1DmkIII.jpg.dump.yml @@ -5211,55 +5211,6 @@ log: - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/tag:16404' message: "Unknown item 16404/0x4014 in 'Canon'" - INFO: - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonCameraSettings:1' - message: "Could not access value for 'Clarity' in map 'CanonCameraSettings', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'ShutterMode' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'FlashExposureLock' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'AntiFlicker' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonFileInfo:147' - message: "Could not access value for 'RFLensType' in map 'CanonFileInfo', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonColorData:16385' - message: "Could not access value for 'PerChannelBlackLevel' in map 'CanonColorData', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonColorData:16385' - message: "Could not access value for 'NormalWhiteLevel' in map 'CanonColorData', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonColorData:16385' - message: "Could not access value for 'SpecularWhiteLevel' in map 'CanonColorData', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonColorData:16385' - message: "Could not access value for 'LinearityUpperMargin' in map 'CanonColorData', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonColorData:16385' - message: "Could not access value for 'PerChannelBlackLevel' in map 'CanonColorData', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonColorData:16385' - message: "Could not access value for 'NormalWhiteLevel' in map 'CanonColorData', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonColorData:16385' - message: "Could not access value for 'SpecularWhiteLevel' in map 'CanonColorData', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonColorData:16385' - message: "Could not access value for 'LinearityUpperMargin' in map 'CanonColorData', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonColorData:16385' - message: "Could not access value for 'NormalWhiteLevel' in map 'CanonColorData', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonColorData:16385' - message: "Could not access value for 'SpecularWhiteLevel' in map 'CanonColorData', overflow" - - - path: '/media/jpeg/jpegSegment:APP1:225/exif/tiff/ifd:IFD0:0/ifd:ExifIFD:34665/makerNote:Canon:37500/map:CanonColorData:16385' - message: "Could not access value for 'LinearityUpperMargin' in map 'CanonColorData', overflow" gdInfo: 0: 8 1: 8