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

Side by Side Diff: ppapi/thunk/ppb_video_decoder_thunk.cc

Issue 6899055: PPAPI: Force async callback invocation option. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ppapi/c/pp_errors.h" 5 #include "ppapi/c/pp_errors.h"
6 #include "ppapi/thunk/common.h"
7 #include "ppapi/thunk/enter.h"
6 #include "ppapi/thunk/thunk.h" 8 #include "ppapi/thunk/thunk.h"
7 #include "ppapi/thunk/enter.h"
8 #include "ppapi/thunk/ppb_video_decoder_api.h" 9 #include "ppapi/thunk/ppb_video_decoder_api.h"
9 #include "ppapi/thunk/resource_creation_api.h" 10 #include "ppapi/thunk/resource_creation_api.h"
10 11
11 namespace ppapi { 12 namespace ppapi {
12 namespace thunk { 13 namespace thunk {
13 14
14 namespace { 15 namespace {
15 16
16 typedef EnterResource<PPB_VideoDecoder_API> EnterVideoDecoder; 17 typedef EnterResource<PPB_VideoDecoder_API> EnterVideoDecoder;
17 18
(...skipping 21 matching lines...) Expand all
39 matching_configs_size, 40 matching_configs_size,
40 num_of_matching_configs); 41 num_of_matching_configs);
41 } 42 }
42 43
43 int32_t Initialize(PP_Resource video_decoder, 44 int32_t Initialize(PP_Resource video_decoder,
44 PP_Resource context_id, 45 PP_Resource context_id,
45 const PP_VideoConfigElement* decoder_config, 46 const PP_VideoConfigElement* decoder_config,
46 PP_CompletionCallback callback) { 47 PP_CompletionCallback callback) {
47 EnterVideoDecoder enter(video_decoder, true); 48 EnterVideoDecoder enter(video_decoder, true);
48 if (enter.failed()) 49 if (enter.failed())
49 return PP_ERROR_BADRESOURCE; 50 return MayForceCallback(callback, PP_ERROR_BADRESOURCE);
50 return enter.object()->Initialize(context_id, decoder_config, callback); 51 int32_t result =
52 enter.object()->Initialize(context_id, decoder_config, callback);
53 return MayForceCallback(callback, result);
51 } 54 }
52 55
53 int32_t Decode(PP_Resource video_decoder, 56 int32_t Decode(PP_Resource video_decoder,
54 const PP_VideoBitstreamBuffer_Dev* bitstream_buffer, 57 const PP_VideoBitstreamBuffer_Dev* bitstream_buffer,
55 PP_CompletionCallback callback) { 58 PP_CompletionCallback callback) {
56 EnterVideoDecoder enter(video_decoder, true); 59 EnterVideoDecoder enter(video_decoder, true);
57 if (enter.failed()) 60 if (enter.failed())
58 return PP_ERROR_BADRESOURCE; 61 return MayForceCallback(callback, PP_ERROR_BADRESOURCE);
59 return enter.object()->Decode(bitstream_buffer, callback); 62 int32_t result = enter.object()->Decode(bitstream_buffer, callback);
63 return MayForceCallback(callback, result);
60 } 64 }
61 65
62 void AssignGLESBuffers(PP_Resource video_decoder, 66 void AssignGLESBuffers(PP_Resource video_decoder,
63 uint32_t no_of_buffers, 67 uint32_t no_of_buffers,
64 const PP_GLESBuffer_Dev* buffers) { 68 const PP_GLESBuffer_Dev* buffers) {
65 EnterVideoDecoder enter(video_decoder, true); 69 EnterVideoDecoder enter(video_decoder, true);
66 if (enter.succeeded()) 70 if (enter.succeeded())
67 enter.object()->AssignGLESBuffers(no_of_buffers, buffers); 71 enter.object()->AssignGLESBuffers(no_of_buffers, buffers);
68 } 72 }
69 73
70 void AssignSysmemBuffers(PP_Resource video_decoder, 74 void AssignSysmemBuffers(PP_Resource video_decoder,
71 uint32_t no_of_buffers, 75 uint32_t no_of_buffers,
72 const PP_SysmemBuffer_Dev* buffers) { 76 const PP_SysmemBuffer_Dev* buffers) {
73 EnterVideoDecoder enter(video_decoder, true); 77 EnterVideoDecoder enter(video_decoder, true);
74 if (enter.succeeded()) 78 if (enter.succeeded())
75 enter.object()->AssignSysmemBuffers(no_of_buffers, buffers); 79 enter.object()->AssignSysmemBuffers(no_of_buffers, buffers);
76 } 80 }
77 81
78 void ReusePictureBuffer(PP_Resource video_decoder, int32_t picture_buffer_id) { 82 void ReusePictureBuffer(PP_Resource video_decoder, int32_t picture_buffer_id) {
79 EnterVideoDecoder enter(video_decoder, true); 83 EnterVideoDecoder enter(video_decoder, true);
80 if (enter.succeeded()) 84 if (enter.succeeded())
81 enter.object()->ReusePictureBuffer(picture_buffer_id); 85 enter.object()->ReusePictureBuffer(picture_buffer_id);
82 } 86 }
83 87
84 int32_t Flush(PP_Resource video_decoder, PP_CompletionCallback callback) { 88 int32_t Flush(PP_Resource video_decoder, PP_CompletionCallback callback) {
85 EnterVideoDecoder enter(video_decoder, true); 89 EnterVideoDecoder enter(video_decoder, true);
86 if (enter.failed()) 90 if (enter.failed())
87 return PP_ERROR_BADRESOURCE; 91 return MayForceCallback(callback, PP_ERROR_BADRESOURCE);
88 return enter.object()->Flush(callback); 92 int32_t result = enter.object()->Flush(callback);
93 return MayForceCallback(callback, result);
89 } 94 }
90 95
91 int32_t Abort(PP_Resource video_decoder, 96 int32_t Abort(PP_Resource video_decoder,
92 PP_CompletionCallback callback) { 97 PP_CompletionCallback callback) {
93 EnterVideoDecoder enter(video_decoder, true); 98 EnterVideoDecoder enter(video_decoder, true);
94 if (enter.failed()) 99 if (enter.failed())
95 return PP_ERROR_BADRESOURCE; 100 return MayForceCallback(callback, PP_ERROR_BADRESOURCE);
96 return enter.object()->Abort(callback); 101 int32_t result = enter.object()->Abort(callback);
102 return MayForceCallback(callback, result);
97 } 103 }
98 104
99 const PPB_VideoDecoder_Dev g_ppb_videodecoder_thunk = { 105 const PPB_VideoDecoder_Dev g_ppb_videodecoder_thunk = {
100 &Create, 106 &Create,
101 &IsVideoDecoder, 107 &IsVideoDecoder,
102 &GetConfigs, 108 &GetConfigs,
103 &Initialize, 109 &Initialize,
104 &Decode, 110 &Decode,
105 &AssignGLESBuffers, 111 &AssignGLESBuffers,
106 &AssignSysmemBuffers, 112 &AssignSysmemBuffers,
107 &ReusePictureBuffer, 113 &ReusePictureBuffer,
108 &Flush, 114 &Flush,
109 &Abort 115 &Abort
110 }; 116 };
111 117
112 } // namespace 118 } // namespace
113 119
114 const PPB_VideoDecoder_Dev* GetPPB_VideoDecoder_Thunk() { 120 const PPB_VideoDecoder_Dev* GetPPB_VideoDecoder_Thunk() {
115 return &g_ppb_videodecoder_thunk; 121 return &g_ppb_videodecoder_thunk;
116 } 122 }
117 123
118 } // namespace thunk 124 } // namespace thunk
119 } // namespace ppapi 125 } // namespace ppapi
OLDNEW
« no previous file with comments | « ppapi/thunk/ppb_url_loader_thunk.cc ('k') | remoting/client/plugin/pepper_port_allocator_session.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698