Commit 613866f9 authored by Jean-Paul Saman's avatar Jean-Paul Saman

avcodec: simplify VAAPI ffmpeg_GetFramebuf()

parent 44eee00d
...@@ -1006,6 +1006,19 @@ static int ffmpeg_GetFrameBuf( struct AVCodecContext *p_context, ...@@ -1006,6 +1006,19 @@ static int ffmpeg_GetFrameBuf( struct AVCodecContext *p_context,
p_ff_pic->age = 256*256*256*64; // FIXME FIXME from ffmpeg p_ff_pic->age = 256*256*256*64; // FIXME FIXME from ffmpeg
#endif #endif
#ifdef HAVE_AVCODEC_VA
/* hwaccel_context is not present in old fffmpeg version */
if( vlc_va_Setup( p_sys->p_va,
&p_sys->p_context->hwaccel_context, &p_dec->fmt_out.video.i_chroma,
p_sys->p_context->width, p_sys->p_context->height ) )
{
msg_Err( p_dec, "vlc_va_Setup failed" );
return -1;
}
#else
assert(0);
#endif
/* NOTE: Get first picture from video output instead of from the /* NOTE: Get first picture from video output instead of from the
* normal (non-accellerated vouts) mechanism. The drawback is that * normal (non-accellerated vouts) mechanism. The drawback is that
* decoding the first pictures is delayed with the creation of the * decoding the first pictures is delayed with the creation of the
...@@ -1020,18 +1033,6 @@ static int ffmpeg_GetFrameBuf( struct AVCodecContext *p_context, ...@@ -1020,18 +1033,6 @@ static int ffmpeg_GetFrameBuf( struct AVCodecContext *p_context,
else else
{ {
if( p_pic ) picture_Release( p_pic ); if( p_pic ) picture_Release( p_pic );
#ifdef HAVE_AVCODEC_VA
/* hwaccel_context is not present in old fffmpeg version */
if( vlc_va_Setup( p_sys->p_va,
&p_sys->p_context->hwaccel_context, &p_dec->fmt_out.video.i_chroma,
p_sys->p_context->width, p_sys->p_context->height ) )
{
msg_Err( p_dec, "vlc_va_Setup failed" );
return -1;
}
#else
assert(0);
#endif
if( vlc_va_Get( p_sys->p_va, p_ff_pic ) ) if( vlc_va_Get( p_sys->p_va, p_ff_pic ) )
{ {
...@@ -1248,10 +1249,9 @@ static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context, ...@@ -1248,10 +1249,9 @@ static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context,
if( p_sys->p_va->description ) if( p_sys->p_va->description )
msg_Info( p_dec, "Using %s for hardware decoding.", p_sys->p_va->description ); msg_Info( p_dec, "Using %s for hardware decoding.", p_sys->p_va->description );
/* FIXME this will disabled direct rendering p_sys->b_direct_rendering = p_sys->p_va->direct_rendering;
* even if a new pixel format is renegociated msg_Info( p_dec, "VAAPI uses direct rendering: %s",
*/ p_sys->b_direct_rendering ? "yes" : "no" );
p_sys->b_direct_rendering = false;
p_context->draw_horiz_band = NULL; p_context->draw_horiz_band = NULL;
return pi_fmt[i]; return pi_fmt[i];
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment