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. 4 5 #ifndef PPAPI_THUNK_PPB_VIDEO_DECODER_API_H_ 6 #define PPAPI_THUNK_PPB_VIDEO_DECODER_API_H_ 7 8 #include "ppapi/c/pp_codecs.h" 9 #include "ppapi/c/ppb_video_decoder.h" 10 #include "ppapi/thunk/ppapi_thunk_export.h" 11 12 namespace ppapi { 13 14 class TrackedCallback; 15 16 namespace thunk { 17 18 class PPAPI_THUNK_EXPORT PPB_VideoDecoder_API { 19 public: ~PPB_VideoDecoder_API()20 virtual ~PPB_VideoDecoder_API() {} 21 22 virtual int32_t Initialize0_1(PP_Resource graphics3d_context, 23 PP_VideoProfile profile, 24 PP_Bool allow_software_fallback, 25 scoped_refptr<TrackedCallback> callback) = 0; 26 virtual int32_t Initialize(PP_Resource graphics3d_context, 27 PP_VideoProfile profile, 28 PP_HardwareAcceleration acceleration, 29 scoped_refptr<TrackedCallback> callback) = 0; 30 virtual int32_t Decode(uint32_t decode_id, 31 uint32_t size, 32 const void* buffer, 33 scoped_refptr<TrackedCallback> callback) = 0; 34 virtual int32_t GetPicture(PP_VideoPicture* picture, 35 scoped_refptr<TrackedCallback> callback) = 0; 36 virtual void RecyclePicture(const PP_VideoPicture* picture) = 0; 37 virtual int32_t Flush(scoped_refptr<TrackedCallback> callback) = 0; 38 virtual int32_t Reset(scoped_refptr<TrackedCallback> callback) = 0; 39 }; 40 41 } // namespace thunk 42 } // namespace ppapi 43 44 #endif // PPAPI_THUNK_PPB_VIDEO_DECODER_API_H_ 45