|
Lines 98-103
Link Here
|
| 98 |
return driver_name; |
98 |
return driver_name; |
| 99 |
} |
99 |
} |
| 100 |
|
100 |
|
|
|
101 |
static char const * _vdpau_module_search_paths[] = { |
| 102 |
"${ORIGIN}/vdpau/", |
| 103 |
VDPAU_MODULEDIR "/", |
| 104 |
"/usr/lib/vdpau/", |
| 105 |
"", |
| 106 |
NULL |
| 107 |
}; |
| 108 |
|
| 101 |
static VdpStatus _vdp_open_driver( |
109 |
static VdpStatus _vdp_open_driver( |
| 102 |
Display * display, |
110 |
Display * display, |
| 103 |
int screen) |
111 |
int screen) |
|
Lines 107-112
Link Here
|
| 107 |
char vdpau_driver_lib[PATH_MAX]; |
115 |
char vdpau_driver_lib[PATH_MAX]; |
| 108 |
char const * vdpau_trace; |
116 |
char const * vdpau_trace; |
| 109 |
char const * func_name; |
117 |
char const * func_name; |
|
|
118 |
char const ** module_path; |
| 110 |
|
119 |
|
| 111 |
vdpau_driver = getenv("VDPAU_DRIVER"); |
120 |
vdpau_driver = getenv("VDPAU_DRIVER"); |
| 112 |
if (!vdpau_driver) { |
121 |
if (!vdpau_driver) { |
|
Lines 118-129
Link Here
|
| 118 |
} |
127 |
} |
| 119 |
|
128 |
|
| 120 |
_vdp_driver_dll = NULL; |
129 |
_vdp_driver_dll = NULL; |
| 121 |
if (snprintf(vdpau_driver_lib, sizeof(vdpau_driver_lib), DRIVER_LIB_FORMAT, |
130 |
|
| 122 |
VDPAU_MODULEDIR "/", vdpau_driver, ".1") >= |
131 |
for (module_path = _vdpau_module_search_paths; *module_path; ++module_path) { |
| 123 |
sizeof(vdpau_driver_lib)) { |
132 |
if (snprintf(vdpau_driver_lib, sizeof(vdpau_driver_lib), DRIVER_LIB_FORMAT, |
| 124 |
fprintf(stderr, "Failed to construct driver path: path too long\n"); |
133 |
*module_path, vdpau_driver, ".1") >= sizeof(vdpau_driver_lib)) { |
| 125 |
} else { |
134 |
fprintf(stderr, "Failed to construct driver path: path too long\n"); |
| 126 |
_vdp_driver_dll = dlopen(vdpau_driver_lib, RTLD_NOW | RTLD_GLOBAL); |
135 |
} else { |
|
|
136 |
_vdp_driver_dll = dlopen(vdpau_driver_lib, RTLD_NOW | RTLD_GLOBAL); |
| 137 |
if (_vdp_driver_dll) { |
| 138 |
break; |
| 139 |
} |
| 140 |
} |
| 127 |
} |
141 |
} |
| 128 |
|
142 |
|
| 129 |
if (!_vdp_driver_dll) { |
143 |
if (!_vdp_driver_dll) { |