gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/asobj/NetStreamFfmpeg.cpp


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/asobj/NetStreamFfmpeg.cpp
Date: Wed, 30 May 2007 09:06:58 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/05/30 09:06:58

Modified files:
        .              : ChangeLog 
        server/asobj   : NetStreamFfmpeg.cpp 

Log message:
        make locking debugging messages a compile-time option.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.3402&r2=1.3403
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetStreamFfmpeg.cpp?cvsroot=gnash&r1=1.67&r2=1.68

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.3402
retrieving revision 1.3403
diff -u -b -r1.3402 -r1.3403
--- ChangeLog   30 May 2007 08:57:59 -0000      1.3402
+++ ChangeLog   30 May 2007 09:06:57 -0000      1.3403
@@ -4,7 +4,8 @@
          method (return milliseconds, not seconds); have
          NetStream.bufferLength return in fractional seconds, as expected;
          Change bufferTime to take milliseconds, convert from seconds
-         in the AS method (so we can accept fractional seconds..).
+         in the AS method (so we can accept fractional seconds..);
+         make locking debugging messages a compile-time option.
 
 2007-05-30 Tomas Groth Christensen <address@hidden>
 

Index: server/asobj/NetStreamFfmpeg.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/NetStreamFfmpeg.cpp,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -b -r1.67 -r1.68
--- server/asobj/NetStreamFfmpeg.cpp    29 May 2007 22:48:25 -0000      1.67
+++ server/asobj/NetStreamFfmpeg.cpp    30 May 2007 09:06:57 -0000      1.68
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: NetStreamFfmpeg.cpp,v 1.67 2007/05/29 22:48:25 strk Exp $ */
+/* $Id: NetStreamFfmpeg.cpp,v 1.68 2007/05/30 09:06:57 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -43,6 +43,9 @@
 # include "unistd.h" // for usleep()
 #endif
 
+/// Define this to add debugging prints for locking
+//#define GNASH_DEBUG_THREADS
+
 // Used to free data in the AVPackets we create our self
 static void avpacket_destruct(AVPacket* av) {
        delete [] av->data;
@@ -594,11 +597,15 @@
 // decoder thread
 void NetStreamFfmpeg::av_streamer(NetStreamFfmpeg* ns)
 {
-       GNASH_REPORT_FUNCTION;
+       //GNASH_REPORT_FUNCTION;
 
+#ifdef GNASH_DEBUG_THREADS
        log_debug("Thread %d locking on ::av_streamer", pthread_self());
+#endif
        boost::mutex::scoped_lock lock(ns->decoding_mutex);
+#ifdef GNASH_DEBUG_THREADS
        log_debug(" obtained (av_streamer)");
+#endif
 
        // This should only happen if close() is called before this thread is 
ready
        if (!ns->m_go)
@@ -637,7 +644,9 @@
        // Loop while we're playing
        while (ns->m_go)
        {
+#ifdef GNASH_DEBUG_THREADS
                log_debug("Decoding iteration");
+#endif
 
                if (ns->m_isFLV) {
                        // If queues are full then don't bother filling it
@@ -653,9 +662,13 @@
                        if (ns->m_pause || (ns->m_qvideo.size() > 10 && 
ns->m_qaudio.size() > 10))
                        { 
                                assert(ns->m_go);
+#ifdef GNASH_DEBUG_THREADS
                                log_debug("Waiting on lock..");
+#endif
                                ns->decode_wait.wait(lock);
+#ifdef GNASH_DEBUG_THREADS
                                log_debug("Finished waiting.");
+#endif
                        }
                } else {
 
@@ -669,15 +682,21 @@
                        // if the queue is full we wait until someone notifies 
us that data is needed.
                        if (ns->m_pause || ((ns->m_qvideo.size() > 0 && 
ns->m_qaudio.size() > 0) && ns->m_unqueued_data))
                        { 
+#ifdef GNASH_DEBUG_THREADS
                                log_debug("Waiting on lock..");
+#endif
                                ns->decode_wait.wait(lock);
+#ifdef GNASH_DEBUG_THREADS
                                log_debug("Finished waiting.");
+#endif
                        }
                }
 
        }
 
+#ifdef GNASH_DEBUG_THREADS
        log_debug("Out of decoding loop");
+#endif
        ns->m_go = false;
 
        log_debug("Setting playStop status");
@@ -687,13 +706,17 @@
 // audio callback is running in sound handler thread
 bool NetStreamFfmpeg::audio_streamer(void *owner, uint8_t *stream, int len)
 {
-       GNASH_REPORT_FUNCTION;
+       //GNASH_REPORT_FUNCTION;
 
        NetStreamFfmpeg* ns = static_cast<NetStreamFfmpeg*>(owner);
 
+#ifdef GNASH_DEBUG_THREADS
        log_debug("Thread %d locking on ::audio_streamer", pthread_self());
+#endif
        boost::mutex::scoped_lock  lock(ns->decoding_mutex);
+#ifdef GNASH_DEBUG_THREADS
        log_debug(" obtained (audio_streamer)");
+#endif
 
        if (!ns->m_go || ns->m_pause) return false;
 
@@ -740,7 +763,9 @@
        if (frame == NULL) {
                if (_netCon->loadCompleted())
                {
+#ifdef GNASH_DEBUG_THREADS
                        log_debug("decodeFLVFrame: load completed, stopping");
+#endif
                        // Stop!
                        m_go = false;
                } else {
@@ -959,9 +984,13 @@
 
 bool NetStreamFfmpeg::decodeMediaFrame()
 {
+#ifdef GNASH_DEBUG_THREADS
        log_debug("Thread %d locking on ::decodeMediaFrame", pthread_self());
+#endif
        boost::mutex::scoped_lock  lock(decoding_mutex);
+#ifdef GNASH_DEBUG_THREADS
        log_debug(" obtained (decodeMediaFrame)");
+#endif
 
        if (m_unqueued_data)
        {
@@ -1164,9 +1193,13 @@
 void
 NetStreamFfmpeg::advance()
 {
+#ifdef GNASH_DEBUG_THREADS
        log_debug("Thread %d locking on ::advance", pthread_self());
+#endif
        boost::mutex::scoped_lock lock(decoding_mutex);
+#ifdef GNASH_DEBUG_THREADS
        log_debug(" obtained (advance)");
+#endif
 
        // Make sure al decoding has stopped
        // This can happen in 2 cases: 
@@ -1183,7 +1216,7 @@
                m_start_onbuffer = false;
        }
 
-       log_debug("(advance): processing status notification, refreshing video 
frame");
+       //log_debug("(advance): processing status notification, refreshing 
video frame");
 
        // Check if there are any new status messages, and if we should
        // pass them to a event handler




reply via email to

[Prev in Thread] Current Thread [Next in Thread]