История изменений
Исправление 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 вызывает заглушки, которые возвращают коды ошибок.