1 // Copyright (c) 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // From ppb_video_decoder.idl modified Tue May 6 05:06:35 2014.
7 #include "ppapi/c/pp_completion_callback.h"
8 #include "ppapi/c/pp_errors.h"
9 #include "ppapi/c/ppb_video_decoder.h"
10 #include "ppapi/shared_impl/tracked_callback.h"
11 #include "ppapi/thunk/enter.h"
12 #include "ppapi/thunk/ppapi_thunk_export.h"
13 #include "ppapi/thunk/ppb_video_decoder_api.h"
20 PP_Resource Create(PP_Instance instance) {
21 VLOG(4) << "PPB_VideoDecoder::Create()";
22 EnterResourceCreation enter(instance);
25 return enter.functions()->CreateVideoDecoder(instance);
28 PP_Bool IsVideoDecoder(PP_Resource resource) {
29 VLOG(4) << "PPB_VideoDecoder::IsVideoDecoder()";
30 EnterResource<PPB_VideoDecoder_API> enter(resource, false);
31 return PP_FromBool(enter.succeeded());
34 int32_t Initialize(PP_Resource video_decoder,
35 PP_Resource graphics3d_context,
36 PP_VideoProfile profile,
37 PP_Bool allow_software_fallback,
38 struct PP_CompletionCallback callback) {
39 VLOG(4) << "PPB_VideoDecoder::Initialize()";
40 EnterResource<PPB_VideoDecoder_API> enter(video_decoder, callback, true);
42 return enter.retval();
43 return enter.SetResult(enter.object()->Initialize(graphics3d_context,
45 allow_software_fallback,
49 int32_t Decode(PP_Resource video_decoder,
53 struct PP_CompletionCallback callback) {
54 VLOG(4) << "PPB_VideoDecoder::Decode()";
55 EnterResource<PPB_VideoDecoder_API> enter(video_decoder, callback, true);
57 return enter.retval();
58 return enter.SetResult(enter.object()->Decode(decode_id,
64 int32_t GetPicture(PP_Resource video_decoder,
65 struct PP_VideoPicture* picture,
66 struct PP_CompletionCallback callback) {
67 VLOG(4) << "PPB_VideoDecoder::GetPicture()";
68 EnterResource<PPB_VideoDecoder_API> enter(video_decoder, callback, true);
70 return enter.retval();
71 return enter.SetResult(enter.object()->GetPicture(picture, enter.callback()));
74 void RecyclePicture(PP_Resource video_decoder,
75 const struct PP_VideoPicture* picture) {
76 VLOG(4) << "PPB_VideoDecoder::RecyclePicture()";
77 EnterResource<PPB_VideoDecoder_API> enter(video_decoder, true);
80 enter.object()->RecyclePicture(picture);
83 int32_t Flush(PP_Resource video_decoder,
84 struct PP_CompletionCallback callback) {
85 VLOG(4) << "PPB_VideoDecoder::Flush()";
86 EnterResource<PPB_VideoDecoder_API> enter(video_decoder, callback, true);
88 return enter.retval();
89 return enter.SetResult(enter.object()->Flush(enter.callback()));
92 int32_t Reset(PP_Resource video_decoder,
93 struct PP_CompletionCallback callback) {
94 VLOG(4) << "PPB_VideoDecoder::Reset()";
95 EnterResource<PPB_VideoDecoder_API> enter(video_decoder, callback, true);
97 return enter.retval();
98 return enter.SetResult(enter.object()->Reset(enter.callback()));
101 const PPB_VideoDecoder_0_1 g_ppb_videodecoder_thunk_0_1 = {
114 PPAPI_THUNK_EXPORT const PPB_VideoDecoder_0_1*
115 GetPPB_VideoDecoder_0_1_Thunk() {
116 return &g_ppb_videodecoder_thunk_0_1;