Mercurial > libavcodec.hg
changeset 8224:6771b3544991 libavcodec
Invoke future RV30/40 loop filter for already decoded rows instead of
the whole frame at once.
author | kostya |
---|---|
date | Sat, 29 Nov 2008 06:22:31 +0000 |
parents | d2a146706bc5 |
children | d133e597db2d |
files | rv34.c rv34.h |
diffstat | 2 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/rv34.c Fri Nov 28 00:32:24 2008 +0000 +++ b/rv34.c Sat Nov 29 06:22:31 2008 +0000 @@ -1285,6 +1285,9 @@ 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)); + + if(r->loop_filter && s->mb_y >= 2) + r->loop_filter(r, s->mb_y - 2); } if(s->mb_x == s->resync_mb_x) s->first_slice_line=0; @@ -1405,7 +1408,7 @@ if(last){ if(r->loop_filter) - r->loop_filter(r); + r->loop_filter(r, s->mb_height - 1); ff_er_frame_end(s); MPV_frame_end(s); if (s->pict_type == FF_B_TYPE || s->low_delay) {
--- a/rv34.h Fri Nov 28 00:32:24 2008 +0000 +++ b/rv34.h Sat Nov 29 06:22:31 2008 +0000 @@ -115,7 +115,7 @@ int (*parse_slice_header)(struct RV34DecContext *r, GetBitContext *gb, SliceInfo *si); int (*decode_mb_info)(struct RV34DecContext *r); 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; /**