Свежие комментарии

Title Comment
Вот уже начал:

Вот уже начал:

        void ClearStage1Image() {
            fStage1Image.Release();
        }
Ну там много ж "помимо"

Ну там много ж "помимо" собственно TIFF: EXIF, Makernotes, XMP, превьюшки и т.п.
У Адобы оно конечно мудацкое, но там реально много, 2.5 мегабайта исходников.

Кроме того, DNG SDK мы и так с собой таскаем для всяких экзотических форматов (8-bit dng, к примеру), которые LibRaw не распаковывает.

Но поскольку лицензия там BSD, я в какой-то момент наиболее раздражающие места дохакаю (ну вот добавлю метод "забыть, сука, указатель, переданный ранее") и успокоюсь.

Да, ожидаемо. Согласен, люди

Да, ожидаемо. Согласен, люди вообще не подумали про работу пачкой а не one shot.

Может проще будет сделать патчи к libtiff что бы у неё был режим DNG? Структура-то одна.

Хрен там!

Хрен там!
При передаче нового - старый освобождается. Сука.
Собственно, из кода очевидно.

Ну не буду закатывать солнце вручную больше, значит будет дрочить по четверть гигабайта на каждой итерации.

Уроды, блин. Понятно почему у hdrmerge своя писалка DNG.

Ощущение, что проще

Ощущение, что проще переписать их AutoPtr, выкинув всякие освобождения в функциях и деструкторах. Если, конечно, они его внутри интенсивно не используют.

А, фиг, скорее всего не

А, фиг, скорее всего не выйдет. Там AutoPtr внутри при выставлении нового удалит старое скорее всего. Да, пидарасы, конечно. Но не потому что AutoPtr используют.

Хм, сунуть туда потом (после

Хм, сунуть туда потом (после записи DNG) левый мелкий буфер, который не жалко - это прекрасная идея, в голову не пришла.

Ща испробуем, должно пройти. Весь SDK - лютый ужас, чтобы понять что же они на самом деле делают - приходится его читать (а что делать человеку, который только слегка в теме).

Но зато теперь я знаю простой способ таки сделать EXIF (а не так, как это сделано в dngconvert) из RAW-файла.

Можно просто открыть исходный RAW (не DNG) при помощи DNG SDK же. EXIF при этом распарсится и его можно оттуда вытащить.

Так я поэкономил себе 30...150 (в зависимости от задачи) строчек говнокода "getExifTag(tag1, tag2...."

Так. Давай мух отдельно а

Так. Давай мух отдельно а котлеты отдельно.

Во-первых, я писал исключительно про использование AutoPtr, а не про то, как именно его используют именно эти индусы (слой два) и про семантику данного API вообще (слой три).

*Из дальнейшего обсуждения* мы видим, что используют вообще неправильно. Тут должен быть unique_ptr, который сразу бы показал тебе их намерение, без залезания в их код — стало бы чисто по API понятно, что дуфер у тебя отнимут. Если бы raw pointer был то осталась бы неоднозначность, с unique_ptr неоднозначности бы не было (а вот описанная тобой проблема declaration vs definition могла бы быть!).

Так же *из дальнейшего обсуждения* мы видим, что лично тебе семантика их API (передача управления буфером внутрь SDK) не подходит. Это вообще перпендикулярно тому, как передаётся указатель — в сыром виде или завёрнутый во что-то. Правильный ли это подход — я не знаю, в разных ситуациях может быть по разному, тебе неудобно, в другой ситуации может быть удобно. В простых приложениях на мой взгляд удобнее.

А не можешь ли ты потом передать туда NULL, что бы отобрать права назад? ;-)

P.S. Теги, конечно, в комментариях можно, только их потом не видно. Пришлось добавить звёздочки.

Пусть идут в жопу вместе с C+

Пусть идут в жопу вместе с C++ conf.

Я хорошо знаю, какой у моих pointers срок жизни и аккуратно с ними управляюсь (когда мне безразлично или не хочу об этом думать - да, есть auto/shared/unique).

А мудизм этот, когда вместо reuse буфера получается реаллокация (потому что SDK хватает его и освобождает сам) - это в чистом виде мудизм.

Только компилятор должен

Только компилятор должен ругаться что std::auto_ptr — deprecated ;-)

Я бы тебя сейчас отправил

