Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/emotion

Dir     : e17/libs/emotion/src/modules


Modified Files:
        emotion_xine.c emotion_xine.h 


Log Message:


hmm - handle fstreams where xine dosnt report absolute length - just a
percentage position

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/emotion/src/modules/emotion_xine.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- emotion_xine.c      20 Jul 2004 07:40:14 -0000      1.9
+++ emotion_xine.c      21 Jul 2004 06:34:17 -0000      1.10
@@ -979,13 +979,20 @@
          {
             again:
             ppos = ev->seek_to_pos;
-            xine_play(ev->stream, 0, ppos * 1000);
+            if (ppos > ev->len) ppos = ev->len;
+            if (ev->no_time)
+              xine_play(ev->stream, ppos * 65535, 0);
+            else
+              xine_play(ev->stream, 0, ppos * 1000);
             ev->seek_to = 0;
             if (ev->delete_me) return NULL;
          }
        if (!ev->play)
-         xine_set_param(ev->stream, XINE_PARAM_SPEED, XINE_SPEED_PAUSE);
+         {
+            xine_set_param(ev->stream, XINE_PARAM_SPEED, XINE_SPEED_PAUSE);
+         }
        if (ev->delete_me) return NULL;
+       usleep(1000000 / 10);
        if (ppos != ev->seek_to_pos)
          goto again;
     }
@@ -1227,9 +1234,18 @@
                                     &pos_time,
                                     &length_time))
               {
-                 
-                 ev->pos = (double)pos_time / 1000.0;
-                 ev->len = (double)length_time / 1000.0;
+                 if (length_time == 0)
+                   {
+                      ev->pos = (double)pos_stream / 65535;
+                      ev->len = 1.0;
+                      ev->no_time = 1;
+                   }
+                 else
+                   {
+                      ev->pos = (double)pos_time / 1000.0;
+                      ev->len = (double)length_time / 1000.0;
+                      ev->no_time = 0;
+                   }
               }
             if (ev->delete_me)
               {
@@ -1238,7 +1254,7 @@
               }
             ev->get_poslen = 0;
 //          printf("get pos %3.3f\n", ev->pos);
-            usleep(1000000 / 10);
+            usleep(1000000 / 15);
          }
      }
    return NULL;
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/emotion/src/modules/emotion_xine.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- emotion_xine.h      18 Jul 2004 08:04:41 -0000      1.4
+++ emotion_xine.h      21 Jul 2004 06:34:18 -0000      1.5
@@ -17,8 +17,8 @@
    xine_stream_t            *stream;
    xine_event_queue_t       *queue;
    int                       fd;
-   double                    len;
-   double                    pos;
+   volatile double           len;
+   volatile double           pos;
    double                    fps;
    double                    ratio;
    int                       w, h;
@@ -40,6 +40,7 @@
    unsigned char             audio_mute : 1;
    unsigned char             spu_mute : 1;
    volatile unsigned char    delete_me : 1;
+   volatile unsigned char    no_time : 1;
    
    pthread_t                 seek_th;
    pthread_t                 get_pos_len_th;




-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to