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

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

Issue 1134113002: content/common: Remove use of MessageLoopProxy and deprecated MessageLoop APIs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Android build fix. Created 5 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: content/common/gpu/media/v4l2_slice_video_decode_accelerator.cc
diff --git a/content/common/gpu/media/v4l2_slice_video_decode_accelerator.cc b/content/common/gpu/media/v4l2_slice_video_decode_accelerator.cc
index 342be1a76bce961b37323e5c2b0ecc0fb4e6b283..e9b8d097007aee3760c472e80ededaa01b230570 100644
--- a/content/common/gpu/media/v4l2_slice_video_decode_accelerator.cc
+++ b/content/common/gpu/media/v4l2_slice_video_decode_accelerator.cc
@@ -14,7 +14,6 @@
#include "base/callback.h"
#include "base/callback_helpers.h"
#include "base/command_line.h"
-#include "base/message_loop/message_loop_proxy.h"
#include "base/numerics/safe_conversions.h"
#include "base/strings/stringprintf.h"
#include "content/common/gpu/media/v4l2_slice_video_decode_accelerator.h"
@@ -162,13 +161,13 @@ V4L2SliceVideoDecodeAccelerator::OutputRecord::OutputRecord()
struct V4L2SliceVideoDecodeAccelerator::BitstreamBufferRef {
BitstreamBufferRef(
base::WeakPtr<VideoDecodeAccelerator::Client>& client,
- const scoped_refptr<base::MessageLoopProxy>& client_message_loop_proxy,
+ const scoped_refptr<base::SingleThreadTaskRunner>& client_task_runner,
base::SharedMemory* shm,
size_t size,
int32 input_id);
~BitstreamBufferRef();
const base::WeakPtr<VideoDecodeAccelerator::Client> client;
- const scoped_refptr<base::MessageLoopProxy> client_message_loop_proxy;
+ const scoped_refptr<base::SingleThreadTaskRunner> client_task_runner;
const scoped_ptr<base::SharedMemory> shm;
const size_t size;
off_t bytes_used;
@@ -177,12 +176,12 @@ struct V4L2SliceVideoDecodeAccelerator::BitstreamBufferRef {
V4L2SliceVideoDecodeAccelerator::BitstreamBufferRef::BitstreamBufferRef(
base::WeakPtr<VideoDecodeAccelerator::Client>& client,
- const scoped_refptr<base::MessageLoopProxy>& client_message_loop_proxy,
+ const scoped_refptr<base::SingleThreadTaskRunner>& client_task_runner,
base::SharedMemory* shm,
size_t size,
int32 input_id)
: client(client),
- client_message_loop_proxy(client_message_loop_proxy),
+ client_task_runner(client_task_runner),
shm(shm),
size(size),
bytes_used(0),
@@ -192,7 +191,7 @@ V4L2SliceVideoDecodeAccelerator::BitstreamBufferRef::BitstreamBufferRef(
V4L2SliceVideoDecodeAccelerator::BitstreamBufferRef::~BitstreamBufferRef() {
if (input_id >= 0) {
DVLOGF(5) << "returning input_id: " << input_id;
- client_message_loop_proxy->PostTask(
+ client_task_runner->PostTask(
FROM_HERE,
base::Bind(&VideoDecodeAccelerator::Client::NotifyEndOfBitstreamBuffer,
client, input_id));
@@ -380,11 +379,11 @@ V4L2SliceVideoDecodeAccelerator::V4L2SliceVideoDecodeAccelerator(
EGLContext egl_context,
const base::WeakPtr<Client>& io_client,
const base::Callback<bool(void)>& make_context_current,
- const scoped_refptr<base::MessageLoopProxy>& io_message_loop_proxy)
+ const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner)
: input_planes_count_(0),
output_planes_count_(0),
- child_message_loop_proxy_(base::MessageLoopProxy::current()),
- io_message_loop_proxy_(io_message_loop_proxy),
+ child_task_runner_(base::ThreadTaskRunnerHandle::Get()),
+ io_task_runner_(io_task_runner),
io_client_(io_client),
device_(device),
decoder_thread_("V4L2SliceVideoDecodeAcceleratorThread"),
@@ -411,7 +410,7 @@ V4L2SliceVideoDecodeAccelerator::V4L2SliceVideoDecodeAccelerator(
V4L2SliceVideoDecodeAccelerator::~V4L2SliceVideoDecodeAccelerator() {
DVLOGF(2);
- DCHECK(child_message_loop_proxy_->BelongsToCurrentThread());
+ DCHECK(child_task_runner_->BelongsToCurrentThread());
DCHECK(!decoder_thread_.IsRunning());
DCHECK(!device_poll_thread_.IsRunning());
@@ -420,8 +419,8 @@ V4L2SliceVideoDecodeAccelerator::~V4L2SliceVideoDecodeAccelerator() {
}
void V4L2SliceVideoDecodeAccelerator::NotifyError(Error error) {
- if (!child_message_loop_proxy_->BelongsToCurrentThread()) {
- child_message_loop_proxy_->PostTask(
+ if (!child_task_runner_->BelongsToCurrentThread()) {
+ child_task_runner_->PostTask(
FROM_HERE, base::Bind(&V4L2SliceVideoDecodeAccelerator::NotifyError,
weak_this_, error));
return;
@@ -437,7 +436,7 @@ bool V4L2SliceVideoDecodeAccelerator::Initialize(
media::VideoCodecProfile profile,
VideoDecodeAccelerator::Client* client) {
DVLOGF(3) << "profile: " << profile;
- DCHECK(child_message_loop_proxy_->BelongsToCurrentThread());
+ DCHECK(child_task_runner_->BelongsToCurrentThread());
DCHECK_EQ(state_, kUninitialized);
client_ptr_factory_.reset(
@@ -499,7 +498,7 @@ bool V4L2SliceVideoDecodeAccelerator::Initialize(
DLOG(ERROR) << "Initialize(): device thread failed to start";
return false;
}
- decoder_thread_proxy_ = decoder_thread_.message_loop_proxy();
+ decoder_thread_proxy_ = decoder_thread_.task_runner();
no sievers 2015/05/12 18:11:30 nit: consider renaming |decoder_thread_proxy_|
Sami 2015/05/13 18:17:52 Done.
state_ = kInitialized;
@@ -527,7 +526,7 @@ void V4L2SliceVideoDecodeAccelerator::InitializeTask() {
void V4L2SliceVideoDecodeAccelerator::Destroy() {
DVLOGF(3);
- DCHECK(child_message_loop_proxy_->BelongsToCurrentThread());
+ DCHECK(child_task_runner_->BelongsToCurrentThread());
if (decoder_thread_.IsRunning()) {
decoder_thread_proxy_->PostTask(
@@ -724,7 +723,7 @@ bool V4L2SliceVideoDecodeAccelerator::CreateOutputBuffers() {
<< ", visible size=" << visible_size_.ToString()
<< ", coded size=" << coded_size_.ToString();
- child_message_loop_proxy_->PostTask(
+ child_task_runner_->PostTask(
FROM_HERE,
base::Bind(&VideoDecodeAccelerator::Client::ProvidePictureBuffers,
client_, output_buffer_map_.size(), coded_size_,
@@ -765,7 +764,7 @@ void V4L2SliceVideoDecodeAccelerator::DismissPictures(
std::vector<int32> picture_buffer_ids,
base::WaitableEvent* done) {
DVLOGF(3);
- DCHECK(child_message_loop_proxy_->BelongsToCurrentThread());
+ DCHECK(child_task_runner_->BelongsToCurrentThread());
for (auto picture_buffer_id : picture_buffer_ids) {
DVLOGF(1) << "dismissing PictureBuffer id=" << picture_buffer_id;
@@ -1159,7 +1158,7 @@ void V4L2SliceVideoDecodeAccelerator::Decode(
const media::BitstreamBuffer& bitstream_buffer) {
DVLOGF(3) << "input_id=" << bitstream_buffer.id()
<< ", size=" << bitstream_buffer.size();
- DCHECK(io_message_loop_proxy_->BelongsToCurrentThread());
+ DCHECK(io_task_runner_->BelongsToCurrentThread());
decoder_thread_proxy_->PostTask(
FROM_HERE, base::Bind(&V4L2SliceVideoDecodeAccelerator::DecodeTask,
@@ -1173,7 +1172,7 @@ void V4L2SliceVideoDecodeAccelerator::DecodeTask(
DCHECK(decoder_thread_proxy_->BelongsToCurrentThread());
scoped_ptr<BitstreamBufferRef> bitstream_record(new BitstreamBufferRef(
- io_client_, io_message_loop_proxy_,
+ io_client_, io_task_runner_,
new base::SharedMemory(bitstream_buffer.handle(), true),
bitstream_buffer.size(), bitstream_buffer.id()));
if (!bitstream_record->shm->Map(bitstream_buffer.size())) {
@@ -1340,7 +1339,7 @@ bool V4L2SliceVideoDecodeAccelerator::DestroyOutputs(bool dismiss) {
}
if (output_record.egl_image != EGL_NO_IMAGE_KHR) {
- child_message_loop_proxy_->PostTask(
+ child_task_runner_->PostTask(
FROM_HERE,
base::Bind(base::IgnoreResult(&V4L2Device::DestroyEGLImage), device_,
egl_display_, output_record.egl_image));
@@ -1352,7 +1351,7 @@ bool V4L2SliceVideoDecodeAccelerator::DestroyOutputs(bool dismiss) {
if (dismiss) {
DVLOGF(2) << "Scheduling picture dismissal";
base::WaitableEvent done(false, false);
- child_message_loop_proxy_->PostTask(
+ child_task_runner_->PostTask(
FROM_HERE, base::Bind(&V4L2SliceVideoDecodeAccelerator::DismissPictures,
weak_this_, picture_buffers_to_dismiss, &done));
done.Wait();
@@ -1407,7 +1406,7 @@ bool V4L2SliceVideoDecodeAccelerator::DestroyOutputBuffers() {
void V4L2SliceVideoDecodeAccelerator::AssignPictureBuffers(
const std::vector<media::PictureBuffer>& buffers) {
DVLOGF(3);
- DCHECK(child_message_loop_proxy_->BelongsToCurrentThread());
+ DCHECK(child_task_runner_->BelongsToCurrentThread());
if (buffers.size() != output_buffer_map_.size()) {
DLOG(ERROR) << "Failed to provide requested picture buffers. "
@@ -1466,7 +1465,7 @@ void V4L2SliceVideoDecodeAccelerator::AssignPictureBuffers(
void V4L2SliceVideoDecodeAccelerator::ReusePictureBuffer(
int32 picture_buffer_id) {
- DCHECK(child_message_loop_proxy_->BelongsToCurrentThread());
+ DCHECK(child_task_runner_->BelongsToCurrentThread());
DVLOGF(4) << "picture_buffer_id=" << picture_buffer_id;
if (!make_context_current_.Run()) {
@@ -1529,7 +1528,7 @@ void V4L2SliceVideoDecodeAccelerator::ReusePictureBufferTask(
void V4L2SliceVideoDecodeAccelerator::Flush() {
DVLOGF(3);
- DCHECK(child_message_loop_proxy_->BelongsToCurrentThread());
+ DCHECK(child_task_runner_->BelongsToCurrentThread());
decoder_thread_proxy_->PostTask(
FROM_HERE, base::Bind(&V4L2SliceVideoDecodeAccelerator::FlushTask,
@@ -1545,7 +1544,7 @@ void V4L2SliceVideoDecodeAccelerator::FlushTask() {
// which - when reached - will trigger flush sequence.
decoder_input_queue_.push(
linked_ptr<BitstreamBufferRef>(new BitstreamBufferRef(
- io_client_, io_message_loop_proxy_, nullptr, 0, kFlushBufferId)));
+ io_client_, io_task_runner_, nullptr, 0, kFlushBufferId)));
return;
}
@@ -1604,8 +1603,8 @@ void V4L2SliceVideoDecodeAccelerator::FinishFlushIfNeeded() {
SendPictureReady();
- child_message_loop_proxy_->PostTask(
- FROM_HERE, base::Bind(&Client::NotifyFlushDone, client_));
+ child_task_runner_->PostTask(FROM_HERE,
+ base::Bind(&Client::NotifyFlushDone, client_));
decoder_flushing_ = false;
@@ -1616,7 +1615,7 @@ void V4L2SliceVideoDecodeAccelerator::FinishFlushIfNeeded() {
void V4L2SliceVideoDecodeAccelerator::Reset() {
DVLOGF(3);
- DCHECK(child_message_loop_proxy_->BelongsToCurrentThread());
+ DCHECK(child_task_runner_->BelongsToCurrentThread());
decoder_thread_proxy_->PostTask(
FROM_HERE, base::Bind(&V4L2SliceVideoDecodeAccelerator::ResetTask,
@@ -1680,8 +1679,8 @@ void V4L2SliceVideoDecodeAccelerator::FinishResetIfNeeded() {
decoder_resetting_ = false;
- child_message_loop_proxy_->PostTask(
- FROM_HERE, base::Bind(&Client::NotifyResetDone, client_));
+ child_task_runner_->PostTask(FROM_HERE,
+ base::Bind(&Client::NotifyResetDone, client_));
DVLOGF(3) << "Reset finished";
@@ -2455,7 +2454,7 @@ void V4L2SliceVideoDecodeAccelerator::SendPictureReady() {
<< picture.picture_buffer_id();
// This picture is cleared. Post it to IO thread to reduce latency. This
// should be the case after all pictures are cleared at the beginning.
- io_message_loop_proxy_->PostTask(
+ io_task_runner_->PostTask(
FROM_HERE, base::Bind(&Client::PictureReady, io_client_, picture));
pending_picture_ready_.pop();
} else if (!cleared || resetting_or_flushing) {
@@ -2469,7 +2468,7 @@ void V4L2SliceVideoDecodeAccelerator::SendPictureReady() {
// has to be cleared in the child thread. A picture only needs to be
// cleared once. If the decoder is resetting or flushing, send all
// pictures to ensure PictureReady arrive before reset or flush done.
- child_message_loop_proxy_->PostTaskAndReply(
+ child_task_runner_->PostTaskAndReply(
FROM_HERE, base::Bind(&Client::PictureReady, client_, picture),
// Unretained is safe. If Client::PictureReady gets to run, |this| is
// alive. Destroy() will wait the decode thread to finish.

Powered by Google App Engine
This is Rietveld 408576698