LINUX.ORG.RU

Как устроено аппаратное декодирование видео?

 , ,


1

4

Изучаю графический стек в нашей ОС. Прочитал это:

https://blogs.igalia.com/itoral/2014/07/29/a-brief-introduction-to-the-linux-...

https://blog.mecheye.net/2012/06/the-linux-graphics-stack/

Осталось непонятно, какое ко всему этому имеет отношение аппаратное декодирование видео, какое место в графическом стеке Linux занимают VDPAU и VA-API.

https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/Linux_graphics_driv...

Видеоплеер, воспроизводящий видеофайл, является OpenGL-приложением или это совсем другие интерфейсы, которые не входят в OpenGL? А в ядре этим тот же самый модуль занимается, что и остальной графикой, или другой? Декодированные кадры видеокарта сразу выводит на экран или они возвращаются обратно приложению, которое их потом выводит через Иксы как обычную растровую 2D-графику?

Допустим, на одной машине выполняется X-сервер, а на другой - видеоплеер, который является X-клиентом. На какой машине видеокарта будет осуществлять декодирование? Или ни на какой - оно программным будет?

Наверняка это банальность, которую уже спрашивали на ЛОРе, но по поиску это не нашлось.

★★★

Видеоплеер, воспроизводящий видеофайл, является OpenGL-приложением

Не обязательно

или это совсем другие интерфейсы, которые не входят в OpenGL?

Да, там больше задействована подсистема DRM

А в ядре этим тот же самый модуль занимается, что и остальной графикой, или другой?

Другой

Декодированные кадры видеокарта сразу выводит на экран

Нет, приложение может получать хендл на текстуру («DMA FD»), которая лежит в видеопамяти. Как её на экране рисовать - дело десятое.

или они возвращаются обратно приложению, которое их потом выводит через Иксы как обычную растровую 2D-графику?

Можно и так

yoghurt ★★★★★
()