Index: source/planar_functions.cc |
diff --git a/source/planar_functions.cc b/source/planar_functions.cc |
index 237ab68315be82d0f40d2b8b4ea6305277ae7e6e..811ee5b72ccfa5eaf719f785444ad1ef04140a44 100644 |
--- a/source/planar_functions.cc |
+++ b/source/planar_functions.cc |
@@ -128,8 +128,8 @@ int I422Copy(const uint8* src_y, int src_stride_y, |
uint8* dst_v, int dst_stride_v, |
int width, int height) { |
int halfwidth = (width + 1) >> 1; |
- if (!src_y || !src_u || !src_v || |
- !dst_y || !dst_u || !dst_v || |
+ if (!src_u || !src_v || |
+ !dst_u || !dst_v || |
width <= 0 || height == 0) { |
return -1; |
} |
@@ -143,7 +143,10 @@ int I422Copy(const uint8* src_y, int src_stride_y, |
src_stride_u = -src_stride_u; |
src_stride_v = -src_stride_v; |
} |
- CopyPlane(src_y, src_stride_y, dst_y, dst_stride_y, width, height); |
+ |
+ if (dst_y) { |
+ CopyPlane(src_y, src_stride_y, dst_y, dst_stride_y, width, height); |
+ } |
CopyPlane(src_u, src_stride_u, dst_u, dst_stride_u, halfwidth, height); |
CopyPlane(src_v, src_stride_v, dst_v, dst_stride_v, halfwidth, height); |
return 0; |
@@ -158,8 +161,8 @@ int I444Copy(const uint8* src_y, int src_stride_y, |
uint8* dst_u, int dst_stride_u, |
uint8* dst_v, int dst_stride_v, |
int width, int height) { |
- if (!src_y || !src_u || !src_v || |
- !dst_y || !dst_u || !dst_v || |
+ if (!src_u || !src_v || |
+ !dst_u || !dst_v || |
width <= 0 || height == 0) { |
return -1; |
} |
@@ -174,7 +177,9 @@ int I444Copy(const uint8* src_y, int src_stride_y, |
src_stride_v = -src_stride_v; |
} |
- CopyPlane(src_y, src_stride_y, dst_y, dst_stride_y, width, height); |
+ if (dst_y) { |
+ CopyPlane(src_y, src_stride_y, dst_y, dst_stride_y, width, height); |
+ } |
CopyPlane(src_u, src_stride_u, dst_u, dst_stride_u, width, height); |
CopyPlane(src_v, src_stride_v, dst_v, dst_stride_v, width, height); |
return 0; |
@@ -214,6 +219,7 @@ int I420ToI400(const uint8* src_y, int src_stride_y, |
src_y = src_y + (height - 1) * src_stride_y; |
src_stride_y = -src_stride_y; |
} |
+ |
CopyPlane(src_y, src_stride_y, dst_y, dst_stride_y, width, height); |
return 0; |
} |