vlc | branch: master | Thomas Guillem <[email protected]> | Fri Aug 28 18:53:51 2015 +0200| [4125beededb95d27d46bc07cc80fe073fe36ef3c] | committer: Thomas Guillem
mediacodec: ensure that surface is released before starting direct rendering This fixes an error when switching from 2 Es with different codecs. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4125beededb95d27d46bc07cc80fe073fe36ef3c --- modules/codec/omxil/mediacodec.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/modules/codec/omxil/mediacodec.c b/modules/codec/omxil/mediacodec.c index 4f74508..a774e5c 100644 --- a/modules/codec/omxil/mediacodec.c +++ b/modules/codec/omxil/mediacodec.c @@ -390,7 +390,20 @@ static int StartMediaCodec(decoder_t *p_dec) } if (!p_sys->u.video.p_awh && var_InheritBool(p_dec, CFG_PREFIX "dr")) - p_sys->u.video.p_awh = AWindowHandler_new(VLC_OBJECT(p_dec)); + { + if ((p_sys->u.video.p_awh = AWindowHandler_new(VLC_OBJECT(p_dec)))) + { + /* Direct rendering: + * The surface must be released by the Vout before calling + * start. Request a valid OPAQUE Vout to release any non-OPAQUE + * Vout that will release the surface. + */ + p_dec->fmt_out.video.i_width = p_sys->u.video.i_width; + p_dec->fmt_out.video.i_height = p_sys->u.video.i_height; + p_dec->fmt_out.i_codec = VLC_CODEC_ANDROID_OPAQUE; + decoder_UpdateVideoFormat(p_dec); + } + } args.video.p_awh = p_sys->u.video.p_awh; } else _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
