diff --git a/README.chromium b/README.chromium index 46e39b2c6..23a9f4263 100644 --- a/README.chromium +++ b/README.chromium @@ -1,6 +1,6 @@ Name: libyuv URL: http://code.google.com/p/libyuv/ -Version: 912 +Version: 915 License: BSD License File: LICENSE diff --git a/include/libyuv/convert.h b/include/libyuv/convert.h index dd71cf5bb..1bd45c837 100644 --- a/include/libyuv/convert.h +++ b/include/libyuv/convert.h @@ -229,7 +229,7 @@ int MJPGSize(const uint8* sample, size_t sample_size, // crop_y = (src_height - dst_height) / 2 // "src_width" / "src_height" is size of src_frame in pixels. // "src_height" can be negative indicating a vertically flipped image source. -// "dst_width" / "dst_height" is size of destination to crop to. +// "crop_width" / "crop_height" is the size to crop the src to. // Must be less than or equal to src_width/src_height // Cropping parameters are pre-rotation. // "rotation" can be 0, 90, 180 or 270. @@ -242,7 +242,7 @@ int ConvertToI420(const uint8* src_frame, size_t src_size, uint8* dst_v, int dst_stride_v, int crop_x, int crop_y, int src_width, int src_height, - int dst_width, int dst_height, + int crop_width, int crop_height, enum RotationMode rotation, uint32 format); diff --git a/include/libyuv/convert_argb.h b/include/libyuv/convert_argb.h index 3f029dc41..a18014ca2 100644 --- a/include/libyuv/convert_argb.h +++ b/include/libyuv/convert_argb.h @@ -202,7 +202,7 @@ int MJPGToARGB(const uint8* sample, size_t sample_size, // crop_y = (src_height - dst_height) / 2 // "src_width" / "src_height" is size of src_frame in pixels. // "src_height" can be negative indicating a vertically flipped image source. -// "dst_width" / "dst_height" is size of destination to crop to. +// "crop_width" / "crop_height" is the size to crop the src to. // Must be less than or equal to src_width/src_height // Cropping parameters are pre-rotation. // "rotation" can be 0, 90, 180 or 270. @@ -213,7 +213,7 @@ int ConvertToARGB(const uint8* src_frame, size_t src_size, uint8* dst_argb, int dst_stride_argb, int crop_x, int crop_y, int src_width, int src_height, - int dst_width, int dst_height, + int crop_width, int crop_height, enum RotationMode rotation, uint32 format); diff --git a/include/libyuv/version.h b/include/libyuv/version.h index 504b95815..ad7e0d708 100644 --- a/include/libyuv/version.h +++ b/include/libyuv/version.h @@ -11,6 +11,6 @@ #ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT #define INCLUDE_LIBYUV_VERSION_H_ -#define LIBYUV_VERSION 912 +#define LIBYUV_VERSION 915 #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT diff --git a/source/convert_to_argb.cc b/source/convert_to_argb.cc index aa6185661..f12e9dd22 100644 --- a/source/convert_to_argb.cc +++ b/source/convert_to_argb.cc @@ -31,46 +31,46 @@ extern "C" { // With MJPEG it is the compressed size of the frame. LIBYUV_API int ConvertToARGB(const uint8* sample, size_t sample_size, - uint8* dst_argb, int argb_stride, + uint8* crop_argb, int argb_stride, int crop_x, int crop_y, int src_width, int src_height, - int dst_width, int dst_height, + int crop_width, int crop_height, RotationMode rotation, uint32 fourcc) { uint32 format = CanonicalFourCC(fourcc); - if (dst_argb == NULL || sample == NULL || - src_width <= 0 || dst_width <= 0 || - src_height == 0 || dst_height == 0) { + if (crop_argb == NULL || sample == NULL || + src_width <= 0 || crop_width <= 0 || + src_height == 0 || crop_height == 0) { return -1; } int aligned_src_width = (src_width + 1) & ~1; const uint8* src; const uint8* src_uv; int abs_src_height = (src_height < 0) ? -src_height : src_height; - int inv_dst_height = (dst_height < 0) ? -dst_height : dst_height; + int inv_crop_height = (crop_height < 0) ? -crop_height : crop_height; if (src_height < 0) { - inv_dst_height = -inv_dst_height; + inv_crop_height = -inv_crop_height; } int r = 0; // One pass rotation is available for some formats. For the rest, convert // to I420 (with optional vertical flipping) into a temporary I420 buffer, // and then rotate the I420 to the final destination buffer. - // For in-place conversion, if destination dst_argb is same as source sample, + // For in-place conversion, if destination crop_argb is same as source sample, // also enable temporary buffer. - bool need_buf = (rotation && format != FOURCC_ARGB) || dst_argb == sample; - uint8* tmp_argb = dst_argb; + bool need_buf = (rotation && format != FOURCC_ARGB) || crop_argb == sample; + uint8* tmp_argb = crop_argb; int tmp_argb_stride = argb_stride; uint8* rotate_buffer = NULL; - int abs_dst_height = (dst_height < 0) ? -dst_height : dst_height; + int abs_crop_height = (crop_height < 0) ? -crop_height : crop_height; if (need_buf) { - int argb_size = dst_width * abs_dst_height * 4; + int argb_size = crop_width * abs_crop_height * 4; rotate_buffer = new uint8[argb_size]; if (!rotate_buffer) { return 1; // Out of memory runtime error. } - dst_argb = rotate_buffer; - argb_stride = dst_width; + crop_argb = rotate_buffer; + argb_stride = crop_width; } switch (format) { @@ -78,104 +78,104 @@ int ConvertToARGB(const uint8* sample, size_t sample_size, case FOURCC_YUY2: src = sample + (aligned_src_width * crop_y + crop_x) * 2; r = YUY2ToARGB(src, aligned_src_width * 2, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; case FOURCC_UYVY: src = sample + (aligned_src_width * crop_y + crop_x) * 2; r = UYVYToARGB(src, aligned_src_width * 2, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; case FOURCC_24BG: src = sample + (src_width * crop_y + crop_x) * 3; r = RGB24ToARGB(src, src_width * 3, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; case FOURCC_RAW: src = sample + (src_width * crop_y + crop_x) * 3; r = RAWToARGB(src, src_width * 3, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; case FOURCC_ARGB: src = sample + (src_width * crop_y + crop_x) * 4; r = ARGBToARGB(src, src_width * 4, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; case FOURCC_BGRA: src = sample + (src_width * crop_y + crop_x) * 4; r = BGRAToARGB(src, src_width * 4, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; case FOURCC_ABGR: src = sample + (src_width * crop_y + crop_x) * 4; r = ABGRToARGB(src, src_width * 4, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; case FOURCC_RGBA: src = sample + (src_width * crop_y + crop_x) * 4; r = RGBAToARGB(src, src_width * 4, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; case FOURCC_RGBP: src = sample + (src_width * crop_y + crop_x) * 2; r = RGB565ToARGB(src, src_width * 2, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; case FOURCC_RGBO: src = sample + (src_width * crop_y + crop_x) * 2; r = ARGB1555ToARGB(src, src_width * 2, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; case FOURCC_R444: src = sample + (src_width * crop_y + crop_x) * 2; r = ARGB4444ToARGB(src, src_width * 2, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; // TODO(fbarchard): Support cropping Bayer by odd numbers // by adjusting fourcc. case FOURCC_BGGR: src = sample + (src_width * crop_y + crop_x); r = BayerBGGRToARGB(src, src_width, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; case FOURCC_GBRG: src = sample + (src_width * crop_y + crop_x); r = BayerGBRGToARGB(src, src_width, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; case FOURCC_GRBG: src = sample + (src_width * crop_y + crop_x); r = BayerGRBGToARGB(src, src_width, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; case FOURCC_RGGB: src = sample + (src_width * crop_y + crop_x); r = BayerRGGBToARGB(src, src_width, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; case FOURCC_I400: src = sample + src_width * crop_y + crop_x; r = I400ToARGB(src, src_width, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; // Biplanar formats @@ -184,8 +184,8 @@ int ConvertToARGB(const uint8* sample, size_t sample_size, src_uv = sample + aligned_src_width * (src_height + crop_y / 2) + crop_x; r = NV12ToARGB(src, src_width, src_uv, aligned_src_width, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; case FOURCC_NV21: src = sample + (src_width * crop_y + crop_x); @@ -193,14 +193,14 @@ int ConvertToARGB(const uint8* sample, size_t sample_size, // Call NV12 but with u and v parameters swapped. r = NV21ToARGB(src, src_width, src_uv, aligned_src_width, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; case FOURCC_M420: src = sample + (src_width * crop_y) * 12 / 8 + crop_x; r = M420ToARGB(src, src_width, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; // case FOURCC_Q420: // src = sample + (src_width + aligned_src_width * 2) * crop_y + crop_x; @@ -208,8 +208,8 @@ int ConvertToARGB(const uint8* sample, size_t sample_size, // src_width + crop_x * 2; // r = Q420ToARGB(src, src_width * 3, // src_uv, src_width * 3, -// dst_argb, argb_stride, -// dst_width, inv_dst_height); +// crop_argb, argb_stride, +// crop_width, inv_crop_height); // break; // Triplanar formats case FOURCC_I420: @@ -234,8 +234,8 @@ int ConvertToARGB(const uint8* sample, size_t sample_size, r = I420ToARGB(src_y, src_width, src_u, halfwidth, src_v, halfwidth, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; } case FOURCC_I422: @@ -258,8 +258,8 @@ int ConvertToARGB(const uint8* sample, size_t sample_size, r = I422ToARGB(src_y, src_width, src_u, halfwidth, src_v, halfwidth, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; } case FOURCC_I444: @@ -277,8 +277,8 @@ int ConvertToARGB(const uint8* sample, size_t sample_size, r = I444ToARGB(src_y, src_width, src_u, src_width, src_v, src_width, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; } case FOURCC_I411: { @@ -291,15 +291,15 @@ int ConvertToARGB(const uint8* sample, size_t sample_size, r = I411ToARGB(src_y, src_width, src_u, quarterwidth, src_v, quarterwidth, - dst_argb, argb_stride, - dst_width, inv_dst_height); + crop_argb, argb_stride, + crop_width, inv_crop_height); break; } #ifdef HAVE_JPEG case FOURCC_MJPG: r = MJPGToARGB(sample, sample_size, - dst_argb, argb_stride, - src_width, abs_src_height, dst_width, inv_dst_height); + crop_argb, argb_stride, + src_width, abs_src_height, crop_width, inv_crop_height); break; #endif default: @@ -308,9 +308,9 @@ int ConvertToARGB(const uint8* sample, size_t sample_size, if (need_buf) { if (!r) { - r = ARGBRotate(dst_argb, argb_stride, + r = ARGBRotate(crop_argb, argb_stride, tmp_argb, tmp_argb_stride, - dst_width, abs_dst_height, rotation); + crop_width, abs_crop_height, rotation); } delete [] rotate_buffer; } diff --git a/source/convert_to_i420.cc b/source/convert_to_i420.cc index 5683ffe43..41d648023 100644 --- a/source/convert_to_i420.cc +++ b/source/convert_to_i420.cc @@ -35,22 +35,22 @@ int ConvertToI420(const uint8* sample, uint8* v, int v_stride, int crop_x, int crop_y, int src_width, int src_height, - int dst_width, int dst_height, + int crop_width, int crop_height, RotationMode rotation, uint32 fourcc) { uint32 format = CanonicalFourCC(fourcc); if (!y || !u || !v || !sample || - src_width <= 0 || dst_width <= 0 || - src_height == 0 || dst_height == 0) { + src_width <= 0 || crop_width <= 0 || + src_height == 0 || crop_height == 0) { return -1; } int aligned_src_width = (src_width + 1) & ~1; const uint8* src; const uint8* src_uv; int abs_src_height = (src_height < 0) ? -src_height : src_height; - int inv_dst_height = (dst_height < 0) ? -dst_height : dst_height; + int inv_crop_height = (crop_height < 0) ? -crop_height : crop_height; if (src_height < 0) { - inv_dst_height = -inv_dst_height; + inv_crop_height = -inv_crop_height; } int r = 0; @@ -69,10 +69,10 @@ int ConvertToI420(const uint8* sample, int tmp_u_stride = u_stride; int tmp_v_stride = v_stride; uint8* rotate_buffer = NULL; - int abs_dst_height = (dst_height < 0) ? -dst_height : dst_height; + int abs_crop_height = (crop_height < 0) ? -crop_height : crop_height; if (need_buf) { - int y_size = dst_width * abs_dst_height; - int uv_size = ((dst_width + 1) / 2) * ((abs_dst_height + 1) / 2); + int y_size = crop_width * abs_crop_height; + int uv_size = ((crop_width + 1) / 2) * ((abs_crop_height + 1) / 2); rotate_buffer = new uint8[y_size + uv_size * 2]; if (!rotate_buffer) { return 1; // Out of memory runtime error. @@ -80,8 +80,8 @@ int ConvertToI420(const uint8* sample, y = rotate_buffer; u = y + y_size; v = u + uv_size; - y_stride = dst_width; - u_stride = v_stride = ((dst_width + 1) / 2); + y_stride = crop_width; + u_stride = v_stride = ((crop_width + 1) / 2); } switch (format) { @@ -92,7 +92,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; case FOURCC_UYVY: src = sample + (aligned_src_width * crop_y + crop_x) * 2; @@ -100,7 +100,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; case FOURCC_RGBP: src = sample + (src_width * crop_y + crop_x) * 2; @@ -108,7 +108,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; case FOURCC_RGBO: src = sample + (src_width * crop_y + crop_x) * 2; @@ -116,7 +116,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; case FOURCC_R444: src = sample + (src_width * crop_y + crop_x) * 2; @@ -124,7 +124,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; case FOURCC_24BG: src = sample + (src_width * crop_y + crop_x) * 3; @@ -132,7 +132,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; case FOURCC_RAW: src = sample + (src_width * crop_y + crop_x) * 3; @@ -140,7 +140,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; case FOURCC_ARGB: src = sample + (src_width * crop_y + crop_x) * 4; @@ -148,7 +148,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; case FOURCC_BGRA: src = sample + (src_width * crop_y + crop_x) * 4; @@ -156,7 +156,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; case FOURCC_ABGR: src = sample + (src_width * crop_y + crop_x) * 4; @@ -164,7 +164,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; case FOURCC_RGBA: src = sample + (src_width * crop_y + crop_x) * 4; @@ -172,7 +172,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; // TODO(fbarchard): Support cropping Bayer by odd numbers // by adjusting fourcc. @@ -182,7 +182,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; case FOURCC_GBRG: src = sample + (src_width * crop_y + crop_x); @@ -190,7 +190,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; case FOURCC_GRBG: src = sample + (src_width * crop_y + crop_x); @@ -198,7 +198,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; case FOURCC_RGGB: src = sample + (src_width * crop_y + crop_x); @@ -206,7 +206,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; case FOURCC_I400: src = sample + src_width * crop_y + crop_x; @@ -214,7 +214,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; // Biplanar formats case FOURCC_NV12: @@ -225,7 +225,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height, rotation); + crop_width, inv_crop_height, rotation); break; case FOURCC_NV21: src = sample + (src_width * crop_y + crop_x); @@ -236,7 +236,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, v, v_stride, u, u_stride, - dst_width, inv_dst_height, rotation); + crop_width, inv_crop_height, rotation); break; case FOURCC_M420: src = sample + (src_width * crop_y) * 12 / 8 + crop_x; @@ -244,7 +244,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; case FOURCC_Q420: src = sample + (src_width + aligned_src_width * 2) * crop_y + crop_x; @@ -255,7 +255,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; // Triplanar formats case FOURCC_I420: @@ -283,7 +283,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height, rotation); + crop_width, inv_crop_height, rotation); break; } case FOURCC_I422: @@ -309,7 +309,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; } case FOURCC_I444: @@ -330,7 +330,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; } case FOURCC_I411: { @@ -346,7 +346,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - dst_width, inv_dst_height); + crop_width, inv_crop_height); break; } #ifdef HAVE_JPEG @@ -355,7 +355,7 @@ int ConvertToI420(const uint8* sample, y, y_stride, u, u_stride, v, v_stride, - src_width, abs_src_height, dst_width, inv_dst_height); + src_width, abs_src_height, crop_width, inv_crop_height); break; #endif default: @@ -370,7 +370,7 @@ int ConvertToI420(const uint8* sample, tmp_y, tmp_y_stride, tmp_u, tmp_u_stride, tmp_v, tmp_v_stride, - dst_width, abs_dst_height, rotation); + crop_width, abs_crop_height, rotation); } delete [] rotate_buffer; }