Merge commit '4ab61cd983b539749bd621ea271624ddb5196a8e'
[ffmpeg.git] / libavcodec / qsv_internal.h
index 624b2b8..814db08 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;