Hi
I upgraded from 15.0 to 15.1 to 15.2. Did I do something wrong when I fought with installation of codecs/vlc (packman) or is it normal that I end up with a “/usr/lib64/vlc/plugins/codec/libavcodec_plugin.so” which uses libavcodec57 instead of libavcodec58?
Problem is libavcodec57 source code in vdpau.c does:
| if (avctx->codec_id == AV_CODEC_ID_HEVC && strncmp(info_string, "NVIDIA ", 7) == 0 &&|
|---|
|
| !(avctx->hwaccel_flags & AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH)) {|
|---|
|
| av_log(avctx, AV_LOG_VERBOSE, "HEVC with NVIDIA VDPAU drivers is buggy, skipping.
|
");|
|
| return AVERROR(ENOTSUP);|
|---|
|
}
while libavcodec58 source code does:
| if (avctx->codec_id == AV_CODEC_ID_HEVC && strncmp(info_string, "NVIDIA ", 7) == 0 &&|
|---|
|
| !(avctx->hwaccel_flags & AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH)) {|
|---|
|
| int driver_version = 0;|
|---|
|
| sscanf(info_string, "NVIDIA VDPAU Driver Shared Library %d", &driver_version);|
|---|
|
| if (driver_version < 410) {|
|---|
|
| av_log(avctx, AV_LOG_VERBOSE, "HEVC with NVIDIA VDPAU drivers is buggy, skipping.
|
");|
|
| return AVERROR(ENOTSUP);|
|---|
|
| }|
|---|
|
}
So libavcodec57 always thinks HEVC with NVIDIA VDPAU is buggy, while according to libavcodec58 it is only buggy in older versions of the driver.
Hack: if I change the string "NVIDIA " in “usr/lib64/libavcodec.so.57” to "nVIDIA " with a hexeditor, accelerated video playback of HEVC with vlc works.