[FFmpeg-cvslog] vp8: Enclose pthread function calls in ifdefs
Martin Storsjö
git at videolan.org
Mon Jul 16 01:54:15 CEST 2012
ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Sun Jul 15 00:11:35 2012 +0300| [25f056e6d4229937cff8a8c3e974c56b9f94df3c] | committer: Martin Storsjö
vp8: Enclose pthread function calls in ifdefs
This fixes building with threads disabled.
Signed-off-by: Martin Storsjö <martin at martin.st>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=25f056e6d4229937cff8a8c3e974c56b9f94df3c
---
libavcodec/vp8.c | 7 +++++++
libavcodec/vp8.h | 2 ++
2 files changed, 9 insertions(+)
diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c
index e39fc0b..d0e2a0c 100644
--- a/libavcodec/vp8.c
+++ b/libavcodec/vp8.c
@@ -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));
+#if HAVE_THREADS
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 ||
@@ -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);\
@@ -1654,6 +1657,10 @@ static void vp8_decode_mv_mb_modes(AVCodecContext *avctx, AVFrame *curframe,
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)
diff --git a/libavcodec/vp8.h b/libavcodec/vp8.h
index 458a11a..6b3caa2 100644
--- a/libavcodec/vp8.h
+++ b/libavcodec/vp8.h
@@ -94,8 +94,10 @@ typedef struct {
} VP8Macroblock;
typedef struct {
+#if HAVE_THREADS
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.
More information about the ffmpeg-cvslog
mailing list