From ae82c93ad0ae2e054a0f64b608482453d823dd1a Mon Sep 17 00:00:00 2001 From: irei1as Date: Sun, 11 Mar 2018 17:23:59 +0100 Subject: [PATCH] Update asyncPacketStream.h --- Engine/source/platform/async/asyncPacketStream.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Engine/source/platform/async/asyncPacketStream.h b/Engine/source/platform/async/asyncPacketStream.h index a5ed13daf..9cc33d4dc 100644 --- a/Engine/source/platform/async/asyncPacketStream.h +++ b/Engine/source/platform/async/asyncPacketStream.h @@ -281,9 +281,22 @@ void AsyncPacketBufferedInputStream< Stream, Packet >::_requestNext() IResettable* resettable = dynamic_cast< IResettable* >( s ); if( resettable ) { + IPositionable< U32 >* positionable = dynamic_cast< IPositionable< U32 >* >( &Deref( stream ) ); + U32 pos; + if(positionable) + pos = positionable->getPosition(); + resettable->reset(); isEOS = false; this->mNumRemainingSourceElements = mNumTotalSourceElements; + + if( positionable ) + { + positionable->setPosition(pos); + U32 dur = stream->getDuration(); + if(dur != 0) //avoiding division by zero? not needed, probably + this->mNumRemainingSourceElements -= (U32)(mNumTotalSourceElements*(F32)pos/dur); + } } } else if( isEOS )