| // Copyright 2020 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef MEDIA_GPU_AV1_PICTURE_H_ | 
 | #define MEDIA_GPU_AV1_PICTURE_H_ | 
 |  | 
 | #include "media/gpu/codec_picture.h" | 
 | #include "media/gpu/media_gpu_export.h" | 
 | #include "third_party/libgav1/src/src/utils/types.h" | 
 |  | 
 | namespace media { | 
 | // AV1Picture carries the parsed frame header needed for decoding an AV1 frame. | 
 | // It also owns the decoded frame itself. | 
 | class MEDIA_GPU_EXPORT AV1Picture : public CodecPicture { | 
 |  public: | 
 |   AV1Picture(); | 
 |   AV1Picture(const AV1Picture&) = delete; | 
 |   AV1Picture& operator=(const AV1Picture&) = delete; | 
 |  | 
 |   // Create a duplicate instance and copy the data to it. It is used to support | 
 |   // the AV1 show_existing_frame feature. Return the scoped_refptr pointing to | 
 |   // the duplicate instance, or nullptr on failure. | 
 |   scoped_refptr<AV1Picture> Duplicate(); | 
 |  | 
 |   libgav1::ObuFrameHeader frame_header = {}; | 
 |  | 
 |  protected: | 
 |   ~AV1Picture() override; | 
 |  | 
 |  private: | 
 |   // Create a duplicate instance. | 
 |   virtual scoped_refptr<AV1Picture> CreateDuplicate(); | 
 | }; | 
 | }  // namespace media | 
 | #endif  // MEDIA_GPU_AV1_PICTURE_H_ |