gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog libmedia/gst/sound_handler_gst....


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog libmedia/gst/sound_handler_gst....
Date: Sat, 01 Dec 2007 21:07:20 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/12/01 21:07:20

Modified files:
        .              : ChangeLog 
        libmedia/gst   : sound_handler_gst.cpp sound_handler_gst.h 

Log message:
        drop dependency on hash_wrapper.h

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5044&r2=1.5045
http://cvs.savannah.gnu.org/viewcvs/gnash/libmedia/gst/sound_handler_gst.cpp?cvsroot=gnash&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/gnash/libmedia/gst/sound_handler_gst.h?cvsroot=gnash&r1=1.5&r2=1.6

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5044
retrieving revision 1.5045
diff -u -b -r1.5044 -r1.5045
--- ChangeLog   1 Dec 2007 19:55:19 -0000       1.5044
+++ ChangeLog   1 Dec 2007 21:07:19 -0000       1.5045
@@ -1,5 +1,7 @@
 2007-12-01 Sandro Santilli <address@hidden>
 
+       * libmedia/gst/sound_handler_gst.{cpp,h}: drop dependency on
+         hash_wrapper.h
        * utilities/processor.cpp: add support for reading from stdin.
 
 2007-12-01 Sandro Santilli <address@hidden>

Index: libmedia/gst/sound_handler_gst.cpp
===================================================================
RCS file: /sources/gnash/gnash/libmedia/gst/sound_handler_gst.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- libmedia/gst/sound_handler_gst.cpp  1 Dec 2007 00:14:59 -0000       1.4
+++ libmedia/gst/sound_handler_gst.cpp  1 Dec 2007 21:07:20 -0000       1.5
@@ -20,7 +20,7 @@
 // Based on sound_handler_sdl.cpp by Thatcher Ulrich http://tulrich.com 2003
 // which has been donated to the Public Domain.
 
-/* $Id: sound_handler_gst.cpp,v 1.4 2007/12/01 00:14:59 strk Exp $ */
+/* $Id: sound_handler_gst.cpp,v 1.5 2007/12/01 21:07:20 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -28,6 +28,8 @@
 
 #include "utility.h" // for convert_raw_data
 
+#include <utility> // for std::make_pair
+
 // Assume people running --enable-media=gst know what they are doing
 // (HAVE_GST_GST_H seems broken atm, specifically when an older glib
 //  install is around)
@@ -644,23 +646,10 @@
                GST_BUFFER_DATA(buffer) = tmp_buf;
        }
 
-       /*GST_sound_handler::*/aux_streamer_ptr aux_streamer = 
gstelements->handler->m_aux_streamer[gstelements->owner];
+       aux_streamer_ptr aux_streamer = 
gstelements->handler->m_aux_streamer[gstelements->owner];
        
        // If false is returned the sound doesn't want to be attached anymore
        bool ret = (aux_streamer)(gstelements->owner, GST_BUFFER_DATA(buffer), 
GST_BUFFER_SIZE(buffer));
-/*     if (!ret) {
-               handler->m_aux_streamer.erase(it++);
-               handler->soundsPlaying--;
-
-               // All the data has been given to the pipeline, so now we need 
to stop
-               // the pipeline. g_idle_add() makes sure sound_killer is called 
soon.
-               if (gstelements->position > gstelements->data_size) {
-                       g_idle_add(sound_killer, user_data);
-                       GST_BUFFER_SIZE(buffer) = 0;
-                       GST_BUFFER_DATA(buffer) = 0;
-                       return;
-               }
-       }*/
 
 }
 
@@ -670,13 +659,11 @@
        assert(owner);
        assert(ptr);
 
-       aux_streamer_ptr p;
-       if (m_aux_streamer.get(owner, &p))
+       if ( m_aux_streamer.insert(std::make_pair(owner, ptr)).second )
        {
                // Already in the hash.
                return;
        }
-       m_aux_streamer[owner] = ptr;
 
        // Make a pipeline that can play the raw data
 
@@ -782,7 +769,7 @@
 
        gst_element->owner = owner;
 
-       // Put the gst_element on the vector
+       // Put the gst_element in the map
        m_aux_streamer_gstelements[owner] = gst_element;
        
        // If not already playing, start doing it
@@ -793,14 +780,13 @@
 void GST_sound_handler::detach_aux_streamer(void* owner)
 {
        try_mutex::scoped_lock lock(_mutex);
-       aux_streamer_ptr p;     
-       if (m_aux_streamer.get(owner, &p))
-       {
-               m_aux_streamer.erase(owner);
-               delete m_aux_streamer_gstelements[owner];
-               m_aux_streamer_gstelements.erase(owner);
-       }
 
+       GstElementsMap::iterator it=m_aux_streamer_gstelements.find(owner);
+       if ( it == m_aux_streamer_gstelements.end() ) return; // not found
+
+       delete it->second;
+       // WARNING: erasing would break any iteration in the map
+       m_aux_streamer_gstelements.erase(it);
 }
 
 unsigned int GST_sound_handler::get_duration(int sound_handle)

Index: libmedia/gst/sound_handler_gst.h
===================================================================
RCS file: /sources/gnash/gnash/libmedia/gst/sound_handler_gst.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- libmedia/gst/sound_handler_gst.h    30 Nov 2007 00:13:02 -0000      1.5
+++ libmedia/gst/sound_handler_gst.h    1 Dec 2007 21:07:20 -0000       1.6
@@ -14,7 +14,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: sound_handler_gst.h,v 1.5 2007/11/30 00:13:02 tgc Exp $
+// $Id: sound_handler_gst.h,v 1.6 2007/12/01 21:07:20 strk Exp $
 
 #ifndef SOUND_HANDLER_GST_H
 #define SOUND_HANDLER_GST_H
@@ -23,12 +23,12 @@
 #include "sound_handler.h" // for inheritance
 
 #include <vector>
+#include <map>
 
 #include <gst/gst.h>
 #include <boost/thread/thread.hpp>
 #include <boost/bind.hpp>
 #include <boost/thread/mutex.hpp>
-#include "hash_wrapper.h"
 
 #define BUFFER_SIZE 5000
 
@@ -137,9 +137,11 @@
 {
 private:
        /// AS classes (NetStream, Sound) audio callbacks
-       hash_wrapper< void* /* owner */, aux_streamer_ptr /* callback */> 
m_aux_streamer;
+       typedef std::map< void* /* owner */, aux_streamer_ptr /* callback */> 
CallbacksMap;
+       CallbacksMap m_aux_streamer;
 
-       hash_wrapper< void* /* owner */, gst_elements*> 
m_aux_streamer_gstelements;
+       typedef std::map< void* /* owner */, gst_elements*> GstElementsMap;
+       GstElementsMap m_aux_streamer_gstelements;
 
        /// Vector containing all the sounds
        std::vector<sound_data*>        m_sound_data;




reply via email to

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