vp8_reference_frame_vector.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Copyright 2018 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. #ifndef MEDIA_GPU_VP8_REFERENCE_FRAME_VECTOR_H_
  5. #define MEDIA_GPU_VP8_REFERENCE_FRAME_VECTOR_H_
  6. #include <array>
  7. #include "base/memory/scoped_refptr.h"
  8. #include "base/sequence_checker.h"
  9. #include "media/parsers/vp8_parser.h"
  10. namespace media {
  11. class VP8Picture;
  12. class Vp8ReferenceFrameVector {
  13. public:
  14. Vp8ReferenceFrameVector();
  15. Vp8ReferenceFrameVector(const Vp8ReferenceFrameVector&) = delete;
  16. Vp8ReferenceFrameVector& operator=(const Vp8ReferenceFrameVector&) = delete;
  17. ~Vp8ReferenceFrameVector();
  18. void Refresh(scoped_refptr<VP8Picture> pic);
  19. void Clear();
  20. scoped_refptr<VP8Picture> GetFrame(Vp8RefType type) const;
  21. private:
  22. std::array<scoped_refptr<VP8Picture>, kNumVp8ReferenceBuffers>
  23. reference_frames_;
  24. SEQUENCE_CHECKER(sequence_checker_);
  25. };
  26. } // namespace media
  27. #endif // MEDIA_GPU_VP8_REFERENCE_FRAME_VECTOR_H_