~ubuntu-branches/ubuntu/raring/libav/raring-security

« back to all changes in this revision

Viewing changes to debian/patches/post-0.7.1/0038-VC1-Fix-first-last-row-checks-with-slices.patch

  • Committer: Package Import Robot
  • Author(s): Reinhard Tartler
  • Date: 2011-09-28 09:18:34 UTC
  • mfrom: (1.3.7 sid)
  • Revision ID: package-import@ubuntu.com-20110928091834-w415mnuh06h4zpvc
Tags: 4:0.7.1-7ubuntu2
Revert "Convert package to include multiarch support."

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
From db5e27f94ed8e74c2cca45b61085ebad7180e22d Mon Sep 17 00:00:00 2001
 
2
From: =?UTF-8?q?Alberto=20Delm=C3=A1s?= <adelmas@gmail.com>
 
3
Date: Thu, 25 Aug 2011 11:00:37 +0200
 
4
Subject: [PATCH 38/70] VC1: Fix first/last row checks with slices
 
5
 
 
6
In some places 0/mb_height were used in place of start_mb_y/end_mb_y.
 
7
 
 
8
Fixes SA00049, SA00058, SA10091, SA10097, SA10131, SA20021, SA30030
 
9
 
 
10
Improves PSNR in SA00054, SA00059, SA00060, SA10096, SA10098, SA20022,
 
11
SA30031, SA30032, SA40012, SA40013
 
12
 
 
13
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
 
14
(cherry picked from commit 1cf82cab0840d669198ea76ab0363aa661950647)
 
15
 
 
16
Signed-off-by: Anton Khirnov <anton@khirnov.net>
 
17
---
 
18
 libavcodec/vc1dec.c |   14 +++++++-------
 
19
 1 files changed, 7 insertions(+), 7 deletions(-)
 
20
 
 
21
diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
 
22
index b17ce30..c87558b 100644
 
23
--- a/libavcodec/vc1dec.c
 
24
+++ b/libavcodec/vc1dec.c
 
25
@@ -243,7 +243,7 @@ static void vc1_loop_filter_iblk(VC1Context *v, int pq)
 
26
     }
 
27
     v->vc1dsp.vc1_v_loop_filter16(s->dest[0] + 8*s->linesize, s->linesize, pq);
 
28
 
 
29
-    if (s->mb_y == s->mb_height-1) {
 
30
+    if (s->mb_y == s->end_mb_y-1) {
 
31
         if (s->mb_x) {
 
32
             v->vc1dsp.vc1_h_loop_filter16(s->dest[0], s->linesize, pq);
 
33
             v->vc1dsp.vc1_h_loop_filter8(s->dest[1], s->uvlinesize, pq);
 
34
@@ -295,7 +295,7 @@ static void vc1_loop_filter_iblk_delayed(VC1Context *v, int pq)
 
35
             v->vc1dsp.vc1_v_loop_filter16(s->dest[0] - 8 * s->linesize, s->linesize, pq);
 
36
         }
 
37
 
 
38
-        if (s->mb_y == s->mb_height) {
 
39
+        if (s->mb_y == s->end_mb_y) {
 
40
             if (s->mb_x) {
 
41
                 if (s->mb_x >= 2)
 
42
                     v->vc1dsp.vc1_h_loop_filter16(s->dest[0] - 16 * s->linesize - 16, s->linesize, pq);
 
43
@@ -2330,7 +2330,7 @@ static av_always_inline void vc1_apply_p_v_loop_filter(VC1Context *v, int block_
 
44
     } else {
 
45
         dst      = s->dest[0] + (block_num & 1) * 8 + ((block_num & 2) * 4 - 8) * linesize;
 
46
     }
 
47
-    if (s->mb_y != s->mb_height || block_num < 2) {
 
48
+    if (s->mb_y != s->end_mb_y || block_num < 2) {
 
49
         int16_t (*mv)[2];
 
50
         int mv_stride;
 
51
 
 
52
@@ -3096,7 +3096,7 @@ static void vc1_decode_i_blocks_adv(VC1Context *v)
 
53
         if(v->s.loop_filter) vc1_loop_filter_iblk_delayed(v, v->pq);
 
54
     }
 
55
     if (v->s.loop_filter)
 
56
-        ff_draw_horiz_band(s, (s->mb_height-1)*16, 16);
 
57
+        ff_draw_horiz_band(s, (s->end_mb_y-1)*16, 16);
 
58
     ff_er_add_slice(s, 0, s->start_mb_y, s->mb_width - 1, s->end_mb_y - 1, (AC_END|DC_END|MV_END));
 
59
 }
 
60
 
 
61
@@ -3219,7 +3219,7 @@ static void vc1_decode_b_blocks(VC1Context *v)
 
62
         s->first_slice_line = 0;
 
63
     }
 
64
     if (v->s.loop_filter)
 
65
-        ff_draw_horiz_band(s, (s->mb_height-1)*16, 16);
 
66
+        ff_draw_horiz_band(s, (s->end_mb_y-1)*16, 16);
 
67
     ff_er_add_slice(s, 0, s->start_mb_y, s->mb_width - 1, s->end_mb_y - 1, (AC_END|DC_END|MV_END));
 
68
 }
 
69
 
 
70
@@ -3227,9 +3227,9 @@ static void vc1_decode_skip_blocks(VC1Context *v)
 
71
 {
 
72
     MpegEncContext *s = &v->s;
 
73
 
 
74
-    ff_er_add_slice(s, 0, 0, s->mb_width - 1, s->mb_height - 1, (AC_END|DC_END|MV_END));
 
75
+    ff_er_add_slice(s, 0, s->start_mb_y, s->mb_width - 1, s->end_mb_y - 1, (AC_END|DC_END|MV_END));
 
76
     s->first_slice_line = 1;
 
77
-    for(s->mb_y = 0; s->mb_y < s->mb_height; s->mb_y++) {
 
78
+    for(s->mb_y = s->start_mb_y; s->mb_y < s->end_mb_y; s->mb_y++) {
 
79
         s->mb_x = 0;
 
80
         ff_init_block_index(s);
 
81
         ff_update_block_index(s);
 
82
-- 
 
83
1.7.4.1
 
84