X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fvaapi.c;h=15531e46bdc00d78fc055ad49a3e5105a2df3b90;hb=38c3ffbd55deb91622a58d8e20b15d263aadf131;hp=db4d29dbbc1e46d4f0874c4317ac12f027c3ad26;hpb=420aebf0c585e54468e631460065448c9bb6ccb5;p=ffmpeg diff --git a/libavcodec/vaapi.c b/libavcodec/vaapi.c index db4d29dbbc1..15531e46bdc 100644 --- a/libavcodec/vaapi.c +++ b/libavcodec/vaapi.c @@ -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 + /* @} */