Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(592)

Unified Diff: trunk/src/media/filters/skcanvas_video_renderer.cc

Issue 13972014: Revert 194465 "media: Add support for playback for VP8 Alpha vid..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « trunk/src/media/filters/pipeline_integration_test.cc ('k') | trunk/src/media/filters/vpx_video_decoder.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: trunk/src/media/filters/skcanvas_video_renderer.cc
===================================================================
--- trunk/src/media/filters/skcanvas_video_renderer.cc (revision 194468)
+++ trunk/src/media/filters/skcanvas_video_renderer.cc (working copy)
@@ -21,17 +21,6 @@
format == media::VideoFrame::NATIVE_TEXTURE;
}
-static bool IsEitherYV12OrYV12AOrYV16(media::VideoFrame::Format format) {
- return IsEitherYV12OrYV16(format) ||
- format == media::VideoFrame::YV12A;
-}
-
-static bool IsEitherYV12OrYV12AOrYV16OrNative(
- media::VideoFrame::Format format) {
- return IsEitherYV12OrYV16OrNative(format) ||
- format == media::VideoFrame::YV12A;
-}
-
// CanFastPaint is a helper method to determine the conditions for fast
// painting. The conditions are:
// 1. No skew in canvas matrix.
@@ -81,8 +70,7 @@
const SkBitmap& bitmap = canvas->getDevice()->accessBitmap(true);
media::YUVType yuv_type = media::YV16;
int y_shift = 0;
- if (video_frame->format() == media::VideoFrame::YV12 ||
- video_frame->format() == media::VideoFrame::YV12A) {
+ if (video_frame->format() == media::VideoFrame::YV12) {
yuv_type = media::YV12;
y_shift = 1;
}
@@ -182,9 +170,9 @@
static void ConvertVideoFrameToBitmap(
const scoped_refptr<media::VideoFrame>& video_frame,
SkBitmap* bitmap) {
- DCHECK(IsEitherYV12OrYV12AOrYV16OrNative(video_frame->format()))
+ DCHECK(IsEitherYV12OrYV16OrNative(video_frame->format()))
<< video_frame->format();
- if (IsEitherYV12OrYV12AOrYV16(video_frame->format())) {
+ if (IsEitherYV12OrYV16(video_frame->format())) {
DCHECK_EQ(video_frame->stride(media::VideoFrame::kUPlane),
video_frame->stride(media::VideoFrame::kVPlane));
}
@@ -201,75 +189,45 @@
}
bitmap->lockPixels();
+ if (IsEitherYV12OrYV16(video_frame->format())) {
+ media::YUVType yuv_type = media::YV16;
+ int y_shift = 0;
+ if (video_frame->format() == media::VideoFrame::YV12) {
+ yuv_type = media::YV12;
+ y_shift = 1;
+ }
- size_t y_offset = 0;
- size_t uv_offset = 0;
- if (IsEitherYV12OrYV12AOrYV16(video_frame->format())) {
- int y_shift = (video_frame->format() == media::VideoFrame::YV16) ? 0 : 1;
// Use the "left" and "top" of the destination rect to locate the offset
// in Y, U and V planes.
- y_offset = (video_frame->stride(media::VideoFrame::kYPlane) *
- video_frame->visible_rect().y()) +
- video_frame->visible_rect().x();
+ size_t y_offset = (video_frame->stride(media::VideoFrame::kYPlane) *
+ video_frame->visible_rect().y()) +
+ video_frame->visible_rect().x();
+
// For format YV12, there is one U, V value per 2x2 block.
// For format YV16, there is one U, V value per 2x1 block.
- uv_offset = (video_frame->stride(media::VideoFrame::kUPlane) *
- (video_frame->visible_rect().y() >> y_shift)) +
- (video_frame->visible_rect().x() >> 1);
- }
- switch (video_frame->format()) {
- case media::VideoFrame::YV12:
- media::ConvertYUVToRGB32(
- video_frame->data(media::VideoFrame::kYPlane) + y_offset,
- video_frame->data(media::VideoFrame::kUPlane) + uv_offset,
- video_frame->data(media::VideoFrame::kVPlane) + uv_offset,
- static_cast<uint8*>(bitmap->getPixels()),
- video_frame->visible_rect().width(),
- video_frame->visible_rect().height(),
- video_frame->stride(media::VideoFrame::kYPlane),
- video_frame->stride(media::VideoFrame::kUPlane),
- bitmap->rowBytes(),
- media::YV12);
- break;
+ size_t uv_offset = (video_frame->stride(media::VideoFrame::kUPlane) *
+ (video_frame->visible_rect().y() >> y_shift)) +
+ (video_frame->visible_rect().x() >> 1);
+ uint8* frame_clip_y =
+ video_frame->data(media::VideoFrame::kYPlane) + y_offset;
+ uint8* frame_clip_u =
+ video_frame->data(media::VideoFrame::kUPlane) + uv_offset;
+ uint8* frame_clip_v =
+ video_frame->data(media::VideoFrame::kVPlane) + uv_offset;
- case media::VideoFrame::YV16:
- media::ConvertYUVToRGB32(
- video_frame->data(media::VideoFrame::kYPlane) + y_offset,
- video_frame->data(media::VideoFrame::kUPlane) + uv_offset,
- video_frame->data(media::VideoFrame::kVPlane) + uv_offset,
- static_cast<uint8*>(bitmap->getPixels()),
- video_frame->visible_rect().width(),
- video_frame->visible_rect().height(),
- video_frame->stride(media::VideoFrame::kYPlane),
- video_frame->stride(media::VideoFrame::kUPlane),
- bitmap->rowBytes(),
- media::YV16);
- break;
-
- case media::VideoFrame::YV12A:
- media::ConvertYUVAToARGB(
- video_frame->data(media::VideoFrame::kYPlane) + y_offset,
- video_frame->data(media::VideoFrame::kUPlane) + uv_offset,
- video_frame->data(media::VideoFrame::kVPlane) + uv_offset,
- video_frame->data(media::VideoFrame::kAPlane),
- static_cast<uint8*>(bitmap->getPixels()),
- video_frame->visible_rect().width(),
- video_frame->visible_rect().height(),
- video_frame->stride(media::VideoFrame::kYPlane),
- video_frame->stride(media::VideoFrame::kUPlane),
- video_frame->stride(media::VideoFrame::kAPlane),
- bitmap->rowBytes(),
- media::YV12);
- break;
-
- case media::VideoFrame::NATIVE_TEXTURE:
- DCHECK_EQ(video_frame->format(), media::VideoFrame::NATIVE_TEXTURE);
- video_frame->ReadPixelsFromNativeTexture(*bitmap);
- break;
-
- default:
- NOTREACHED();
- break;
+ media::ConvertYUVToRGB32(frame_clip_y,
+ frame_clip_u,
+ frame_clip_v,
+ static_cast<uint8*>(bitmap->getPixels()),
+ video_frame->visible_rect().width(),
+ video_frame->visible_rect().height(),
+ video_frame->stride(media::VideoFrame::kYPlane),
+ video_frame->stride(media::VideoFrame::kUPlane),
+ bitmap->rowBytes(),
+ yuv_type);
+ } else {
+ DCHECK_EQ(video_frame->format(), media::VideoFrame::NATIVE_TEXTURE);
+ video_frame->ReadPixelsFromNativeTexture(*bitmap);
}
bitmap->notifyPixelsChanged();
bitmap->unlockPixels();
@@ -297,8 +255,7 @@
// Paint black rectangle if there isn't a frame available or the
// frame has an unexpected format.
- if (!video_frame ||
- !IsEitherYV12OrYV12AOrYV16OrNative(video_frame->format())) {
+ if (!video_frame || !IsEitherYV12OrYV16OrNative(video_frame->format())) {
canvas->drawRect(dest, paint);
return;
}
« no previous file with comments | « trunk/src/media/filters/pipeline_integration_test.cc ('k') | trunk/src/media/filters/vpx_video_decoder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698