Invoke future RV30/40 loop filter for already decoded rows instead of
the whole frame at once. Originally committed as revision 15949 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
10ac361827
commit
de8cac167d
@ -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,
|
|||||||
|
|
||||||
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{
|
|||||||
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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user