dj--alex,
Видеопоток в Windows может воспроизводиться через особый режим DirectDraw, называемый Overlay (оверлей), при всем этом видеоинформация выводится не в видеобуфер, а в отдельную область локальной памяти видеоплаты, где она дополнительно обрабатывается аппаратными средствами самой видеоплаты (преобразование цветового места YUV в RGB, аппаратное масштабирование и фильтрация). Размер кадра оверлея и глубина его цвета не зависят от рабочего стола. Опосля обработки буфер оверлея может выводиться на рабочий стол либо по отдельному каналу, к примеру, через видеовыход на телек, при этом почти все видеоплаты разрешают создавать над содержимым этого буфера гамма-коррекцию, регулировать яркость, контрастность и т.д. независимо от рабочего стола. На рабочий стол оверлей выводится по технологии "хромакей". Windows рисует окно, где должен отображаться оверлей, и заполняет его "ключевым цветом"; видеоконтроллер, встречая этот цвет, при выводе на DAC (цифро-аналоговый преобразователь) замещает его данными из буфера оверлея, предварительно производя масштабирование изображения до размера окна либо на весь экран. Проверить, работает либо нет режим оверлея при воспроизведении видео, совсем просто: довольно попытаться сделать скриншот экрана - ежели на месте видеоизображения покажется темный прямоугольник, означает, видео выводится через оверлей.
Извиняюсь, но для Linuxа описания не нашёл... Но думаю, что в общем смысле - принцип работы оверлея примерно одинаков, как в Linuxе, так и в Винде, отличаться может деталями и ньюансами, но не смыслом...
Пользователь решил продолжить мысль 21 Августа 2013, 14:26:13:
Ещё одно не плохое описание:
Видео информация приходит из источника в определённом формате пикселей и определённом разрешении. Для его воспроизведения открывается окно оверлей, закрашенное определённым ключевым цветом. Когда все линии изображения выведены на экран и когда алгоритм оверлеев натыкается на этот самый ключевой цвет в окне, он начинает считывать видеопоток, если нужно, масштабировать, конвертировать его, прорисовывая в это время всё те же линии. Таким образом, в видеопамяти хранится изображение десктопа, а на экране в окне мы видим видео.
Работа с оверлеями всегда производится в максимальной глубине цвета. Даже если десктоп настроен на глубину цвета 8, или 16-бит, окно оверлеев обсчитывается в максимальной глубине цвета. Видео информация хранится в видеопамяти в своём настоящем размере и глубине цвета. Это минимизирует требования к размеру и пропускной способности памяти. Производительность вывода видео при использовании оверлеев не зависит от размеров окна. Даже если окно развёрнуто на весь экран, или свёрнуто в маленький квадратик, скорость вывода останется одинаковой.
Все операции с видео при использовании оверлеев проводятся за изображением во время вывода на экран линий. Поэтому изображение окон оверлеев не находится в видеопамяти. Это может привести к интересным проблемам. Одна из них - снятие скриншотов. Если попробовать снять скриншот при проигрывании видео с использованием оверлеев, то на картинке будет десктоп с пустым окном, в котором нет видео. Это потому, что видео не хранится в видеопамяти.