| 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 1dc73b7a350754e3f75332fbbacaf348e6ecd356..390a0ff6f945cf8b714f3e8ec920d3262f135b8f 100644
|
| --- a/content/renderer/media/video_track_recorder.cc
|
| +++ b/content/renderer/media/video_track_recorder.cc
|
| @@ -14,6 +14,7 @@
|
| #include "base/time/time.h"
|
| #include "base/trace_event/trace_event.h"
|
| #include "media/base/video_frame.h"
|
| +#include "media/base/video_util.h"
|
| #include "ui/gfx/geometry/size.h"
|
|
|
| extern "C" {
|
| @@ -186,12 +187,23 @@ void VideoTrackRecorder::VpxEncoder::StartFrameEncode(
|
| }
|
|
|
| void VideoTrackRecorder::VpxEncoder::EncodeOnEncodingThread(
|
| - const scoped_refptr<VideoFrame>& frame,
|
| + const scoped_refptr<VideoFrame>& video_frame,
|
| base::TimeTicks capture_timestamp) {
|
| TRACE_EVENT0("video",
|
| "VideoTrackRecorder::VpxEncoder::EncodeOnEncodingThread");
|
| DCHECK(encoding_thread_->task_runner()->BelongsToCurrentThread());
|
|
|
| + if (!(video_frame->format() == media::PIXEL_FORMAT_I420 ||
|
| + video_frame->format() == media::PIXEL_FORMAT_YV12 ||
|
| + video_frame->format() == media::PIXEL_FORMAT_YV12A)) {
|
| + NOTREACHED();
|
| + return;
|
| + }
|
| + scoped_refptr<media::VideoFrame> frame = video_frame;
|
| + // Drop alpha channel since we do not support it yet.
|
| + if (frame->format() == media::PIXEL_FORMAT_YV12A)
|
| + frame = media::WrapAsI420VideoFrame(video_frame);
|
| +
|
| const gfx::Size frame_size = frame->visible_rect().size();
|
| if (!IsInitialized() ||
|
| gfx::Size(codec_config_.g_w, codec_config_.g_h) != frame_size) {
|
|
|