CVSROOT: /sources/gnash Module name: gnash Changes by: Sandro Santilli <strk> 07/05/29 21:38:36
Modified files: . : ChangeLog server/asobj : NetStreamFfmpeg.cpp NetStreamFfmpeg.h Log message: * server/asobj/NetStreamFfmpeg.{cpp,h}: Don't lock the mutex in pause(), play() and close(), all intended to be called by the locking advance(). More dox about locking in the header. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.3396&r2=1.3397 http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetStreamFfmpeg.cpp?cvsroot=gnash&r1=1.65&r2=1.66 http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetStreamFfmpeg.h?cvsroot=gnash&r1=1.35&r2=1.36 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.3396 retrieving revision 1.3397 diff -u -b -r1.3396 -r1.3397 --- ChangeLog 29 May 2007 17:51:18 -0000 1.3396 +++ ChangeLog 29 May 2007 21:38:34 -0000 1.3397 @@ -1,5 +1,8 @@ 2007-05-29 Sandro Santilli <[EMAIL PROTECTED]> + * server/asobj/NetStreamFfmpeg.{cpp,h}: Don't lock the mutex + in pause(), play() and close(), all intended to be called + by the locking advance(). More dox about locking in the header. * testsuite/actionscript.all/rtmp.as: remove any trace of "rtmp" from the code to show that bug #19886 is unrelated to RTMP. Index: server/asobj/NetStreamFfmpeg.cpp =================================================================== RCS file: /sources/gnash/gnash/server/asobj/NetStreamFfmpeg.cpp,v retrieving revision 1.65 retrieving revision 1.66 diff -u -b -r1.65 -r1.66 --- server/asobj/NetStreamFfmpeg.cpp 29 May 2007 16:43:43 -0000 1.65 +++ server/asobj/NetStreamFfmpeg.cpp 29 May 2007 21:38:35 -0000 1.66 @@ -17,7 +17,7 @@ // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // -/* $Id: NetStreamFfmpeg.cpp,v 1.65 2007/05/29 16:43:43 strk Exp $ */ +/* $Id: NetStreamFfmpeg.cpp,v 1.66 2007/05/29 21:38:35 strk Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -81,8 +81,6 @@ void NetStreamFfmpeg::pause(int mode) { - boost::mutex::scoped_lock lock(decoding_mutex); - if (mode == -1) { if (m_pause) unpauseDecoding(); @@ -104,10 +102,6 @@ void NetStreamFfmpeg::close() { - log_debug("Thread %d locking on ::close", pthread_self()); - boost::mutex::scoped_lock lock(decoding_mutex); - log_debug(" obtained (close)"); - if (m_go) { // terminate thread @@ -212,9 +206,6 @@ void NetStreamFfmpeg::play(const std::string& c_url) { - log_debug("Thread %d locking on ::play", pthread_self()); - boost::mutex::scoped_lock lock(decoding_mutex); - log_debug(" obtained (play)"); // Is it already playing ? if (m_go) Index: server/asobj/NetStreamFfmpeg.h =================================================================== RCS file: /sources/gnash/gnash/server/asobj/NetStreamFfmpeg.h,v retrieving revision 1.35 retrieving revision 1.36 diff -u -b -r1.35 -r1.36 --- server/asobj/NetStreamFfmpeg.h 29 May 2007 11:01:41 -0000 1.35 +++ server/asobj/NetStreamFfmpeg.h 29 May 2007 21:38:35 -0000 1.36 @@ -15,7 +15,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -/* $Id: NetStreamFfmpeg.h,v 1.35 2007/05/29 11:01:41 strk Exp $ */ +/* $Id: NetStreamFfmpeg.h,v 1.36 2007/05/29 21:38:35 strk Exp $ */ #ifndef __NETSTREAMFFMPEG_H__ #define __NETSTREAMFFMPEG_H__ @@ -181,12 +181,22 @@ ~NetStreamFfmpeg(); // Locks decoding_mutex + // + /// does NOT lock decoding_mutex, intended to be called + /// by ::advance which locks and by destructor (locking in destructor might be needed) + /// void close(); /// Locks decoding_mutex + // + /// does NOT lock decoding_mutex, intended to be only called + /// by ::advance, itself locking. + /// void pause(int mode); - /// Locks decoding_mutex + /// does NOT lock decoding_mutex, intended to be only called + /// by ::advance, itself locking. + /// void play(const std::string& source); /// Locks decoding_mutex @@ -224,13 +234,19 @@ // Pauses the decoding - don't directly modify m_pause!! // - // does NOT lock decoding_mutex, use ::pause() for that + // does NOT lock decoding_mutex. Users: + // - ::decodeFLVFrame() not locking byt called by av_streamer which locks + // - ::pause() not locking but called by ::advance + // - ::play() not locking but called by ::advance which locks // void pauseDecoding(); // Unpauses/resumes the decoding - don't directly modify m_pause!! // - // does NOT lock decoding_mutex, used by ::av_streamer() which locks + // does NOT lock decoding_mutex. Users: + // - ::av_streamer() which locks + // - ::play() not locking but called by ::advance which locks + // - ::startPlayback() not locking but called by ::av_streamer // void unpauseDecoding(); _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit