Commit 3814a2d2 authored by kostya's avatar kostya

Invoke future RV30/40 loop filter for already decoded rows instead of

the whole frame at once.


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@15949 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 1bf5327b
...@@ -1285,6 +1285,9 @@ static int rv34_decode_slice(RV34DecContext *r, int end, uint8_t* buf, int buf_s ...@@ -1285,6 +1285,9 @@ static int rv34_decode_slice(RV34DecContext *r, int end, uint8_t* buf, int buf_s
memmove(r->intra_types_hist, r->intra_types, s->b4_stride * 4 * sizeof(*r->intra_types_hist)); memmove(r->intra_types_hist, r->intra_types, s->b4_stride * 4 * sizeof(*r->intra_types_hist));
memset(r->intra_types, -1, s->b4_stride * 4 * sizeof(*r->intra_types_hist)); memset(r->intra_types, -1, s->b4_stride * 4 * sizeof(*r->intra_types_hist));
if(r->loop_filter && s->mb_y >= 2)
r->loop_filter(r, s->mb_y - 2);
} }
if(s->mb_x == s->resync_mb_x) if(s->mb_x == s->resync_mb_x)
s->first_slice_line=0; s->first_slice_line=0;
...@@ -1405,7 +1408,7 @@ int ff_rv34_decode_frame(AVCodecContext *avctx, ...@@ -1405,7 +1408,7 @@ int ff_rv34_decode_frame(AVCodecContext *avctx,
if(last){ if(last){
if(r->loop_filter) if(r->loop_filter)
r->loop_filter(r); r->loop_filter(r, s->mb_height - 1);
ff_er_frame_end(s); ff_er_frame_end(s);
MPV_frame_end(s); MPV_frame_end(s);
if (s->pict_type == FF_B_TYPE || s->low_delay) { if (s->pict_type == FF_B_TYPE || s->low_delay) {
......
...@@ -115,7 +115,7 @@ typedef struct RV34DecContext{ ...@@ -115,7 +115,7 @@ typedef struct RV34DecContext{
int (*parse_slice_header)(struct RV34DecContext *r, GetBitContext *gb, SliceInfo *si); int (*parse_slice_header)(struct RV34DecContext *r, GetBitContext *gb, SliceInfo *si);
int (*decode_mb_info)(struct RV34DecContext *r); int (*decode_mb_info)(struct RV34DecContext *r);
int (*decode_intra_types)(struct RV34DecContext *r, GetBitContext *gb, int8_t *dst); int (*decode_intra_types)(struct RV34DecContext *r, GetBitContext *gb, int8_t *dst);
void (*loop_filter)(struct RV34DecContext *r); void (*loop_filter)(struct RV34DecContext *r, int row);
}RV34DecContext; }RV34DecContext;
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment