| Index: content/renderer/media/webrtc/video_destination_handler.cc
|
| diff --git a/content/renderer/media/webrtc/video_destination_handler.cc b/content/renderer/media/webrtc/video_destination_handler.cc
|
| index 0e3734665f816f5ce40239f41a0cf78a92dfe8c8..6e254699f83cd00831445b9a11514302ce97a584 100644
|
| --- a/content/renderer/media/webrtc/video_destination_handler.cc
|
| +++ b/content/renderer/media/webrtc/video_destination_handler.cc
|
| @@ -73,7 +73,7 @@ void PpFrameWriter::FrameWriterDelegate::DeliverFrameOnIO(
|
| new_frame_callback_.Run(frame, format, base::TimeTicks());
|
| }
|
|
|
| -PpFrameWriter::PpFrameWriter() : endian_(UNKNOWN) {
|
| +PpFrameWriter::PpFrameWriter() {
|
| DVLOG(3) << "PpFrameWriter ctor";
|
| }
|
|
|
| @@ -157,46 +157,16 @@ void PpFrameWriter::PutFrame(PPB_ImageData_Impl* image_data,
|
| MediaStreamVideoSource::kUnknownFrameRate,
|
| media::PIXEL_FORMAT_YV12);
|
|
|
| - // TODO(magjed): Remove this and always use libyuv::ARGBToI420 when
|
| - // crbug/426020 is fixed.
|
| - // Due to a change in endianness, we try to determine it from the data.
|
| - // The alpha channel is always 255. It is unlikely for other color channels to
|
| - // be 255, so we will most likely break on the first few pixels in the first
|
| - // frame.
|
| - const uint8* row_ptr = src_data;
|
| - // Note that we only do this if endian_ is still UNKNOWN.
|
| - for (int y = 0; y < height && endian_ == UNKNOWN; ++y) {
|
| - for (int x = 0; x < width; ++x) {
|
| - if (row_ptr[x * 4 + 0] != 255) { // First byte is not Alpha => XXXA.
|
| - endian_ = XXXA;
|
| - break;
|
| - }
|
| - if (row_ptr[x * 4 + 3] != 255) { // Fourth byte is not Alpha => AXXX.
|
| - endian_ = AXXX;
|
| - break;
|
| - }
|
| - }
|
| - row_ptr += src_stride;
|
| - }
|
| - if (endian_ == UNKNOWN) {
|
| - LOG(WARNING) << "PpFrameWriter::FrameWriterDelegate::DeliverFrameOnIO - "
|
| - << "Could not determine endianness.";
|
| - }
|
| - // libyuv specifies fourcc/channel ordering the same as webrtc. That is why
|
| - // the naming is reversed compared to PixelEndian and PP_ImageDataFormat which
|
| - // describes the memory layout from the lowest address to the highest.
|
| - auto xxxxToI420 =
|
| - (endian_ == AXXX) ? &libyuv::BGRAToI420 : &libyuv::ARGBToI420;
|
| - xxxxToI420(src_data,
|
| - src_stride,
|
| - new_frame->data(media::VideoFrame::kYPlane),
|
| - new_frame->stride(media::VideoFrame::kYPlane),
|
| - new_frame->data(media::VideoFrame::kUPlane),
|
| - new_frame->stride(media::VideoFrame::kUPlane),
|
| - new_frame->data(media::VideoFrame::kVPlane),
|
| - new_frame->stride(media::VideoFrame::kVPlane),
|
| - width,
|
| - height);
|
| + libyuv::ARGBToI420(src_data,
|
| + src_stride,
|
| + new_frame->data(media::VideoFrame::kYPlane),
|
| + new_frame->stride(media::VideoFrame::kYPlane),
|
| + new_frame->data(media::VideoFrame::kUPlane),
|
| + new_frame->stride(media::VideoFrame::kUPlane),
|
| + new_frame->data(media::VideoFrame::kVPlane),
|
| + new_frame->stride(media::VideoFrame::kVPlane),
|
| + width,
|
| + height);
|
|
|
| delegate_->DeliverFrame(new_frame, format);
|
| }
|
|
|