diff options
author | Hendrik Leppkes <h.leppkes@gmail.com> | 2016-11-14 00:36:18 +0300 |
---|---|---|
committer | Hendrik Leppkes <h.leppkes@gmail.com> | 2016-11-14 00:36:18 +0300 |
commit | 3aa7b0a27326bd312ef790d9149f6b5efff97311 (patch) | |
tree | f978b87b50d691099c7e850a45cb291ac45b9ddc /libavutil/hwcontext_vaapi.c | |
parent | 1f8e1c209db2ec098edd7880a4ac88864615d674 (diff) | |
parent | f62bb216ac4cfbbff16108c6bac35a0282532972 (diff) |
Merge commit 'f62bb216ac4cfbbff16108c6bac35a0282532972'
* commit 'f62bb216ac4cfbbff16108c6bac35a0282532972':
hwcontext_vaapi: allow transfers to/from any size of sw frame
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
Diffstat (limited to 'libavutil/hwcontext_vaapi.c')
-rw-r--r-- | libavutil/hwcontext_vaapi.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c index 605e465e2d..6176bdc880 100644 --- a/libavutil/hwcontext_vaapi.c +++ b/libavutil/hwcontext_vaapi.c @@ -817,6 +817,9 @@ static int vaapi_transfer_data_from(AVHWFramesContext *hwfc, AVFrame *map; int err; + if (dst->width > hwfc->width || dst->height > hwfc->height) + return AVERROR(EINVAL); + map = av_frame_alloc(); if (!map) return AVERROR(ENOMEM); @@ -826,6 +829,9 @@ static int vaapi_transfer_data_from(AVHWFramesContext *hwfc, if (err) goto fail; + map->width = dst->width; + map->height = dst->height; + err = av_frame_copy(dst, map); if (err) goto fail; @@ -842,6 +848,9 @@ static int vaapi_transfer_data_to(AVHWFramesContext *hwfc, AVFrame *map; int err; + if (src->width > hwfc->width || src->height > hwfc->height) + return AVERROR(EINVAL); + map = av_frame_alloc(); if (!map) return AVERROR(ENOMEM); @@ -851,6 +860,9 @@ static int vaapi_transfer_data_to(AVHWFramesContext *hwfc, if (err) goto fail; + map->width = src->width; + map->height = src->height; + err = av_frame_copy(map, src); if (err) goto fail; |