vlc | branch: master | Thomas Guillem <thomas.guil...@gmail.com> | Tue Sep 30 12:18:10 2014 +0200| [842b6578ae0e9a4d47024ab45441b5211663d4c3] | committer: Jean-Baptiste Kempf
nativewindowpriv: add setOrientation Signed-off-by: Jean-Baptiste Kempf <j...@videolan.org> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=842b6578ae0e9a4d47024ab45441b5211663d4c3 --- modules/video_output/android/nativewindowpriv.c | 29 +++++++++++++++++++++++ modules/video_output/android/utils.c | 5 ++-- modules/video_output/android/utils.h | 3 +++ 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/modules/video_output/android/nativewindowpriv.c b/modules/video_output/android/nativewindowpriv.c index 3fb9356..72b853b 100644 --- a/modules/video_output/android/nativewindowpriv.c +++ b/modules/video_output/android/nativewindowpriv.c @@ -259,3 +259,32 @@ int ANativeWindowPriv_cancel( void *window, void *p_handle ) return 0; } + +int ANativeWindowPriv_setOrientation( void *window, int orientation ) +{ + ANativeWindow *anw = (ANativeWindow *)window; + status_t err = NO_ERROR; + int transform; + + CHECK_ANW(); + + switch( orientation ) + { + case 90: + transform = NATIVE_WINDOW_TRANSFORM_ROT_90; + break; + case 180: + transform = NATIVE_WINDOW_TRANSFORM_ROT_180; + break; + case 270: + transform = NATIVE_WINDOW_TRANSFORM_ROT_270; + break; + default: + transform = 0; + } + + err = native_window_set_buffers_transform( anw, transform ); + CHECK_ERR(); + + return 0; +} diff --git a/modules/video_output/android/utils.c b/modules/video_output/android/utils.c index a2239db..ed3b905 100644 --- a/modules/video_output/android/utils.c +++ b/modules/video_output/android/utils.c @@ -61,11 +61,12 @@ int LoadNativeWindowPrivAPI(native_window_priv_api_t *native) native->lock = dlsym(RTLD_DEFAULT, "ANativeWindowPriv_lock"); native->queue = dlsym(RTLD_DEFAULT, "ANativeWindowPriv_queue"); native->cancel = dlsym(RTLD_DEFAULT, "ANativeWindowPriv_cancel"); + native->setOrientation = dlsym(RTLD_DEFAULT, "ANativeWindowPriv_setOrientation"); return native->connect && native->disconnect && native->setup && native->getMinUndequeued && native->setBufferCount && native->setCrop && - native->dequeue && native->lock && native->queue && native->cancel - ? 0 : -1; + native->dequeue && native->lock && native->queue && native->cancel && + native->setOrientation ? 0 : -1; } extern void jni_getMouseCoordinates(int *, int *, int *, int *); diff --git a/modules/video_output/android/utils.h b/modules/video_output/android/utils.h index 2500c53..e78c688 100644 --- a/modules/video_output/android/utils.h +++ b/modules/video_output/android/utils.h @@ -59,6 +59,8 @@ typedef int (*ptr_ANativeWindowPriv_dequeue) (void *, void **); typedef int (*ptr_ANativeWindowPriv_lock) (void *, void *); typedef int (*ptr_ANativeWindowPriv_queue) (void *, void *); typedef int (*ptr_ANativeWindowPriv_cancel) (void *, void *); +typedef int (*ptr_ANativeWindowPriv_setOrientation) (void *, int); + typedef struct { ptr_ANativeWindowPriv_connect connect; @@ -71,6 +73,7 @@ typedef struct ptr_ANativeWindowPriv_lock lock; ptr_ANativeWindowPriv_queue queue; ptr_ANativeWindowPriv_cancel cancel; + ptr_ANativeWindowPriv_setOrientation setOrientation; } native_window_priv_api_t; /* Fill the structure passed as parameter and return 0 if all symbols are _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits