#ifndef REMOTING_CODEC_VIDEO_ENCODER_ACTIVE_MAP_H_
#define REMOTING_CODEC_VIDEO_ENCODER_ACTIVE_MAP_H_
#include "base/containers/heap_array.h"
#include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h"
#include "third_party/webrtc/modules/desktop_capture/desktop_region.h"
namespace remoting {
class VideoEncoderActiveMap {
public:
VideoEncoderActiveMap();
VideoEncoderActiveMap(const VideoEncoderActiveMap&) = delete;
VideoEncoderActiveMap& operator=(const VideoEncoderActiveMap&) = delete;
~VideoEncoderActiveMap();
void Initialize(const webrtc::DesktopSize& size);
void Clear();
void Update(const webrtc::DesktopRegion& updated_region);
uint8_t* data() { return active_map_.data(); }
uint32_t width() { return active_map_size_.width(); }
uint32_t height() { return active_map_size_.height(); }
private:
base::HeapArray<uint8_t> active_map_;
webrtc::DesktopSize active_map_size_;
};
}
#endif