summaryrefslogtreecommitdiffstats
path: root/remoting/codec/video_decoder_vp8.h
diff options
context:
space:
mode:
Diffstat (limited to 'remoting/codec/video_decoder_vp8.h')
-rw-r--r--remoting/codec/video_decoder_vp8.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/remoting/codec/video_decoder_vp8.h b/remoting/codec/video_decoder_vp8.h
index 53a720b..2efbd22 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);
};