]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/qsv_internal.h
Merge commit 'd1a91ebe4990001e0800ee9ac54ed2207e4f56ff'
[ffmpeg] / libavcodec / qsv_internal.h
index 624b2b8308f60d2570ce9225712ba9e2842520d4..814db08e6c9aa5fb2dccc1e5740e2b7db876c502 100644 (file)
      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;