[Android] [PATCH] thumbnailer: do not wait until video position becomes *strictly* superior to THUMBNAIL_POSITION.
Rafaël Carré
rafael.carre at gmail.com
Tue Nov 26 19:00:06 CET 2013
Why not merge is_playing and get_position in one single loop?
Felix Abecassis <felix.abecassis at gmail.com> a écrit :
>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
>
>_______________________________________________
>Android mailing list
>Android at videolan.org
>https://mailman.videolan.org/listinfo/android
--
Envoyé de mon téléphone Android avec K-9 Mail. Excusez la brièveté.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/android/attachments/20131126/ab8191a0/attachment-0001.html>
More information about the Android
mailing list