Свежие комментарии
Title | Comment |
---|---|
Вот уже начал: |
Вот уже начал: void ClearStage1Image() { fStage1Image.Release(); } |
Ну там много ж "помимо" |
Ну там много ж "помимо" собственно TIFF: EXIF, Makernotes, XMP, превьюшки и т.п. Кроме того, 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 // MyClass.cpp Можно попробовать с 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, да, очень поэтически написан. Геттеры сеттеров погоняют. |
Индусам как поэтам, платят |
Индусам как поэтам, платят построчно. |
Я, собственно, сейчас так и |
Я, собственно, сейчас так и живу, только с центровзвешенным замером по объекту, что хуже, но не требует постоянной поправки в три с лифигом ступени. |
Нет, разумеется. |
Нет, разумеется. |
А ты не ручную установку |
А ты не ручную установку экспозиции просишь, случайно? |
да, но я про DNG -> DNG, а не |
да, но я про DNG -> DNG, а не про DNG converter (который так тэги не правит конечно же) - это же не единственное ПО которое делает DNG -> DNG (с какими-либо модификациями внутри)... |
exiftool спасает |
exiftool спасает А DNG Converter - не должен бы |
>>> Как отключить - пока не |
>>> Как отключить - пока не нашел. эпоксидкой, чтобы не крутилось ! |
> В случае DNG->DNG я тоже не |
> В случае DNG->DNG я тоже не понимаю частный случай же просто покоцать данные (например отключить принудительну коррекцию оптики в ACR/LR если firmware вписала тэги в родной DNG raw) |
Гы. |
Гы. Дизайн интерфейсов - не самая сильная сторона Сони. |
Ну я секоником меряю, |
Ну я секоником меряю, например, камерой неудобно ж |