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 f66343f31ab0d62d39d40d1d4d621a5296e41a0f..9e3d92636424d7399dba348cb986570e8685b44d 100644 |
--- a/content/renderer/media/video_track_recorder.cc |
+++ b/content/renderer/media/video_track_recorder.cc |
@@ -205,12 +205,14 @@ void VideoTrackRecorder::Encoder::StartFrameEncode( |
if (!(video_frame->format() == media::PIXEL_FORMAT_I420 || |
video_frame->format() == media::PIXEL_FORMAT_YV12 || |
video_frame->format() == media::PIXEL_FORMAT_ARGB || |
- video_frame->format() == media::PIXEL_FORMAT_YV12A)) { |
+ video_frame->format() == media::PIXEL_FORMAT_YV12A || |
+ video_frame->format() == media::PIXEL_FORMAT_Y16)) { |
NOTREACHED() << media::VideoPixelFormatToString(video_frame->format()); |
return; |
} |
- if (video_frame->HasTextures()) { |
+ if (video_frame->HasTextures() || |
+ video_frame->format() == media::PIXEL_FORMAT_Y16) { |
main_task_runner_->PostTask( |
FROM_HERE, base::Bind(&Encoder::RetrieveFrameOnMainThread, this, |
video_frame, capture_timestamp)); |
@@ -245,8 +247,10 @@ void VideoTrackRecorder::Encoder::RetrieveFrameOnMainThread( |
} else { |
// Accelerated decoders produce ARGB/ABGR texture-backed frames (see |
// https://crbug.com/585242), fetch them using a SkCanvasVideoRenderer. |
- DCHECK(video_frame->HasTextures()); |
- DCHECK_EQ(media::PIXEL_FORMAT_ARGB, video_frame->format()); |
+ // Y16 CPU and GPU frames are using the same path for copying to RGBA. |
+ DCHECK((video_frame->HasTextures() && |
+ video_frame->format() == media::PIXEL_FORMAT_ARGB) || |
+ video_frame->format() == media::PIXEL_FORMAT_Y16); |
frame = media::VideoFrame::CreateFrame( |
media::PIXEL_FORMAT_I420, video_frame->coded_size(), |