]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/vaapi.c
Merge commit 'd75190aa93206c02cb4f18a66d2c927d6a0198e1'
[ffmpeg] / libavcodec / vaapi.c
index db4d29dbbc1e46d4f0874c4317ac12f027c3ad26..15531e46bdc00d78fc055ad49a3e5105a2df3b90 100644 (file)
@@ -197,4 +197,30 @@ void ff_vaapi_common_end_frame(AVCodecContext *avctx)
     vactx->slice_params_alloc  = 0;
 }
 
+#if CONFIG_H263_VAAPI_HWACCEL  || CONFIG_MPEG1_VAAPI_HWACCEL || \
+    CONFIG_MPEG2_VAAPI_HWACCEL || CONFIG_MPEG4_VAAPI_HWACCEL || \
+    CONFIG_VC1_VAAPI_HWACCEL   || CONFIG_WMV3_VAAPI_HWACCEL
+int ff_vaapi_mpeg_end_frame(AVCodecContext *avctx)
+{
+    struct vaapi_context * const vactx = avctx->hwaccel_context;
+    MpegEncContext *s = avctx->priv_data;
+    int ret;
+
+    ret = ff_vaapi_commit_slices(vactx);
+    if (ret < 0)
+        goto finish;
+
+    ret = ff_vaapi_render_picture(vactx,
+                                  ff_vaapi_get_surface_id(s->current_picture_ptr->f));
+    if (ret < 0)
+        goto finish;
+
+    ff_mpeg_draw_horiz_band(s, 0, s->avctx->height);
+
+finish:
+    ff_vaapi_common_end_frame(avctx);
+    return ret;
+}
+#endif
+
 /* @} */