vp9: fix compilation with threading disabled.

This commit is contained in:
Ronald S. Bultje 2017-09-09 23:24:31 -04:00
parent 2d025e7428
commit 9bab39dee5
2 changed files with 11 additions and 6 deletions

View File

@ -88,10 +88,8 @@ static void vp9_await_tile_progress(VP9Context *s, int field, int n) {
pthread_mutex_unlock(&s->progress_mutex); pthread_mutex_unlock(&s->progress_mutex);
} }
#else #else
static void vp9_free_entries(VP9Context *s) {} static void vp9_free_entries(AVCodecContext *avctx) {}
static int vp9_alloc_entries(AVCodecContext *avctx, int n) { return 0; } static int vp9_alloc_entries(AVCodecContext *avctx, int n) { return 0; }
static void vp9_report_tile_progress(VP9Context *s, int field, int n) {}
static void vp9_await_tile_progress(VP9Context *s, int field, int n) {}
#endif #endif
static void vp9_frame_unref(AVCodecContext *avctx, VP9Frame *f) static void vp9_frame_unref(AVCodecContext *avctx, VP9Frame *f)
@ -1343,7 +1341,7 @@ static int decode_tiles(AVCodecContext *avctx,
return 0; return 0;
} }
#if HAVE_THREADS
static av_always_inline static av_always_inline
int decode_tiles_mt(AVCodecContext *avctx, void *tdata, int jobnr, int decode_tiles_mt(AVCodecContext *avctx, void *tdata, int jobnr,
int threadnr) int threadnr)
@ -1451,7 +1449,7 @@ int loopfilter_proc(AVCodecContext *avctx)
} }
return 0; return 0;
} }
#endif
static int vp9_decode_frame(AVCodecContext *avctx, void *frame, static int vp9_decode_frame(AVCodecContext *avctx, void *frame,
int *got_frame, AVPacket *pkt) int *got_frame, AVPacket *pkt)
@ -1583,10 +1581,12 @@ FF_ENABLE_DEPRECATION_WARNINGS
ff_thread_finish_setup(avctx); ff_thread_finish_setup(avctx);
} }
#if HAVE_THREADS
if (avctx->active_thread_type & FF_THREAD_SLICE) { if (avctx->active_thread_type & FF_THREAD_SLICE) {
for (i = 0; i < s->sb_rows; i++) for (i = 0; i < s->sb_rows; i++)
atomic_store(&s->entries[i], 0); atomic_store(&s->entries[i], 0);
} }
#endif
do { do {
for (i = 0; i < s->active_tile_cols; i++) { for (i = 0; i < s->active_tile_cols; i++) {
@ -1599,6 +1599,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
s->td[i].uveob[1] = s->td[i].uveob_base[1]; s->td[i].uveob[1] = s->td[i].uveob_base[1];
} }
#if HAVE_THREADS
if (avctx->active_thread_type == FF_THREAD_SLICE) { if (avctx->active_thread_type == FF_THREAD_SLICE) {
int tile_row, tile_col; int tile_row, tile_col;
@ -1629,7 +1630,9 @@ FF_ENABLE_DEPRECATION_WARNINGS
} }
ff_slice_thread_execute_with_mainfunc(avctx, decode_tiles_mt, loopfilter_proc, s->td, NULL, s->s.h.tiling.tile_cols); ff_slice_thread_execute_with_mainfunc(avctx, decode_tiles_mt, loopfilter_proc, s->td, NULL, s->s.h.tiling.tile_cols);
} else { } else
#endif
{
ret = decode_tiles(avctx, data, size); ret = decode_tiles(avctx, data, size);
if (ret < 0) if (ret < 0)
return ret; return ret;

View File

@ -98,9 +98,11 @@ typedef struct VP9Context {
VP56RangeCoder c; VP56RangeCoder c;
int pass, active_tile_cols; int pass, active_tile_cols;
#if HAVE_THREADS
pthread_mutex_t progress_mutex; pthread_mutex_t progress_mutex;
pthread_cond_t progress_cond; pthread_cond_t progress_cond;
atomic_int *entries; atomic_int *entries;
#endif
uint8_t ss_h, ss_v; uint8_t ss_h, ss_v;
uint8_t last_bpp, bpp_index, bytesperpixel; uint8_t last_bpp, bpp_index, bytesperpixel;