| Index: services/media/framework/stages/active_sink_stage.cc
|
| diff --git a/services/media/framework/stages/active_sink_stage.cc b/services/media/framework/stages/active_sink_stage.cc
|
| index c49b55e0b3ae6052513dbbf22f75b84e2a11825e..5f468e6a1be524979b8cfa873fbd721d9e544430 100644
|
| --- a/services/media/framework/stages/active_sink_stage.cc
|
| +++ b/services/media/framework/stages/active_sink_stage.cc
|
| @@ -7,14 +7,14 @@
|
| namespace mojo {
|
| namespace media {
|
|
|
| -ActiveSinkStage::ActiveSinkStage(ActiveSinkPtr sink) : sink_(sink) {
|
| +ActiveSinkStage::ActiveSinkStage(std::shared_ptr<ActiveSink> sink) :
|
| + sink_(sink) {
|
| DCHECK(sink_);
|
|
|
| demand_function_ = [this](Demand demand) {
|
| - DCHECK(update_callback_);
|
| if (sink_demand_ != demand) {
|
| sink_demand_ = demand;
|
| - update_callback_(this);
|
| + RequestUpdate();
|
| }
|
| };
|
|
|
| @@ -23,37 +23,45 @@ ActiveSinkStage::ActiveSinkStage(ActiveSinkPtr sink) : sink_(sink) {
|
|
|
| ActiveSinkStage::~ActiveSinkStage() {}
|
|
|
| -uint32_t ActiveSinkStage::input_count() const {
|
| +size_t ActiveSinkStage::input_count() const {
|
| return 1;
|
| };
|
|
|
| -StageInput& ActiveSinkStage::input(uint32_t index) {
|
| +Input& ActiveSinkStage::input(size_t index) {
|
| DCHECK_EQ(index, 0u);
|
| return input_;
|
| }
|
|
|
| -uint32_t ActiveSinkStage::output_count() const {
|
| +size_t ActiveSinkStage::output_count() const {
|
| return 0;
|
| }
|
|
|
| -StageOutput& ActiveSinkStage::output(uint32_t index) {
|
| - NOTREACHED();
|
| - static StageOutput result;
|
| +Output& ActiveSinkStage::output(size_t index) {
|
| + LOG(ERROR) << "output requested from sink";
|
| + static Output result;
|
| return result;
|
| }
|
|
|
| -bool ActiveSinkStage::Prepare(UpdateCallback update_callback) {
|
| - input_.Prepare(sink_->allocator(), sink_->must_allocate());
|
| - update_callback_ = update_callback;
|
| - return true;
|
| +PayloadAllocator* ActiveSinkStage::PrepareInput(size_t index) {
|
| + DCHECK_EQ(index, 0u);
|
| + return sink_->allocator();
|
| +}
|
| +
|
| +void ActiveSinkStage::PrepareOutput(
|
| + size_t index,
|
| + PayloadAllocator* allocator,
|
| + const PrepareCallback& callback) {
|
| + LOG(ERROR) << "PrepareOutput called on sink";
|
| }
|
|
|
| void ActiveSinkStage::Prime() {
|
| + DCHECK(sink_);
|
| sink_->Prime();
|
| }
|
|
|
| void ActiveSinkStage::Update(Engine* engine) {
|
| DCHECK(engine);
|
| + DCHECK(sink_);
|
|
|
| if (input_.packet_from_upstream()) {
|
| sink_demand_ =
|
| @@ -63,5 +71,18 @@ void ActiveSinkStage::Update(Engine* engine) {
|
| input_.SetDemand(sink_demand_, engine);
|
| }
|
|
|
| +void ActiveSinkStage::FlushInput(
|
| + size_t index,
|
| + const FlushCallback& callback) {
|
| + DCHECK(sink_);
|
| + input_.Flush();
|
| + sink_->Flush();
|
| + sink_demand_ = Demand::kNegative;
|
| +}
|
| +
|
| +void ActiveSinkStage::FlushOutput(size_t index) {
|
| + LOG(ERROR) << "FlushOutput called on sink";
|
| +}
|
| +
|
| } // namespace media
|
| } // namespace mojo
|
|
|