4.2. Xv

4.2. Xv

Под XFree86 4.0.2 или новее, вы можете использовать функции работы с YUV[YUV routines] вашей видеокарты, используя расширение XVideo, то, которое используется при указании опциии -vo xv. К тому же этот драйвер поддерживает управление яркостью/контрастностью/цветностью/и т.д. (кроме случая использования старого ,медленного DivX кодека DirectShow, который везде это поддерживает), смотрите страницу man.

Чтобы заставить его работать, убедитесь, что выполняется следующее:

  1. Требуется использовать XFree86 4.0.2 или новее (предыдущие версии не меют XVideo)

  2. Ваша карта действительно поддерживает аппаратное ускорение (современные - да)

  3. X загружают расширение XVideo, это похоже на:

    (II) Loading extension XVideo

    в /var/log/XFree86.0.log

    Замечание

    Это всего лишь загружается расширение XVideo. При нормальной установке оно грузится всегда, это не означает, что загружена аппаратная поддержка XVideo.

  4. Ваша карта имеет поддержку Xv для Linux. Чтобы это проверить, запустите xvinfo, являющуюся частью дистрибутива XFree86. Она должна выдать на экран длинный текст, похожий на этот:

    X-Video Extension version 2.2
    screen #0
      Adaptor #0: "Savage Streams Engine"
        number of ports: 1
        port base: 43
        operations supported: PutImage
        supported visuals:
          depth 16, visualID 0x22
          depth 16, visualID 0x23
        number of attributes: 5
    (...)
        Number of image formats: 7
          id: 0x32595559 (YUY2)
            guid: 59555932-0000-0010-8000-00aa00389b71
            bits per pixel: 16
            number of planes: 1
            type: YUV (packed)
          id: 0x32315659 (YV12)
            guid: 59563132-0000-0010-8000-00aa00389b71
            bits per pixel: 12
            number of planes: 3
            type: YUV (planar)
    (...и т.д....)

    Карта должна поддерживать YUY2 пакованные и YUV12 планарные[planar] форматы пикселов, чтобы быть полезной в MPlayer.

  5. И, наконец, проверьте, что MPlayer собран с поддержкой 'xv'. Выполните mplayer -vo help | grep xv . Если поддержка 'xv' включена, то увидите похожую строку:

      xv      X11/Xv

4.2.1. 3dfx карты

Хорошо известно, что старые 3dfx драйвера имеют проблемы с ускорением XVideo, они не поддерживают ни YUY2 ни YV12, ни т.п. Проверьте, что у вас XFree86 версии 4.2.0 или новее, он может работать с YV12 и YUY2, в то время как предыдущие версии, включая 4.1.0, с YV12 приводят к краху. Если вы столкнулись со странными эффектами при использовании -vo xv, попробуйте SDL (он тоже имеет поддержку XVideo), и посмотрите поможет ли это. Обратитесь к разделу SDL за подробностями.

ИЛИ, попробуйте НОВЫЙ -vo tdfxfb драйвер! Смотрите раздел tdfxfb.

4.2.2. S3 карты

S3 Savage3D, должны прекрасно работать, но для Savage4 используйте XFree86 версии 4.0.3 или выше (в случае проблем с изображением попробуйте 16bpp). По поводу S3 Virge: она поддерживает xv, но карта сама по себе слишком медленная, так что лучше будет ее продать.

Существует родной драйвер фреймбуфера для карт S3 Virge, аналогичный tdfxfb. Настройте ваш фреймбуфер (например, укажите ядру "vga=792 video=vesa:mtrr") и воспользуйтесь -vo s3fb (-vf yuy2 и -dr тоже помогут).

Замечание

Пока не ясно в каких моделях Savage отсутствует поддержка YV12, и преобразование осуществляется драйвером (медленно). Если вы грешите на свою карту, возьмите свежий драйвер иди вежливо спросите в списке рассылки MPlayer-users о драйвере с поддержкой MMX/3DNow!.

4.2.3. nVidia карты

nVidia под Linux - не всегда хороший выбор ... Открытые драйвера XFree86 поддерживают большинство этих карт, но в некоторых случаях придется использовать закрытый бинарный драйвер от nVidia, доступный на сайте nVidia. Этот драйвер также всегда необходим для задействования 3D ускорения.

Карты Riva128 не имеют поддержки XVideo с драйвером nVidia от XFree86 :( Подайте жалобу nVidia.

Тем не менее, MPlayer имеет VIDIX драйвер для большинства карт nVidia. Сейчас он в стадии беты и имеет некоторые недостатки. За подробостями обращайтесь к разделу nVidia VIDIX.

4.2.4. ATI карты

Драйвер GATOS (который стоит использовать, если у вас не Rage128 или Radeon) по-умолчанию имеет включенную опцию VSYNC. Это значит, что скорость декодирования (!) синхронизирована с частотой обновления монитора. Если воспроизведение кажется медленным, попробуйте как-нибудь отключить VSYNC или установите частоту обновления в n*(fps[кадров/с] фильма) Гц.

Radeon VE - если нужен X, используйте XFree86 4.2.0 или новее. Нет поддержки TV-выхода. Конечно, с MPlayer вы можете успешно получить ускоренное отображение, с или без TV-выхода, без каких-либо библиотек X. Читайте раздел VIDIX.

4.2.5. NeoMagic карты

Эти карты можно найти во многих ноутбуках. Вы должны использовать XFree86 4.3.0 или более новый, или использовать Xv-совместимые драйвера. от Stefan Seyfried. Просто выберите подходящий для вашей версии XFree86.

XFree86 4.3.0 включает поддержку Xv, недавно Bohdan Horst отослал небольшой патч для исходников XFree86, ускоряющий операции с фреймбуфером (и XVideo) в четыре раза. Патч был включен в XFree86 CVS и должен быть в следующем релизе после 4.3.0.

Чтобы сделать возможным воспроизведение фильмов DVD разрешения поправьте ваш XF86Config как указано здесь:

Section "Device"
    [...]
    Driver "neomagic"
    Option "OverlayMem" "829440"
    [...]
EndSection

4.2.6. Trident карты

Если хотите использовать Xv с картой Trident, учитывая, что они не работают с 4.1.0, установите XFree 4.2.0. 4.2.0 добавляет поддержку полноэкранного Xv с картой Cyberblade XP.

Другой вариант: MPlayer имеет VIDIX драйвер для карт Cyberblade/i1.

4.2.7. Kyro/PowerVR карты

Если хотите использовать Xv с картами на базе Kyro (например, Hercules Prophet 4000XT), следует скачать драйверы с сайта PowerVR.

4.2.8. Карты Intel

Эти карты можно обнаружить во многих ноутбуках. Рекомендуется Xorg последней версии.

Для воспроизведения контента размера DVD (и более) поправьте ваш XF86Config/xorg.conf как указано здесь:

Section "Device"
    [...]
    Driver "intel"
    Option "LinearAlloc" "6144"
    [...]
EndSection

Отсутствие этой опции скорее всего приведет к появлению ошибки

X11 error: BadAlloc (insufficient resources for operation)

при попытке использовать -vo xv.