blob: fda75bc2ca2509257eae001cb2269563158be173 [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_TEST_SINK_FEEDER_H_
#define SRC_MEDIA_PLAYBACK_MEDIAPLAYER_TEST_SINK_FEEDER_H_
#include <fuchsia/media/playback/cpp/fidl.h>
#include <lib/fzl/vmo-mapper.h>
namespace media_player {
namespace test {
class SinkFeeder {
public:
SinkFeeder() = default;
~SinkFeeder() = default;
zx_status_t Init(fuchsia::media::SimpleStreamSinkPtr sink, size_t size,
uint32_t frame_size, uint32_t max_packet_size,
uint32_t max_packet_count);
private:
void MaybeSendPacket();
fuchsia::media::SimpleStreamSinkPtr sink_;
uint32_t frame_size_;
uint32_t bytes_remaining_;
uint32_t max_packet_size_;
int64_t position_ = 0;
bool end_of_stream_sent_ = false;
fzl::VmoMapper vmo_mapper_;
};
} // namespace test
} // namespace media_player
#endif // SRC_MEDIA_PLAYBACK_MEDIAPLAYER_TEST_SINK_FEEDER_H_