diff options
author | jstebbins <[email protected]> | 2015-03-14 21:23:03 +0000 |
---|---|---|
committer | jstebbins <[email protected]> | 2015-03-14 21:23:03 +0000 |
commit | fcd75a3674899737cee290e3d8b6eeaec192a5ce (patch) | |
tree | e234ac8f10aa100e86d0cfd73b74d7a6bf397f05 /libhb/decomb.c | |
parent | eed0242672c96b3323aa4ff46563bbaa0c089d43 (diff) |
decomb: fix green line when source hight is modulus 2
decomb requires mod 4 height. we pad our frame buffer heights to allow
for this kind of thing, but need to allow decomb to operate on those extra
blank lines.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6989 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'libhb/decomb.c')
-rw-r--r-- | libhb/decomb.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libhb/decomb.c b/libhb/decomb.c index 9df79ce64..0c8ea0529 100644 --- a/libhb/decomb.c +++ b/libhb/decomb.c @@ -1745,7 +1745,7 @@ static void yadif_decomb_filter_thread( void *thread_args_v ) int yy; int width = dst->plane[pp].width; int stride = dst->plane[pp].stride; - int height = dst->plane[pp].height; + int height = dst->plane[pp].height_stride; int penultimate = height - 2; segment_start = thread_args->segment_start[pp]; @@ -2093,8 +2093,8 @@ static int hb_decomb_init( hb_filter_object_t * filter, * Final segment */ thread_args->segment_height[pp] = - hb_image_height(init->pix_fmt, init->geometry.height, pp) - - thread_args->segment_start[pp]; + (hb_image_height(init->pix_fmt, init->geometry.height, pp) - + thread_args->segment_start[pp] + 3) & ~1; } else { thread_args->segment_height[pp] = pv->segment_height[pp]; } @@ -2665,7 +2665,7 @@ void hb_deinterlace(hb_buffer_t *dst, hb_buffer_t *src) int yy; int width = src->plane[pp].width; int stride = src->plane[pp].stride; - int height = src->plane[pp].height; + int height = src->plane[pp].height_stride; // Filter parity lines uint8_t *pdst = &dst->plane[pp].data[0]; |