changeset 200:094ef8a0a9fd trunk

[svn] GThreadify plugin. Adds a return statement and removes a pragma statement to please GCC.
author chainsaw
date Thu, 17 Nov 2005 12:21:04 -0800
parents 0a2ad94e8607
children f2dc045d2327
files Plugins/Input/aac/include/faad.h Plugins/Input/aac/src/libmp4.c
diffstat 2 files changed, 34 insertions(+), 40 deletions(-) [+]
line wrap: on
line diff
--- a/Plugins/Input/aac/include/faad.h	Wed Nov 16 16:21:11 2005 -0800
+++ b/Plugins/Input/aac/include/faad.h	Thu Nov 17 12:21:04 2005 -0800
@@ -25,8 +25,5 @@
 ** $Id: faad.h,v 1.47 2004/04/03 19:08:37 menno Exp $
 **/
 
-/* warn people for update */
-#pragma message("please update faad2 include filename and function names!")
-
 /* Backwards compatible link */
 #include "neaacdec.h"
--- a/Plugins/Input/aac/src/libmp4.c	Wed Nov 16 16:21:11 2005 -0800
+++ b/Plugins/Input/aac/src/libmp4.c	Thu Nov 17 12:21:04 2005 -0800
@@ -11,7 +11,6 @@
  * libid3 (3.8.x - www.id3.org)
 */
 
-#include <pthread.h>
 #include <gtk/gtk.h>
 #include "faad.h"
 #include "mp4.h"
@@ -76,8 +75,8 @@
 
 static Mp4Config	mp4cfg;
 static gboolean		bPlaying = FALSE;
-static pthread_t	decodeThread;
-static pthread_mutex_t	mutex = PTHREAD_MUTEX_INITIALIZER;
+static GThread		*decodeThread;
+GStaticMutex 		mutex = G_STATIC_MUTEX_INIT;
 static int		seekPosition = -1;
 
 void getMP4info(char*);
