Implement MediaSourceDelegate::SetDuration() for android
commit0f7a70415b0a4b8d2ff6bc958307965eca7b5667
authorwolenetz@chromium.org <wolenetz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Wed, 12 Jun 2013 01:09:49 +0000 (12 01:09 +0000)
committerwolenetz@chromium.org <wolenetz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Wed, 12 Jun 2013 01:09:49 +0000 (12 01:09 +0000)
tree663cdabcf373ec49677a5eb2f1b3fa967d7546d3
parent1dec3e81277da1c7d710cb54d045b70093104261
Implement MediaSourceDelegate::SetDuration() for android

Notify MediaPlayerClient and (Android) MediaSourcePlayer when
MediaSourceDelegate's ChunkDemuxer duration changes:
* Bind WebMediaPlayerAndroid::OnDurationChanged() to
  render loop to asynchronously handle callback from
  MediaSourceDelegate::SetDuration().
* Cache the updated duration in WMPA.  This needs
simplification in blink so this caching doesn't break MSE
spec conformance.  Prerequisite blink change:
https://codereview.chromium.org/15735030/)
* Add IPC for WebMediaPlayerAndroid to notify (Android)
  MediaSourcePlayer when MediaSourceDelegate/ChunkDemuxer updates duration.

With this patch, the following MSE layout tests now pass:
webkitmediasource-duration-boundaryconditions.html
webkitmediasource-duration-changed.html
webkitmediasource-seek-to-end-after-duration-change.html

BUG=246757,233420
TEST=manual verification of MSE layout tests show no regression
R=acolwell@chromium.org,yfriedman@chromium.org,qinmin@chromium.org,wonsik@chromium.org, jschuh@chromium.org

Review URL: https://chromiumcodereview.appspot.com/16372002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205697 0039d316-1c4b-4281-b951-d872f2087c98
14 files changed:
content/browser/android/media_player_manager_impl.cc
content/browser/android/media_player_manager_impl.h
content/common/media/media_player_messages_android.h
content/renderer/media/webmediaplayer_proxy_impl_android.cc
content/renderer/media/webmediaplayer_proxy_impl_android.h
media/base/android/media_player_android.cc
media/base/android/media_player_android.h
media/base/android/media_source_player.cc
media/base/android/media_source_player.h
webkit/renderer/media/android/media_source_delegate.cc
webkit/renderer/media/android/media_source_delegate.h
webkit/renderer/media/android/webmediaplayer_android.cc
webkit/renderer/media/android/webmediaplayer_android.h
webkit/renderer/media/android/webmediaplayer_proxy_android.h