LINUX.ORG.RU

На чем сделан интерфейс mpv?

 , ,


0

1

Много раз читал, что mpv крутой консольный плеер. Вот поставил, а смотрю там и кнопочки, и интерфейс какой-то, и на мышку реагирует. Получается, не консольный он? Тогда как это все сделано? И может я что спутал? Какие консольные видеоплееры в линуксе есть?


Крутые консольщики видео не смотрят, ибо против правил. 80х25, вот их интерфейс.

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

Прослойки между юзером и машиной. Которые выполняют дополнительный функционал. Например, рисуют окошки. Без них, соответственно, никаких окон с их декорациями просто нет.

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

Каким ещё юзером, когда разговор шёл про иксы и их отсутствие (якобы «консоль», на самом деле тот же drm что в иксах)?

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

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

«Консолью» или «ядерной консолью» люди называют эмулятор терминала vt, который реализован в ядре и работает без иксов. В т.ч. и когда у юзера нет иксов на машине вообще. Отсюда возможен и вариант «сидеть в консоли без иксов». И когда люди говорят про «консольный функционал», то они говорят именно про это - что именно доступно в таком окружении.

Если софтина выводит картинку через DRM, но при этом также требует иксы и работает именно в иксах, а без иксов не запустится, то это ни разу не консольная софтина, даже если у неё интерфейс комадной строки. Разница здесь в этом.

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

Это фреймбуферные текстовые разрешения. 80x32 - это на мониторе с разрешением 1280x1024 (когда шрифт стандартный 16x32 пикселей), а 120x36 - это на мониторе 1920x1080 (FullHD) (когда шрифт 16x30 пикселей; 16x32 на таком разрешении оставляет чёрную незадействованную полоску внизу экрана).

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

Никто не наяривает на сам vt, зато все наяривают на графический иксовый, а восе не консольный drm, без которого нет даже родного разрешения экрана.

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

всякие дцпшники

Некоторые нажимают языком одну клавишу, а другую им зажимают друзья. Вот так мы и работаем с хоткеями.

Deleted
()
Ответ на: комментарий от anonymous

без которого нет даже родного разрешения экрана

DRM и разрешение фреймбуфера - это разные вещи. Просто современные фреймбуферовские драйвера делают с поддержкой DRM. Но были времена, когда такого не было. И фреймбуфер вполне можно было подстроить под родное разрешение монитора. А вот видео, соответственно, выводилось не через DRM, которого не было, а через fbdev. mplayer до сих пор продолжает уметь выводить видео не через DRM, а именно через fbdev.

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

Какое ещё «подстроить»? Там набор фиксированных режимов, который кончается на разрешении меньшем, чем таковое у монитора, судя по большинству лоровцев.

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

Там набор фиксированных режимов, который кончается на разрешении меньшем, чем таковое у монитора

А вот и нет. И видеорежим даже можно задавать через опции ядра. Например:

linux /boot/linux-5.2.6 video=radeondrmfb:1920x1080@60,mtrr=3,ywrap root=/dev/sda1 processor.max_cstate=5 rcu_nocbs=0-15

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

Просто современные фреймбуферовские драйвера делают с поддержкой DRM. Но были времена, когда такого не было.

Фреймбуфер оставался фреймбуфером даже с таким фреймбуферовским драйвером как, например, nvidiafb.

Кстати, был ещё драйвер vesafb. Вот он мог иметь определённые ограничения.

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

А в несовременных фикcированный набор мыльных разрешений, меньше такового у монитора.

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

Смотря в каких.

При этом и в современных, повторяю, разрешение ни разу не зависит от DRM. Это две разные подсистемы ядра.

saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

И как это отменяет тот факт, что наяриватели на консоль наяривают на иксовую графическую инфраструктуру по факту, при этом противопоставляя её саму себе?

anonymous
()
Ответ на: комментарий от saahriktu

Это две разные подсистемы ядра

Нет. Для доступа к видео одна подсистема - drm, всё идёт через неё одну.

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

иксовую графическую инфраструктуру

Нет. DRM - это подсистема ядра. Поэтому, повторяю, mpv умеет показывать картинку через DRM когда в системе даже иксовыми библиотеками совершенно не пахнет, не то что самими иксами.

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

Для доступа к видео одна подсистема - drm

Нет, не для «доступа к видео», а для вывода картинки, например, в видеопроигрывателе.

Фреймбуфер - это просто буфер для картинки (текст поверх графики, графика поверх текста). И не более этого.

saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

Так каким образом это отменяет тот факт, что в обоих случаях всё работает через один и тот же drm?

Почитай за одно, для чего и кем он был запилен и пилится. Да, не для консоли внезапно, а для иксов.

