function calculateVideoCacheHash (data, videoEl) {
  var i;
  var id = videoEl.getAttribute('id');
  var hash;
  var videoAttributes;

  if (id) { return id; }

  // Calculate hash using sorted video attributes.
  hash = '';
  videoAttributes = data || {};
  for (i = 0; i < videoEl.attributes.length; i++) {
    videoAttributes[videoEl.attributes[i].name] = videoEl.attributes[i].value;
  }
  Object.keys(videoAttributes).sort().forEach(function (name) {
    hash += name + ':' + videoAttributes[name] + ';';
  });

  return hash;
}
Calculates consistent hash from a video element using its attributes.
If the video element has an ID, use that.
Else build a hash that looks like `src:myvideo.mp4;height:200;width:400;`.

@param data {object} - Texture data such as repeat.
@param videoEl {Element} - Video element.
@returns {string}