raw->sizes.flip=5

Обнаружил, что Canon 550D иногда сохраняет cr2 файлы с raw->sizes.flip=5
При этом LibRaw декодирует с неправильной ориентацией. Причем переключение с raw->sizes.flip=0 на raw->sizes.flip=5 происходит без видимых причин. Просто в процессе съемки серии темновых кадров.
Вылечил поставив в программе после status=libraw_open_file(raw, fname);
raw->sizes.flip=raw->sizes.flip%4;

Форумы: 

Выложил пример

Выложил на рапиду два файла по 25МБ каждый:
Файл с нормальным flip: http://rapidshare.com/files/435138177/IMG_0335.CR2
и следующий файл снятый четырьмя минутами позже у которого flip=5 http://rapidshare.com/files/435138571/IMG_0336.CR2
Эти файлы из серии темновых кадров снимались прямо на телескопе.

Ага, спасибо. Критично ли,

Ага, спасибо.

Критично ли, чтобы фикс был в stable-ветке (0.11) или беты (0.12) достаточно? С точки зрения поддержки Canon между ними нет разницы.

Добрался до этого

Добрался до этого места.

В-общем, это действительно камера дурит, для двух кадров выдан разный CameraOrientation.
Править что-то в LibRaw считаю невозможным, сломается авторотация у всех пользователей.

Правильный (по инструкции) способ передать в LibRaw ваше желание о ротации - это не sizes.flip править, а params.user_flip

Речь не о желании ротации, а

Речь не о желании ротации, а о том что камера выдает нестандартное значение raw->sizes.flip=5 (ИМХО, это число должно быть в интервале от 0 до 3) и о том, как это значение обрабатывать.

Почему нестандартное? Ну то

Почему нестандартное?
Ну то есть камера выдает вообще CameraOrientation забыл какой, а LibRaw преобразует его в flip.

А flip - это битмаск:
4 - поменять местами ширину и высоту
2 - отзеркалировать относительно горизонтальной оси
1 - отзеркалировать относительно вертикальной
(применяется именно в таком порядке)
5 - это поворот на 270.

О! Не знал, что это битмаск.

О! Не знал, что это битмаск. По простоте душевной полагал, что это просто угол поворота в единицах пи пополам. Посыпаю главу пеплом и иду читать документацию :)

В документации про битмаск не

В документации про битмаск не написано:
===
Ориентация изображения (0 - не требует поворота, 3 - требуется поворот на 180, 5 - 90 градусов против часовой стрелки, 6 - 90 градусов по часовой).
===

А битмаск это по коду, т.е. можно и отзеркалить, например.