
CL generated by git grep -l NON_EXPORTED_BASE | xargs sed -i 's/NON_EXPORTED_BASE(\([^)]*\))/\1/g' git cl format I'm not changing compiler_specific.h itself in this cl, to keep the revert small if the subsequent removal of the actual macro should break something. Bug: 752837 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_site_isolation;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I53d6460e592b91a173f7aa55dfdb05631e51e5f7 Reviewed-on: https://chromium-review.googlesource.com/614703 Reviewed-by: Brett Wilson <brettw@chromium.org> Cr-Commit-Position: refs/heads/master@{#494486}
86 lines
2.9 KiB
C++
86 lines
2.9 KiB
C++
// 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_SHARED_IMPL_PPB_VIDEO_DECODER_SHARED_H_
|
|
#define PPAPI_SHARED_IMPL_PPB_VIDEO_DECODER_SHARED_H_
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <map>
|
|
#include <vector>
|
|
|
|
#include "base/compiler_specific.h"
|
|
#include "base/macros.h"
|
|
#include "ppapi/c/dev/ppb_video_decoder_dev.h"
|
|
#include "ppapi/shared_impl/resource.h"
|
|
#include "ppapi/shared_impl/tracked_callback.h"
|
|
#include "ppapi/thunk/ppb_video_decoder_dev_api.h"
|
|
|
|
namespace gpu {
|
|
namespace gles2 {
|
|
class GLES2Implementation;
|
|
} // namespace gles2
|
|
} // namespace gpu
|
|
|
|
namespace ppapi {
|
|
|
|
// Implements the logic to set and run callbacks for various video decoder
|
|
// events. Both the proxy and the renderer implementation share this code.
|
|
class PPAPI_SHARED_EXPORT PPB_VideoDecoder_Shared
|
|
: public Resource,
|
|
public thunk::PPB_VideoDecoder_Dev_API {
|
|
public:
|
|
explicit PPB_VideoDecoder_Shared(PP_Instance instance);
|
|
explicit PPB_VideoDecoder_Shared(const HostResource& host_resource);
|
|
~PPB_VideoDecoder_Shared() override;
|
|
|
|
// Resource overrides.
|
|
thunk::PPB_VideoDecoder_Dev_API* AsPPB_VideoDecoder_Dev_API() override;
|
|
|
|
// PPB_VideoDecoder_Dev_API implementation.
|
|
void Destroy() override;
|
|
|
|
protected:
|
|
bool SetFlushCallback(scoped_refptr<TrackedCallback> callback);
|
|
bool SetResetCallback(scoped_refptr<TrackedCallback> callback);
|
|
bool SetBitstreamBufferCallback(int32_t bitstream_buffer_id,
|
|
scoped_refptr<TrackedCallback> callback);
|
|
|
|
void RunFlushCallback(int32_t result);
|
|
void RunResetCallback(int32_t result);
|
|
void RunBitstreamBufferCallback(int32_t bitstream_buffer_id, int32_t result);
|
|
|
|
// Tell command buffer to process all commands it has received so far.
|
|
void FlushCommandBuffer();
|
|
|
|
// Initialize the underlying decoder.
|
|
void InitCommon(PP_Resource graphics_context,
|
|
gpu::gles2::GLES2Implementation* gles2_impl);
|
|
|
|
private:
|
|
// Key: bitstream_buffer_id, value: callback to run when bitstream decode is
|
|
// done.
|
|
typedef std::map<int32_t, scoped_refptr<TrackedCallback>> CallbackById;
|
|
|
|
scoped_refptr<TrackedCallback> flush_callback_;
|
|
scoped_refptr<TrackedCallback> reset_callback_;
|
|
CallbackById bitstream_buffer_callbacks_;
|
|
|
|
// The resource ID of the underlying Graphics3D object being used. Used only
|
|
// for reference counting to keep it alive for the lifetime of |*this|.
|
|
PP_Resource graphics_context_;
|
|
|
|
// Reference to the GLES2Implementation owned by |graphics_context_|.
|
|
// Graphics3D is guaranteed to be alive for the lifetime of this class.
|
|
// In the out-of-process case, Graphics3D's gles2_impl() exists in the plugin
|
|
// process only, so gles2_impl_ is NULL in that case.
|
|
gpu::gles2::GLES2Implementation* gles2_impl_;
|
|
|
|
DISALLOW_COPY_AND_ASSIGN(PPB_VideoDecoder_Shared);
|
|
};
|
|
|
|
} // namespace ppapi
|
|
|
|
#endif // PPAPI_SHARED_IMPL_PPB_VIDEO_DECODER_SHARED_H_
|