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

Side by Side Diff: ppapi/cpp/dev/video_decoder_client_dev.h

Issue 7361010: Enable fire-and-forget Destroy of HW video decoder, and misc other improvements. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: vrk CR responses. 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 #ifndef PPAPI_CPP_DEV_VIDEO_DECODER_CLIENT_DEV_H_ 5 #ifndef PPAPI_CPP_DEV_VIDEO_DECODER_CLIENT_DEV_H_
6 #define PPAPI_CPP_DEV_VIDEO_DECODER_CLIENT_DEV_H_ 6 #define PPAPI_CPP_DEV_VIDEO_DECODER_CLIENT_DEV_H_
7 7
8 #include "ppapi/c/pp_stdint.h" 8 #include "ppapi/c/pp_stdint.h"
9 #include "ppapi/c/dev/pp_video_dev.h" 9 #include "ppapi/c/dev/pp_video_dev.h"
10 10
11 namespace pp { 11 namespace pp {
12 12
13 class Instance; 13 class Instance;
14 class VideoDecoder_Dev; 14 class VideoDecoder_Dev;
15 15
16 // This class provides a C++ interface for callbacks related to video decoding. 16 // This class provides a C++ interface for callbacks related to video decoding.
17 // It is the C++ counterpart to PPP_VideoDecoder_Dev. 17 // It is the C++ counterpart to PPP_VideoDecoder_Dev.
18 // You would normally use multiple inheritance to derive from this class in your 18 // You would normally use multiple inheritance to derive from this class in your
19 // instance. 19 // instance.
20 class VideoDecoderClient_Dev { 20 class VideoDecoderClient_Dev {
21 public: 21 public:
22 VideoDecoderClient_Dev(Instance* instance); 22 VideoDecoderClient_Dev(Instance* instance);
23 virtual ~VideoDecoderClient_Dev(); 23 virtual ~VideoDecoderClient_Dev();
24 24
25 // Callback to provide buffers for the decoded output pictures. 25 // Callback to provide buffers for the decoded output pictures.
26 virtual void ProvidePictureBuffers( 26 virtual void ProvidePictureBuffers(
27 VideoDecoder_Dev decoder,
28 uint32_t req_num_of_bufs, 27 uint32_t req_num_of_bufs,
29 struct PP_Size dimensions, 28 struct PP_Size dimensions,
30 enum PP_PictureBufferType_Dev type) = 0; 29 enum PP_PictureBufferType_Dev type) = 0;
31 30
32 // Callback for decoder to delivered unneeded picture buffers back to the 31 // Callback for decoder to deliver unneeded picture buffers back to the
33 // plugin. 32 // plugin.
34 virtual void DismissPictureBuffer( 33 virtual void DismissPictureBuffer(int32_t picture_buffer_id) = 0;
35 VideoDecoder_Dev decoder,
36 int32_t picture_buffer_id) = 0;
37 34
38 // Callback to deliver decoded pictures ready to be displayed. 35 // Callback to deliver decoded pictures ready to be displayed.
39 virtual void PictureReady( 36 virtual void PictureReady(const PP_Picture_Dev& picture) = 0;
40 VideoDecoder_Dev decoder,
41 const PP_Picture_Dev& picture) = 0;
42 37
43 // Callback to notify that decoder has decoded end of stream marker and has 38 // Callback to notify that decoder has decoded end of stream marker and has
44 // outputted all displayable pictures. 39 // outputted all displayable pictures.
45 virtual void EndOfStream(VideoDecoder_Dev decoder) = 0; 40 virtual void EndOfStream() = 0;
46 41
47 // Callback to notify about decoding errors. 42 // Callback to notify about decoding errors.
48 virtual void NotifyError( 43 virtual void NotifyError(PP_VideoDecodeError_Dev error) = 0;
49 VideoDecoder_Dev decoder, PP_VideoDecodeError_Dev error) = 0;
50 44
51 private: 45 private:
52 Instance* associated_instance_; 46 Instance* associated_instance_;
53 }; 47 };
54 48
55 } // namespace pp 49 } // namespace pp
56 50
57 #endif // PPAPI_CPP_DEV_VIDEO_DECODER_CLIENT_DEV_H_ 51 #endif // PPAPI_CPP_DEV_VIDEO_DECODER_CLIENT_DEV_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698