Index: content/renderer/media/video_track_recorder.cc |
diff --git a/content/renderer/media/video_track_recorder.cc b/content/renderer/media/video_track_recorder.cc |
index 011c633e3d1e90f8db0bf692b6185ad8c67ff4b1..6f40477193ddfc71a54973b54a076d57b45f8560 100644 |
--- a/content/renderer/media/video_track_recorder.cc |
+++ b/content/renderer/media/video_track_recorder.cc |
@@ -1075,6 +1075,30 @@ void H264Encoder::ConfigureEncoderOnEncodingTaskRunner(const gfx::Size& size) { |
} // anonymous namespace |
+// static |
+VideoTrackRecorder::CodecId VideoTrackRecorder::GetPreferredCodec() { |
+ CodecId codec_id = CodecId::VP8; |
+ while (codec_id != VideoTrackRecorder::CodecId::LAST) { |
+ if (CodecIdToVEAProfile(codec_id) != media::VIDEO_CODEC_PROFILE_UNKNOWN) |
emircan
2017/01/11 18:01:58
We end up calling CodecIdToVEAProfile() at least 3
mcasas
2017/01/11 21:40:48
Ok, you convinced me to cut deeper and made a sing
|
+ return codec_id; |
+ |
+ switch (codec_id) { |
chfremer
2017/01/11 17:34:52
Why not use a for-loop to check a fixed list of ca
mcasas
2017/01/11 21:40:48
I wanted to have a compiler-enforced way to guaran
|
+ case CodecId::VP8: |
+ codec_id = CodecId::VP9; |
+ break; |
+ case CodecId::VP9: |
+ codec_id = CodecId::H264; |
+ break; |
+ case CodecId::H264: |
+ codec_id = CodecId::LAST; |
+ break; |
+ case CodecId::LAST: |
+ NOTREACHED(); |
+ } |
+ } |
+ return CodecId::VP8; |
+} |
+ |
VideoTrackRecorder::VideoTrackRecorder( |
CodecId codec, |
const blink::WebMediaStreamTrack& track, |