summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2015-03-14 21:39:50 +0000
committerjstebbins <[email protected]>2015-03-14 21:39:50 +0000
commite366121108ae8620ff242f596102e4b44af8f1eb (patch)
tree1f46b83654136253708264b1abc1686eac0481fc
parent83b3e2b833b9def99b35ae0a8c88a6333dde1e9d (diff)
merge: 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/branches/0.10.x@6990 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r--libhb/decomb.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/libhb/decomb.c b/libhb/decomb.c
index 212720fcb..4b8b0a91b 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];
@@ -2090,8 +2090,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->height, pp) -
- thread_args->segment_start[pp];
+ (hb_image_height(init->pix_fmt, init->height, pp) -
+ thread_args->segment_start[pp] + 3) & ~1;
} else {
thread_args->segment_height[pp] = pv->segment_height[pp];
}
@@ -2661,7 +2661,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];