Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / media / cast / sender / fake_software_video_encoder.h
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef MEDIA_CAST_SENDER_FAKE_SOFTWARE_VIDEO_ENCODER_H_
6 #define MEDIA_CAST_SENDER_FAKE_SOFTWARE_VIDEO_ENCODER_H_
7
8 #include "media/cast/cast_config.h"
9 #include "media/cast/sender/software_video_encoder.h"
10
11 namespace media {
12 namespace cast {
13
14 class FakeSoftwareVideoEncoder : public SoftwareVideoEncoder {
15  public:
16   FakeSoftwareVideoEncoder(const VideoSenderConfig& video_config);
17   ~FakeSoftwareVideoEncoder() override;
18
19   // SoftwareVideoEncoder implementations.
20   void Initialize() override;
21   void Encode(const scoped_refptr<media::VideoFrame>& video_frame,
22               const base::TimeTicks& reference_time,
23               EncodedFrame* encoded_frame) override;
24   void UpdateRates(uint32 new_bitrate) override;
25   void GenerateKeyFrame() override;
26   void LatestFrameIdToReference(uint32 frame_id) override;
27
28  private:
29   VideoSenderConfig video_config_;
30   bool next_frame_is_key_;
31   uint32 frame_id_;
32   uint32 frame_id_to_reference_;
33   int frame_size_;
34 };
35
36 }  // namespace cast
37 }  // namespace media
38
39 #endif  // MEDIA_CAST_SENDER_FAKE_SOFTWARE_VIDEO_ENCODER_H_