@@ -91,7 +90,6 @@
 
 static void mp4_init(void)
 {
-  memset(&decodeThread, 0, sizeof(pthread_t));
   mp4cfg.file_type = FILE_UNKNOW;
   seekPosition = -1;
   return;
@@ -100,7 +98,7 @@
 static void mp4_play(char *filename)
 {
   bPlaying = TRUE;
-  pthread_create(&decodeThread, 0, mp4Decode, g_strdup(filename));
+  decodeThread = g_thread_create((GThreadFunc)mp4Decode, g_strdup(filename), TRUE, NULL);
   return;
 }
 
@@ -108,8 +106,7 @@
 {
   if(bPlaying){
     bPlaying = FALSE;
-    pthread_join(decodeThread, NULL);
-    memset(&decodeThread, 0, sizeof(pthread_t));
+    g_thread_join(decodeThread);
     mp4_ip.output->close_audio();
   }
 }
@@ -184,7 +181,7 @@
 {
   MP4FileHandle mp4file;
 
-  pthread_mutex_lock(&mutex);
+  g_static_mutex_lock(&mutex);
   seekPosition = -1;
   bPlaying = TRUE;
   if(!(mp4file = MP4Read(args, 0))){
@@ -204,8 +201,8 @@
       g_free(args);
       MP4Close(mp4file);
       bPlaying = FALSE;
-      pthread_mutex_unlock(&mutex);
-      pthread_exit(NULL);
+      g_static_mutex_unlock(&mutex);
+      g_thread_exit(NULL);
     }else{
       faacDecHandle	decoder;
       unsigned char	*buffer	= NULL;
@@ -225,16 +222,16 @@
 	faacDecClose(decoder);
 	MP4Close(mp4file);
 	bPlaying = FALSE;
-	pthread_mutex_unlock(&mutex);
-	pthread_exit(NULL);
+	g_static_mutex_unlock(&mutex);
+	g_thread_exit(NULL);
       }
       if(faacDecInit2(decoder, buffer, bufferSize, &samplerate, &channels)<0){
 	g_free(args);
 	faacDecClose(decoder);
 	MP4Close(mp4file);
 	bPlaying = FALSE;
-	pthread_mutex_unlock(&mutex);
-	pthread_exit(NULL);
+	g_static_mutex_unlock(&mutex);
+	g_thread_exit(NULL);
       }
       g_free(buffer);
       if(channels == 0){
@@ -243,8 +240,8 @@
 	faacDecClose(decoder);
 	MP4Close(mp4file);
 	bPlaying = FALSE;
-	pthread_mutex_unlock(&mutex);
-	pthread_exit(NULL);
+	g_static_mutex_unlock(&mutex);
+	g_thread_exit(NULL);
       }
       duration = MP4GetTrackDuration(mp4file, mp4track);
       msDuration = MP4ConvertFromTrackDuration(mp4file, mp4track, duration,
@@ -277,8 +274,8 @@
 	  faacDecClose(decoder);
 	  MP4Close(mp4file);
 	  bPlaying = FALSE;
-	  pthread_mutex_unlock(&mutex);
-	  pthread_exit(NULL);
+	  g_static_mutex_unlock(&mutex);
+	  g_thread_exit(NULL);
 	}
 	rc = MP4ReadSample(mp4file, mp4track, sampleID++, &buffer, &bufferSize,
 			   NULL, NULL, NULL, NULL);
@@ -293,8 +290,8 @@
 	  faacDecClose(decoder);
 	  MP4Close(mp4file);
 	  bPlaying = FALSE;
-	  pthread_mutex_unlock(&mutex);
-	  pthread_exit(NULL);
+	  g_static_mutex_unlock(&mutex);
+	  g_thread_exit(NULL);
 	}else{
 	  sampleBuffer = faacDecDecode(decoder, &frameInfo, buffer, bufferSize);
 	  if(frameInfo.error > 0){
@@ -305,8 +302,8 @@
 	    faacDecClose(decoder);
 	    MP4Close(mp4file);
 	    bPlaying = FALSE;
-	    pthread_mutex_unlock(&mutex);
-	    pthread_exit(NULL);
+	    g_static_mutex_unlock(&mutex);
+	    g_thread_exit(NULL);
 	  }
 	  if(buffer){
 	    g_free(buffer); buffer=NULL; bufferSize=0;
@@ -329,8 +326,8 @@
       faacDecClose(decoder);
       MP4Close(mp4file);
       bPlaying = FALSE;
-      pthread_mutex_unlock(&mutex);
-      pthread_exit(NULL);
+      g_static_mutex_unlock(&mutex);
+      g_thread_exit(NULL);
     }
   } else{
     // WE ARE READING AN AAC FILE
@@ -350,15 +347,15 @@
     if((file = fopen(args, "rb")) == 0){
       g_print("AAC: can't find file %s\n", (char*)args);
       bPlaying = FALSE;
-      pthread_mutex_unlock(&mutex);
-      pthread_exit(NULL);
+      g_static_mutex_unlock(&mutex);
+      g_thread_exit(NULL);
     }
     if((decoder = faacDecOpen()) == NULL){
       g_print("AAC: Open Decoder Error\n");
       fclose(file);
       bPlaying = FALSE;
-      pthread_mutex_unlock(&mutex);
-      pthread_exit(NULL);
+      g_static_mutex_unlock(&mutex);
+      g_thread_exit(NULL);
     }
     config = faacDecGetCurrentConfiguration(decoder);
     config->useOldADTSFormat = 0;
@@ -368,8 +365,8 @@
       fclose(file);
       bPlaying = FALSE;
       faacDecClose(decoder);
-      pthread_mutex_unlock(&mutex);
-      pthread_exit(NULL);
+      g_static_mutex_unlock(&mutex);
+      g_thread_exit(NULL);
     }
     if((buffervalid = fread(buffer, 1, BUFFER_SIZE, file))==0){
       g_print("AAC: Error reading file\n");
@@ -377,8 +374,8 @@
       fclose(file);
       bPlaying = FALSE;
       faacDecClose(decoder);
-      pthread_mutex_unlock(&mutex);
-      pthread_exit(NULL);
+      g_static_mutex_unlock(&mutex);
+      g_thread_exit(NULL);
     }
     XMMS_NEW_TITLEINPUT(input);
     input->file_name = (char*)g_basename(temp);
@@ -420,8 +417,8 @@
       */
       g_free(xmmstitle);
       bPlaying = FALSE;
-      pthread_mutex_unlock(&mutex);
-      pthread_exit(NULL);
+      g_static_mutex_unlock(&mutex);
+      g_thread_exit(NULL);
     }
     //if(bSeek){
     //mp4_ip.set_info(xmmstitle, lenght*1000, -1, samplerate, channels);
@@ -502,8 +499,8 @@
     }
     */
     bPlaying = FALSE;
-    pthread_mutex_unlock(&mutex);
-    pthread_exit(NULL);
-    
+    g_static_mutex_unlock(&mutex);
+    g_thread_exit(NULL);
+    return(NULL);    
   }
 }