vlc | branch: master | Thomas Guillem <[email protected]> | Mon Nov 17 14:43:28 2014 +0100| [d7073d735cde6082ef1fac6a9c174601522235e6] | committer: Jean-Baptiste Kempf
android_window: fix honeycomb jni_ConfigureSurface need also to be called width HC using ANW, ANWP or opaque. (There was no ANWP or opaque in gingerbread) Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d7073d735cde6082ef1fac6a9c174601522235e6 --- modules/video_output/android/android_window.c | 35 +++++++++++++++---------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/modules/video_output/android/android_window.c b/modules/video_output/android/android_window.c index f0bc2592..8474840 100644 --- a/modules/video_output/android/android_window.c +++ b/modules/video_output/android/android_window.c @@ -383,21 +383,18 @@ error: return -1; } -static int AndroidWindow_SetupANW(vout_display_sys_t *sys, - android_window *p_window) +static int AndroidWindow_ConfigureSurface(vout_display_sys_t *sys, + android_window *p_window) { int err; bool configured; - p_window->i_pic_count = 1; - p_window->i_min_undequeued = 0; - /* - * anw.setBuffersGeometry is broken in gingerbread. + * anw.setBuffersGeometry and anwp.setup are broken before ics. * use jni_ConfigureSurface to configure the surface on the java side - * synchronsouly. + * synchronously. * jni_ConfigureSurface return -1 when you don't need to call it (ie, after - * gingerbread). + * honeycomb). * if jni_ConfigureSurface succeed, you need to get a new surface handle. * That's why AndroidWindow_SetSurface is called again here. */ @@ -414,13 +411,20 @@ static int AndroidWindow_SetupANW(vout_display_sys_t *sys, return -1; } else return -1; - } else { - err = sys->anw.setBuffersGeometry(p_window->p_handle, - p_window->fmt.i_width, - p_window->fmt.i_height, - p_window->i_android_hal); } - return err; + return 0; +} + +static int AndroidWindow_SetupANW(vout_display_sys_t *sys, + android_window *p_window) +{ + p_window->i_pic_count = 1; + p_window->i_min_undequeued = 0; + + return sys->anw.setBuffersGeometry(p_window->p_handle, + p_window->fmt.i_width, + p_window->fmt.i_height, + p_window->i_android_hal); } static int AndroidWindow_Setup(vout_display_sys_t *sys, @@ -441,6 +445,9 @@ static int AndroidWindow_Setup(vout_display_sys_t *sys, picture_Release(p_pic); } + if (AndroidWindow_ConfigureSurface(sys, p_window) != 0) + return -1; + if (p_window->b_opaque) { sys->p_window->i_pic_count = 31; // TODO sys->p_window->i_min_undequeued = 0; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
