Index: remoting/codec/video_decoder_vp8.h |
diff --git a/remoting/codec/video_decoder_vp8.h b/remoting/codec/video_decoder_vp8.h |
index 53a720ba9b6711448e78cb52fa72b324012e7c3d..2efbd223c05396eea0878c1a3a369067a592401e 100644 |
--- a/remoting/codec/video_decoder_vp8.h |
+++ b/remoting/codec/video_decoder_vp8.h |
@@ -30,6 +30,7 @@ class VideoDecoderVp8 : public VideoDecoder { |
uint8* image_buffer, |
int image_stride, |
SkRegion* output_region) OVERRIDE; |
+ virtual const SkRegion* GetImageShape() OVERRIDE; |
private: |
enum State { |
@@ -38,6 +39,14 @@ class VideoDecoderVp8 : public VideoDecoder { |
kError, |
}; |
+ // Fills the rectangle |rect| with the given ARGB color |color| in |buffer|. |
+ void FillRect(uint8* buffer, int stride, const SkIRect& rect, uint32 color); |
+ |
+ // Calculates the difference between the desktop shape regions in two |
+ // consecutive frames and updates |updated_region_| and |transparent_region_| |
+ // accordingly. |
+ void UpdateImageShapeRegion(SkRegion* new_desktop_shape); |
+ |
// The internal state of the decoder. |
State state_; |
@@ -52,6 +61,12 @@ class VideoDecoderVp8 : public VideoDecoder { |
// Output dimensions. |
SkISize screen_size_; |
+ // The region occupied by the top level windows. |
+ SkRegion desktop_shape_; |
+ |
+ // The region that should be make transparent. |
+ SkRegion transparent_region_; |
+ |
DISALLOW_COPY_AND_ASSIGN(VideoDecoderVp8); |
}; |