diff options
Diffstat (limited to 'remoting/codec/video_decoder_vp8.h')
-rw-r--r-- | remoting/codec/video_decoder_vp8.h | 15 |
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); }; |