#ifndef MEDIA_GPU_MAC_VIDEO_TOOLBOX_DECOMPRESSION_METADATA_H_
#define MEDIA_GPU_MAC_VIDEO_TOOLBOX_DECOMPRESSION_METADATA_H_
#include <optional>
#include "base/apple/scoped_cftyperef.h"
#include "base/memory/scoped_refptr.h"
#include "base/time/time.h"
#include "media/base/timestamp_constants.h"
#include "media/base/video_aspect_ratio.h"
#include "media/base/video_types.h"
#include "media/gpu/codec_picture.h"
#include "media/gpu/media_gpu_export.h"
#include "ui/gfx/color_space.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/hdr_metadata.h"
namespace media {
struct MEDIA_GPU_EXPORT VideoToolboxDecompressionSessionMetadata {
bool allow_software_decoding = false;
uint8_t bit_depth = 8;
VideoChromaSampling chroma_sampling = VideoChromaSampling::k420;
bool has_alpha = false;
gfx::Rect visible_rect;
};
struct MEDIA_GPU_EXPORT VideoToolboxDecodeMetadata {
VideoToolboxDecodeMetadata();
~VideoToolboxDecodeMetadata();
scoped_refptr<CodecPicture> picture;
base::TimeDelta timestamp = kNoTimestamp;
base::TimeDelta duration = kNoTimestamp;
VideoAspectRatio aspect_ratio;
gfx::ColorSpace color_space;
std::optional<gfx::HDRMetadata> hdr_metadata;
bool discard = false;
VideoToolboxDecompressionSessionMetadata session_metadata;
};
}
#endif