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

Unified Diff: chrome/gpu/arc_gpu_video_decode_accelerator.cc

Issue 1953683002: Add stride for imported Dmabuf in ArcVideoAccelerator. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address dcheng's review comments Created 4 years, 7 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
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..efbff5532fa96c858ca91320c2575f86d2876a9d 100644
--- a/chrome/gpu/arc_gpu_video_decode_accelerator.cc
+++ b/chrome/gpu/arc_gpu_video_decode_accelerator.cc
@@ -21,16 +21,19 @@ ArcGpuVideoDecodeAccelerator::InputRecord::InputRecord(
buffer_index(buffer_index),
timestamp(timestamp) {}
-ArcGpuVideoDecodeAccelerator::InputBufferInfo::InputBufferInfo()
- : offset(0), length(0) {}
+ArcGpuVideoDecodeAccelerator::InputBufferInfo::InputBufferInfo() = default;
ArcGpuVideoDecodeAccelerator::InputBufferInfo::InputBufferInfo(
- InputBufferInfo&& other)
- : handle(std::move(other.handle)),
- offset(other.offset),
- length(other.length) {}
+ InputBufferInfo&& other) = default;
-ArcGpuVideoDecodeAccelerator::InputBufferInfo::~InputBufferInfo() {}
+ArcGpuVideoDecodeAccelerator::InputBufferInfo::~InputBufferInfo() = default;
+
+ArcGpuVideoDecodeAccelerator::OutputBufferInfo::OutputBufferInfo() = default;
+
+ArcGpuVideoDecodeAccelerator::OutputBufferInfo::OutputBufferInfo(
+ OutputBufferInfo&& other) = default;
+
+ArcGpuVideoDecodeAccelerator::OutputBufferInfo::~OutputBufferInfo() = default;
ArcGpuVideoDecodeAccelerator::ArcGpuVideoDecodeAccelerator()
: pending_eos_output_buffer_(false),
@@ -156,7 +159,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 +177,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,14 +367,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
- vda_->ImportBufferForPicture(index, buffers);
+ vda_->ImportBufferForPicture(
+ index, std::vector<gfx::GpuMemoryBufferHandle>{handle});
} else {
vda_->ReusePictureBuffer(index);
}

Powered by Google App Engine
This is Rietveld 408576698