| Index: content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc
|
| diff --git a/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc b/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc
|
| index 70584c137f4d8567d31c94a455163d89b75c20ab..398c70197ebd067f76c824a81a65a67d5a1c8aae 100644
|
| --- a/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc
|
| +++ b/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc
|
| @@ -122,8 +122,7 @@ void VideoCaptureGpuJpegDecoder::DecodeCapturedData(
|
| // Mask against 30 bits, to avoid (undefined) wraparound on signed integer.
|
| next_bitstream_buffer_id_ = (next_bitstream_buffer_id_ + 1) & 0x3FFFFFFF;
|
|
|
| - // The APIs of |decoder_| and |decode_done_cb_| require us to wrap the
|
| - // |out_buffer| in a VideoFrame.
|
| + // The API of |decoder_| requires us to wrap the |out_buffer| in a VideoFrame.
|
| const gfx::Size dimensions = frame_format.frame_size;
|
| std::unique_ptr<media::VideoCaptureBufferHandle> out_buffer_access =
|
| out_buffer.handle_provider->GetHandleForInProcessAccess();
|
| @@ -158,10 +157,22 @@ void VideoCaptureGpuJpegDecoder::DecodeCapturedData(
|
| out_frame->metadata()->SetTimeTicks(media::VideoFrameMetadata::REFERENCE_TIME,
|
| reference_time);
|
|
|
| + media::mojom::VideoFrameInfoPtr out_frame_info =
|
| + media::mojom::VideoFrameInfo::New();
|
| + out_frame_info->timestamp = timestamp;
|
| + out_frame_info->pixel_format = media::PIXEL_FORMAT_I420;
|
| + out_frame_info->storage_type = media::PIXEL_STORAGE_CPU;
|
| + out_frame_info->coded_size = dimensions;
|
| + out_frame_info->visible_rect = gfx::Rect(dimensions);
|
| + auto metadata_values = out_frame->metadata()->CopyInternalValues();
|
| + out_frame_info->metadata->MergeDictionary(metadata_values.get());
|
| +
|
| {
|
| base::AutoLock lock(lock_);
|
| - decode_done_closure_ =
|
| - base::Bind(decode_done_cb_, base::Passed(&out_buffer), out_frame);
|
| + decode_done_closure_ = base::Bind(
|
| + decode_done_cb_, out_buffer.id(), out_buffer.frame_feedback_id(),
|
| + base::Passed(&out_buffer.buffer_read_write_permission),
|
| + base::Passed(&out_frame_info));
|
| }
|
| decoder_->Decode(in_buffer, std::move(out_frame));
|
| }
|
|
|