Mercurial > libavcodec.hg
comparison rv34.c @ 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 | 466100c8e27b |
children | 91a340f25c8c |
comparison
equal
deleted
inserted
replaced
8223:d2a146706bc5 | 8224:6771b3544991 |
---|---|
1283 s->mb_y++; | 1283 s->mb_y++; |
1284 ff_init_block_index(s); | 1284 ff_init_block_index(s); |
1285 | 1285 |
1286 memmove(r->intra_types_hist, r->intra_types, s->b4_stride * 4 * sizeof(*r->intra_types_hist)); | 1286 memmove(r->intra_types_hist, r->intra_types, s->b4_stride * 4 * sizeof(*r->intra_types_hist)); |
1287 memset(r->intra_types, -1, s->b4_stride * 4 * sizeof(*r->intra_types_hist)); | 1287 memset(r->intra_types, -1, s->b4_stride * 4 * sizeof(*r->intra_types_hist)); |
1288 | |
1289 if(r->loop_filter && s->mb_y >= 2) | |
1290 r->loop_filter(r, s->mb_y - 2); | |
1288 } | 1291 } |
1289 if(s->mb_x == s->resync_mb_x) | 1292 if(s->mb_x == s->resync_mb_x) |
1290 s->first_slice_line=0; | 1293 s->first_slice_line=0; |
1291 s->mb_num_left--; | 1294 s->mb_num_left--; |
1292 } | 1295 } |
1403 break; | 1406 break; |
1404 } | 1407 } |
1405 | 1408 |
1406 if(last){ | 1409 if(last){ |
1407 if(r->loop_filter) | 1410 if(r->loop_filter) |
1408 r->loop_filter(r); | 1411 r->loop_filter(r, s->mb_height - 1); |
1409 ff_er_frame_end(s); | 1412 ff_er_frame_end(s); |
1410 MPV_frame_end(s); | 1413 MPV_frame_end(s); |
1411 if (s->pict_type == FF_B_TYPE || s->low_delay) { | 1414 if (s->pict_type == FF_B_TYPE || s->low_delay) { |
1412 *pict= *(AVFrame*)s->current_picture_ptr; | 1415 *pict= *(AVFrame*)s->current_picture_ptr; |
1413 } else if (s->last_picture_ptr != NULL) { | 1416 } else if (s->last_picture_ptr != NULL) { |