[vlc-commits] picture: round the number of visible lines to the upper multiple
Steve Lhomme
git at videolan.org
Wed Apr 18 11:03:10 CEST 2018
vlc/vlc-3.0 | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Tue Apr 17 14:41:43 2018 +0200| [6dbcc5d5a8127d3369e49cee620b02ab7e4df55c] | committer: Thomas Guillem
picture: round the number of visible lines to the upper multiple
The U/V lines of 4:2:0 chroma are divided by 2. But if the height is an odd
number we end up missing the last line for these planes.
Fixes #20290
(cherry picked from commit 81aed6c302c1d3e90267fbdea07e9db361632043)
Signed-off-by: Thomas Guillem <thomas at gllm.fr>
> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=6dbcc5d5a8127d3369e49cee620b02ab7e4df55c
---
src/misc/picture.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/misc/picture.c b/src/misc/picture.c
index f6671edd51..be51a46d6a 100644
--- a/src/misc/picture.c
+++ b/src/misc/picture.c
@@ -192,9 +192,9 @@ int picture_Setup( picture_t *p_picture, const video_format_t *restrict fmt )
plane_t *p = &p_picture->p[i];
p->i_lines = (i_height_aligned + i_height_extra ) * p_dsc->p[i].h.num / p_dsc->p[i].h.den;
- p->i_visible_lines = fmt->i_visible_height * p_dsc->p[i].h.num / p_dsc->p[i].h.den;
+ p->i_visible_lines = (fmt->i_visible_height + (p_dsc->p[i].h.den - 1)) * p_dsc->p[i].h.num / p_dsc->p[i].h.den;
p->i_pitch = i_width_aligned * p_dsc->p[i].w.num / p_dsc->p[i].w.den * p_dsc->pixel_size;
- p->i_visible_pitch = fmt->i_visible_width * p_dsc->p[i].w.num / p_dsc->p[i].w.den * p_dsc->pixel_size;
+ p->i_visible_pitch = (fmt->i_visible_width + (p_dsc->p[i].w.den - 1)) * p_dsc->p[i].w.num / p_dsc->p[i].w.den * p_dsc->pixel_size;
p->i_pixel_pitch = p_dsc->pixel_size;
assert( (p->i_pitch % 16) == 0 );
More information about the vlc-commits
mailing list