summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorJeff Downs <heydowns@borg.com>2007-12-13 00:50:47 +0000
committerJeff Downs <heydowns@borg.com>2007-12-13 00:50:47 +0000
commit36e097bce45f50509d2ba6b93fbd0ab3f6a585ca (patch)
tree124dc9c628db27e7786fb95ec5b9eadb16145344 /libavcodec
parent1b77e8775670e3d2533b931f6f2a2e7f31ba2181 (diff)
Fix non_zero_count_cache for deblocking in field pictures.
Based on original patch by Martin Zlomek martin.zlomek a email D cz ffmpeg-devel thread: H264: Fix non_zero_count_cache for deblocking in fields Fri, 30 Nov 2007 9:58:23 Originally committed as revision 11212 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/h264.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 298faa69d8..a093b0806a 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -171,13 +171,14 @@ static void fill_caches(H264Context *h, int mb_type, int for_deblock){
int left_block[8];
int i;
+ top_xy = mb_xy - (s->mb_stride << FIELD_PICTURE);
+
//FIXME deblocking could skip the intra and nnz parts.
- if(for_deblock && (h->slice_num == 1 || h->slice_table[mb_xy] == h->slice_table[mb_xy-s->mb_stride]) && !FRAME_MBAFF)
+ if(for_deblock && (h->slice_num == 1 || h->slice_table[mb_xy] == h->slice_table[top_xy]) && !FRAME_MBAFF)
return;
//wow what a mess, why didn't they simplify the interlacing&intra stuff, i can't imagine that these complex rules are worth it
- top_xy = mb_xy - (s->mb_stride << FIELD_PICTURE);
topleft_xy = top_xy - 1;
topright_xy= top_xy + 1;
left_xy[1] = left_xy[0] = mb_xy-1;