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

Unified Diff: content/renderer/media/media_recorder_handler.cc

Issue 1886123002: [experimental] MR: add support for H264 recording (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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: 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) {
« no previous file with comments | « content/renderer/media/media_recorder_handler.h ('k') | content/renderer/media/media_recorder_handler_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698