LINUX.ORG.RU

2D-ускорение видео на Skylake

 ,


0

2

Всем привет, речь идёт не об аппаратном ускорении декодирования видео, а о фиче, которая в плеере VLC называется "Accelerated video output (overlay)".

Насколько я знаю, эта фича была ещё в Windows XP в предустановленном проигрывателе. Суть заключается в том, что прямоугольник с видео отрисовывается напрямую в нужное место экрана, в обход оконной системы. Это даёт ускорение отрисовки. Из-за этого ещё на скриншотах в Windows XP получался чёрный прямоугольник вместо видео.

У меня встроенное видео на Skylake, Linux и два медиаплеера: Parole (в котором эта фича не отключается) и VLC (в котором отключается). Проблема проявляется независимо от оконного менеджера (попробовал xfwm с включённым и выключенным композитингом, а также compiz; также попробовал Ubuntu 15.10 с флешки, там тоже есть эта проблема).

Суть проблемы в том, что прямоугольник с видео отрисовывается просто поверх всего. В том числе поверх других окон и выпадающих меню. При этом если в Parole видео поставить на паузу и переместить окно (или даже свернуть его), прямоугольник с видео останется на месте.

Я попробовал на другом компьютере (там Nvidia GeForce 6600GT с nouveau) посмотреть видео в Parole, там такой проблемы не было. Если отключить фичу ускоренного видеовывода в VLC, то проблемы тоже не будет.

Вопроса два:

  • Как починить?
  • Как вообще организована работа этой фичи в случае, когда окно проигрывателя перекрывается другим окном? В смысле, что сделано для того, чтобы прямоугольник видео не перекрывал всё, как это происходит у меня?

К сожалению, ничего не удаётся найти в гугле, там все говорят про ускорение декодирования видео.

Это расширение X11 называется XVideo, оно позволяет перекладывать преобразование цвета и масштабирование на выделенный блок в видеоадаптере. В оригинале используется оверлей, который заменяет выбранный цвет на экране на обработанную картинку. Есть вариация с копированием в видеопамять, есть вариация с использованием 3d движка и текстуры. Судя по всему, в драйвере intel используется последний вариант. Как его чинить, я не знаю. Но можно попробовать отключить совсем.

Положи в /etc/X11/xorg.conf.d/20-intel-disable-xvideo.conf:

Section "Device"
    Identifier "intel"
    Driver     "intel"
    Option     "XVideo" "off"
EndSection

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Как его чинить, я не знаю.

А главное, зачем? Больше кадров в секунду, чем есть в видео, от этого не появится.

aidaho ★★★★★
()
Ответ на: комментарий от i-rinat

Option "XVideo" "off"

Попробовал, не дало эффекта, в Xorg.0.log было сообщение о том, что эта опция проигнорирована (сорри, текст не сохранил). В общем, нет такой опции, но я попробовал отключить XVideo так, как написано тут, и Parole просто перестал играть, кричит, что ему Xv не хватает. Так что просто отключить совсем не помогает, но пока что есть хотя бы vlc, в котором в настройках это отключается.

Там по ссылке ещё написано, как отучить gstreamer от использования Xv, но это неактуально, там для gconf и для gstreamer-0.10, а у меня gstreamer-1.0 и нет gconf, а аналогичных настроек где-то в dconf я не нашёл.

Это расширение X11 называется XVideo

За эту информацию большое спасибо, теперь хотя бы появились ключевые слова для гугла.

В оригинале используется оверлей, который заменяет выбранный цвет на экране на обработанную картинку.

И за это спасибо, теперь понятно, как должен работать случай, когда окна перекрывают видео. Вот только если этот выбранный цвет встретится в каком-то случайном пикселе другого окна, которое перекрывает видео, этот пиксель тоже заменится на пиксель из видео?

gentoo_root ★★★★★
() автор топика
Ответ на: комментарий от aidaho

А главное, зачем? Больше кадров в секунду, чем есть в видео, от этого не появится.

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

gentoo_root ★★★★★
() автор топика
Ответ на: комментарий от gentoo_root

они-то все думают, что XVideo работает и используют его

А оно не работает? Тогда надо это и чинить, всё-таки основной метод вывода видео.

aidaho ★★★★★
()
Ответ на: комментарий от aidaho

А оно не работает?

Ну вообще об этом и тред :D

Видео показывается, только поверх всего остального содержимого экрана.

gentoo_root ★★★★★
() автор топика
Ответ на: комментарий от gentoo_root

как написано тут

Ох, точно, это же extension. Я с секцией ошибся.

Вот только если этот выбранный цвет встретится в каком-то случайном пикселе другого окна, которое перекрывает видео, этот пиксель тоже заменится на пиксель из видео?

Ага. Берёшь программку, которая цвет пикселей с экрана закрашивает, забираешь цвет из окна плеера. Потом открываешь поверх плеера MS Paint, выбираешь для кисти тот самый цвет, начинаешь рисовать. И видно, как кино просвечивает.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Если фича есть, она должна работать правильно. Иначе это баг.

Я не сразу понял, что у ТСа проблема.

Берёшь программку, которая цвет пикселей с экрана закрашивает, забираешь цвет из окна плеера.

Попробовал сейчас с mplayer через xv, берёт цвета видео.

aidaho ★★★★★
()
Ответ на: комментарий от aidaho

Очередной говнокодер не слышал про оверхед и что у людей принято запускать на компе больше одной программы.

anonymous
()

Из-за этого ещё на скриншотах в Windows XP получался чёрный прямоугольник вместо видео.

У меня как-то вроде было так: я пытался сделать принтскрин, вставлял в паинт, и там вопроизводилось то, что я играл в двд-проигрывателе лайталлоу. То есть в паинт вставляется чёрный квадрат, когда включаешь вопроизведение — там начинает видео играться. Это почему атк, не в курсе?

Dreamject
()
Ответ на: комментарий от gentoo_root

Ну, в посте так описано, складывается такое впечатление, хотя если сесть и подумать, это бред полный да :-)

Twissel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.