qsvdec: move qsv_process_data() from qsvdec_h264 to the common code
[ffmpeg.git] / libavcodec / qsvdec.h
index 486a7e3..d5f2bce 100644 (file)
@@ -28,6 +28,7 @@
 
 #include <mfx/mfxvideo.h>
 
+#include "libavutil/fifo.h"
 #include "libavutil/frame.h"
 #include "libavutil/pixfmt.h"
 
@@ -47,6 +48,13 @@ typedef struct QSVContext {
      */
     QSVFrame *work_frames;
 
+    AVFifoBuffer *async_fifo;
+
+    // the internal parser and codec context for parsing the data
+    AVCodecParserContext *parser;
+    AVCodecContext *avctx_internal;
+    enum AVPixelFormat orig_pix_fmt;
+
     // options set by the caller
     int async_depth;
     int iopattern;
@@ -59,9 +67,10 @@ int ff_qsv_map_pixfmt(enum AVPixelFormat format);
 
 int ff_qsv_decode_init(AVCodecContext *s, QSVContext *q, mfxSession session);
 
-int ff_qsv_decode(AVCodecContext *s, QSVContext *q,
-                  AVFrame *frame, int *got_frame,
-                  AVPacket *avpkt);
+int ff_qsv_process_data(AVCodecContext *avctx, QSVContext *q,
+                        AVFrame *frame, int *got_frame, AVPacket *pkt);
+
+void ff_qsv_decode_flush(AVCodecContext *avctx, QSVContext *q);
 
 int ff_qsv_decode_close(QSVContext *q);