Commit adb82130 authored by Miguel Casas's avatar Miguel Casas Committed by Commit Bot

media/gpu/vaapi: Remove SubmitVAEncMiscParamBuffer

This CL removes VaapiWrapper::SubmitVAEncMiscParamBuffer, pushing the
logic to its only client, VaVEA.

Bug: b/166646505
Change-Id: Ic671525e6936856ec370c3670f35665c4b185b8b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2414565Reviewed-by: default avatarHirokazu Honda <hiroh@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#810006}
parent 2c7f48b0
......@@ -535,9 +535,17 @@ void VaapiVideoEncodeAccelerator::SubmitVAEncMiscParamBuffer(
scoped_refptr<base::RefCountedBytes> buffer) {
DCHECK_CALLED_ON_VALID_SEQUENCE(encoder_sequence_checker_);
if (!vaapi_wrapper_->SubmitVAEncMiscParamBuffer(type, buffer->size(),
buffer->front())) {
NOTIFY_ERROR(kPlatformFailureError, "Failed submitting a parameter buffer");
const size_t temp_size = sizeof(VAEncMiscParameterBuffer) + buffer->size();
std::vector<uint8_t> temp(temp_size);
auto* const va_buffer =
reinterpret_cast<VAEncMiscParameterBuffer*>(temp.data());
va_buffer->type = type;
memcpy(va_buffer->data, buffer->front(), buffer->size());
if (!vaapi_wrapper_->SubmitBuffer(VAEncMiscParameterBufferType, temp_size,
temp.data())) {
NOTIFY_ERROR(kPlatformFailureError, "Failed submitting a buffer");
}
}
......
......@@ -1830,32 +1830,6 @@ bool VaapiWrapper::SubmitBuffers(
return true;
}
bool VaapiWrapper::SubmitVAEncMiscParamBuffer(
VAEncMiscParameterType misc_param_type,
size_t size,
const void* buffer) {
base::AutoLock auto_lock(*va_lock_);
VABufferID buffer_id;
VAStatus va_res = vaCreateBuffer(
va_display_, va_context_id_, VAEncMiscParameterBufferType,
sizeof(VAEncMiscParameterBuffer) + size, 1, NULL, &buffer_id);
VA_SUCCESS_OR_RETURN(va_res, VaapiFunctions::kVACreateBuffer, false);
ScopedVABufferMapping mapping(
va_lock_, va_display_, buffer_id,
base::BindOnce(base::IgnoreResult(&vaDestroyBuffer), va_display_));
if (!mapping.IsValid())
return false;
auto* params = reinterpret_cast<VAEncMiscParameterBuffer*>(mapping.data());
params->type = misc_param_type;
memcpy(params->data, buffer, size);
pending_va_buffers_.push_back(buffer_id);
return true;
}
void VaapiWrapper::DestroyPendingBuffers() {
TRACE_EVENT0("media,gpu", "VaapiWrapper::DestroyPendingBuffers");
base::AutoLock auto_lock(*va_lock_);
......
......@@ -326,16 +326,6 @@ class MEDIA_GPU_EXPORT VaapiWrapper
};
bool SubmitBuffers(const std::vector<VABufferDescriptor>& va_buffers);
// Submit a VAEncMiscParameterBuffer of given |misc_param_type|, copying its
// data from |buffer| of size |size|, into HW codec. The data in |buffer| is
// no longer needed and can be freed after this method returns.
// Data submitted via this method awaits in the HW codec until
// ExecuteAndDestroyPendingBuffers() is called to execute or
// DestroyPendingBuffers() is used to cancel a pending job.
bool SubmitVAEncMiscParamBuffer(VAEncMiscParameterType misc_param_type,
size_t size,
const void* buffer);
// Destroys all |pending_va_buffers_| sent via SubmitBuffer*(). Useful when a
// pending job is to be cancelled (on reset or error).
void DestroyPendingBuffers();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment