blob: 952c167c5eb4d534a164bd7a47a4fe19042f10a2 [file] [log] [blame]
// Copyright 2018 The Fuchsia 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 SRC_MEDIA_PLAYBACK_MEDIAPLAYER_GRAPH_PAYLOADS_LOCAL_MEMORY_PAYLOAD_ALLOCATOR_H_
#define SRC_MEDIA_PLAYBACK_MEDIAPLAYER_GRAPH_PAYLOADS_LOCAL_MEMORY_PAYLOAD_ALLOCATOR_H_
#include <fbl/ref_counted.h>
#include <fbl/ref_ptr.h>
#include "src/media/playback/mediaplayer/graph/payloads/payload_allocator.h"
namespace media_player {
class LocalMemoryPayloadAllocator
: public PayloadAllocator,
public fbl::RefCounted<LocalMemoryPayloadAllocator> {
public:
static fbl::RefPtr<LocalMemoryPayloadAllocator> Create();
LocalMemoryPayloadAllocator() = default;
~LocalMemoryPayloadAllocator() override = default;
// Dumps this |LocalMemoryPayloadAllocator|'s state to |os|.
void Dump(std::ostream& os) const;
// PayloadAllocator implementation.
fbl::RefPtr<PayloadBuffer> AllocatePayloadBuffer(uint64_t size) override;
};
} // namespace media_player
#endif // SRC_MEDIA_PLAYBACK_MEDIAPLAYER_GRAPH_PAYLOADS_LOCAL_MEMORY_PAYLOAD_ALLOCATOR_H_