Index: media/base/android/media_source_player.cc |
diff --git a/media/base/android/media_source_player.cc b/media/base/android/media_source_player.cc |
index bad50cf42d9b1fabe2b20c63c5069a8c9a55cf2e..9c27cb97fbde5888fa814be51976a5e993b3d2d9 100644 |
--- a/media/base/android/media_source_player.cc |
+++ b/media/base/android/media_source_player.cc |
@@ -481,8 +481,11 @@ void MediaSourcePlayer::MediaDecoderCallback( |
max_presentation_timestamp); |
} |
- if (status == MEDIA_CODEC_OUTPUT_END_OF_STREAM) |
+ if (status == MEDIA_CODEC_OUTPUT_END_OF_STREAM) { |
PlaybackCompleted(is_audio); |
+ if (is_clock_manager && interpolator_.interpolating()) |
qinmin
2014/09/25 20:23:17
we probably don't need interpolator_.interpolating
|
+ interpolator_.StopInterpolating(); |
+ } |
if (pending_event_ != NO_EVENT_PENDING) { |
ProcessPendingEvents(); |
@@ -493,7 +496,7 @@ void MediaSourcePlayer::MediaDecoderCallback( |
return; |
if (!playing_) { |
- if (is_clock_manager) |
+ if (is_clock_manager && interpolator_.interpolating()) |
interpolator_.StopInterpolating(); |
return; |
} |
@@ -576,7 +579,6 @@ void MediaSourcePlayer::PlaybackCompleted(bool is_audio) { |
if (AudioFinished() && VideoFinished()) { |
playing_ = false; |
- interpolator_.StopInterpolating(); |
start_time_ticks_ = base::TimeTicks(); |
manager()->OnPlaybackComplete(player_id()); |
} |