Index: media/video/video_decode_accelerator.h |
diff --git a/media/video/video_decode_accelerator.h b/media/video/video_decode_accelerator.h |
index da184ee2d46247169282e08793638e64aa18cc81..81f3794b2961122ad51de7ecbb1473b31e5b4026 100644 |
--- a/media/video/video_decode_accelerator.h |
+++ b/media/video/video_decode_accelerator.h |
@@ -34,6 +34,29 @@ class MEDIA_EXPORT VideoDecodeAccelerator { |
}; |
using SupportedProfiles = std::vector<SupportedProfile>; |
+ struct MEDIA_EXPORT Capabilities { |
+ Capabilities(); |
+ ~Capabilities(); |
+ // Flags that can be associated with a VDA. |
+ enum Flags { |
+ NO_FLAGS = 0, |
+ |
+ // Normally, the VDA is required to be able to provide all PictureBuffers |
+ // to the client via PictureReady(), even if the client does not return |
+ // any of them via ReusePictureBuffer(). The client is only required to |
+ // return PictureBuffers when it holds all of them, if it wants to get |
+ // more decoded output. See VideoDecoder::CanReadWithoutStalling for |
+ // more context. |
+ // If this flag is set, then the VDA does not make this guarantee. The |
+ // client must return PictureBuffers to be sure that new frames will be |
+ // provided via PictureReady. |
+ NEEDS_ALL_PICTURE_BUFFERS_TO_DECODE = 1 << 0, |
+ }; |
+ |
+ SupportedProfiles supported_profiles; |
+ uint32_t flags; |
+ }; |
+ |
// Enumeration of potential errors generated by the API. |
// Note: Keep these in sync with PP_VideoDecodeError_Dev. Also do not |
// rearrange, reuse or remove values as they are used for gathering UMA |