Index: examples/audio_play_test/play_wav.cc |
diff --git a/examples/audio_play_test/play_wav.cc b/examples/audio_play_test/play_wav.cc |
index d5dc2e16837ee105d4fa861f6bff53265b1560d1..f5f11eac78ee1e28c342212cb5c481867fa90239 100644 |
--- a/examples/audio_play_test/play_wav.cc |
+++ b/examples/audio_play_test/play_wav.cc |
@@ -128,7 +128,7 @@ class PlayWAVApp : public ApplicationDelegate { |
AudioServerPtr audio_server_; |
AudioTrackPtr audio_track_; |
AudioPipePtr audio_pipe_; |
- RateControlPtr rate_control_; |
+ TimelineConsumerPtr timeline_consumer_; |
AudioPacket audio_packet_; |
PacketCbk playout_complete_cbk_; |
NetworkServicePtr network_service_; |
@@ -196,7 +196,7 @@ void PlayWAVApp::Quit() { |
url_loader_.reset(); |
network_service_.reset(); |
audio_pipe_.reset(); |
- rate_control_.reset(); |
+ timeline_consumer_.reset(); |
audio_track_.reset(); |
audio_server_.reset(); |
} |
@@ -290,11 +290,12 @@ void PlayWAVApp::ProcessHTTPResponse(URLResponsePtr resp) { |
MediaConsumerPtr media_pipe; |
audio_track_->Configure(cfg.Pass(), GetProxy(&media_pipe)); |
- // Grab the rate control interface for our audio renderer. |
- audio_track_->GetRateControl(GetProxy(&rate_control_)); |
- rate_control_.set_connection_error_handler([this]() { |
- OnConnectionError("rate_control"); |
- }); |
+ // Grab the timeline consumer interface for our audio renderer. |
+ MediaTimelineControlSitePtr timeline_control_site; |
+ audio_track_->GetTimelineControlSite(GetProxy(&timeline_control_site)); |
+ timeline_control_site->GetTimelineConsumer(GetProxy(&timeline_consumer_)); |
+ timeline_consumer_.set_connection_error_handler( |
+ [this]() { OnConnectionError("timeline_consumer"); }); |
// Set up our media pipe helper, configure its callback and water marks to |
// kick off the playback process. |
@@ -501,8 +502,9 @@ void PlayWAVApp::OnNeedsData(MediaResult res) { |
} |
if (!clock_started_ && (audio_pipe_->AboveHiWater() || !payload_len_)) { |
- LocalTime sched = LocalClock::now() + local_time::from_msec(50); |
- rate_control_->SetRateAtTargetTime(1, 1, sched.time_since_epoch().count()); |
+ timeline_consumer_->SetTimelineTransform( |
+ kUnspecifiedTime, 1, 1, kUnspecifiedTime, kUnspecifiedTime, |
+ [](bool completed) {}); |
clock_started_ = true; |
} |
} |