| Index: content/renderer/media/media_recorder_handler.cc
|
| diff --git a/content/renderer/media/media_recorder_handler.cc b/content/renderer/media/media_recorder_handler.cc
|
| index 0beedc394745310459719b71055efe2751366f60..4b6dc17a507ea44987e3c32676a6d7e7dbf93a85 100644
|
| --- a/content/renderer/media/media_recorder_handler.cc
|
| +++ b/content/renderer/media/media_recorder_handler.cc
|
| @@ -63,9 +63,9 @@ bool MediaRecorderHandler::canSupportMimeType(
|
| return false;
|
|
|
| // Both |video| and |audio| support empty |codecs|; |type| == "video" supports
|
| - // vp8, vp9 or opus; |type| = "audio", supports only opus.
|
| + // vp8, vp9, h264 or opus; |type| = "audio", supports only opus.
|
| // http://www.webmproject.org/docs/container Sec:"HTML5 Video Type Parameters"
|
| - static const char* const kVideoCodecs[] = { "vp8", "vp9", "opus" };
|
| + static const char* const kVideoCodecs[] = { "vp8", "vp9", "opus", "h264" };
|
| static const char* const kAudioCodecs[] = { "opus" };
|
| const char* const* codecs = video ? &kVideoCodecs[0] : &kAudioCodecs[0];
|
| int codecs_count = video ? arraysize(kVideoCodecs) : arraysize(kAudioCodecs);
|
| @@ -101,6 +101,10 @@ bool MediaRecorderHandler::initialize(
|
| return false;
|
| }
|
| use_vp9_ = base::ToLowerASCII(codecs.utf8()).find("vp9") != std::string::npos;
|
| + use_h264_ = base::ToLowerASCII(codecs.utf8()).find("h264") != std::string::npos;
|
| +
|
| + use_h264_ = true;
|
| +
|
| media_stream_ = media_stream;
|
| DCHECK(client);
|
| client_ = client;
|
| @@ -146,7 +150,10 @@ bool MediaRecorderHandler::start(int timeslice) {
|
| blink::WebMediaStreamSource::ReadyStateLive;
|
|
|
| webm_muxer_.reset(new media::WebmMuxer(
|
| - use_vp9_ ? media::kCodecVP9 : media::kCodecVP8, use_video_tracks,
|
| +
|
| + use_h264_
|
| + ? media::kCodecH264
|
| + : (use_vp9_ ? media::kCodecVP9 : media::kCodecVP8), use_video_tracks,
|
| use_audio_tracks, base::Bind(&MediaRecorderHandler::WriteData,
|
| weak_factory_.GetWeakPtr())));
|
|
|
| @@ -164,8 +171,12 @@ bool MediaRecorderHandler::start(int timeslice) {
|
| media::BindToCurrentLoop(base::Bind(
|
| &MediaRecorderHandler::OnEncodedVideo, weak_factory_.GetWeakPtr()));
|
|
|
| + const VideoTrackRecorder::CodecId codec =
|
| + use_h264_ ? VideoTrackRecorder::CodecId::H264
|
| + : (use_vp9_ ? VideoTrackRecorder::CodecId::VP9
|
| + : VideoTrackRecorder::CodecId::VP8);
|
| video_recorders_.push_back(new VideoTrackRecorder(
|
| - use_vp9_, video_track, on_encoded_video_cb, video_bits_per_second_));
|
| + codec, video_track, on_encoded_video_cb, video_bits_per_second_));
|
| }
|
|
|
| if (use_audio_tracks) {
|
|
|