вторник, 24 сентября 2013 г.

Qt 5.1 (5.1.1), статическая линковка (статическая компоновка), Windows 7, MinGW 4.8

Qt дорос до версии 5, повзрослел. Отныне для Windows не требуется прописывать переменные окружения и пути. Каждая сборка не зависит ни от чего, система ничего "не знает" ни об одной из них. Это здорово, поскольку теперь программисту не нужно думать о том, где его Qt "наследил".
Что же касается самих сборок, с ними не всё так гладко, как хотелось бы. В идеале я должен, например, с помощью configure указать, куда положить новую сборку (mingw48_32), а при выполнении mingw-make все собранные файлы должны оказаться там, куда я указал, а не вперемешку с сырцами. Увы, пока мечты. Мечтой пока что остаётся получить копию установленной заранее папки mingw48_32 (с Assistant`ом, Designer`ом и тд). После сборки из сырцов с параметрами по умолчанию таких файлов нет.

воскресенье, 22 сентября 2013 г.

qDebug() и кодировка Windows 1251


Опубликовано в ЖЖ в феврале 2010, актуально для Qt4.
Оригинал

Хороший макрос. Однако его полезность весьма и весьма сомнительна в случае, когда нужно выводить на консоль национальные - в частности, русские - символы. Конечно, тут же набегает кучка полудурков-советчиков, предлагающих всяческие извращения в виде транслита, логов, GUI, многократных перекодировок..
Ответ я нашёл здесь.

QTextStream out(stdout);
out.setCodec(QTextCodec::codecForName("IBM 866"));
out << line;

Коротко и красиво. Понятно, что использование "IBM 866" предназначено для винды. Но лучше наросать пару макросов для проекта, подставляющих локально нужную кодовую страницу в целевой системе, чем прыгать с остальными бубнами.

суббота, 21 сентября 2013 г.

Основы Avisynth (часть 2)


Опубликовано в ЖЖ в апреле 2011 года, актуально для AviSynth 2.58
Оригинал

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

Основы Avisynth (часть 1)

Опубликовано в ЖЖ в апреле 2009, актуально для AviSynth 2.58. 
Оригинал

Если вы читали предыдущую статью, вы уже в общих чертах знаете, что такое AviSynth и как он работает. На всякий случай повторюсь. Это нелинейный видеоредактор, не имеющий собственного интерфейса. Результат его работы вы можете увидеть, только открыв соответствующий файл-сценарий в видеоприложении (редакторе или проигрывателе). Поскольку AviSynth только «отдает» кадры другим («конечным») видеоприложениям, он является фреймсервером.