[xiph-commits] r3090 - liboggplay/trunk/plugin

shans at svn.annodex.net shans at svn.annodex.net
Wed Jun 27 00:54:20 PDT 2007


Author: shans
Date: 2007-06-27 00:54:19 -0700 (Wed, 27 Jun 2007)
New Revision: 3090

Modified:
   liboggplay/trunk/plugin/plugin_oggplay.c
Log:
Got seeking working on linux (unfortunately by removing the worked/failed
response)



Modified: liboggplay/trunk/plugin/plugin_oggplay.c
===================================================================
--- liboggplay/trunk/plugin/plugin_oggplay.c	2007-06-27 06:41:23 UTC (rev 3089)
+++ liboggplay/trunk/plugin/plugin_oggplay.c	2007-06-27 07:54:19 UTC (rev 3090)
@@ -64,11 +64,17 @@
   char            * location;
   char            * proxy;
   int               proxy_port;
-  int               seek_flag;
+  long long         padding0;
+  semaphore         seek_sem;
+  long long         padding1;
+  volatile int      seek_flag;
+  long long         padding2;
   long              seek_pos;
+  long long         padding3;
   OggPlayErrorCode  seek_err;
-  semaphore         seek_sem;
+  long long         padding4;
   semaphore         start_stop_sem;
+  long long         padding5;
   long              last_displayed_frame_time;
 #if defined(XP_UX)
   pthread_t         thread;
@@ -232,6 +238,9 @@
         goto thread_shutdown;
       }
 
+      r = oggplay_step_decoding(pointers->player);
+      pointers->available = oggplay_get_available(pointers->player);
+      
       if (pointers->seek_flag) {
         SEM_WAIT(pointers->seek_sem);
         pointers->seek_err = oggplay_seek(pointers->player, pointers->seek_pos);
@@ -239,8 +248,6 @@
         SEM_SIGNAL(pointers->seek_sem);
       }
 
-      r = oggplay_step_decoding(pointers->player);
-      pointers->available = oggplay_get_available(pointers->player);
     }
 
     if (r != E_OGGPLAY_CONTINUE && r != E_OGGPLAY_USER_INTERRUPT) {      
@@ -371,22 +378,6 @@
 
   frame_data->oggplay_info = (void *)track_info;
   
-  /* testing red field 
-  {
-    int i;
-    unsigned long *outp;
-    oggplay_get_video_y_size(player, 2, &y_width, &y_height);   
-    out = malloc(y_width * y_height * 4);
-    outp = (unsigned long *)out;
-    for (i = 0; i < y_width * y_height; i++)
-      outp[i] = 0x00FF0000;
-    (*frame) = out;
-    (*width) = y_width;
-    (*height) = y_height;
-    return;
-  }
-  end test */
-  
   num_tracks = oggplay_get_num_tracks(player);
 
   for (i = 0; i < num_tracks; i++) {
@@ -539,13 +530,8 @@
   pointers->seek_flag = 1;
   SEM_SIGNAL(pointers->seek_sem);
 
-  while (pointers->seek_flag) {
-    if (pointers->shutdown_oggplay) {
-      return TRUE;
-    }
-    oggplay_millisleep(1);
-  }
-  return (pointers->seek_err == E_OGGPLAY_OK);
+  return TRUE;
+
 }
 
 int



More information about the commits mailing list