Как стать автором
Обновить
16
0.1
Денис @Ravager

Пользователь

Отправить сообщение

Такое тимлидство нам не нужно

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров32K

Привет, Хабр. Я тимлид уже 4 года. По истечению этого времени накопилась некоторая усталость и отчасти негодование от этой роли(должности). Поэтому хочу накинуть говна на вентилятор и поразмышлять с вами о руководстве в IT, каким оно бывает, какое оно должно быть. Надеюсь у вас тоже на этот счет есть свои мысли и вы мне про них расскажете.

Узнать все про тимлида
Всего голосов 42: ↑37 и ↓5+32
Комментарии82

Видео-плеер на основе VLC. Часть 2: используем Direct3D

Время на прочтение3 мин
Количество просмотров6.8K

Вступление


Привет хабралюдям!

В своей предыдущей статье я начал рассказывать о разработке плеера на основе VLC. В данной статье я расскажу об основных аспектах и сложностях, с которыми мне пришлось столкнуться при написании плеера. Вот как выглядит главное окно программы:

image
Главное окно программы

Отрисовка кадра на экран с помощью Direct3D


Итак, как я уже говорил для декодирования потокового видео используется библиотека LibVLC, которая является основной частью плеера VLC. Плагин VMem позволяет декодировать видео поток, применяя к нему различные фильтры и в конце концов сохранять ее в пользовательский участок памяти. Для того, чтобы ускорить вывод картинки я использовал Direct3D 9. В Direct3D есть понятие поверхностей(surfaces) а также текстур(textures). Поверхность — это массив байтов имеющий размер width x height:

image
Схематичное изображение поверхности

Т.е. по сути поверхность есть bitmap
Текстура отличается от поверхности тем, что ее можно «накладывать» на примитивы(полигоны). Также текстура имеет mip-map уровни — уменьшенные копии текстуры(применяется в 3D графике)
Читать дальше →
Всего голосов 49: ↑35 и ↓14+21
Комментарии52

Idle Event в Qt

Время на прочтение3 мин
Количество просмотров5.6K
Привет, хабралюди!

Встпуление


Не так давно я стал работать с Qt под Windows. Моей задачей является разработка графического приложения с отрисовкой пользовательского интерфейса в реальном времени с анимацией и прочими плюшками. Работает вся эта красота через DirectX, а Qt очень помогает анимацией, окнами, сигналами и прочими полезными вещами.

Зачем это надо?


Если кто занимался разработкой игр, то знает, что перерисовка экрана происходит во время «простоя приложения» — т.е. те моменты, когда очередь сообщений к окну пустая. Это позволяет перерисовывать окно довольно быстро, так в частности пустое окно, может отрисовываться несколько тысяч фреймов в секунду(с отключенной вертикальной синхронизацией).
Читать дальше →
Всего голосов 7: ↑4 и ↓3+1
Комментарии9

Видео-плеер на основе VLC. Часть 1

Время на прочтение2 мин
Количество просмотров23K

Вступление, или как все начиналось...


Когда я пришел устраиваться на работу, мне показали макет того, что я должен буду сделать. Это был видео-плеер с довольно симпатичным интерфейсом. Предполагалось, что мой плеер будет использовать плеер VLC (а точнее его библиотеку LibVLC) в качестве видео-движка. Дело в том, что плеер, который все привыкли видеть на своем рабочем столе — VLC по сути лишь интерфейс для библиотеки LibVLC, которая позволяет загружать и декодировать видео файлы с локального диска, мультикаст поток.

С языком разработки определились сразу же — С++. Что касается среды разработки, то у меня, как и у начальства были свои предложения (Visual Studio IDE) — в итоге сошлись на Qt IDE, т.к. SDK имеет множество классов, позволяющих ускорить разработку приложения с пользовательским интерфейсом.
Читать дальше →
Всего голосов 55: ↑39 и ↓16+23
Комментарии23

Информация

В рейтинге
2 835-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, Web Developer
Lead