summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-07-02 01:41:19 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-07-02 03:27:04 +0200
commitf27b22b4974c740f4c7b4140a793cac196179266 (patch)
tree4a46a5f971d508450a628c97aa899be7cc767442 /libavcodec
parenta92fbe16f2dc118c0d3adc222484268831388648 (diff)
h264: move 444 border xchg under if (deblock_top)
Fixes out of array access Fixes Ticket2668 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/h264.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index edd34aef5f..c436fdb0ce 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -2230,7 +2230,6 @@ static av_always_inline void xchg_mb_border(H264Context *h, uint8_t *src_y,
XCHG(h->top_borders[top_idx][h->mb_x + 1],
src_y + (17 << pixel_shift), 1);
}
- }
if (simple || !CONFIG_GRAY || !(h->flags & CODEC_FLAG_GRAY)) {
if (chroma444) {
if (deblock_topleft) {
@@ -2246,16 +2245,15 @@ static av_always_inline void xchg_mb_border(H264Context *h, uint8_t *src_y,
XCHG(h->top_borders[top_idx][h->mb_x + 1] + (32 << pixel_shift), src_cr + (17 << pixel_shift), 1);
}
} else {
- if (deblock_top) {
if (deblock_topleft) {
XCHG(top_border_m1 + (16 << pixel_shift), src_cb - (7 << pixel_shift), 1);
XCHG(top_border_m1 + (24 << pixel_shift), src_cr - (7 << pixel_shift), 1);
}
XCHG(top_border + (16 << pixel_shift), src_cb + 1 + pixel_shift, 1);
XCHG(top_border + (24 << pixel_shift), src_cr + 1 + pixel_shift, 1);
- }
}
}
+ }
}
static av_always_inline int dctcoef_get(int16_t *mb, int high_bit_depth,