| Index: chrome/gpu/arc_gpu_video_decode_accelerator.cc
|
| diff --git a/chrome/gpu/arc_gpu_video_decode_accelerator.cc b/chrome/gpu/arc_gpu_video_decode_accelerator.cc
|
| index b4b46b0da454249a619c6f9a6357041eeead1c85..c16068f7a4d31213d121188d3760ea8266d978a8 100644
|
| --- a/chrome/gpu/arc_gpu_video_decode_accelerator.cc
|
| +++ b/chrome/gpu/arc_gpu_video_decode_accelerator.cc
|
| @@ -21,17 +21,6 @@ ArcGpuVideoDecodeAccelerator::InputRecord::InputRecord(
|
| buffer_index(buffer_index),
|
| timestamp(timestamp) {}
|
|
|
| -ArcGpuVideoDecodeAccelerator::InputBufferInfo::InputBufferInfo()
|
| - : offset(0), length(0) {}
|
| -
|
| -ArcGpuVideoDecodeAccelerator::InputBufferInfo::InputBufferInfo(
|
| - InputBufferInfo&& other)
|
| - : handle(std::move(other.handle)),
|
| - offset(other.offset),
|
| - length(other.length) {}
|
| -
|
| -ArcGpuVideoDecodeAccelerator::InputBufferInfo::~InputBufferInfo() {}
|
| -
|
| ArcGpuVideoDecodeAccelerator::ArcGpuVideoDecodeAccelerator()
|
| : pending_eos_output_buffer_(false),
|
| arc_client_(nullptr),
|
| @@ -156,7 +145,8 @@ void ArcGpuVideoDecodeAccelerator::BindSharedMemory(PortType port,
|
|
|
| void ArcGpuVideoDecodeAccelerator::BindDmabuf(PortType port,
|
| uint32_t index,
|
| - base::ScopedFD dmabuf_fd) {
|
| + base::ScopedFD dmabuf_fd,
|
| + int32_t stride) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
|
|
| if (!vda_) {
|
| @@ -173,7 +163,9 @@ void ArcGpuVideoDecodeAccelerator::BindDmabuf(PortType port,
|
| arc_client_->OnError(INVALID_ARGUMENT);
|
| return;
|
| }
|
| - buffers_pending_import_[index] = std::move(dmabuf_fd);
|
| + OutputBufferInfo& info = buffers_pending_import_[index];
|
| + info.handle = std::move(dmabuf_fd);
|
| + info.stride = stride;
|
| }
|
|
|
| void ArcGpuVideoDecodeAccelerator::UseBuffer(PortType port,
|
| @@ -361,13 +353,16 @@ void ArcGpuVideoDecodeAccelerator::SendEosIfNeededOrReusePicture(
|
| arc_client_->OnBufferDone(PORT_OUTPUT, index, metadata);
|
| pending_eos_output_buffer_ = false;
|
| } else {
|
| - if (buffers_pending_import_[index].is_valid()) {
|
| - std::vector<gfx::GpuMemoryBufferHandle> buffers;
|
| - buffers.push_back(gfx::GpuMemoryBufferHandle());
|
| + OutputBufferInfo& info = buffers_pending_import_[index];
|
| + if (info.handle.is_valid()) {
|
| + gfx::GpuMemoryBufferHandle handle;
|
| #if defined(USE_OZONE)
|
| - buffers.back().native_pixmap_handle.fd =
|
| - base::FileDescriptor(buffers_pending_import_[index].release(), true);
|
| + handle.native_pixmap_handle.fd =
|
| + base::FileDescriptor(info.handle.release(), true);
|
| + handle.native_pixmap_handle.stride = info.stride;
|
| #endif
|
| + std::vector<gfx::GpuMemoryBufferHandle> buffers;
|
| + buffers.push_back(handle);
|
| vda_->ImportBufferForPicture(index, buffers);
|
| } else {
|
| vda_->ReusePictureBuffer(index);
|
|
|