diff options
Diffstat (limited to 'libavcodec/vp8.h')
-rw-r--r-- | libavcodec/vp8.h | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/libavcodec/vp8.h b/libavcodec/vp8.h index 1976390..90109ad 100644 --- a/libavcodec/vp8.h +++ b/libavcodec/vp8.h @@ -26,10 +26,13 @@ #ifndef AVCODEC_VP8_H #define AVCODEC_VP8_H +#include "libavutil/buffer.h" + #include "vp56.h" #include "vp56data.h" #include "vp8dsp.h" #include "h264pred.h" +#include "thread.h" #if HAVE_PTHREADS #include <pthread.h> #elif HAVE_W32THREADS @@ -124,14 +127,19 @@ typedef struct VP8ThreadData { VP8FilterStrength *filter_strength; } VP8ThreadData; +typedef struct VP8Frame { + ThreadFrame tf; + AVBufferRef *seg_map; +} VP8Frame; + #define MAX_THREADS 8 typedef struct VP8Context { VP8ThreadData *thread_data; AVCodecContext *avctx; - AVFrame *framep[4]; - AVFrame *next_framep[4]; - AVFrame *curframe; - AVFrame *prev_frame; + VP8Frame *framep[4]; + VP8Frame *next_framep[4]; + VP8Frame *curframe; + VP8Frame *prev_frame; uint16_t mb_width; /* number of horizontal MB */ uint16_t mb_height; /* number of vertical MB */ @@ -253,17 +261,8 @@ typedef struct VP8Context { VP8DSPContext vp8dsp; H264PredContext hpc; vp8_mc_func put_pixels_tab[3][3][3]; - AVFrame frames[5]; + VP8Frame frames[5]; - /** - * A list of segmentation_map buffers that are to be free()'ed in - * the next decoding iteration. We can't free() them right away - * because the map may still be used by subsequent decoding threads. - * Unused if frame threading is off. - */ - uint8_t *segmentation_maps[5]; - int num_maps_to_be_freed; - int maps_are_invalid; int num_jobs; /** * This describes the macroblock memory layout. |