Javascript  |  24行  |  722 B

/*
 *  Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
 *
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree.
 */

'use strict';

function isBlackFrame(data, length) {
  var accumulatedLuma = 0;
  var nonBlackPixelLumaThreshold = 20;
  for (var i = 4; i < length; i += 4) {
    // Use Luma as in Rec. 709: Y′709 = 0.21R + 0.72G + 0.07B;
    accumulatedLuma += (0.21 * data[i] +  0.72 * data[i + 1]
        + 0.07 * data[i + 2]);
    // Early termination if the average Luma so far is bright enough.
    if (accumulatedLuma > (nonBlackPixelLumaThreshold * i / 4)) {
      return false;
    }
  }
  return true;
}