chromium/media/base/decoder_status.h

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef MEDIA_BASE_DECODER_STATUS_H_
#define MEDIA_BASE_DECODER_STATUS_H_

#include <ostream>

#include "base/time/time.h"
#include "media/base/decoder_buffer.h"
#include "media/base/media_export.h"
#include "media/base/status.h"

namespace media {

struct DecoderStatusTraits {};

DecoderStatus;

MEDIA_EXPORT std::ostream& operator<<(std::ostream& os,
                                      const DecoderStatus& status);

// Helper class for ensuring that Decode() traces are properly unique and closed
// if the Decode is aborted via a WeakPtr invalidation. We use the |this|
// pointer of the ScopedDecodeTrace object itself as the id. Since the callback
// owns the class it's guaranteed to be unique.
class MEDIA_EXPORT ScopedDecodeTrace {};

}  // namespace media

#endif  // MEDIA_BASE_DECODER_STATUS_H_