Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
|
mcasas
2016/09/27 14:36:02
There's no need to specify the project
in the bug
magjed_chromium
2016/09/27 15:19:56
Done.
| |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/renderer_host/media/video_capture_device_client.h" | 5 #include "content/browser/renderer_host/media/video_capture_device_client.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| 11 #include "base/command_line.h" | 11 #include "base/command_line.h" |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 210 break; | 210 break; |
| 211 case media::PIXEL_FORMAT_MJPEG: | 211 case media::PIXEL_FORMAT_MJPEG: |
| 212 origin_colorspace = libyuv::FOURCC_MJPG; | 212 origin_colorspace = libyuv::FOURCC_MJPG; |
| 213 break; | 213 break; |
| 214 default: | 214 default: |
| 215 NOTREACHED(); | 215 NOTREACHED(); |
| 216 } | 216 } |
| 217 | 217 |
| 218 // The input |length| can be greater than the required buffer size because of | 218 // The input |length| can be greater than the required buffer size because of |
| 219 // paddings and/or alignments, but it cannot be smaller. | 219 // paddings and/or alignments, but it cannot be smaller. |
| 220 DCHECK_GE(static_cast<size_t>(length), frame_format.ImageAllocationSize()); | 220 if (static_cast<size_t>(length) < frame_format.ImageAllocationSize()) { |
|
mcasas
2016/09/27 14:36:01
IIUC, the DCHECK has never been hit before
except
magjed_chromium
2016/09/27 15:19:56
ManyCam doesn't work for the bug reporter in any b
mcasas
2016/09/28 16:39:22
I'm not sure this is the right thing to do.
1- si
magjed_chromium
2016/09/29 11:00:35
1. That's an unrelated change, but sure, I moved t
mcasas
2016/09/29 20:43:31
The crash is only present in Win, and Manycam is a
| |
| 221 DLOG(WARNING) << "Frame format: " | |
| 222 << media::VideoCaptureFormat::ToString(frame_format) | |
| 223 << " requires at least " << frame_format.ImageAllocationSize() | |
| 224 << " bytes, but only " << length << " bytes was given."; | |
|
mcasas
2016/09/27 14:36:01
Who is going to read this DLOG anyway? Code
in med
magjed_chromium
2016/09/27 15:19:56
I don't know if anyone will use it. We can remove
mcasas
2016/09/28 16:39:22
Yes, by all means, but probably you would revert
| |
| 225 return; | |
| 226 } | |
| 221 | 227 |
| 222 if (external_jpeg_decoder_) { | 228 if (external_jpeg_decoder_) { |
| 223 const VideoCaptureGpuJpegDecoder::STATUS status = | 229 const VideoCaptureGpuJpegDecoder::STATUS status = |
| 224 external_jpeg_decoder_->GetStatus(); | 230 external_jpeg_decoder_->GetStatus(); |
| 225 if (status == VideoCaptureGpuJpegDecoder::FAILED) { | 231 if (status == VideoCaptureGpuJpegDecoder::FAILED) { |
| 226 external_jpeg_decoder_.reset(); | 232 external_jpeg_decoder_.reset(); |
| 227 } else if (status == VideoCaptureGpuJpegDecoder::INIT_PASSED && | 233 } else if (status == VideoCaptureGpuJpegDecoder::INIT_PASSED && |
| 228 frame_format.pixel_format == media::PIXEL_FORMAT_MJPEG && | 234 frame_format.pixel_format == media::PIXEL_FORMAT_MJPEG && |
| 229 rotation == 0 && !flip) { | 235 rotation == 0 && !flip) { |
| 230 external_jpeg_decoder_->DecodeCapturedData(data, length, frame_format, | 236 external_jpeg_decoder_->DecodeCapturedData(data, length, frame_format, |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 406 reinterpret_cast<uint8_t*>(buffer->data(VideoFrame::kUPlane)); | 412 reinterpret_cast<uint8_t*>(buffer->data(VideoFrame::kUPlane)); |
| 407 *v_plane_data = | 413 *v_plane_data = |
| 408 reinterpret_cast<uint8_t*>(buffer->data(VideoFrame::kVPlane)); | 414 reinterpret_cast<uint8_t*>(buffer->data(VideoFrame::kVPlane)); |
| 409 return buffer; | 415 return buffer; |
| 410 } | 416 } |
| 411 NOTREACHED(); | 417 NOTREACHED(); |
| 412 return std::unique_ptr<Buffer>(); | 418 return std::unique_ptr<Buffer>(); |
| 413 } | 419 } |
| 414 | 420 |
| 415 } // namespace content | 421 } // namespace content |
| OLD | NEW |