Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Thompson <sw@jkqxz.net>2017-03-05 02:57:31 +0300
committerMark Thompson <sw@jkqxz.net>2017-06-15 00:26:32 +0300
commitbe510733523016aae7dca74bba6aa3b223c1fed6 (patch)
treeb7e387299f3ff16e247f31bd5dae854f1305cd21 /ffmpeg_opt.c
parent06043cc0bc72b530db352a67776392cf61a54104 (diff)
ffmpeg: Enable generic hwaccel support for VAAPI
(cherry picked from commit 62a1ef9f26c654a3e988aa465c4ac1d776c4c356)
Diffstat (limited to 'ffmpeg_opt.c')
-rw-r--r--ffmpeg_opt.c18
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