diff options
Diffstat (limited to 'chromium/media/filters/skcanvas_video_renderer.cc')
-rw-r--r-- | chromium/media/filters/skcanvas_video_renderer.cc | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/chromium/media/filters/skcanvas_video_renderer.cc b/chromium/media/filters/skcanvas_video_renderer.cc index f0bf13d4bb8..ec3e92fe754 100644 --- a/chromium/media/filters/skcanvas_video_renderer.cc +++ b/chromium/media/filters/skcanvas_video_renderer.cc @@ -13,7 +13,9 @@ namespace media { static bool IsEitherYV12OrYV16(media::VideoFrame::Format format) { - return format == media::VideoFrame::YV12 || format == media::VideoFrame::YV16; + return format == media::VideoFrame::YV12 || + format == media::VideoFrame::YV16 || + format == media::VideoFrame::YV12J; } static bool IsEitherYV12OrYV16OrNative(media::VideoFrame::Format format) { @@ -87,6 +89,11 @@ static void FastPaint( y_shift = 1; } + if (video_frame->format() == media::VideoFrame::YV12J) { + yuv_type = media::YV12; + y_shift = 1; + } + // Transform the destination rectangle to local coordinates. const SkMatrix& local_matrix = canvas->getTotalMatrix(); SkRect local_dest_rect; @@ -217,8 +224,10 @@ static void ConvertVideoFrameToBitmap( (video_frame->visible_rect().y() >> y_shift)) + (video_frame->visible_rect().x() >> 1); } + switch (video_frame->format()) { case media::VideoFrame::YV12: + case media::VideoFrame::YV12J: media::ConvertYUVToRGB32( video_frame->data(media::VideoFrame::kYPlane) + y_offset, video_frame->data(media::VideoFrame::kUPlane) + uv_offset, |