Я бы тебя сейчас отправил школьную парту^W^Wслушайть кейноты последних лет с C++ conf. Где красной нитью — никаких raw pointers. По многим причинам. И это правильно.

Единственный грех DNG SDK — что это не std::shared_ptr а какой-то свой AutoPtr. Но SDK старше новых версий стандарта языка.

std::auto_ptr image; -->

std::auto_ptr image; --> std::auto_ptr image

Со стандартным (c++11) auto

Со стандартным (c++11) auto_ptr такое вот компилируется:

// MyClass.h
class dng_image;
class MyClass {
private:
std::auto_ptr image;
};

// MyClass.cpp
MyClass::~MyClass() {
}

Можно попробовать с AutoPtr.

Да, это от души.

Да, это от души.

Королева в восхищении!!!

Королева в восхищении!!!

void dng_negative::SetStage1Image (AutoPtr<dng_image> &image)
    {   
    fStage1Image.Reset (image.Release ());    
    }

У меня, сука, забирают мой буфер. И потом его, сука, освободят.

То есть натурально, если у меня 100 одинаковых файлов, то мне надо 100 раз аллоцировать одинаковый (ну скажем 80-мегабайтный) буфер, а SDK будет его отнимать у меня и освобождать.

Ненавижу когда так строят. Без мозга.

Читаю вот сорцы, вроде бы так

Читаю вот сорцы, вроде бы так сработает действительно. Ну ок, простим им.

Я C++ тоже труба шатал,

Я C++ тоже труба шатал, поэтому не понял ответа.

Мне не нужна "реализация деструктора", мне нужно чтобы деструктор (никогда) не звался, ибо у меня долгоживущий указатель.

Если не ошибаюсь, то при

Если не ошибаюсь, то при использовании стандартного auto_ptr достаточно иметь реализацию деструктора в cpp. Даже по-умолчанию: MyClass::~MyClass() = default. С адобовским не так?

А у этого AutoPtr нет метода,

А у этого AutoPtr нет метода, аналогичного auto_ptr::release, который отпускает сырой указатель? Тогда было бы достаточно перед вызовом аттачить, после вызова отпускать.

ну эти стихи про getExifTag -

ну эти стихи про getExifTag - это из опенсорца.

Но DNG SDK, да, очень поэтически написан. Геттеры сеттеров погоняют.

Индусам как поэтам, платят

Индусам как поэтам, платят построчно.

Я, собственно, сейчас так и

Я, собственно, сейчас так и живу, только с центровзвешенным замером по объекту, что хуже, но не требует постоянной поправки в три с лифигом ступени.

Нет, разумеется.

Нет, разумеется.
Если мерятся камерой по светам то зачем мне вкручивать и диафрагму и выдержку и ISO. Пусть диафрагма будет фиксированной (ну, если не спорт или животных снимает, там фиксированная выдержка), а выдержку и ISO пусть он сам считает с поправкой введённой в глубоких менюшках ПЛЮС поправкой введённой ИНОГДА колесом.

А ты не ручную установку

А ты не ручную установку экспозиции просишь, случайно?

да, но я про DNG -> DNG, а не

да, но я про DNG -> DNG, а не про DNG converter (который так тэги не правит конечно же) - это же не единственное ПО которое делает DNG -> DNG (с какими-либо модификациями внутри)...

exiftool спасает

exiftool спасает

А DNG Converter - не должен бы

>>> Как отключить - пока не

>>> Как отключить - пока не нашел.

эпоксидкой, чтобы не крутилось !

> В случае DNG->DNG я тоже не

> В случае DNG->DNG я тоже не понимаю

частный случай же просто покоцать данные (например отключить принудительну коррекцию оптики в ACR/LR если firmware вписала тэги в родной DNG raw)

Гы.

Гы.
Можно EV Comp навесить на другое колесо (ну скажем на заднее, которое мне ненужное) - и тогда будет диапазон +-5 на этом колесе.
Но стоит тронуть выделенное колесо экспопоправки - как действовать начинает оно. Как отключить - пока не нашел.
И если тронуть выделенное колесо и затем вернуть его в 0 - запрограммированное колесо тоже "сбрасывается в 0"

Дизайн интерфейсов - не самая сильная сторона Сони.

Ну я секоником меряю,

Ну я секоником меряю, например, камерой неудобно ж

Pages

Subscribe to comments_recent_new