commit be87ffbd851ece2ef592c9e567111da6bb9ce386
Author: phantomjinx <p.g.richard...@phantomjinx.co.uk>
Date:   Sat Nov 27 15:54:52 2010 +0000

    Minor filetype fixes and fix for a deadlock
    
    * gp_itdb.c
    * misc.c
     * Removal oversight of mp4file includes
    
    * Makefile.am
     * Add m4a filetype plugin to extra dist
    
    * file_convert.c
     * Make the conversion scheduler function try the mutex lock rather than
       blindly grabbing it. Since this function is called every 100ms then a
       later attempt will be made.
     * Missing unlock in conversion_convert_track causes deadlock.

 libgtkpod/file_convert.c |   13 ++++++++++---
 libgtkpod/gp_itdb.c      |    1 -
 libgtkpod/misc.c         |    1 -
 plugins/Makefile.am      |    3 ++-
 4 files changed, 12 insertions(+), 6 deletions(-)
---
diff --git a/libgtkpod/file_convert.c b/libgtkpod/file_convert.c
index 1912623..ae75a1f 100644
--- a/libgtkpod/file_convert.c
+++ b/libgtkpod/file_convert.c
@@ -1483,17 +1483,20 @@ static gboolean conversion_scheduler(gpointer data) {
     gboolean result;
     g_return_val_if_fail (data, FALSE);
 
-    /*     debug ("conversion_scheduler enter\n"); */
+    debug ("conversion_scheduler enter\n");
 
     gdk_threads_enter();
-    g_mutex_lock (conv->mutex);
+    if (! g_mutex_trylock(conv->mutex)) {
+        gdk_threads_leave();
+        return FALSE;
+    }
 
     result = conversion_scheduler_unlocked(conv);
 
     g_mutex_unlock (conv->mutex);
     gdk_threads_leave();
 
-    /*    debug ("conversion_scheduler exit\n");*/
+    debug ("conversion_scheduler exit\n");
 
     return result;
 }
@@ -2036,11 +2039,14 @@ static gboolean conversion_convert_track(Conversion 
*conv, ConvTrack *ctr) {
                     ctr->converted_file = NULL;
                     result = FALSE;
                 }
+
+                g_mutex_unlock (conv->mutex);
             }
         }
     }
 
     if (result == TRUE) { /* determine size of new file */
+        g_mutex_lock (conv->mutex);
         struct stat statbuf;
         if (g_stat(ctr->converted_file, &statbuf) == 0) {
             ctr->converted_size = statbuf.st_size;
@@ -2054,6 +2060,7 @@ static gboolean conversion_convert_track(Conversion 
*conv, ConvTrack *ctr) {
             ctr->converted_file = NULL;
             result = FALSE;
         }
+        g_mutex_unlock (conv->mutex);
     }
 
     /* Fill in additional info (currently only gapless info for MP3s */
diff --git a/libgtkpod/gp_itdb.c b/libgtkpod/gp_itdb.c
index f5bdd83..0c0de3f 100644
--- a/libgtkpod/gp_itdb.c
+++ b/libgtkpod/gp_itdb.c
@@ -42,7 +42,6 @@
 #include "file_convert.h"
 #include "misc.h"
 #include "misc_track.h"
-#include "mp4file.h"
 #include "prefs.h"
 #include "syncdir.h"
 #include "autodetection.h"
diff --git a/libgtkpod/misc.c b/libgtkpod/misc.c
index 781d902..03ae28d 100644
--- a/libgtkpod/misc.c
+++ b/libgtkpod/misc.c
@@ -44,7 +44,6 @@ ffla |  This program is distributed in the hope that it will 
be useful,
 #include "misc.h"
 #include "prefs.h"
 #include "misc_track.h"
-#include "mp4file.h"
 #include "file_convert.h"
 
 #define DEBUG_MISC 0
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
index 02c8ad6..7764027 100644
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
@@ -19,6 +19,7 @@ SUBDIRS = . \
        filetype_flac \
        filetype_wav \
        filetype_video \
-       filetype_mp4
+       filetype_mp4 \
+       filetype_m4a
 
 # indent

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
gtkpod-cvs2 mailing list
gtkpod-cvs2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to