piątek, 15 stycznia 2010

Bad MakerNotes directory

Jest problem z opisami EXIF niektórych zdjęć robionych szerokokątnym obiektywem Olympus Zuiko Digital 11--22 f/2.8-3.5. Niektórymi żeby było śmieszniej -- widocznie zależy to od nastaw. Otóż jeżeli synchronizuję zdjęcia ze śladem GPS za pomocą gpsPhoto.pl, to pojawia się komunikat:


error: [minor] Bad MakerNotes directory

Komunikat generuje jakaś procedura z pakietu Image::ExifTool, wykorzystywana przez gpsPhoto.pl. Po aktualizacji exiftool do 8.06 o tyle się sytuacja zmieniła, że komunikat jest inny:


error: [minor] Bad EquipmentIFD directory.

Gdybym korzystał ze skryptu exiftool, to błąd można zignorować dodając opcję -m przy uruchamianiu skryptu. Ale ja używam gpsPhoto.pl, które z kolei korzysta z perlowego pakietu Image::ExifTool. Żeby nie modyfikować gpsPhoto.pl (beznadziejna na oko sprawa), poprawiam wpisy EXIF poniższym programem w Ruby. Słowo poprawiam oznacza dokładnie tyle, że poprawne wpisy są przepisane a błędne zignorowane. Otrzymane w rezultacie opisy EXIF są niekompletne. Opcja -m działa dokładnie identycznie.


#! /usr/bin/ruby
# fix_tags.rb by Sijmen Mulder <sjmulder@gmail.com> in 2008. Public domain.

files = Dir.glob("*.JPG").concat Dir.glob("*.jpg")
files.each do |file|
commands = [
"cp #{file} #{file}_original",
"exiftool -overwrite_original -q -exif:all= \"#{file}\"",
"exiftool -overwrite_original -q -q -tagsfromfile \"#{file}_original\" --MakerNotes \"#{file}\" "
]

puts(file)
commands.each do |c|
#puts(c)
system(c)
end
end

puts "Processed #{files.length} file(s)."

Powyższy skrypt kopiuje każdy plik .jpg z bieżącego katalogu, a następnie wstawia do kopii wyłącznie poprawne wpisy EXIF z pliku oryginalnego.

Program jest w Ruby bo znaleziono go w sieci. Można by przerobić w innym języku ale mi się nie chce

Cała procedura jest taka sobie, bo poprawione pliki .jpg zawierają niekompletne opisy EXIF, ale póki co nic lepszego nie wymyśliłem.

Szybkość sheevaplug

Przetestowałem dzisiaj jak szybki jest sheevaplug. Najpierw ustaliłem w jaki procek jest wyposażony mój PCet:


cat /proc/cpuinfo

W rezultacie wyszło, że jest to Core(TM)2 Duo CPU E4500 @ 2.20GHz. To samo na sheevaplug wykazało, że:


ARM926EJ-S rev 1 (v5l)

Prosty program w Perlu wykonywał się odpowiednio 12 i 61 sekund z czego by wynikało, że Szewa jest 5 razy wolniejsza... Nie jest aż tak źle, myślałem że będzie gorzej.