Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(307)

Unified Diff: media/cast/sender/video_sender.cc

Issue 450693006: VideoToolbox encoder for cast senders. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase build files on top of media_for_cast_ios component defined in 581803003. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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(
« media/cast/sender/h264_vt_encoder.cc ('K') | « media/cast/sender/video_encoder_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698