summaryrefslogtreecommitdiff
path: root/libavcodec/qsvenc.c
diff options
context:
space:
mode:
authorMark Thompson <sw@jkqxz.net>2017-03-30 22:06:03 +0100
committerMark Thompson <sw@jkqxz.net>2017-03-30 22:06:03 +0100
commitc0f2a8eac172ce720a513abe1706a026236c0579 (patch)
tree9e88b168279cf1bd024460610ecd219a6f25a1d9 /libavcodec/qsvenc.c
parent2f18e452f88fc6ed7b0e308d4de5c386ee1b3a12 (diff)
parent00aeedd84105a17f414185bd33ecadebeddb3a27 (diff)
Merge commit '00aeedd84105a17f414185bd33ecadebeddb3a27'
* commit '00aeedd84105a17f414185bd33ecadebeddb3a27': qsv{dec,enc}: use a struct as a memory id with internal memory allocator Merged-by: Mark Thompson <sw@jkqxz.net>
Diffstat (limited to 'libavcodec/qsvenc.c')
-rw-r--r--libavcodec/qsvenc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
index 496a032f31..76f18cdc7b 100644
--- a/libavcodec/qsvenc.c
+++ b/libavcodec/qsvenc.c
@@ -879,6 +879,14 @@ static int submit_frame(QSVEncContext *q, const AVFrame *frame,
return ret;
qf->surface = *(mfxFrameSurface1*)qf->frame->data[3];
+
+ if (q->frames_ctx.mids) {
+ ret = ff_qsv_find_surface_idx(&q->frames_ctx, qf);
+ if (ret < 0)
+ return ret;
+
+ qf->surface.Data.MemId = &q->frames_ctx.mids[ret];
+ }
} else {
/* make a copy if the input is not padded as libmfx requires */
if (frame->height & 31 || frame->linesize[0] & (q->width_align - 1)) {