LINUX.ORG.RU

История изменений

Исправление i-rinat, (текущая версия) :

нежданчики могут появиться и с совместимостью между двайвером и «независимой» библиотекой

Есть такой момент, да. У драйверов VA-API много раз менялось ABI, а в libva довольно агрессивно отключают старые версии, так что совместимость может внезапно сломаться года через три.

а файерфокс как делает? Линкуется к libva при сборке?

Они сделали библиотеку-прослойку, которая предоставляет те же символы, что и libva. Собственно libva загружается во время работы. Если она есть, то mozva проксирует вызовы в libva, один к одному. Если нет, то mozva вызывает заглушки, которые возвращают коды ошибок.

Поначалу там прямое связывание с libva было, но на сборочных серверах в их стандартных окружениях не было нужной версии libva, поэтому сборка фейлилась. Чтобы хоть как-то собирать, сделали прокладку. И это к лучшему, иначе бинарные сборки Firefox требовали бы установленной libva, причём нужной версии, а такое не везде. Кажется, на Ubuntu 12 была первая версия, а не нужная вторая.

Исходная версия i-rinat, :

нежданчики могут появиться и с совместимостью между двайвером и «независимой» библиотекой

Есть такой момент, да. У драйверов VA-API много раз менялось ABI, а в libva довольно агрессивно отключают старые версии, так что совместимость может внезапно сломаться года через три.

а файерфокс как делает? Линкуется к libva при сборке?

Они сделали библиотеку-прослойку, которая предоставляет те же символы, что и libva. Собственно libva загружается во время работы. Если она есть, то mozva проксирует вызовы в libva, один к одному. Если нет, то mozva вызывает заглушки, которые возвращают коды ошибок.