Index: media/base/video_decoder.h |
diff --git a/media/base/video_decoder.h b/media/base/video_decoder.h |
index 66abc8c85c16f90994436985486e4eae69f5f11c..c54974c5fb4ada80a91e7f77badfb1241efda798 100644 |
--- a/media/base/video_decoder.h |
+++ b/media/base/video_decoder.h |
@@ -20,6 +20,8 @@ class VideoFrame; |
class MEDIA_EXPORT VideoDecoder { |
public: |
// Status codes for decode operations on VideoDecoder. |
+ // TODO(rileya): Now that both AudioDecoder and VideoDecoder Status enums |
+ // match, break them into a decoder_status.h. |
enum Status { |
kOk, // Everything went as planned. |
kAborted, // Decode was aborted as a result of Reset() being called. |
@@ -59,6 +61,11 @@ class MEDIA_EXPORT VideoDecoder { |
virtual void Decode(const scoped_refptr<DecoderBuffer>& buffer, |
const DecodeCB& decode_cb) = 0; |
+ // Some VideoDecoders may queue up multiple VideoFrames from a single |
+ // DecoderBuffer, if we have any such queued frames this will return the next |
+ // one. Otherwise we return a NULL VideoFrame. |
+ virtual scoped_refptr<VideoFrame> GetDecodeOutput(); |
+ |
// Resets decoder state, fulfilling all pending DecodeCB and dropping extra |
// queued decoded data. After this call, the decoder is back to an initialized |
// clean state. |