| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/base_paths.h" | 5 #include "base/base_paths.h" |
| 6 #include "base/cpu.h" | 6 #include "base/cpu.h" |
| 7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
| 10 #include "media/base/djb2.h" | 10 #include "media/base/djb2.h" |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 | 98 |
| 99 // Convert a frame of YUV to 32 bit ARGB. | 99 // Convert a frame of YUV to 32 bit ARGB. |
| 100 media::ConvertYUVToRGB32(yuv_bytes.get(), | 100 media::ConvertYUVToRGB32(yuv_bytes.get(), |
| 101 yuv_bytes.get() + kSourceUOffset, | 101 yuv_bytes.get() + kSourceUOffset, |
| 102 yuv_bytes.get() + kSourceVOffset, | 102 yuv_bytes.get() + kSourceVOffset, |
| 103 rgb_converted_bytes.get(), // RGB output | 103 rgb_converted_bytes.get(), // RGB output |
| 104 kSourceWidth, kSourceHeight, // Dimensions | 104 kSourceWidth, kSourceHeight, // Dimensions |
| 105 kSourceWidth, // YStride | 105 kSourceWidth, // YStride |
| 106 kSourceWidth / 2, // UVStride | 106 kSourceWidth / 2, // UVStride |
| 107 kSourceWidth * kBpp, // RGBStride | 107 kSourceWidth * kBpp, // RGBStride |
| 108 media::YV12); | 108 media::YV12, |
| 109 media::YUV_RANGE_RESTRICTED); |
| 109 | 110 |
| 110 #if defined(OS_ANDROID) | 111 #if defined(OS_ANDROID) |
| 111 SwapRedAndBlueChannels(rgb_converted_bytes.get(), kRGBSizeConverted); | 112 SwapRedAndBlueChannels(rgb_converted_bytes.get(), kRGBSizeConverted); |
| 112 #endif | 113 #endif |
| 113 | 114 |
| 114 uint32 rgb_hash = DJB2Hash(rgb_converted_bytes.get(), kRGBSizeConverted, | 115 uint32 rgb_hash = DJB2Hash(rgb_converted_bytes.get(), kRGBSizeConverted, |
| 115 kDJB2HashSeed); | 116 kDJB2HashSeed); |
| 116 EXPECT_EQ(2413171226u, rgb_hash); | 117 EXPECT_EQ(2413171226u, rgb_hash); |
| 117 } | 118 } |
| 118 | 119 |
| 119 TEST(YUVConvertTest, YV16) { | 120 TEST(YUVConvertTest, YV16) { |
| 120 // Allocate all surfaces. | 121 // Allocate all surfaces. |
| 121 scoped_ptr<uint8[]> yuv_bytes; | 122 scoped_ptr<uint8[]> yuv_bytes; |
| 122 scoped_ptr<uint8[]> rgb_bytes(new uint8[kRGBSize]); | 123 scoped_ptr<uint8[]> rgb_bytes(new uint8[kRGBSize]); |
| 123 scoped_ptr<uint8[]> rgb_converted_bytes(new uint8[kRGBSizeConverted]); | 124 scoped_ptr<uint8[]> rgb_converted_bytes(new uint8[kRGBSizeConverted]); |
| 124 | 125 |
| 125 // Read YUV reference data from file. | 126 // Read YUV reference data from file. |
| 126 ReadYV16Data(&yuv_bytes); | 127 ReadYV16Data(&yuv_bytes); |
| 127 | 128 |
| 128 // Convert a frame of YUV to 32 bit ARGB. | 129 // Convert a frame of YUV to 32 bit ARGB. |
| 129 media::ConvertYUVToRGB32(yuv_bytes.get(), // Y | 130 media::ConvertYUVToRGB32(yuv_bytes.get(), // Y |
| 130 yuv_bytes.get() + kSourceUOffset, // U | 131 yuv_bytes.get() + kSourceUOffset, // U |
| 131 yuv_bytes.get() + kSourceYSize * 3 / 2, // V | 132 yuv_bytes.get() + kSourceYSize * 3 / 2, // V |
| 132 rgb_converted_bytes.get(), // RGB output | 133 rgb_converted_bytes.get(), // RGB output |
| 133 kSourceWidth, kSourceHeight, // Dimensions | 134 kSourceWidth, kSourceHeight, // Dimensions |
| 134 kSourceWidth, // YStride | 135 kSourceWidth, // YStride |
| 135 kSourceWidth / 2, // UVStride | 136 kSourceWidth / 2, // UVStride |
| 136 kSourceWidth * kBpp, // RGBStride | 137 kSourceWidth * kBpp, // RGBStride |
| 137 media::YV16); | 138 media::YV16, |
| 139 media::YUV_RANGE_RESTRICTED); |
| 138 | 140 |
| 139 #if defined(OS_ANDROID) | 141 #if defined(OS_ANDROID) |
| 140 SwapRedAndBlueChannels(rgb_converted_bytes.get(), kRGBSizeConverted); | 142 SwapRedAndBlueChannels(rgb_converted_bytes.get(), kRGBSizeConverted); |
| 141 #endif | 143 #endif |
| 142 | 144 |
| 143 uint32 rgb_hash = DJB2Hash(rgb_converted_bytes.get(), kRGBSizeConverted, | 145 uint32 rgb_hash = DJB2Hash(rgb_converted_bytes.get(), kRGBSizeConverted, |
| 144 kDJB2HashSeed); | 146 kDJB2HashSeed); |
| 145 EXPECT_EQ(4222342047u, rgb_hash); | 147 EXPECT_EQ(4222342047u, rgb_hash); |
| 146 } | 148 } |
| 147 | 149 |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 193 media::ScaleYUVToRGB32(y_plane(), // Y | 195 media::ScaleYUVToRGB32(y_plane(), // Y |
| 194 u_plane(), // U | 196 u_plane(), // U |
| 195 v_plane(), // V | 197 v_plane(), // V |
| 196 rgb_bytes_.get(), // RGB output | 198 rgb_bytes_.get(), // RGB output |
| 197 kSourceWidth, kSourceHeight, // Dimensions | 199 kSourceWidth, kSourceHeight, // Dimensions |
| 198 kSourceWidth, kSourceHeight, // Dimensions | 200 kSourceWidth, kSourceHeight, // Dimensions |
| 199 kSourceWidth, // YStride | 201 kSourceWidth, // YStride |
| 200 kSourceWidth / 2, // UvStride | 202 kSourceWidth / 2, // UvStride |
| 201 kSourceWidth * kBpp, // RgbStride | 203 kSourceWidth * kBpp, // RgbStride |
| 202 GetParam().yuv_type, | 204 GetParam().yuv_type, |
| 205 media::YUV_RANGE_RESTRICTED, |
| 203 media::ROTATE_0, | 206 media::ROTATE_0, |
| 204 GetParam().scale_filter); | 207 GetParam().scale_filter); |
| 205 | 208 |
| 206 uint32 yuv_hash = DJB2Hash(rgb_bytes_.get(), kRGBSize, kDJB2HashSeed); | 209 uint32 yuv_hash = DJB2Hash(rgb_bytes_.get(), kRGBSize, kDJB2HashSeed); |
| 207 | 210 |
| 208 media::ConvertYUVToRGB32(y_plane(), // Y | 211 media::ConvertYUVToRGB32(y_plane(), // Y |
| 209 u_plane(), // U | 212 u_plane(), // U |
| 210 v_plane(), // V | 213 v_plane(), // V |
| 211 rgb_bytes_.get(), // RGB output | 214 rgb_bytes_.get(), // RGB output |
| 212 kSourceWidth, kSourceHeight, // Dimensions | 215 kSourceWidth, kSourceHeight, // Dimensions |
| 213 kSourceWidth, // YStride | 216 kSourceWidth, // YStride |
| 214 kSourceWidth / 2, // UVStride | 217 kSourceWidth / 2, // UVStride |
| 215 kSourceWidth * kBpp, // RGBStride | 218 kSourceWidth * kBpp, // RGBStride |
| 216 GetParam().yuv_type); | 219 GetParam().yuv_type, |
| 220 media::YUV_RANGE_RESTRICTED); |
| 217 | 221 |
| 218 uint32 rgb_hash = DJB2Hash(rgb_bytes_.get(), kRGBSize, kDJB2HashSeed); | 222 uint32 rgb_hash = DJB2Hash(rgb_bytes_.get(), kRGBSize, kDJB2HashSeed); |
| 219 | 223 |
| 220 EXPECT_EQ(yuv_hash, rgb_hash); | 224 EXPECT_EQ(yuv_hash, rgb_hash); |
| 221 } | 225 } |
| 222 | 226 |
| 223 TEST_P(YUVScaleTest, Normal) { | 227 TEST_P(YUVScaleTest, Normal) { |
| 224 media::ScaleYUVToRGB32(y_plane(), // Y | 228 media::ScaleYUVToRGB32(y_plane(), // Y |
| 225 u_plane(), // U | 229 u_plane(), // U |
| 226 v_plane(), // V | 230 v_plane(), // V |
| 227 rgb_bytes_.get(), // RGB output | 231 rgb_bytes_.get(), // RGB output |
| 228 kSourceWidth, kSourceHeight, // Dimensions | 232 kSourceWidth, kSourceHeight, // Dimensions |
| 229 kScaledWidth, kScaledHeight, // Dimensions | 233 kScaledWidth, kScaledHeight, // Dimensions |
| 230 kSourceWidth, // YStride | 234 kSourceWidth, // YStride |
| 231 kSourceWidth / 2, // UvStride | 235 kSourceWidth / 2, // UvStride |
| 232 kScaledWidth * kBpp, // RgbStride | 236 kScaledWidth * kBpp, // RgbStride |
| 233 GetParam().yuv_type, | 237 GetParam().yuv_type, |
| 238 media::YUV_RANGE_RESTRICTED, |
| 234 media::ROTATE_0, | 239 media::ROTATE_0, |
| 235 GetParam().scale_filter); | 240 GetParam().scale_filter); |
| 236 | 241 |
| 237 #if defined(OS_ANDROID) | 242 #if defined(OS_ANDROID) |
| 238 SwapRedAndBlueChannels(rgb_bytes_.get(), kRGBSizeScaled); | 243 SwapRedAndBlueChannels(rgb_bytes_.get(), kRGBSizeScaled); |
| 239 #endif | 244 #endif |
| 240 | 245 |
| 241 uint32 rgb_hash = DJB2Hash(rgb_bytes_.get(), kRGBSizeScaled, kDJB2HashSeed); | 246 uint32 rgb_hash = DJB2Hash(rgb_bytes_.get(), kRGBSizeScaled, kDJB2HashSeed); |
| 242 EXPECT_EQ(GetParam().rgb_hash, rgb_hash); | 247 EXPECT_EQ(GetParam().rgb_hash, rgb_hash); |
| 243 } | 248 } |
| 244 | 249 |
| 245 TEST_P(YUVScaleTest, ZeroSourceSize) { | 250 TEST_P(YUVScaleTest, ZeroSourceSize) { |
| 246 media::ScaleYUVToRGB32(y_plane(), // Y | 251 media::ScaleYUVToRGB32(y_plane(), // Y |
| 247 u_plane(), // U | 252 u_plane(), // U |
| 248 v_plane(), // V | 253 v_plane(), // V |
| 249 rgb_bytes_.get(), // RGB output | 254 rgb_bytes_.get(), // RGB output |
| 250 0, 0, // Dimensions | 255 0, 0, // Dimensions |
| 251 kScaledWidth, kScaledHeight, // Dimensions | 256 kScaledWidth, kScaledHeight, // Dimensions |
| 252 kSourceWidth, // YStride | 257 kSourceWidth, // YStride |
| 253 kSourceWidth / 2, // UvStride | 258 kSourceWidth / 2, // UvStride |
| 254 kScaledWidth * kBpp, // RgbStride | 259 kScaledWidth * kBpp, // RgbStride |
| 255 GetParam().yuv_type, | 260 GetParam().yuv_type, |
| 261 media::YUV_RANGE_RESTRICTED, |
| 256 media::ROTATE_0, | 262 media::ROTATE_0, |
| 257 GetParam().scale_filter); | 263 GetParam().scale_filter); |
| 258 | 264 |
| 259 // Testing for out-of-bound read/writes with AddressSanitizer. | 265 // Testing for out-of-bound read/writes with AddressSanitizer. |
| 260 } | 266 } |
| 261 | 267 |
| 262 TEST_P(YUVScaleTest, ZeroDestinationSize) { | 268 TEST_P(YUVScaleTest, ZeroDestinationSize) { |
| 263 media::ScaleYUVToRGB32(y_plane(), // Y | 269 media::ScaleYUVToRGB32(y_plane(), // Y |
| 264 u_plane(), // U | 270 u_plane(), // U |
| 265 v_plane(), // V | 271 v_plane(), // V |
| 266 rgb_bytes_.get(), // RGB output | 272 rgb_bytes_.get(), // RGB output |
| 267 kSourceWidth, kSourceHeight, // Dimensions | 273 kSourceWidth, kSourceHeight, // Dimensions |
| 268 0, 0, // Dimensions | 274 0, 0, // Dimensions |
| 269 kSourceWidth, // YStride | 275 kSourceWidth, // YStride |
| 270 kSourceWidth / 2, // UvStride | 276 kSourceWidth / 2, // UvStride |
| 271 kScaledWidth * kBpp, // RgbStride | 277 kScaledWidth * kBpp, // RgbStride |
| 272 GetParam().yuv_type, | 278 GetParam().yuv_type, |
| 279 media::YUV_RANGE_RESTRICTED, |
| 273 media::ROTATE_0, | 280 media::ROTATE_0, |
| 274 GetParam().scale_filter); | 281 GetParam().scale_filter); |
| 275 | 282 |
| 276 // Testing for out-of-bound read/writes with AddressSanitizer. | 283 // Testing for out-of-bound read/writes with AddressSanitizer. |
| 277 } | 284 } |
| 278 | 285 |
| 279 TEST_P(YUVScaleTest, OddWidthAndHeightNotCrash) { | 286 TEST_P(YUVScaleTest, OddWidthAndHeightNotCrash) { |
| 280 media::ScaleYUVToRGB32(y_plane(), // Y | 287 media::ScaleYUVToRGB32(y_plane(), // Y |
| 281 u_plane(), // U | 288 u_plane(), // U |
| 282 v_plane(), // V | 289 v_plane(), // V |
| 283 rgb_bytes_.get(), // RGB output | 290 rgb_bytes_.get(), // RGB output |
| 284 kSourceWidth, kSourceHeight, // Dimensions | 291 kSourceWidth, kSourceHeight, // Dimensions |
| 285 3, 3, // Dimensions | 292 3, 3, // Dimensions |
| 286 kSourceWidth, // YStride | 293 kSourceWidth, // YStride |
| 287 kSourceWidth / 2, // UvStride | 294 kSourceWidth / 2, // UvStride |
| 288 kScaledWidth * kBpp, // RgbStride | 295 kScaledWidth * kBpp, // RgbStride |
| 289 GetParam().yuv_type, | 296 GetParam().yuv_type, |
| 297 media::YUV_RANGE_RESTRICTED, |
| 290 media::ROTATE_0, | 298 media::ROTATE_0, |
| 291 GetParam().scale_filter); | 299 GetParam().scale_filter); |
| 292 } | 300 } |
| 293 | 301 |
| 294 INSTANTIATE_TEST_CASE_P( | 302 INSTANTIATE_TEST_CASE_P( |
| 295 YUVScaleFormats, YUVScaleTest, | 303 YUVScaleFormats, YUVScaleTest, |
| 296 ::testing::Values( | 304 ::testing::Values( |
| 297 YUVScaleTestData(media::YV12, media::FILTER_NONE, 4136904952u), | 305 YUVScaleTestData(media::YV12, media::FILTER_NONE, 4136904952u), |
| 298 YUVScaleTestData(media::YV16, media::FILTER_NONE, 1501777547u), | 306 YUVScaleTestData(media::YV16, media::FILTER_NONE, 1501777547u), |
| 299 YUVScaleTestData(media::YV12, media::FILTER_BILINEAR, 3164274689u), | 307 YUVScaleTestData(media::YV12, media::FILTER_BILINEAR, 3164274689u), |
| (...skipping 16 matching lines...) Expand all Loading... |
| 316 unsigned char expected[8] = { 255, 255, 104, 255, 4, 5, 6, 7 }; | 324 unsigned char expected[8] = { 255, 255, 104, 255, 4, 5, 6, 7 }; |
| 317 // Convert a frame of YUV to 32 bit ARGB. | 325 // Convert a frame of YUV to 32 bit ARGB. |
| 318 media::ConvertYUVToRGB32(&y, // Y | 326 media::ConvertYUVToRGB32(&y, // Y |
| 319 &u, // U | 327 &u, // U |
| 320 &v, // V | 328 &v, // V |
| 321 &rgb[0], // RGB output | 329 &rgb[0], // RGB output |
| 322 1, 1, // Dimensions | 330 1, 1, // Dimensions |
| 323 0, // YStride | 331 0, // YStride |
| 324 0, // UVStride | 332 0, // UVStride |
| 325 0, // RGBStride | 333 0, // RGBStride |
| 326 media::YV12); | 334 media::YV12, |
| 335 media::YUV_RANGE_RESTRICTED); |
| 327 | 336 |
| 328 #if defined(OS_ANDROID) | 337 #if defined(OS_ANDROID) |
| 329 SwapRedAndBlueChannels(rgb, kBpp); | 338 SwapRedAndBlueChannels(rgb, kBpp); |
| 330 #endif | 339 #endif |
| 331 | 340 |
| 332 int expected_test = memcmp(rgb, expected, sizeof(expected)); | 341 int expected_test = memcmp(rgb, expected, sizeof(expected)); |
| 333 EXPECT_EQ(0, expected_test); | 342 EXPECT_EQ(0, expected_test); |
| 334 } | 343 } |
| 335 | 344 |
| 336 TEST(YUVConvertTest, RGB24ToYUV) { | 345 TEST(YUVConvertTest, RGB24ToYUV) { |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 377 | 386 |
| 378 // Convert a frame of YUV to 32 bit ARGB. | 387 // Convert a frame of YUV to 32 bit ARGB. |
| 379 media::ConvertYUVToRGB32(yuv_bytes.get(), | 388 media::ConvertYUVToRGB32(yuv_bytes.get(), |
| 380 yuv_bytes.get() + kSourceUOffset, | 389 yuv_bytes.get() + kSourceUOffset, |
| 381 yuv_bytes.get() + kSourceVOffset, | 390 yuv_bytes.get() + kSourceVOffset, |
| 382 rgb_bytes.get(), // RGB output | 391 rgb_bytes.get(), // RGB output |
| 383 kSourceWidth, kSourceHeight, // Dimensions | 392 kSourceWidth, kSourceHeight, // Dimensions |
| 384 kSourceWidth, // YStride | 393 kSourceWidth, // YStride |
| 385 kSourceWidth / 2, // UVStride | 394 kSourceWidth / 2, // UVStride |
| 386 kSourceWidth * kBpp, // RGBStride | 395 kSourceWidth * kBpp, // RGBStride |
| 387 media::YV12); | 396 media::YV12, |
| 397 media::YUV_RANGE_RESTRICTED); |
| 388 | 398 |
| 389 // Convert RGB32 to YV12. | 399 // Convert RGB32 to YV12. |
| 390 media::ConvertRGB32ToYUV(rgb_bytes.get(), | 400 media::ConvertRGB32ToYUV(rgb_bytes.get(), |
| 391 yuv_converted_bytes.get(), | 401 yuv_converted_bytes.get(), |
| 392 yuv_converted_bytes.get() + kSourceUOffset, | 402 yuv_converted_bytes.get() + kSourceUOffset, |
| 393 yuv_converted_bytes.get() + kSourceVOffset, | 403 yuv_converted_bytes.get() + kSourceVOffset, |
| 394 kSourceWidth, kSourceHeight, // Dimensions | 404 kSourceWidth, kSourceHeight, // Dimensions |
| 395 kSourceWidth * 4, // RGBStride | 405 kSourceWidth * 4, // RGBStride |
| 396 kSourceWidth, // YStride | 406 kSourceWidth, // YStride |
| 397 kSourceWidth / 2); // UVStride | 407 kSourceWidth / 2); // UVStride |
| 398 | 408 |
| 399 // Convert YV12 back to RGB32. | 409 // Convert YV12 back to RGB32. |
| 400 media::ConvertYUVToRGB32(yuv_converted_bytes.get(), | 410 media::ConvertYUVToRGB32(yuv_converted_bytes.get(), |
| 401 yuv_converted_bytes.get() + kSourceUOffset, | 411 yuv_converted_bytes.get() + kSourceUOffset, |
| 402 yuv_converted_bytes.get() + kSourceVOffset, | 412 yuv_converted_bytes.get() + kSourceVOffset, |
| 403 rgb_converted_bytes.get(), // RGB output | 413 rgb_converted_bytes.get(), // RGB output |
| 404 kSourceWidth, kSourceHeight, // Dimensions | 414 kSourceWidth, kSourceHeight, // Dimensions |
| 405 kSourceWidth, // YStride | 415 kSourceWidth, // YStride |
| 406 kSourceWidth / 2, // UVStride | 416 kSourceWidth / 2, // UVStride |
| 407 kSourceWidth * kBpp, // RGBStride | 417 kSourceWidth * kBpp, // RGBStride |
| 408 media::YV12); | 418 media::YV12, |
| 419 media::YUV_RANGE_RESTRICTED); |
| 409 | 420 |
| 410 int error = 0; | 421 int error = 0; |
| 411 for (int i = 0; i < kRGBSize; ++i) { | 422 for (int i = 0; i < kRGBSize; ++i) { |
| 412 int diff = rgb_converted_bytes[i] - rgb_bytes[i]; | 423 int diff = rgb_converted_bytes[i] - rgb_bytes[i]; |
| 413 if (diff < 0) | 424 if (diff < 0) |
| 414 diff = -diff; | 425 diff = -diff; |
| 415 error += diff; | 426 error += diff; |
| 416 } | 427 } |
| 417 | 428 |
| 418 // Make sure error is within bound. | 429 // Make sure error is within bound. |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 532 // Convert a frame of YUV to 32 bit ARGB. | 543 // Convert a frame of YUV to 32 bit ARGB. |
| 533 media::ConvertYUVToRGB32( | 544 media::ConvertYUVToRGB32( |
| 534 yuv_bytes.get(), | 545 yuv_bytes.get(), |
| 535 yuv_bytes.get() + kSourceUOffset, | 546 yuv_bytes.get() + kSourceUOffset, |
| 536 yuv_bytes.get() + kSourceVOffset, | 547 yuv_bytes.get() + kSourceVOffset, |
| 537 rgb_bytes.get(), // RGB output | 548 rgb_bytes.get(), // RGB output |
| 538 kSourceWidth, kSourceHeight, // Dimensions | 549 kSourceWidth, kSourceHeight, // Dimensions |
| 539 kSourceWidth, // YStride | 550 kSourceWidth, // YStride |
| 540 kSourceWidth / 2, // UVStride | 551 kSourceWidth / 2, // UVStride |
| 541 kSourceWidth * kBpp, // RGBStride | 552 kSourceWidth * kBpp, // RGBStride |
| 542 media::YV12); | 553 media::YV12, |
| 554 media::YUV_RANGE_RESTRICTED); |
| 543 | 555 |
| 544 // Convert RGB32 to YV12 with SSE2 version. | 556 // Convert RGB32 to YV12 with SSE2 version. |
| 545 media::ConvertRGB32ToYUV_SSE2( | 557 media::ConvertRGB32ToYUV_SSE2( |
| 546 rgb_bytes.get(), | 558 rgb_bytes.get(), |
| 547 yuv_converted_bytes.get(), | 559 yuv_converted_bytes.get(), |
| 548 yuv_converted_bytes.get() + kSourceUOffset, | 560 yuv_converted_bytes.get() + kSourceUOffset, |
| 549 yuv_converted_bytes.get() + kSourceVOffset, | 561 yuv_converted_bytes.get() + kSourceVOffset, |
| 550 kSourceWidth, kSourceHeight, // Dimensions | 562 kSourceWidth, kSourceHeight, // Dimensions |
| 551 kSourceWidth * 4, // RGBStride | 563 kSourceWidth * 4, // RGBStride |
| 552 kSourceWidth, // YStride | 564 kSourceWidth, // YStride |
| (...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 961 EXPECT_EQ(0, memcmp(rgb_bytes_reference.get(), | 973 EXPECT_EQ(0, memcmp(rgb_bytes_reference.get(), |
| 962 rgb_bytes_converted.get(), | 974 rgb_bytes_converted.get(), |
| 963 kWidth * kBpp)); | 975 kWidth * kBpp)); |
| 964 } | 976 } |
| 965 | 977 |
| 966 #endif // defined(ARCH_CPU_X86_64) | 978 #endif // defined(ARCH_CPU_X86_64) |
| 967 | 979 |
| 968 #endif // defined(ARCH_CPU_X86_FAMILY) | 980 #endif // defined(ARCH_CPU_X86_FAMILY) |
| 969 | 981 |
| 970 } // namespace media | 982 } // namespace media |
| OLD | NEW |