Index: media/cast/sender/video_sender.cc |
diff --git a/media/cast/sender/video_sender.cc b/media/cast/sender/video_sender.cc |
index e7628327887a2566257e3be2ef14433acb200dad..0ac1bdf0a688e6c25f00b9d90425dd4d4373211b 100644 |
--- a/media/cast/sender/video_sender.cc |
+++ b/media/cast/sender/video_sender.cc |
@@ -16,6 +16,10 @@ |
#include "media/cast/sender/external_video_encoder.h" |
#include "media/cast/sender/video_encoder_impl.h" |
+#if defined(OS_MACOSX) |
+#include "media/cast/sender/h264_vt_encoder.h" |
+#endif |
+ |
namespace media { |
namespace cast { |
@@ -64,6 +68,20 @@ VideoSender::VideoSender( |
<< " and max_frame_rate=" << video_config.max_frame_rate; |
DCHECK_GT(max_unacked_frames_, 0); |
+#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 && |
miu
2014/09/24 00:10:14
|use_external_encoder| is set to true when the har
jfroy
2014/09/24 01:00:58
I understood |use_external_encoder| from the point
|
+ video_config.codec == CODEC_VIDEO_H264) { |
+ video_encoder_.reset(new H264VideoToolboxEncoder( |
+ cast_environment, |
+ video_config, |
+ base::Bind(&VideoSender::OnEncoderInitialized, |
+ weak_factory_.GetWeakPtr(), |
+ initialization_cb))); |
+ } |
+#endif // defined(OS_MACOSX) |
+#if !defined(OS_IOS) |
if (video_config.use_external_encoder) { |
video_encoder_.reset(new ExternalVideoEncoder( |
cast_environment, |
@@ -83,6 +101,7 @@ VideoSender::VideoSender( |
cast_environment, video_config, max_unacked_frames_)); |
cast_initialization_status_ = STATUS_VIDEO_INITIALIZED; |
} |
+#endif // !defined(OS_IOS) |
if (cast_initialization_status_ == STATUS_VIDEO_INITIALIZED) { |
cast_environment->PostTask( |