vp8: Enclose pthread function calls in ifdefs
authorMartin Storsjö <martin@martin.st>
Sat, 14 Jul 2012 21:11:35 +0000 (00:11 +0300)
committerMartin Storsjö <martin@martin.st>
Sun, 15 Jul 2012 10:55:18 +0000 (13:55 +0300)
This fixes building with threads disabled.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavcodec/vp8.c
libavcodec/vp8.h

index e39fc0b..d0e2a0c 100644 (file)
@@ -143,8 +143,10 @@ static int update_dimensions(VP8Context *s, int width, int height)
 
     for (i = 0; i < MAX_THREADS; i++) {
         s->thread_data[i].filter_strength = av_mallocz(s->mb_width*sizeof(*s->thread_data[0].filter_strength));
 
     for (i = 0; i < MAX_THREADS; i++) {
         s->thread_data[i].filter_strength = av_mallocz(s->mb_width*sizeof(*s->thread_data[0].filter_strength));
+#if HAVE_THREADS
         pthread_mutex_init(&s->thread_data[i].lock, NULL);
         pthread_cond_init(&s->thread_data[i].cond, NULL);
         pthread_mutex_init(&s->thread_data[i].lock, NULL);
         pthread_cond_init(&s->thread_data[i].cond, NULL);
+#endif
     }
 
     if (!s->macroblocks_base || !s->top_nnz || !s->top_border ||
     }
 
     if (!s->macroblocks_base || !s->top_nnz || !s->top_border ||
@@ -1623,6 +1625,7 @@ static void vp8_decode_mv_mb_modes(AVCodecContext *avctx, AVFrame *curframe,
     }
 }
 
     }
 }
 
+#if HAVE_THREADS
 #define check_thread_pos(td, otd, mb_x_check, mb_y_check)\
     do {\
         int tmp = (mb_y_check << 16) | (mb_x_check & 0xFFFF);\
 #define check_thread_pos(td, otd, mb_x_check, mb_y_check)\
     do {\
         int tmp = (mb_y_check << 16) | (mb_x_check & 0xFFFF);\
@@ -1654,6 +1657,10 @@ static void vp8_decode_mv_mb_modes(AVCodecContext *avctx, AVFrame *curframe,
         pthread_mutex_unlock(&td->lock);\
     }\
     } while(0);
         pthread_mutex_unlock(&td->lock);\
     }\
     } while(0);
+#else
+#define check_thread_pos(td, otd, mb_x_check, mb_y_check)
+#define update_pos(td, mb_y, mb_x)
+#endif
 
 static void vp8_decode_mb_row_no_filter(AVCodecContext *avctx, void *tdata,
                                         int jobnr, int threadnr)
 
 static void vp8_decode_mb_row_no_filter(AVCodecContext *avctx, void *tdata,
                                         int jobnr, int threadnr)
index 458a11a..6b3caa2 100644 (file)
@@ -94,8 +94,10 @@ typedef struct {
 } VP8Macroblock;
 
 typedef struct {
 } VP8Macroblock;
 
 typedef struct {
+#if HAVE_THREADS
     pthread_mutex_t lock;
     pthread_cond_t  cond;
     pthread_mutex_t lock;
     pthread_cond_t  cond;
+#endif
     int thread_nr;
     int thread_mb_pos; // (mb_y << 16) | (mb_x & 0xFFFF)
     int wait_mb_pos; // What the current thread is waiting on.
     int thread_nr;
     int thread_mb_pos; // (mb_y << 16) | (mb_x & 0xFFFF)
     int wait_mb_pos; // What the current thread is waiting on.