Commit 3491ad53 authored by Laurent Aimar's avatar Laurent Aimar Committed by Jean-Baptiste Kempf

Do not uselessly disable direct rendering in avcodec.

It allows to use direct rendering if the chroma/size changes.
It also avoid *always* disabling it after a seek...
(It cost about 6% of CPU for video HD on my dual core in memcpy).
(cherry picked from commit 0f79a0a0)
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent 3ef9901e
......@@ -919,21 +919,16 @@ static int ffmpeg_GetFrameBuf( struct AVCodecContext *p_context,
/* We only pad picture up to 16 */
PAD(p_sys->p_context->width,16) < i_width || PAD(p_sys->p_context->height,16) < i_height ||
p_context->pix_fmt == PIX_FMT_PAL8 )
{
msg_Dbg( p_dec, "disabling direct rendering" );
p_sys->b_direct_rendering = false;
return avcodec_default_get_buffer( p_context, p_ff_pic );
}
p_dec->fmt_out.i_codec = p_dec->fmt_out.video.i_chroma;
/* Get a new picture */
//p_sys->p_vout->render.b_allow_modify_pics = 0;
p_pic = ffmpeg_NewPictBuf( p_dec, p_sys->p_context );
if( !p_pic )
{
p_sys->b_direct_rendering = false;
return avcodec_default_get_buffer( p_context, p_ff_pic );
}
p_sys->p_context->draw_horiz_band = NULL;
p_ff_pic->opaque = (void*)p_pic;
......
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