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

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHendrik Leppkes <h.leppkes@gmail.com>2016-11-14 00:36:18 +0300
committerHendrik Leppkes <h.leppkes@gmail.com>2016-11-14 00:36:18 +0300
commit3aa7b0a27326bd312ef790d9149f6b5efff97311 (patch)
treef978b87b50d691099c7e850a45cb291ac45b9ddc /libavutil/hwcontext_vaapi.c
parent1f8e1c209db2ec098edd7880a4ac88864615d674 (diff)
parentf62bb216ac4cfbbff16108c6bac35a0282532972 (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.c12
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;