summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorBrad Payne (Vir Linden) <vir@lindenlab.com>2010-06-15 15:01:08 -0400
committerBrad Payne (Vir Linden) <vir@lindenlab.com>2010-06-15 15:01:08 -0400
commitf8a8499c9d5b4895a96564fd3925b9becb68cbfd (patch)
treef5466c45c01a8dc847205861bb5f935e202dc9e5 /indra/newview
parent9b014886b0062a0d2c3ac9aa4a3cf3eb6a6488be (diff)
parentd6af2d0985951f5863620bfc6d6e763769cc07fa (diff)
merge
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llviewermedia.cpp36
1 files changed, 21 insertions, 15 deletions
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 14e58f4167..d7190f26a3 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -1776,29 +1776,22 @@ void LLViewerMediaImpl::loadURI()
llinfos << "Asking media source to load URI: " << uri << llendl;
mMediaSource->loadURI( uri );
-
+
+ // A non-zero mPreviousMediaTime means that either this media was previously unloaded by the priority code while playing/paused,
+ // or a seek happened before the media loaded. In either case, seek to the saved time.
+ if(mPreviousMediaTime != 0.0f)
+ {
+ seek(mPreviousMediaTime);
+ }
+
if(mPreviousMediaState == MEDIA_PLAYING)
{
// This media was playing before this instance was unloaded.
-
- if(mPreviousMediaTime != 0.0f)
- {
- // Seek back to where we left off, if possible.
- seek(mPreviousMediaTime);
- }
-
start();
}
else if(mPreviousMediaState == MEDIA_PAUSED)
{
// This media was paused before this instance was unloaded.
-
- if(mPreviousMediaTime != 0.0f)
- {
- // Seek back to where we left off, if possible.
- seek(mPreviousMediaTime);
- }
-
pause();
}
else
@@ -1857,6 +1850,10 @@ void LLViewerMediaImpl::pause()
{
mMediaSource->pause();
}
+ else
+ {
+ mPreviousMediaState = MEDIA_PAUSED;
+ }
}
//////////////////////////////////////////////////////////////////////////////////////////
@@ -1866,6 +1863,10 @@ void LLViewerMediaImpl::start()
{
mMediaSource->start();
}
+ else
+ {
+ mPreviousMediaState = MEDIA_PLAYING;
+ }
}
//////////////////////////////////////////////////////////////////////////////////////////
@@ -1875,6 +1876,11 @@ void LLViewerMediaImpl::seek(F32 time)
{
mMediaSource->seek(time);
}
+ else
+ {
+ // Save the seek time to be set when the media is loaded.
+ mPreviousMediaTime = time;
+ }
}
//////////////////////////////////////////////////////////////////////////////////////////