blob: 031d2ce1a6a7ec06f4deb50cd9d47b31fb53ec4e [file] [log] [blame]
// Copyright 2021 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 VIDEO_COMMAND_STREAMER_H
#define VIDEO_COMMAND_STREAMER_H
#include <memory>
#include <queue>
#include "engine_command_streamer.h"
#include "mapped_batch.h"
#include "scheduler.h"
// The Video command streamer is similar to the Render command streamer.
// TODO(https://fxbug.dev/42161303) - refactor common scheduling code.
class VideoCommandStreamer : public EngineCommandStreamer {
public:
explicit VideoCommandStreamer(EngineCommandStreamer::Owner* owner,
std::unique_ptr<GpuMapping> hw_status_page);
private:
bool WriteBatchToRingBuffer(MappedBatch* mapped_batch, uint32_t* sequence_number_out) override;
};
#endif // VIDEO_COMMAND_STREAMER_H