[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash server/asobj/SoundFfmpeg.cpp server/asobj...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash server/asobj/SoundFfmpeg.cpp server/asobj... |
Date: |
Thu, 19 Jun 2008 20:06:00 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 08/06/19 20:06:00
Modified files:
server/asobj : SoundFfmpeg.cpp SoundFfmpeg.h
. : ChangeLog
Log message:
* server/asobj/SoundFfmpeg.cpp: re-implement start offset again
by keeping note of where to start. Fixes bug #20685 again
(at least for dynamically loaded sound).
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/SoundFfmpeg.cpp?cvsroot=gnash&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/SoundFfmpeg.h?cvsroot=gnash&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6986&r2=1.6987
Patches:
Index: server/asobj/SoundFfmpeg.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/SoundFfmpeg.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- server/asobj/SoundFfmpeg.cpp 19 Jun 2008 18:49:21 -0000 1.26
+++ server/asobj/SoundFfmpeg.cpp 19 Jun 2008 20:05:59 -0000 1.27
@@ -39,6 +39,7 @@
SoundFfmpeg::SoundFfmpeg()
: // REMEMBER TO ALWAYS INITIALIZE ALL MEMBERS !
_mediaHandler(media::MediaHandler::get()),
+ _startTime(0),
_leftOverData(),
_leftOverPtr(0),
_leftOverSize(0),
@@ -63,9 +64,15 @@
if ( ! _mediaParser->parsingCompleted() ) break;
// or detach and stop here...
+ // (should really honour loopings if any)
+ //if ( remainingLoops.. )
return false; // will detach us
}
+ // if we've been asked to start at a specific time, skip
+ // any frame with earlier timestamp
+ if ( frame->timestamp < _startTime ) continue;
+
_leftOverData.reset( _audioDecoder->decode(*frame,
_leftOverSize) );
_leftOverPtr = _leftOverData.get();
if ( ! _leftOverData )
@@ -191,6 +198,7 @@
if (offset > 0)
{
+ _startTime=offset*1000;
boost::uint32_t seekms = boost::uint32_t(offset*1000);
// TODO: boost::mutex::scoped_lock
parserLock(_parserMutex);
_mediaParser->seek(seekms); // well, we try...
Index: server/asobj/SoundFfmpeg.h
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/SoundFfmpeg.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- server/asobj/SoundFfmpeg.h 19 Jun 2008 17:45:08 -0000 1.16
+++ server/asobj/SoundFfmpeg.h 19 Jun 2008 20:05:59 -0000 1.17
@@ -76,6 +76,11 @@
boost::scoped_ptr<media::MediaParser> _mediaParser;
boost::scoped_ptr<media::AudioDecoder> _audioDecoder;
+ /// Number of milliseconds into the sound to start it
+ //
+ /// This is set by start()
+ boost::uint64_t _startTime;
+
boost::scoped_array<boost::uint8_t> _leftOverData;
boost::uint8_t* _leftOverPtr;
size_t _leftOverSize;
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6986
retrieving revision 1.6987
diff -u -b -r1.6986 -r1.6987
--- ChangeLog 19 Jun 2008 18:49:21 -0000 1.6986
+++ ChangeLog 19 Jun 2008 20:05:59 -0000 1.6987
@@ -1,5 +1,11 @@
2008-06-19 Sandro Santilli <address@hidden>
+ * server/asobj/SoundFfmpeg.cpp: re-implement start offset again
+ by keeping note of where to start. Fixes bug #20685 again
+ (at least for dynamically loaded sound).
+
+2008-06-19 Sandro Santilli <address@hidden>
+
* server/asobj/SoundFfmpeg.cpp (getAudio): return false
when willing to be detached. Manually detaching would result
in a deadlock.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash server/asobj/SoundFfmpeg.cpp server/asobj...,
Sandro Santilli <=