summaryrefslogtreecommitdiff
path: root/libavfilter/vf_vflip.c
diff options
context:
space:
mode:
authorClément Bœsch <ubitux@gmail.com>2013-05-11 01:06:53 +0200
committerClément Bœsch <ubitux@gmail.com>2013-05-12 12:59:00 +0200
commit60f0e304312d0fe1d26f7344cb86dc4cdab52b15 (patch)
tree7edd1c9c771e6cda49f84e0184293a29839549d0 /libavfilter/vf_vflip.c
parent59d33eafd19ab9dc0ba2c1ba83738d55047fba48 (diff)
downloadffmpeg-60f0e304312d0fe1d26f7344cb86dc4cdab52b15.tar.gz
lavfi/vflip: use FF_CEIL_RSHIFT for chroma w/h rounding.
Diffstat (limited to 'libavfilter/vf_vflip.c')
-rw-r--r--libavfilter/vf_vflip.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libavfilter/vf_vflip.c b/libavfilter/vf_vflip.c
index 28fa800f3b..fc05e614d8 100644
--- a/libavfilter/vf_vflip.c
+++ b/libavfilter/vf_vflip.c
@@ -55,9 +55,10 @@ static AVFrame *get_video_buffer(AVFilterLink *link, int w, int h)
for (i = 0; i < 4; i ++) {
int vsub = i == 1 || i == 2 ? flip->vsub : 0;
+ int height = FF_CEIL_RSHIFT(h, vsub);
if (frame->data[i]) {
- frame->data[i] += (((h + (1<<vsub) - 1) >> vsub) - 1) * frame->linesize[i];
+ frame->data[i] += (height - 1) * frame->linesize[i];
frame->linesize[i] = -frame->linesize[i];
}
}
@@ -72,9 +73,10 @@ static int filter_frame(AVFilterLink *link, AVFrame *frame)
for (i = 0; i < 4; i ++) {
int vsub = i == 1 || i == 2 ? flip->vsub : 0;
+ int height = FF_CEIL_RSHIFT(link->h, vsub);
if (frame->data[i]) {
- frame->data[i] += (((link->h + (1<<vsub)-1)>> vsub)-1) * frame->linesize[i];
+ frame->data[i] += (height - 1) * frame->linesize[i];
frame->linesize[i] = -frame->linesize[i];
}
}