summaryrefslogtreecommitdiff
path: root/libavcodec/qsv_internal.h
diff options
context:
space:
mode:
authorMark Thompson <sw@jkqxz.net>2017-03-30 22:07:57 +0100
committerMark Thompson <sw@jkqxz.net>2017-03-30 22:07:57 +0100
commitff821fdfced0de05e1e62c7fec2635ffc607f383 (patch)
treeb3ee5ac8938408d5511234fe658e74e48c187822 /libavcodec/qsv_internal.h
parentc0f2a8eac172ce720a513abe1706a026236c0579 (diff)
parent4ab61cd983b539749bd621ea271624ddb5196a8e (diff)
Merge commit '4ab61cd983b539749bd621ea271624ddb5196a8e'
* commit '4ab61cd983b539749bd621ea271624ddb5196a8e': qsv{enc,dec}: extend the internal frame allocator Merged-by: Mark Thompson <sw@jkqxz.net>
Diffstat (limited to 'libavcodec/qsv_internal.h')
-rw-r--r--libavcodec/qsv_internal.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/libavcodec/qsv_internal.h b/libavcodec/qsv_internal.h
index 624b2b8308..814db08e6c 100644
--- a/libavcodec/qsv_internal.h
+++ b/libavcodec/qsv_internal.h
@@ -39,7 +39,12 @@
MFX_VERSION_MAJOR == (MAJOR) && MFX_VERSION_MINOR >= (MINOR))
typedef struct QSVMid {
+ AVBufferRef *hw_frames_ref;
mfxHDL handle;
+
+ AVFrame *locked_frame;
+ AVFrame *hw_frame;
+ mfxFrameSurface1 surf;
} QSVMid;
typedef struct QSVFrame {
@@ -55,7 +60,13 @@ typedef struct QSVFrame {
typedef struct QSVFramesContext {
AVBufferRef *hw_frames_ctx;
- mfxFrameInfo info;
+ void *logctx;
+
+ /* The memory ids for the external frames.
+ * Refcounted, since we need one reference owned by the QSVFramesContext
+ * (i.e. by the encoder/decoder) and another one given to the MFX session
+ * from the frame allocator. */
+ AVBufferRef *mids_buf;
QSVMid *mids;
int nb_mids;
} QSVFramesContext;