1 /* 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #ifndef MODULES_DESKTOP_CAPTURE_DIFFER_BLOCK_H_ 12 #define MODULES_DESKTOP_CAPTURE_DIFFER_BLOCK_H_ 13 14 #include <stdint.h> 15 16 namespace webrtc { 17 18 // Size (in pixels) of each square block used for diffing. This must be a 19 // multiple of sizeof(uint64)/8. 20 const int kBlockSize = 32; 21 22 // Format: BGRA 32 bit. 23 const int kBytesPerPixel = 4; 24 25 // Low level function to compare 2 vectors of pixels of size kBlockSize. Returns 26 // whether the blocks differ. 27 bool VectorDifference(const uint8_t* image1, const uint8_t* image2); 28 29 // Low level function to compare 2 blocks of pixels of size 30 // (kBlockSize, |height|). Returns whether the blocks differ. 31 bool BlockDifference(const uint8_t* image1, 32 const uint8_t* image2, 33 int height, 34 int stride); 35 36 // Low level function to compare 2 blocks of pixels of size 37 // (kBlockSize, kBlockSize). Returns whether the blocks differ. 38 bool BlockDifference(const uint8_t* image1, const uint8_t* image2, int stride); 39 40 } // namespace webrtc 41 42 #endif // MODULES_DESKTOP_CAPTURE_DIFFER_BLOCK_H_ 43