Chromium Code Reviews| Index: media/muxers/webm_muxer.cc |
| diff --git a/media/muxers/webm_muxer.cc b/media/muxers/webm_muxer.cc |
| index 66c3f461c6bc02eec33992079a6258d6661082f6..ebec046e95dfff9c393be99ec7917260335c8a23 100644 |
| --- a/media/muxers/webm_muxer.cc |
| +++ b/media/muxers/webm_muxer.cc |
| @@ -68,13 +68,31 @@ static double GetFrameRate(const scoped_refptr<VideoFrame>& video_frame) { |
| return frame_rate; |
| } |
| +// TODO(mcasas): Change |kH264CodecId| to "V_MPEG4/ISO/AVC" when |
| +// https://chromium-review.googlesource.com/340298/ is rolled into Chromium. |
| +static const char kH264CodecId[] = ""; |
| + |
| +static const char* MkvCodeIcForMediaVideoCodecId(VideoCodec video_codec) { |
| + switch (video_codec) { |
| + case kCodecVP8: |
| + return mkvmuxer::Tracks::kVp8CodecId; |
| + case kCodecVP9: |
| + return mkvmuxer::Tracks::kVp9CodecId; |
| + case kCodecH264: |
| + return kH264CodecId; |
| + default: |
|
emircan
2016/04/25 19:26:15
ditto
mcasas
2016/04/26 18:13:38
Can't be done in this case because media::VideoCod
|
| + NOTREACHED() << "Unsupported codec " << GetCodecName(video_codec); |
| + return ""; |
| + } |
| +} |
| + |
| } // anonymous namespace |
| WebmMuxer::WebmMuxer(VideoCodec codec, |
| bool has_video, |
| bool has_audio, |
| const WriteDataCB& write_data_callback) |
| - : use_vp9_(codec == kCodecVP9), |
| + : video_codec_(codec), |
| video_track_index_(0), |
| audio_track_index_(0), |
| has_video_(has_video), |
| @@ -83,8 +101,8 @@ WebmMuxer::WebmMuxer(VideoCodec codec, |
| position_(0) { |
| DCHECK(has_video_ || has_audio_); |
| DCHECK(!write_data_callback_.is_null()); |
| - DCHECK(codec == kCodecVP8 || codec == kCodecVP9) |
| - << " Only Vp8 and VP9 are supported in WebmMuxer"; |
| + DCHECK(codec == kCodecVP8 || codec == kCodecVP9 || codec == kCodecH264) |
| + << " Unsupported codec: " << GetCodecName(codec); |
| segment_.Init(this); |
| segment_.set_mode(mkvmuxer::Segment::kLive); |
| @@ -207,8 +225,7 @@ void WebmMuxer::AddVideoTrack(const gfx::Size& frame_size, double frame_rate) { |
| reinterpret_cast<mkvmuxer::VideoTrack*>( |
| segment_.GetTrackByNumber(video_track_index_)); |
| DCHECK(video_track); |
| - video_track->set_codec_id(use_vp9_ ? mkvmuxer::Tracks::kVp9CodecId |
| - : mkvmuxer::Tracks::kVp8CodecId); |
| + video_track->set_codec_id(MkvCodeIcForMediaVideoCodecId(video_codec_)); |
| DCHECK_EQ(0ull, video_track->crop_right()); |
| DCHECK_EQ(0ull, video_track->crop_left()); |
| DCHECK_EQ(0ull, video_track->crop_top()); |