chromium/media/base/audio_push_fifo.h

// Copyright 2016 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_AUDIO_PUSH_FIFO_H_
#define MEDIA_BASE_AUDIO_PUSH_FIFO_H_

#include <memory>

#include "base/functional/callback.h"
#include "media/base/audio_bus.h"
#include "media/base/media_export.h"

namespace media {

// Yet another FIFO for audio data that re-buffers audio to a desired buffer
// size.  Unlike AudioFifo and AudioBlockFifo, this FIFO cannot overflow: The
// client is required to provide a callback that is called synchronously during
// a push whenever enough data becomes available.  This implementation
// eliminates redundant memory copies when the input buffer size always matches
// the desired buffer size.
class MEDIA_EXPORT AudioPushFifo final {};

}  // namespace media

#endif  // MEDIA_BASE_AUDIO_PUSH_FIFO_H_