[Android] [PATCH] thumbnailer: do not wait until video position becomes *strictly* superior to THUMBNAIL_POSITION.
Felix Abecassis
felix.abecassis at gmail.com
Tue Nov 26 18:57:58 CET 2013
Avoid waiting unnecessarily when the media player reaches exactly THUMBNAIL_POSITION. However we must now wait until libvlc updates the position before polling with libvlc_media_player_get_position().
---
vlc-android/jni/thumbnailer.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/vlc-android/jni/thumbnailer.c b/vlc-android/jni/thumbnailer.c
index 2d41a59..4086612 100644
--- a/vlc-android/jni/thumbnailer.c
+++ b/vlc-android/jni/thumbnailer.c
@@ -263,12 +263,19 @@ jbyteArray Java_org_videolan_libvlc_LibVLC_getThumbnail(JNIEnv *env, jobject thi
libvlc_media_player_play(mp);
libvlc_media_player_set_position(mp, THUMBNAIL_POSITION);
- int loops = 100;
- for (;;) {
+ int wait_time = 50000;
+ int max_attempts = 100;
+ for (int i = 0; i < max_attempts; ++i) {
+ int playing = libvlc_media_player_is_playing(mp);
+ if (playing)
+ break;
+ usleep(wait_time);
+ }
+ for (int i = 0; i < max_attempts; ++i) {
float pos = libvlc_media_player_get_position(mp);
- if (pos > THUMBNAIL_POSITION || !loops--)
+ if (pos >= THUMBNAIL_POSITION)
break;
- usleep(50000);
+ usleep(wait_time);
}
/* Wait for the thumbnail to be generated. */
--
1.8.3.2
More information about the Android
mailing list