+static int ffmpeg_va_GetFrameBuf( struct AVCodecContext *p_context, AVFrame *p_ff_pic )
+{
+ decoder_t *p_dec = (decoder_t *)p_context->opaque;
+ decoder_sys_t *p_sys = p_dec->p_sys;
+ vlc_va_t *p_va = p_sys->p_va;
+
+ /* hwaccel_context is not present in old ffmpeg version */
+ if( vlc_va_Setup( p_va,
+ &p_context->hwaccel_context, &p_dec->fmt_out.video.i_chroma,
+ p_context->width, p_context->height ) )
+ {
+ msg_Err( p_dec, "vlc_va_Setup failed" );
+ return -1;
+ }
+
+ if( vlc_va_Get( p_va, p_ff_pic ) )
+ {
+ msg_Err( p_dec, "VaGrabSurface failed" );
+ return -1;
+ }
+
+ p_ff_pic->type = FF_BUFFER_TYPE_USER;
+ return 0;
+}
+