summaryrefslogtreecommitdiff
path: root/ffmpeg/libavcodec/snow.h
diff options
context:
space:
mode:
authorTim Redfern <tim@eclectronics.org>2013-12-29 12:19:38 +0000
committerTim Redfern <tim@eclectronics.org>2013-12-29 12:19:38 +0000
commitf7813a5324be39d13ab536c245d15dfc602a7849 (patch)
treefad99148b88823d34a5df2f0a25881a002eb291b /ffmpeg/libavcodec/snow.h
parentb7a5a477b8ff4d4e3028b9dfb9a9df0a41463f92 (diff)
basic type mechanism working
Diffstat (limited to 'ffmpeg/libavcodec/snow.h')
-rw-r--r--ffmpeg/libavcodec/snow.h17
1 files changed, 9 insertions, 8 deletions
diff --git a/ffmpeg/libavcodec/snow.h b/ffmpeg/libavcodec/snow.h
index 922a48e..1222a77 100644
--- a/ffmpeg/libavcodec/snow.h
+++ b/ffmpeg/libavcodec/snow.h
@@ -114,12 +114,12 @@ typedef struct SnowContext{
VideoDSPContext vdsp;
H264QpelContext h264qpel;
SnowDWTContext dwt;
- AVFrame new_picture;
- AVFrame input_picture; ///< new_picture with the internal linesizes
- AVFrame current_picture;
- AVFrame last_picture[MAX_REF_FRAMES];
+ AVFrame *new_picture;
+ AVFrame *input_picture; ///< new_picture with the internal linesizes
+ AVFrame *current_picture;
+ AVFrame *last_picture[MAX_REF_FRAMES];
uint8_t *halfpel_plane[MAX_REF_FRAMES][4][4];
- AVFrame mconly_picture;
+ AVFrame *mconly_picture;
// uint8_t q_context[16];
uint8_t header_state[32];
uint8_t block_state[128 + 32*128];
@@ -159,6 +159,7 @@ typedef struct SnowContext{
int b_height;
int block_max_depth;
int last_block_max_depth;
+ int nb_planes;
Plane plane[MAX_PLANES];
BlockNode *block;
#define ME_CACHE_SIZE 1024
@@ -226,7 +227,7 @@ void ff_snow_release_buffer(AVCodecContext *avctx);
void ff_snow_reset_contexts(SnowContext *s);
int ff_snow_alloc_blocks(SnowContext *s);
int ff_snow_frame_start(SnowContext *s);
-void ff_snow_pred_block(SnowContext *s, uint8_t *dst, uint8_t *tmp, int stride,
+void ff_snow_pred_block(SnowContext *s, uint8_t *dst, uint8_t *tmp, ptrdiff_t stride,
int sx, int sy, int b_w, int b_h, BlockNode *block,
int plane_index, int w, int h);
/* common inline functions */
@@ -414,8 +415,8 @@ static av_always_inline void predict_slice(SnowContext *s, IDWTELEM *buf, int pl
int block_h = plane_index ? block_size>>s->chroma_v_shift : block_size;
const uint8_t *obmc = plane_index ? ff_obmc_tab[s->block_max_depth+s->chroma_h_shift] : ff_obmc_tab[s->block_max_depth];
const int obmc_stride= plane_index ? (2*block_size)>>s->chroma_h_shift : 2*block_size;
- int ref_stride= s->current_picture.linesize[plane_index];
- uint8_t *dst8= s->current_picture.data[plane_index];
+ int ref_stride= s->current_picture->linesize[plane_index];
+ uint8_t *dst8= s->current_picture->data[plane_index];
int w= p->width;
int h= p->height;
av_assert2(s->chroma_h_shift == s->chroma_v_shift); // obmc params assume squares