@@ -129,6 +129,8 @@ av_cold int ff_ffv1_init_slice_contexts(FFV1Context *f)
fs->slice_height = sye - sys;
fs->slice_x = sxs;
fs->slice_y = sys;
+ fs->sx = sx;
+ fs->sy = sy;
fs->sample_buffer = av_malloc_array((fs->width + 6), 3 * MAX_PLANES *
sizeof(*fs->sample_buffer));
@@ -129,6 +129,7 @@ typedef struct FFV1Context {
int slice_height;
int slice_x;
int slice_y;
+ int sx, sy;
int slice_reset_contexts;
int slice_coding_mode;
int slice_rct_by_coef;
@@ -912,8 +912,8 @@ static void encode_slice_header(FFV1Context *f, FFV1Context *fs)
int j;
memset(state, 128, sizeof(state));
- put_symbol(c, state, (fs->slice_x +1)*f->num_h_slices / f->width , 0);
- put_symbol(c, state, (fs->slice_y +1)*f->num_v_slices / f->height , 0);
+ put_symbol(c, state, fs->sx, 0);
+ put_symbol(c, state, fs->sy, 0);
put_symbol(c, state, 0, 0);
put_symbol(c, state, 0, 0);
for (j=0; j<f->plane_count; j++) {
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> --- libavcodec/ffv1.c | 2 ++ libavcodec/ffv1.h | 1 + libavcodec/ffv1enc.c | 4 ++-- 3 files changed, 5 insertions(+), 2 deletions(-)