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

Unified Diff: content/common/gpu/media/android_video_decode_accelerator.cc

Issue 1541353002: Add offset support to BitstreamBuffer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address review comments and rebase Created 4 years, 9 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: content/common/gpu/media/android_video_decode_accelerator.cc
diff --git a/content/common/gpu/media/android_video_decode_accelerator.cc b/content/common/gpu/media/android_video_decode_accelerator.cc
index 1de68a2efbb7ef72e5393b32633b7f4820a1e2cb..dd3e75efa80fc1fd9154288928396002a7c70c86 100644
--- a/content/common/gpu/media/android_video_decode_accelerator.cc
+++ b/content/common/gpu/media/android_video_decode_accelerator.cc
@@ -19,6 +19,7 @@
#include "content/common/gpu/gpu_channel.h"
#include "content/common/gpu/media/android_copying_backing_strategy.h"
#include "content/common/gpu/media/android_deferred_rendering_backing_strategy.h"
+#include "content/common/gpu/media/shared_memory_region.h"
#include "content/public/common/content_switches.h"
#include "gpu/command_buffer/service/gles2_cmd_decoder.h"
#include "gpu/command_buffer/service/gpu_switches.h"
@@ -476,17 +477,16 @@ bool AndroidVideoDecodeAccelerator::QueueInput() {
return true;
}
- scoped_ptr<base::SharedMemory> shm;
+ scoped_ptr<SharedMemoryRegion> shm;
- if (pending_input_buf_index_ != -1) {
- // The buffer is already dequeued from MediaCodec, filled with data and
- // bitstream_buffer.handle() is closed.
- shm.reset(new base::SharedMemory());
- } else {
- shm.reset(new base::SharedMemory(bitstream_buffer.handle(), true));
+ if (pending_input_buf_index_ == -1) {
+ // When |pending_input_buf_index_| is not -1, the buffer is already dequeued
+ // from MediaCodec, filled with data and bitstream_buffer.handle() is
+ // closed.
+ shm.reset(new SharedMemoryRegion(bitstream_buffer, true));
- if (!shm->Map(bitstream_buffer.size())) {
- POST_ERROR(UNREADABLE_INPUT, "Failed to SharedMemory::Map()");
+ if (!shm->Map()) {
+ POST_ERROR(UNREADABLE_INPUT, "Failed to SharedMemoryRegion::Map()");
return false;
}
}
@@ -506,7 +506,8 @@ bool AndroidVideoDecodeAccelerator::QueueInput() {
// Notice that |memory| will be null if we repeatedly enqueue the same buffer,
// this happens after MEDIA_CODEC_NO_KEY.
- const uint8_t* memory = static_cast<const uint8_t*>(shm->memory());
+ const uint8_t* memory =
+ shm ? static_cast<const uint8_t*>(shm->memory()) : nullptr;
const std::string& key_id = bitstream_buffer.key_id();
const std::string& iv = bitstream_buffer.iv();
const std::vector<media::SubsampleEntry>& subsamples =

Powered by Google App Engine
This is Rietveld 408576698