Android media: VideoFrame should not store so many sync points.
commit47c345bb30a854a7c7ebdfa1bbe1710ddc5e780e
authordongseong.hwang@intel.com <dongseong.hwang@intel.com@0039d316-1c4b-4281-b951-d872f2087c98>
Tue, 22 Jul 2014 10:31:57 +0000 (22 10:31 +0000)
committerdongseong.hwang@intel.com <dongseong.hwang@intel.com@0039d316-1c4b-4281-b951-d872f2087c98>
Tue, 22 Jul 2014 10:31:57 +0000 (22 10:31 +0000)
tree8fc7f559209ce66b70417a7310d41a09e12d52ff
parent61d73c86f18b812620c8318398bb4645775d2977
Android media: VideoFrame should not store so many sync points.

VideoFrame based on StreamTexture is reused on many frames. However, clients (e.g.
compositor, WebGL) inserts a sync point every frame. So VideoFrame on Android
can keep several mega byte sync points unnecessarily.

This CL makes VideoFrame keep only one sync point. When a client set new sync point
to VideoFrame and VideoFrame already keeps the sync point of another client, VideoFrame
waits the previous sync point before inserting a new sync point. A client must provide
a VideoFrame::SyncPointProvider so that VideoFrame can insert or wait a sync point.

BUG=350925

Review URL: https://codereview.chromium.org/312803002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284658 0039d316-1c4b-4281-b951-d872f2087c98
28 files changed:
cc/resources/video_resource_updater.cc
cc/resources/video_resource_updater.h
content/browser/media/capture/desktop_capture_device_aura.cc
content/browser/renderer_host/image_transport_factory_android.cc
content/browser/renderer_host/image_transport_factory_android.h
content/browser/renderer_host/media/video_capture_controller.cc
content/browser/renderer_host/media/video_capture_controller.h
content/browser/renderer_host/media/video_capture_controller_unittest.cc
content/browser/renderer_host/media/video_capture_host.cc
content/browser/renderer_host/media/video_capture_host.h
content/browser/renderer_host/media/video_capture_host_unittest.cc
content/browser/renderer_host/test/no_transport_image_transport_factory_android.cc [new file with mode: 0644]
content/browser/renderer_host/test/no_transport_image_transport_factory_android.h [new file with mode: 0644]
content/common/media/video_capture_messages.h
content/content_tests.gypi
content/renderer/media/android/webmediaplayer_android.cc
content/renderer/media/rtc_video_decoder.cc
content/renderer/media/rtc_video_decoder.h
content/renderer/media/video_capture_impl.cc
content/renderer/media/video_capture_impl.h
content/renderer/media/video_capture_impl_unittest.cc
content/renderer/media/video_capture_message_filter.cc
content/renderer/media/webmediaplayer_impl.cc
media/base/video_frame.cc
media/base/video_frame.h
media/base/video_frame_unittest.cc
media/filters/gpu_video_decoder.cc
media/filters/gpu_video_decoder.h