return 0;
}
-static int get_buffer_sao(HEVCContext *s, AVFrame *frame)
+static int get_buffer_sao(HEVCContext *s, AVFrame *frame, HEVCSPS *sps)
{
int ret, i;
if ((ret = ff_get_buffer(s->avctx, frame, AV_GET_BUFFER_FLAG_REF)) < 0)
return ret;
for (i = 0; frame->data[i]; i++) {
- int offset = frame->linesize[i] + 1;
+ int offset = frame->linesize[i] + (1 << sps->pixel_shift);
frame->data[i] += offset;
}
frame->width = s->avctx->width;
if (sps->sao_enabled) {
av_frame_unref(s->tmp_frame);
- ret = get_buffer_sao(s, s->tmp_frame);
+ ret = get_buffer_sao(s, s->tmp_frame, sps);
s->sao_frame = s->tmp_frame;
}