[Tizen](Vector) Backport lottie relative patches from latest tizen 19/315819/1
authorHeeyong Song <heeyong.song@samsung.com>
Tue, 13 Jun 2023 07:33:48 +0000 (16:33 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Thu, 8 Aug 2024 04:29:37 +0000 (13:29 +0900)
commit36b3e8393c6f9082ae7880b9d741911cacdffa85
tree715acb94363bc4850381a2917c7a9dbb9836543e
parenta2f63496d01bd9375bfde292596823d5e4fdf497
[Tizen](Vector) Backport lottie relative patches from latest tizen

This is a combination of 8 commits.

[Tizen] (Vector) Use one EventThreadCallback

EventThreadCallback uses an fd internally and some systems have a limit on the number of fd.
So reduce the number of fd

Change-Id: I55f6e7f5211d0bc567a1b2362c782e9fc2a74b90

(Vector) Fix invalid callback issue

Do not execute a callback with lock
Reset callback pointers after removing

Change-Id: I1f617af4ee89e43c8ab891efbd0beaea14feaea1

Keep reference when member callback excute

Change-Id: I406dc8206b6b156e390bab724820dc55e06437f6
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
(Vector) Check adaptor validate before unregister

Change-Id: Iac603db90cee8caf0aefc0f15e536ecb3dd51590
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
(Vector) Erase all EventThreadCallbacks with same pointer

Due to some logical issue, there might be happend that we apply multiple
EventThread callback into VectorAnimationThread.

And if VectorAnimationTask destructor called, we remove only single callback.

If error case occured, EventThread can execute dead callback.

Change-Id: I9e3895180916a292bbca838997ae3053ee8799b5
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
(Vector) To prevent segmentation fault in AnimatedVectorImageVisual

Change-Id: I4c5c94eb9faeffd4727b5879254527692fe93be2
Signed-off-by: seungho baek <sbsh.baek@samsung.com>
(Vector) Use mutex instead of ConditionalWait for EventhThreadCallback

Since worker thread can call AddEventTriggerCallback freely,

we should make some lock between workerthread and
main thread(RemoveEventTriggerCallbacks, GetNextEventCallback, ~VectorAnimationThread).

ConditionalWait used only for AsyncTask rasterization, and sleep thread.
We'd better seperate those job locker.

Change-Id: I543ba7f0bdf54036a8127d1815dda18cafca54e7
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
(Vector) Change ConditionalWait as Mutex at lottie task

Change-Id: I1f652c440945a9b40a88a992018e14ae0746bc9d
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
automated-tests/src/dali-toolkit/utc-Dali-AnimatedVectorImageVisual.cpp
dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp
dali-toolkit/internal/visuals/animated-vector-image/vector-animation-manager.cpp
dali-toolkit/internal/visuals/animated-vector-image/vector-animation-task.cpp
dali-toolkit/internal/visuals/animated-vector-image/vector-animation-task.h
dali-toolkit/internal/visuals/animated-vector-image/vector-animation-thread.cpp
dali-toolkit/internal/visuals/animated-vector-image/vector-animation-thread.h