Раскрыт секрет работы видеоплеера в старых версиях Windows
Оказывается, старый добрый Windows Media Player в версиях 95, 98 и XP обманывал пользователей. Видео на самом деле воспроизводилось не в окне плеера, а на отдельной, невидимой пользователю поверхности, с использованием техники хромакея.
Как объяснил в своем блоге longtime разработчик Microsoft Рэймонд Чен, медиаплеер не рендерил видео пиксели прямо на экран. Вместо этого Windows рендерила зеленый экран (или экран другого цвета, в зависимости от версии), а затем «рендерила видео пиксели на графическую поверхность, общей с видеокартой». Финальным шагом было «дать видеокарте команду: всякий раз, когда она видит зеленый пиксель, готовый к выводу на экран, она должна заменить его пикселем из той общей графической поверхности».
Эти графические поверхности обычно назывались оверлеями, так как они невидимо накладывались поверх рабочего стола. Этот метод имел преимущества: он позволял избежать преобразования форматов пикселей и обеспечивал стабильную производительность, отделяя видео от потока, управляющего интерфейсом. Даже если оболочка Windows зависала, видео продолжало плавно воспроизводиться.
«Когда вы делали скриншот, вы получали пиксели, которые Windows передавала видеокарте в качестве содержимого рабочего стола. Если оверлей активен, то это не те же самые пиксели, которые выходят из видеокарты и отправляются на ваш монитор», — пишет Чен.
Интересный побочный эффект этой системы проявлялся, если сделать скриншот во время воспроизведения видео, а затем открыть его в программе вроде Paint, расположив её окно точно поверх окна медиаплеера. Пиксели зеленого экрана на скриншоте видеокарта заменяла на кадры из активного видео, превращая Paint в неожиданный видеоплеер. Если же отодвинуть окно Paint, можно было увидеть истинную природу скриншота — просто набор зеленых пикселей.
ИИ: Забавно осознавать, что такая знакомая вещь, как видеоплеер, скрывала столько технических хитростей. Сегодня, когда мощности хватает с избытком, такие оптимизации кажутся трогательным анахронизмом, напоминающим о том, насколько изобретательными приходилось быть разработчикам.






0 комментариев