diff options
author | dmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-23 14:27:42 +0000 |
---|---|---|
committer | dmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-23 14:27:42 +0000 |
commit | aed965375dec978e7feb8722b1b94250a2a6e039 (patch) | |
tree | 9f8ccdf7a3902fa1db54e0c036f7cb9ca96775fb /ppapi/thunk/ppb_video_decoder_api.h | |
parent | 94bd0a2e94c1f07ccc0236a95e57a2e16b94038a (diff) | |
download | chromium_src-aed965375dec978e7feb8722b1b94250a2a6e039.zip chromium_src-aed965375dec978e7feb8722b1b94250a2a6e039.tar.gz chromium_src-aed965375dec978e7feb8722b1b94250a2a6e039.tar.bz2 |
PPAPI: Make blocking completion callbacks work.
This also makes scoped_refptr<TrackedCallback> the "new" way to pass completion callbacks in an API. This allows the Enter object to handle checking for blocking callbacks on the main thread to report error, and blocking if on the background thread. This way, interfaces don't have to write any special cases for blocking callbacks.
When built with enable_pepper_threading=1 locally, URLLoader tests all pass for blocking completion callbacks. I haven't updated all tests yet.
BUG=92909
TEST=
Review URL: https://chromiumcodereview.appspot.com/10081020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143806 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/thunk/ppb_video_decoder_api.h')
-rw-r--r-- | ppapi/thunk/ppb_video_decoder_api.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/ppapi/thunk/ppb_video_decoder_api.h b/ppapi/thunk/ppb_video_decoder_api.h index e17d22b..e26c887 100644 --- a/ppapi/thunk/ppb_video_decoder_api.h +++ b/ppapi/thunk/ppb_video_decoder_api.h @@ -1,13 +1,17 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef PPAPI_THUNK_VIDEO_DECODER_API_H_ #define PPAPI_THUNK_VIDEO_DECODER_API_H_ +#include "base/memory/ref_counted.h" #include "ppapi/c/dev/ppb_video_decoder_dev.h" namespace ppapi { + +class TrackedCallback; + namespace thunk { class PPB_VideoDecoder_API { @@ -15,12 +19,12 @@ class PPB_VideoDecoder_API { virtual ~PPB_VideoDecoder_API() {} virtual int32_t Decode(const PP_VideoBitstreamBuffer_Dev* bitstream_buffer, - PP_CompletionCallback callback) = 0; + scoped_refptr<TrackedCallback> callback) = 0; virtual void AssignPictureBuffers(uint32_t no_of_buffers, const PP_PictureBuffer_Dev* buffers) = 0; virtual void ReusePictureBuffer(int32_t picture_buffer_id) = 0; - virtual int32_t Flush(PP_CompletionCallback callback) = 0; - virtual int32_t Reset(PP_CompletionCallback callback) = 0; + virtual int32_t Flush(scoped_refptr<TrackedCallback> callback) = 0; + virtual int32_t Reset(scoped_refptr<TrackedCallback> callback) = 0; virtual void Destroy() = 0; }; |