diff options
author | Mark Thompson <sw@jkqxz.net> | 2017-03-04 23:57:31 +0000 |
---|---|---|
committer | Mark Thompson <sw@jkqxz.net> | 2017-06-14 22:26:32 +0100 |
commit | be510733523016aae7dca74bba6aa3b223c1fed6 (patch) | |
tree | b7e387299f3ff16e247f31bd5dae854f1305cd21 /ffmpeg_opt.c | |
parent | 06043cc0bc72b530db352a67776392cf61a54104 (diff) | |
download | ffmpeg-be510733523016aae7dca74bba6aa3b223c1fed6.tar.gz |
ffmpeg: Enable generic hwaccel support for VAAPI
(cherry picked from commit 62a1ef9f26c654a3e988aa465c4ac1d776c4c356)
Diffstat (limited to 'ffmpeg_opt.c')
-rw-r--r-- | ffmpeg_opt.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c index 6755e09e47..7401b5f7bb 100644 --- a/ffmpeg_opt.c +++ b/ffmpeg_opt.c @@ -87,8 +87,8 @@ const HWAccel hwaccels[] = { AV_HWDEVICE_TYPE_NONE }, #endif #if CONFIG_VAAPI - { "vaapi", vaapi_decode_init, HWACCEL_VAAPI, AV_PIX_FMT_VAAPI, - AV_HWDEVICE_TYPE_NONE }, + { "vaapi", hwaccel_decode_init, HWACCEL_VAAPI, AV_PIX_FMT_VAAPI, + AV_HWDEVICE_TYPE_VAAPI }, #endif #if CONFIG_CUVID { "cuvid", cuvid_init, HWACCEL_CUVID, AV_PIX_FMT_CUDA, @@ -462,10 +462,20 @@ static int opt_sdp_file(void *optctx, const char *opt, const char *arg) #if CONFIG_VAAPI static int opt_vaapi_device(void *optctx, const char *opt, const char *arg) { + HWDevice *dev; + const char *prefix = "vaapi:"; + char *tmp; int err; - err = vaapi_device_init(arg); + tmp = av_asprintf("%s%s", prefix, arg); + if (!tmp) + return AVERROR(ENOMEM); + err = hw_device_init_from_string(tmp, &dev); + av_free(tmp); if (err < 0) - exit_program(1); + return err; + hw_device_ctx = av_buffer_ref(dev->device_ref); + if (!hw_device_ctx) + return AVERROR(ENOMEM); return 0; } #endif |