summaryrefslogtreecommitdiffstats
path: root/media/libmedia/docs
diff options
context:
space:
mode:
authorAndy Hung <hunga@google.com>2014-12-29 18:39:32 -0800
committerAndy Hung <hunga@google.com>2015-01-06 12:00:00 -0800
commit3c09c78aabcb9d314dfb400258fb99a37c7b50c9 (patch)
treecff9d9d4cf65e0d4bf4e135ed4337c56dd6670af /media/libmedia/docs
parent53c3b5fc1afe162a8669cb3d27d6bb14e1847e39 (diff)
downloadframeworks_av-3c09c78aabcb9d314dfb400258fb99a37c7b50c9.zip
frameworks_av-3c09c78aabcb9d314dfb400258fb99a37c7b50c9.tar.gz
frameworks_av-3c09c78aabcb9d314dfb400258fb99a37c7b50c9.tar.bz2
Event driven wake for AudioTrackThread notification changes
Used for setMarkerPosition and setPositionUpdatePeriod. Change-Id: I0d94b929438a5cd94b295d7c1884f876fae8b5e7
Diffstat (limited to 'media/libmedia/docs')
-rw-r--r--media/libmedia/docs/paused.dot14
1 files changed, 13 insertions, 1 deletions
diff --git a/media/libmedia/docs/paused.dot b/media/libmedia/docs/paused.dot
index 8856647..11e1777 100644
--- a/media/libmedia/docs/paused.dot
+++ b/media/libmedia/docs/paused.dot
@@ -21,6 +21,12 @@ destructor [label="~AudioTrack()"];
destructor -> requestExit;
requestExit [label="AudioTrackThread::requestExit()"];
requestExit -> resume;
+Application -> ATsetMarkerPosition
+ATsetMarkerPosition [label="AudioTrack::setMarkerPosition()\n[sets marker variables]"];
+ATsetMarkerPosition -> ATTwake
+Application -> ATsetPositionUpdatePeriod
+ATsetPositionUpdatePeriod [label="AudioTrack::setPositionUpdatePeriod()\n[sets update period variables]"];
+ATsetPositionUpdatePeriod -> ATTwake
Application -> ATstart;
resume [label="AudioTrackThread::resume()"];
@@ -29,6 +35,12 @@ resume -> resume_body;
resume_body -> resume_paused [label="true"];
resume_body -> resume_merged [label="false"];
+ATTwake [label="AudioTrackThread::wake()\nif (!mPaused && mPausedInt && mPausedNs > 0)"];
+ATTwake-> ATTWake_wakeable [label="true"];
+ATTWake_wakeable [label="mIgnoreNextPausedInt = true\nmPausedInt = false\nsignal()"];
+ATTwake-> ATTWake_cannotwake [label="false"]
+ATTWake_cannotwake [label="ignore"];
+
pause [label="mPaused = true"];
pause -> return;
@@ -63,7 +75,7 @@ threadLoop_6_default [label="if (ns < 0)"];
threadLoop_6_default -> threadLoop_6_default_true [label="true"];
threadLoop_6_default -> threadLoop_6_default_false [label="false"];
threadLoop_6_default_true [label="FATAL"];
-threadLoop_6_default_false [label="pauseInternal(ns)\nmPausedInternal = true\nmPausedNs = ns\nreturn true"];
+threadLoop_6_default_false [label="pauseInternal(ns) [wake()-able]\nmPausedInternal = true\nmPausedNs = ns\nreturn true"];
threadLoop_6_0 [label="return true"];
threadLoop_6_NS_INACTIVE [label="pauseInternal()\nmPausedInternal = true\nmPausedNs = 0\nreturn true"];
threadLoop_6_NS_NEVER [label="return false"];