[MM] Fix flickering when playing video.
authormsu.koo <msu.koo@samsung.com>
Wed, 9 Dec 2015 10:18:47 +0000 (19:18 +0900)
committerYoungsoo Choi <kenshin.choi@samsung.com>
Tue, 10 Jul 2018 07:55:23 +0000 (07:55 +0000)
commite9f8807a69f9a56dcd267543672e58b9cd7f0c74
treef4ab06cabeb31e2bd3a5e298d38fd57c222c22e6
parent0b18cbe1356d611b64d553701d9f0931f5b91beb
[MM] Fix flickering when playing video.

Previously, Player deletes |tbm_surface| when next frame is delivered.
But occationally, it causes frame drops and crashs
because |tbm_surface| is released before the gpu does not finish to handle it.

This patch introduces |MediaPacketManager|
to hold media_packets which wraps tbm_surface and CleanUp regularly.

Also supplying APIs to let Renderer explicitly release the |tbm_surface|s
by indexing the |media_packet|s using |tbm_surface_h| as the key.
(Renderer only knows tbm_surface.)

CleanUp is introduced to prevent media_packet(tbm_surface) leaks
even Renderer does not request to release.
Theoritically CleanUp should do nothing because Renderer invoke
Release() for all |tbm_surface|s afer rendering so that
implementation is focused on optimizing Release() rather than CleanUp().

Bug: http://165.213.149.170/jira/browse/TSAM-653
Bug: http://107.108.218.239/bugzilla/show_bug.cgi?id=15255

Reviewed by: sns.park

Change-Id: I9a1e3b0710da0072b3459818690d16e5c43d6fd3
Signed-off-by: msu.koo <msu.koo@samsung.com>
tizen_src/chromium_impl/media/base/tizen/media_packet_manager.cc [new file with mode: 0644]
tizen_src/chromium_impl/media/base/tizen/media_packet_manager.h [new file with mode: 0644]
tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.cc
tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.h
tizen_src/chromium_impl/media/base/tizen/media_source_player_capi.cc
tizen_src/chromium_impl/media/base/tizen/media_source_player_capi.h
tizen_src/chromium_impl/media/media_efl.gypi