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 virtual ~FakeSoftwareVideoEncoder(); 18 19 // SoftwareVideoEncoder implementations. 20 virtual void Initialize() OVERRIDE; 21 virtual bool Encode(const scoped_refptr<media::VideoFrame>& video_frame, 22 EncodedFrame* encoded_image) OVERRIDE; 23 virtual void UpdateRates(uint32 new_bitrate) OVERRIDE; 24 virtual void GenerateKeyFrame() OVERRIDE; 25 virtual void LatestFrameIdToReference(uint32 frame_id) OVERRIDE; 26 27 private: 28 VideoSenderConfig video_config_; 29 bool next_frame_is_key_; 30 uint32 frame_id_; 31 uint32 frame_id_to_reference_; 32 int frame_size_; 33 }; 34 35 } // namespace cast 36 } // namespace media 37 38 #endif // MEDIA_CAST_SENDER_FAKE_SOFTWARE_VIDEO_ENCODER_H_ 39