summaryrefslogtreecommitdiffstats
path: root/libhb/decomb.c
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2015-03-14 21:23:03 +0000
committerjstebbins <[email protected]>2015-03-14 21:23:03 +0000
commitfcd75a3674899737cee290e3d8b6eeaec192a5ce (patch)
treee234ac8f10aa100e86d0cfd73b74d7a6bf397f05 /libhb/decomb.c
parenteed0242672c96b3323aa4ff46563bbaa0c089d43 (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.c8
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];