anonymous
()
Ответ на: комментарий от saahriktu

Что «нет», какой ещё картинки? Там апи гораздо обшиирнее а видеокарты не только «выводят картинку», исперд.

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

Да, не для консоли внезапно, а для иксов.

Это совершенно неважно какие цели у авторов если они в итоге делают то, что абсолютно юзабельно без всяких иксов в системе.

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

Там апи гораздо обшиирнее

И каким образом эта обширность относится к фреймбуферу? В общем, не надо смешивать разные подсистемы ядра. Просто ядро одно и отдельные его подсистемы работают параллельно. Но разные подсистемы.

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

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

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

В ядре нет никаких иксов. Это отдельная софтина.

А «консолью» люди называют ядерный vt. Который просто умеет работать через фреймбуфер. А фреймбуфер работает независимо от API всяких DRM'ов.

saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

И каким образом эта обширность относится к фреймбуферу?

Никаким, потому что это кусок иксов, к консольке не имеющий отношения.

В общем, не надо смешивать разные подсистемы ядра

Там одна подсистема, какие ещё «разные»? Назови их тогда.

anonymous
()
Ответ на: комментарий от saahriktu

А фреймбуфер работает независимо от API всяких DRM'ов

Нет, не работает - мыльное разрешение меньше экрана это не работа, как и отсутствие ускорения.

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

Разрешение выставляется в подсистеме фреймбуфера.

как и отсутствие ускорения

Ускорение может быть и независимо от DRM.

saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

Фреймбуфер работает через drm. Вот выходит что как раз твой фреймбуфер и есть обёртка.

anonymous
()
Ответ на: комментарий от saahriktu

Ускорение может быть

Яблони на марсе тоже могут быть. Но их нет.

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

Разрешение выставляется драйвером фреймбуфера, который реализует драйвер фреймбуфера. DRM - это соседняя подсистема ядра.

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

Никакого отдельного «драйвера видеокарты» просто нет. Есть драйвер фреймбуфера. А с какими другими подсистемами ядра он умеет взаимодействовать - это уже другой вопрос.

vesafb - драйвер фреймбуфера, nvidiafb - драйвер фрембуфера, nouveaufb - драйвер фреймбуфера, radeondrmfb - драйвер фреймбуфера,... и т.д.

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

Офигительные истории, пиши ещё. Есть kernel/drivers/video/fbdev/* А есть kernel/drivers/gpu/drm/nouveau/*

Второе работает без первого, просто не будет соснольки и /dev/fb*

anonymous
()
Ответ на: комментарий от DELIRIUM

На коленке. Без smplayer этим пользоваться невозможно.

Как же так? Я уже несколько фильмов посмотрел.

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

Я ж и говорю, что это две разные подсистемы. И когда люди говорят про «консоль» или «ядерную консоль», то они говорят конкретно про vt. Который может работать через /dev/fb*.

При этом mpv будучи запущенным из vt через фреймбуфер умеет выводить картинку и через подсистему ядра DRM без всяких иксов и вейландов, да.

saahriktu ★★★★★
()

судя по выхлопу ldd, на SDL

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

Разумеется, разные подсистемы ядра взаимодействуют между собой, в т.ч. и по команде юзера. Если, например, из vt запустить wget, то он обратится к сетевой подсистеме ядра. Однако, это разные подсистемы одного и того же ядра.

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

Здорово, как это отменяет тот факт, что так называемые «консольные приложения», напрямую использующие drm, те полностью графические и делающие то же самое, что делают иксовые приложения, ничем не отличаются от иксовых приложений, кроме того что XOpenDisplay() не вызывают?

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

кроме того что XOpenDisplay() не вызывают?

Далеко не только. Иксовый софт ни разу не работает без жирных (по сравнению с ядерной консолью без иксов) иксов. В иксах же у юзера WM/DE с окошками. В общем, это всё дополнительные прослойки.

А просто нарисовать картинку - это ни разу не «специфическая для графического софта задача». Консольный софт очень даже может рисовать картинки, и от этого он не попадает в класc GUI-софта. А типично иксовый софт - это именно GUI-софт.

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

Если бы под так называемую консоль писали приложения, а не школьные поделки, там бы использовались тулкиты и был бы абсолютный паритет по «обёрткам».

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

Ещё раз повторяю, что при противопоставлении консоли и иксов противопоставляются именно CLI + TUI и GUI. Вы употребляете термин «графический софт» именно для обозначения GUI. Однако, манипуляции с графикой, внезапно, не переводят софт из категории CLI в категорию GUI. Т.е., в соответствии с Вашей терминологией, не делают его графическим.

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