Index: media/cast/sender/video_sender.cc |
diff --git a/media/cast/sender/video_sender.cc b/media/cast/sender/video_sender.cc |
index 54e474c4b1472c5b8e41faec75e9b459d93ae683..2389e9f3a13b76d4e56643694084697f7b727909 100644 |
--- a/media/cast/sender/video_sender.cc |
+++ b/media/cast/sender/video_sender.cc |
@@ -12,13 +12,7 @@ |
#include "base/trace_event/trace_event.h" |
#include "media/cast/cast_defines.h" |
#include "media/cast/net/cast_transport_config.h" |
-#include "media/cast/sender/external_video_encoder.h" |
-#include "media/cast/sender/video_encoder_impl.h" |
-#include "media/cast/sender/video_frame_factory.h" |
- |
-#if defined(OS_MACOSX) |
-#include "media/cast/sender/h264_vt_encoder.h" |
-#endif |
+#include "media/cast/sender/video_encoder.h" |
namespace media { |
namespace cast { |
@@ -71,34 +65,12 @@ VideoSender::VideoSender( |
last_bitrate_(0), |
playout_delay_change_cb_(playout_delay_change_cb), |
weak_factory_(this) { |
-#if defined(OS_MACOSX) |
- // On Apple platforms, use the hardware H.264 encoder if possible. It is the |
- // only reasonable option for iOS. |
- if (!video_config.use_external_encoder && |
- video_config.codec == CODEC_VIDEO_H264) { |
- video_encoder_.reset(new H264VideoToolboxEncoder( |
- cast_environment, |
- video_config, |
- gfx::Size(video_config.width, video_config.height), |
- status_change_cb)); |
- } |
-#endif // defined(OS_MACOSX) |
-#if !defined(OS_IOS) |
- if (video_config.use_external_encoder) { |
- video_encoder_.reset(new ExternalVideoEncoder( |
- cast_environment, |
- video_config, |
- gfx::Size(video_config.width, video_config.height), |
- status_change_cb, |
- create_vea_cb, |
- create_video_encode_mem_cb)); |
- } else if (!video_encoder_) { |
- // Software encoder is initialized immediately. |
- video_encoder_.reset(new VideoEncoderImpl( |
- cast_environment, video_config, status_change_cb)); |
- } |
-#endif // !defined(OS_IOS) |
- |
+ video_encoder_ = VideoEncoder::Create( |
+ cast_environment_, |
+ video_config, |
+ status_change_cb, |
+ create_vea_cb, |
+ create_video_encode_mem_cb); |
if (!video_encoder_) { |
cast_environment_->PostTask( |
CastEnvironment::MAIN, |
@@ -202,6 +174,11 @@ void VideoSender::InsertRawVideoFrame( |
last_bitrate_ = bitrate; |
} |
+ if (video_frame->visible_rect().IsEmpty()) { |
+ VLOG(1) << "Rejecting empty video frame."; |
+ return; |
+ } |
+ |
if (video_encoder_->EncodeVideoFrame( |
video_frame, |
reference_time, |